Skip to content

Dokumentacja Zigbee ​

Ta strona opisuje, jak ZiggyMeter wygląda w sieci Zigbee: punkty końcowe, klastry i atrybuty. Jak dołączyć do sieci, opisuje Konfiguracja Zigbee.

O Zigbee ​

Zigbee to energooszczędny bezprzewodowy protokół sieci kratowej dla urządzeń IoT, działający na IEEE 802.15.4 w paśmie 2,4 GHz. Wiadomości przeskakują przez routery zasilane z sieci, i właśnie dzięki temu działa w szafkach licznikowych i piwnicach, gdzie bezpośrednie łącze Wi-Fi by nie dało rady.

ZiggyMeter dołącza jako urządzenie końcowe: niczego nie przekazuje dla innych i śpi między odczytami.

Wymagania ​

  • Koordynator Zigbee — adapter USB albo hub, który tworzy sieć i nią zarządza
  • Oprogramowanie rozumiejące klastry Zigbee Cluster Library v8

Wszystkie klastry udostępniane przez ZiggyMeter są standardowe. Nie ma żadnych klastrów specyficznych dla producenta, więc większość integracji działa od razu, bez dedykowanego sterownika urządzenia.

Punkty końcowe ​

Punkt końcowy 1 — urządzenie ​

Identyfikacja urządzenia i podstawowy stan. Przełączenie przełącznika On/Off włącza lub wyłącza Wi-Fi.

Klastry wejściowe

ID klastraNazwa
0x0000Basic
0x0001Power Configuration
0x0003Identify
0x0006On/Off
0x0402Temperature Measurement

Klastry wyjściowe

ID klastraNazwa
0x0003Identify
0x0019OTA Upgrade

Punkt końcowy 2 — licznik ​

Dane licznika. Przełączenie przełącznika On/Off wyzwala odczyt licznika.

Klastry wejściowe

ID klastraNazwa
0x0006On/Off
0x0702Simple Metering
0x0B04Electrical Measurement

Brak klastrów wyjściowych.

Klaster Metering (0x0702) ​

Dwa atrybuty, oba standardowe. Nie są potrzebne żadne polecenia własne producenta.

ID atrybutuNazwa
0x0000Current Summation Delivered
0x0001Current Summation Received

Current Summation Received jest aktualizowany tylko wtedy, gdy licznik podaje tę wartość.

Klaster Electrical Measurement (0x0B04) ​

Parametry elektryczne. Klaster deklaruje pełny zestaw atrybutów poniżej, ale tylko trzy z nich — Active power (0x050B), RMS current (0x0508) i RMS voltage (0x0505) — mogą być zasilone wartością z licznika i raportowane koordynatorowi. Zobacz Dostępne cele.

To, które z nich są faktycznie aktualizowane, zależy potem od licznika: licznik jednofazowy oczywiście nigdy nie wypełni faz B i C.

Niektóre integracje Zigbee nie pokazują każdego atrybutu, nawet gdy urządzenie poprawnie go aktualizuje. Sprawdź surowe wartości klastrów we własnych narzędziach koordynatora, zanim uznasz, że urządzenie nic nie raportuje.

ID atrybutuNazwa
0x0300AC frequency
0x0304Total active power
0x0305Total reactive power
0x0306Total apparent power
0x0501Line current (phase A)
0x0502Active current (phase A)
0x0503Reactive current (phase A)
0x0505RMS voltage (phase A)
0x0508RMS current (phase A)
0x050BActive power (phase A)
0x050EReactive power (phase A)
0x050FApparent power (phase A)
0x0901Line current (phase B)
0x0902Active current (phase B)
0x0903Reactive current (phase B)
0x0905RMS voltage (phase B)
0x0908RMS current (phase B)
0x090BActive power (phase B)
0x090EReactive power (phase B)
0x090FApparent power (phase B)
0x0A01Line current (phase C)
0x0A02Active current (phase C)
0x0A03Reactive current (phase C)
0x0A05RMS voltage (phase C)
0x0A08RMS current (phase C)
0x0A0BActive power (phase C)
0x0A0EReactive power (phase C)
0x0A0FApparent power (phase C)

Jak wartości licznika stają się atrybutami ​

Licznik posługuje się kodami OBIS, a Zigbee atrybutami klastrów. ZiggyMeter utrzymuje tabelę mapowania między nimi.

Każdy wpis mapowania to kod OBIS plus ID mapowania: cztery bajty szesnastkowo, gdzie pierwsze dwa to klaster, a ostatnie dwa to atrybut.

OBISID mapowaniaKlaster / atrybutZnaczenie
1-0:1.8.0070200000x0702 / 0x0000Current summation delivered
1-0:2.8.0070200010x0702 / 0x0001Current summation received
1-0:1.7.00b04050b0x0B04 / 0x050BMoc czynna, faza A
1-0:11.7.00b0405080x0B04 / 0x0508Prąd skuteczny, faza A
1-0:12.7.00b0405050x0B04 / 0x0505Napięcie skuteczne, faza A

Zmień to, gdy Twój licznik używa kodu, którego nie obejmują ustawienia domyślne — na przykład licznika zgłaszającego napięcie pod kodem właściwym dla modelu, przez co wartość pojawia się w odczycie, ale nigdy nie dociera do koordynatora.

Zmiana mapowania ​

Robi się to w interfejsie webowym. Otwórz Licznik → Odczyt i kliknij dwukrotnie komórkę Mapowanie w wierszu, który chcesz zmienić; komórka zamienia się w listę rozwijaną dostępnych celów Zigbee. Wybierz jeden, a zapisze się natychmiast — nie ma osobnego kroku zapisu.

Komórka mapowania w trybie edycji

INFO

Zmapować można wyłącznie kody OBIS, które pojawiają się w odczycie, bo ta tabela jest odczytem. Jeśli brakuje wiersza, którego szukasz, najpierw odczytaj licznik.

Dostępne cele ​

Lista rozwijana oferuje sześć pozycji i nic więcej. Tylko tym pięciu parom klaster/atrybut można przypisać kod OBIS — pozostałe atrybuty wymienione powyżej istnieją w klastrach, ale nie są celami mapowania.

Pozycja listy rozwijanejID mapowaniaKlaster / atrybut
Nieprzypisane00000000— (wartość jest odczytywana, ale nie publikowana przez Zigbee)
Summation Delivered [kWh]070200000x0702 / 0x0000
Summation Received [kWh]070200010x0702 / 0x0001
Active Power [kW]0b04050b0x0B04 / 0x050B
Current RMS [A]0b0405080x0B04 / 0x0508
Voltage RMS [V]0b0405050x0B04 / 0x0505

WARNING

Każdy cel może być jednocześnie używany przez jeden kod OBIS. Przypisanie celu, który trzyma już inny wiersz, przenosi go: tamten wiersz zostaje automatycznie ustawiony z powrotem na Nieprzypisane. Po zmianie sprawdź tabelę, jeśli przestawiasz kilka wierszy.

Porównywany jest pełny kod OBIS wraz z taryfą (1-0:15.8.0*101). API przyjmuje dodatkowo porównanie z krótkim kodem (15.8.0).

Edycja przez API ​

/api/v1/zigbee/map czyta i zapisuje tę samą tabelę, co przydaje się przy identycznym konfigurowaniu wielu urządzeń. To alternatywa dla interfejsu webowego, a nie zwykła droga — POST zastępuje całą tabelę i nie stosuje za Ciebie zasady „jeden cel, jeden kod”.

Oprogramowanie bezprzewodowo ​

Punkt końcowy 1 niesie standardowy klaster OTA Upgrade (0x0019), więc dowolny koordynator obsługujący Zigbee OTA może zaktualizować urządzenie. Gotowe pliki indeksowe są publikowane dla Zigbee2MQTT oraz dla zigpy/ZHA: