MEW-01 wolniejsze logownie przez MQTT

kwant
Posts: 3
Joined: Wed Jul 06, 2022 11:06 am

Post

Hi!

Skonfigurowałem MEW-01 żeby mi logował dane przez MQTT. W zasadzie było to super proste i bezbolesne - gratuluje dobrego softu :-). Mam kilka pytań:

1. Jak zrobić upgrade firmware? Urządzenie wyłączyło AP i na adresie które dostało z sieci nie ma wystawionego http/https.

2. Jak zmniejszyć szybkość logowania? MEW-01 rzyga danymi praktycznie non-stop, to mi niepotrzebnie będzie obciążać logger danych, interesują mnie pomiary co minutę.

3. Czy da się wyłączyć część informacji wysyłanych przez MQTT - w zasadzie interesuje mnie tylko voltage i power_active na wszystkich fazach.

4. Czy da się równocześnie logować do MQTT i cloud.supla.org? Tak żeby mieć dokładne pomiary w lokalnej sieci i "zgrubne" dostępne wygodnie przez aplikację?

Urządzenie mam w sieci lokalnej (vlan bez dostępu do Internetu), szukałem pobieżnie odpowiedzi na te pytania na forum ale nie znalazłem, proszę nie strzelać do mnie jeżeli gdzieś ktoś już odpowiedział na te pytania ale ja nie znalazłem ;-) Dajcie po prostu linka do tych postów albo jakieś słowo kluczowe jak znaleźć.
User avatar
pzygmunt
Posts: 20302
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Been thanked: 59 times

Post

1. Aktualnie tylko po połączeniu z serwerami Supli. W przyszłości być może się to zmieni. W trybie klienta urządzenie nie wystawia http/https.
viewtopic.php?t=6212
2. Przełącz w tryb konfiguracji. Na stronie http://192.168.4.1 możesz ustawić parametr "Pool publication delay (sec.)"
3. To Ty decydujesz jakie topiki subskrybujesz. Jest to specyfika MQTT.
4. Jeśli użyjesz lokalnego MQTT to nie. Jeśli użyjesz cloud-owego MQTT to tak.
SUPLA.... Nareszcie w domu.
kwant
Posts: 3
Joined: Wed Jul 06, 2022 11:06 am

Post

Dzięki za odpowiedź :-) ma prośbę o jedno doszczegółowienie.

Nie bardzo się orientuję w architekturze MQTT, załóżmy że mam lokalny serwer (np. mosquitto), zasubskrybowałem sobie tylko powiedzmy "3/voltage", czy suppla będzie wysyłać na serwer MQTT wszystkie informacje i serwer je potem "zapomni" oprócz tej "3/voltage"? czy może suppla będzie wysyłać wyłącznie tą pojedynczą informację? Chodzi mi o ograniczenie ruchu wifi pomiędzy MEW-01 a moją infrastrukturą sieciową.

Ja sobie te dane w celach testowych przeglądam w ten sposób:

Code: Select all

mosquitto_sub -v -h host_name -p 1883 -t "#"
czyli zasubskrybowałem wszystko. Jeżeli zasubskrybuję tylko jeden kanał to nadal nie będę widział czy wszystko idzie na serwer czy tylko ta jedna wiadomość.
User avatar
pzygmunt
Posts: 20302
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Been thanked: 59 times

Post

MEW będzie wysyłał wszystko. Ty decydujesz co chcesz "odbierać".
Ten ruch jest niewielki w stosunku do tego co generują smartfony/tablety/tv itd tak więc nie wiem jaki może być powód aby próbować go ograniczać.
SUPLA.... Nareszcie w domu.
kwant
Posts: 3
Joined: Wed Jul 06, 2022 11:06 am

Post

pzygmunt wrote: Wed Jul 06, 2022 12:37 pm MEW będzie wysyłał wszystko. Ty decydujesz co chcesz "odbierać".
Ten ruch jest niewielki w stosunku do tego co generują smartfony/tablety/tv itd tak więc nie wiem jaki może być powód aby próbować go ograniczać.
Poniżej opis może trochę wydumanego przypadku więc IMHO nie ma potrzeby optymalizować. Ale ja jestem inżynierem więc zawsze szukam optymalizacji ;-)

MEW-01 wypuszcza dużo małych pakietów, przy standardowej konfiguracji (bez zwiększenia czasu) to jest kilka-kilkanaście komunikatów MQTT na sekundę. Każdy komunikat to minimum jeden osobny pakiet. To nie jest dużo bajtów/s ale powoduje ruch w "powietrzu", rezerwowanie zasobów, kolizje, etc... Taki strumień szybkich pakietów potrafi obniżyć jakość pozostałych transmisji w zadziwiająco dużym stopniu (w obecnej bezprzewodówce nie ma rezerwowania zasobów w czasie więc powstają kolizje, trzeba retransmitować, etc...). Jeżeli sieć jest skomplikowana i wymagany jest routing pomiędzy podsieciami to dodatkowo zużywane są zasoby routera. Jeżeli takich urządzeń będę miał kilka to zaczyna się robić kilkadziesiąt-kilkaset komunikatów/s.

W moim urządzeniu zrobiłem sobie logowanie wszystkich parametrów w jednym komunikacie. Przesłałem JSONa z tymi danymi: AQI1/pmRAW {"p0_3":671, "p0_5":180, "p1_0":16, "p2_5": 2, "p5_0": 1, "p10": 1} dzięki czemu mam mniejszy ruch. To niestety ma taką wadę, że nie jest "best practice" w MQTT i potem są problemy żeby to odebrać np. w OpenHAB (da się ale trzeba trochę rzeźbić).

Przy okazji, MEW-01 został automatycznie wykryty przez OpenHAB :-)

Przy drugiej okazji, podczas konfigurowania MEW-01 zauważyłem, że strona WWW zapamiętuje i podpowiada jawnym tekstem hasło dla sieci WiFi. Nie wiem czy to było intencjonalne ale tak nie powinno być z punktu widzenia bezpieczeństwa - to hasło będzie siedziało gdzieś w przeglądarce, w ciasteczkach. W pole do wpisania powinno mieć odpowiedni atrybut informujący że jest to hasło a nie zwykłe pole tekstowe wtedy zostanie zapamiętane przez menagera haseł albo nie zapamietane w ogóle (zależy od preferencji przeglądraki).
User avatar
pzygmunt
Posts: 20302
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Been thanked: 59 times

Post

Sam formularz nie wyświetla hasła jednakże Twoja przeglądarka jak słusznie zauważyłeś może je zapamiętać przy pierwszym zapisie.
Po zapisie pole jest puste.

https://github.com/SUPLA/supla-espressif-esp/issues/83
https://github.com/SUPLA/supla-device/issues/1
SUPLA.... Nareszcie w domu.

Return to “ZAMEL MEW-01”