Zigbee2MQTT+ Sonoff Zigbee 3.0 USB Dongle Plus

Dzięki, jutro obadam temat.

Edit:

Jasna sprawa.
Z załączonych materiałów przez kolegę Szopena wynika, że w przypadku korzystania z ZHA, zwiększenie mocy dongla dotyczy jedynie routera a nie koordynatora.

@szopen słuszna uwaga aby jednak obniżyć moc koordynatora. Przetestowałem i ustawiłem na -5dBm i routery miały problem z połączeniem więc raczej muszę ustawić więcej.

Dałem koordynator na przedłużaczu USB, nic to nie zmieniło, jedynie tyle że czujka Garderoba rozłączyła mi się.

Dla testów zamontuje antenę 9-12dBm i przetestuje co to da, obecnie jest 5dBm.

Czy wiesz jak działa antena 9dBi w porównaniu do anteny 5dBi?
Mam na myśli charakterystykę promieniowania, bo tak naprawdę tylko ona się zmienia - masz inny kształt wiązki i z tego wynika zysk
(pomijam w ogóle kwestię czy to po prostu sprzedawca domalował zbyt wysoką cyfrę by naiwni kupowali to samo inaczej opisane).

I ostatnia kwestia: dB to skala logarytmiczna

dBi (miara zysku anteny) to inna jednostka od dBm - literka “i” pochodzi od anteny izotropowej - takiej idealnie bezkierunkowej o kulistej charakterystyce (nie istnieją takie w rzeczywistości, ale to jest właśnie poziom odniesienia, rzeczywiste anteny zawsze mają niezerowy zysk, bo ich charakterystyka nie jest kulista)

Tu uwaga zysk anteny miewa 2 różne jednostki dBi i dBd (tym razem “d” od dipola półfalowego, który sam z siebie ma zysk 2.15dBi i jest świetną anteną odniesienia do celów pomiarowych), jest to pole do popisu sprzedawców którym zysk przyrasta na papierze zupełnie z niczego.

Natomiast “m” w dBm to odniesienie do 1mW (a antena nie ma mocy, moc ma nadajnik, dlatego jednostki są inne, bo dotyczą czegoś innego).

-5dBm to 0.3mW
20dBm to 100mW
zmieniając moc o 25dBm zmieniasz ją 300x

PS
Pokazałem wyżej przykładowo -5dBm bo to jest moja instalacja testowa, w której celowo zmniejszyłem moc tak by zasięg koordynatora pokrywał tylko jeden pokój (antena jest o zbyt dużym zysku prawdopodobnie koło 5dBi).
Zigbee wymaga komunikacji 2-kierunkowej, więc zwiększanie mocy wypromieniowanej niewiele daje jeśli jakieś urządzenie “słyszy”, ale samo nadaje zbyt słabo by usłyszał je koordynator, więc w zasadzie regulacja mocy ma sens jedynie w celu dopasowania anteny.

Dzięki @szopen za dokładne wyjaśnienie. W takim razie albo umieścić w każdym pomieszczeniu po jednym urządzeniu z routerem, np. w przełączniku do świateł, albo rozwiązanie, które zaproponował @rafkan .

Ja dopiero zaczynam przechodzenie z bramek Tuya i Xiaomi na bezpośrednią… słuchałem gościa: https://youtu.be/S59UlboptaM i mówił tam o problemach w pośredniczeniu przekazywania sygnału niektórych urządzeń z rodziny Xiaomi/Aquara a widzę, że na screenie masz takowy czujnik. Jeśli tak zapewne pomogło by jak byś użył w pobliżu tego czujnika gniazdka Xiaomi. Mówił pozytywnie o urządzeniach IKEA, które również dobrze sobie radzą ale nie wiem czy dadzą radę z Xiaomowymi urządzeniami.
Mówił również o tym, żeby zacząć parować urządzenie na miejscu docelowym aby od razu podłączyło się do źródła o silniejszym sygnale ponieważ niektóre urządzenia nie potrafią się potem przepiąć na inne.

Obejrzyj może znajdziesz tam odpowiedź na swój problem.

Ja kupiłem skyconnect a widzę, że chciałbym używać zigbe2mqtt ponieważ wolę bardziej uniwersalne zastsowania i możliwe, że będę musiał pisać sterowniki pod nieobsługiwane czujniki (mam np.: tuya sprinkler czy jakieś do sterowania roletami).
Ciekawi mnie czy ten w skyconnect w trybie mqtt2zigbee działa tak samo jak w sonofie? Tam chyba koleś mówił, że jak się Home Assistant restartuje to sonof cały czas rejestruje zmiany stanów urządzeń czyli pewnie kolejka mqtt jest chyba zaimplemetnowana na gwizdku?
Jakie urządzenie polecacie (zigbee2mqtt)?
Chyba obejrzę ten filmik jeszcze raz :slight_smile:

@Cebik
Mylisz się w wielu miejscach, więc może nie doradzaj innym.

Wprawdzie nie oglądałem, ale twoje streszczenie jest z grubsza OK (w kwestiach praktycznych), to chyba jednak nie masz zielonego pojęcia jak to wszystko działa…


Może w skrócie - jeśli firmware routera działa niepoprawnie, to ten router nie działa jak należy (więc dodawania sprzętu Xiaomi zasilanego sieciowo, jeśli to on nie działa prawidłowo nie poprawi sytuacji), nie ma znaczenia jaki jest producent, ważne jest czy firmware ma napisane poprawnie.

Zigbee jako standard miał być hardware agnostic, czyli zapewniać kompatybilność wypustów dowolnego producenta w warstwie sprzętowej (i to się prawie udało), więc można używać routerów dowolnego producenta o ile tylko działają poprawnie.

W warstwie sprzętowej urządzenia nie rozróżniają producenta, więc jest im obojętne jakiego producenta masz routery w sieci kratowej byleby działały prawidłowo.

Sytuację tu jednak komplikuje fakt, że standard miał być zgodny wstecz i wprzód, ale to się nie do końca udało. O ile takie firmy jak Ikea czy Philips/Signify zadbały o aktualizacje firmware każdego swojego starego sprzętu (nazwijmy go umownie Zigbee 1.x), to wielu innych producentów olało ten temat (lub dostarczyło aktualizacje tylko do części swoich wypustów) lub wręcz olewa bieżące poprawki błędów.


Kolejna kwestia to zwalone firmware w urządzeniach końcowych (tych które nie chcą się przepiąć do innego routera, choć powinny), dlatego budowa sieci od koordynatora i routerów od środka w kierunku na zewnątrz, a na końcu dołączanie urządzeń końcowych jest prawidłowym obejściem problemu (skoro producent nie zapewnia im aktualizacji firmware…).


Z punktu widzenia dongla nie ma czegoś takiego jak tryb MQTT czy jakiś inny, on zawsze pracuje tak samo… (o ile mówimy o jego firmware realizującym funkcję koordynatora Zigbee).

Koordynator (NCP) jest TYLKO “modemem” Zigbee natomiast funkcje bramki realizuje zawsze zupełnie inny procesor wraz ze swoim oprogramowaniem.

W przypadku bramek zamkniętych systemów jest to jakiś MCU wraz z jakimś oprogramowaniem i często automatyką wypchniętą poza taką cieniutką konstrukcję do chmury.
W przypadku restartu takiej bramki zdarzenia w trakcie restartu nie zostaną zarejestrowane, ani lokalnie, ani w chmurze.

W przypadku Integracji ZHA tym oprogramowaniem jest zigpy będący podprocesorem HA - dlatego restart HA, który odbywa się w niezerowym czasie ma wpływ - zdarzenia które się odbędą w trakcie restartu HA nie zostaną zarejestrowane. Na dostatecznie szybkim sprzęcie restart HA trwa najwyżej kilka sekund, na starej malinie swego czasu restart HA trwał koło 2 minut więc taka przerwa mogła mieć kluczowe znaczenie (szczególnie, że HA restartujemy stosunkowo często).

W przypadku integracji za pomocą serwera Zigbee2MQTT przy restarcie HA nie restartujesz ani kontenera z brokerem, ani serwera Z2M, dlatego restart samego kontenera HA nie ma znaczenia, bo to broker MQTT przechowuje te zdarzenia do czasu gdy HA będący klientem MQTT połączy się z nim ponownie. Ale jeśli zrestartujesz całą maszynę zamykając serwery Z2M i broker, to przez czas, gdy są one wyłączone zdarzenia nie będą rejestrowane. Zasadniczo poza aktualizacjami OSa nie restartujemy maszyny.
Podobne przerwy wystąpią tez podczas aktualizacji dowolnego z uczestniczących w tworzeniu bramki serwerów czyli Z2M oraz brokera MQTT (ale aktualizuje się je stosunkowo rzadko - Z2m z raz 2x na m-c a broker to już ekstremalnie rzadko).

Pisałeś, że masz Skyconnect, uważam że jest świetny do pracy z Z2M (o ile masz w nim firmware NCP) oczywiście o ile nie zintegrujesz go z ZHA, bo dany koordynator może współpracować tylko z jednym serwerem…

Witajcie, pozwoliłem sobie na odkopanie tematu bo szkoda zakładać nowy wątek.
Zastanawiam się czy w przypadku awarii gwizdka podmiana na drugi pozwoli na dalszą prace całej sieci czy też trzeba dodawać wszystko od nowa w z2mqtt ?
Czasem można kupić dongla w dobrej cenie i skoro mamy cyforwy backup to jest jeden z tych elementów bez którego wszystko leży. Zadziała ?

Wszystko zadziała, ale jest jeden warunek - w nowym musisz zmienić jego IEEE-adres (taki odpowiednik MAC-adresu).
Oczywiście musisz go znać, by zaprogramować identyczny w momencie gdy nie będziesz mógł już tego sprawdzić w starym donglu.
W przypadku każdego dongla koordynatora Zigbee można to zrobić tylko raz (jest to zapis w OTP i jest to funkcja właśnie dedykowana na okoliczność konieczności wymiany w przypadku awarii lub na migrację sieci, z tego powodu odradzam kupowanie z drugiej ręki, bo ktoś mógł nieświadomie lub świadomie skorzystać już z tej jednorazowej funkcji).

Jest jeszcze drugi warunek - nowy dongle musi być na tym samym lub kompatybilnym chipsecie (backupy sieci Zigbee = NVRAM dongla jak dotąd nie są przenośne między dowolnym sprzętem). Jeśli nowy będzie identyczny to OK.

Dla Zbdongle-P można użyć tego narzędzia (lub oficjalnego flashera TI)

Dzięki. To tym bardziej mnie zmotywowałeś do kupna drugiego i zrobienia kopii teraz jak wszystko jest ok a nie jak padnie.
Podpowiesz jak się zabrać do sprawdzenia wersji / numeru iee? Jeśli dobrze pamiętam mam już nowszy dongle (starszy już był wyprzedany) - pamiętam ustawianie w konfigu ember :slight_smile:

No to NIE masz dongla o którym jest wątek, więc zapomnij o tych narzędziach z posta powyżej. W takim razie trafiłeś z doklejaniem się do tego wątku jak kulą w płot.

Adres IEEE jest tu (to ten ciąg za 0x, czyli mój ma adres 00124b00228122a9, można go zapisać też jako 00:12:4B:00:22:81:22:A9 gdyby dany flasher wymagał formatu z dwukropkami)

ale nie podpowiem jak go ustawić w nowym koordynatorze (nie mam żadnego na MCU SiLabs w domu)

gdybyś miał MCU Texas Instruments, to byłoby banalnie łatwe (obrazek wrzuciłem, bo dokumentacja tego narzędzia nie pokazuje wszystkich dostępnych opcji, ale on jest TYLKO dla koordynatorów na bazie TI)

W ZHA by wystarczyło zrobić transfer sieci Zigbee z menu HA na nowy identyczny koordynator i wtedy z automatu jest przeflaszowany na niego adres starego i wtedy można przechowywać jako zapasowy ten używany obecnie, ale Z2M nie ma takiego kreatora migracji.

OFF TOPIC
Dla koordynatora SiliconLabs
Eksperymentalnie możesz przeflaszować firmware na nowym na identyczną wersję jak masz na starym i sprawdzić czy flaszer, który używasz na co dzień ma opcje ustawiania adresu ieee.
Ewentualnie jako opcjonalny krok eksperymentu możesz przywrócić sieć Zigbee na nowy i zobaczyć czy w jego wypadku ustawi to adres ieee starego koordynatora (jeśli tak = sieć będzie działać normalnie, to stary koordynator schowasz jako zapasowy)


UWAGA mając już dwa koordynatory o tych samych adreseach nie wolno włączać nigdy obu naraz nawet do zasilania jeśli mogą się znajdować w zasięgu tej samej sieci Zigbee.

Co masz na myśli pisząc przywrócić ?

No jak to co? przywrócić sieć z backupu sieci Zigbee.
Czyli kopię NVRAM ze starego dongla na nowego.

Zasadniczo migracja się dzieje tak

  • tworzysz backup sieci (de facto to backup NVRAM) na starym donglu
  • gdy się uda (jest stosowny komunikat) zatrzymujesz Z2M
  • odłączasz starego dongla
  • podłączasz nowego dongla z uprzednio ustawionym IEEE-adresem na IEEE-adres starego dongla oraz z wyczyszczonym NVRAM
  • sprawdzasz ścieżkę do nowego dongla i ją podmieniasz w konfiguracjach Dodatku (jeśli masz instalację w formie Dodatku) oraz w samym Z2M (w jego katalogu konfiguracyjnym w jego configuration.yaml); lub w konfiguracji kontenera Z2M (jeśli to NIE jest Dodatek)
  • uruchamiasz Z2M, backup NVRAM powinien zostać automatycznie przywrócony, a sieć prawidłowo uruchomiona

Być może aktualnie procedura jest nieco inna (nie widzę istotnych różnic), ale aktualne informacje są zawsze w Dokumentacji (migracja jest nieco skromnie opisana w FAQ)


Biorąc pod uwagę to

niestety IEEE-adres nie jest przywracany z backupu, więc musisz zrobić to jakąś metodą pasującą do twojego dongla (nie jest tu opisana, ale flasher kompatybilny z jego chipsetem MUSI mieć opcję ustawienia secondary IEEE-adress, jakkolwiek by się to nie nazywało, bo tego po prostu standard Zigbee wymaga).


UWAGA dalsza część posta nie ma nic wspólnego z tematem tego wątku (to OFF TOPIC)

Tu masz flasher od NabuCasa, on to potrafi zrobić (ustawić IEEE-adres) z doglami SiliconLabs

Bez sprzętu nie mogę odpalić webowej wersji jego forka, więc musisz sam sprawdzić czy jest też łatwa droga

Dzięki- kupię i potestuję