Zigbee2MQTT - device is NOT supported

Od producenta Conbee - firmy dresden elektronik, dostaliśmy do testów takie dwa urządzenia:

Pomijające cenę, to bardzo ciekawy sprzęt z multum opcji do wykorzystania w automatyzacjach.

Niestety jak to bywa z nowymi produktami, nie ma ich na liście wspieranych przez Zigbee2MQTT, więc na tym przykładzie pokażemy jak dodać ich obsługę w AIS.
Aby cały proces był zrozumiały na początek odpalmy logi w konsoli - Narzędzia deweloperskie / Konsola - najlepiej w osobnym oknie - poleceniem:

pm2 logs

Praktycznie każde urządzenie zigbee, nawet to nie obsługiwane, powinno dać się sparować z Zigbee2MQTT. Przechodzimy do Konfiguracja / Konfiguracja Urządzeń Zigbee i uruchamiamy tryb permit_join przyciskiem Zezwól na dołączanie


w logach pojawi nam się wpis:

4|zigbee   | Zigbee2MQTT:debug 2021-09-16 15:50:05: Received MQTT message on 'zigbee2mqtt/bridge/request/permit_join' with data '{"device":null,"time":254,"transaction":"8t4wq-2","value":true}'
4|zigbee   | Zigbee2MQTT:info  2021-09-16 15:50:05: Zigbee: allowing new devices to join.
4|zigbee   | Zigbee2MQTT:info  2021-09-16 15:50:06: MQTT publish: topic 'zigbee2mqtt/bridge/response/permit_join', payload '{"data":{"time":254,"value":true},"status":"ok","transaction":"8t4wq-2"}'

Teraz pozostaje tylko wprowadzić urządzenie w tryb parowania zgodnie z instrukcją producenta (zwykle poprzez kilkusekundowe przytrzymanie przycisku)
a w logach pojawi się magiczne “NOT supported”:

4|zigbee   | Zigbee2MQTT:info  2021-09-16 16:05:03: Successfully interviewed '0x421842a21a2d5aee', device has successfully been paired
4|zigbee   | Zigbee2MQTT:warn  2021-09-16 16:05:03: Device '0x421842a21a2d5aee' with Zigbee model 'Lighting Switch' and manufacturer name 'dresden elektronik' is NOT supported, please follow https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html

Urządzenie pojawi się również na liście jako niewspierane:

Dodajemy nowe urządzenie.
Do konfiguracji Zigbee2MQTT dodajemy nowy plik z definicją nowego urządzenia poleceniem:

nano zigbee2mqtt/data/BN-600087.js

a w nim wklejamy początkową konfigurację:

const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const extend = require('zigbee-herdsman-converters/lib/extend');
const e = exposes.presets;
const ea = exposes.access;

const definition = {
    zigbeeModel: ['Lighting Switch'], // The model ID from: Device with modelID 'lumi.sens' is not supported.
    model: 'BN-600087', // Vendor model number, look on the device for a model number
    vendor: 'dresden elektronik', // Vendor of the device (only used for documentation and startup logging)
    description: 'Dresden Elektronik Lighting Switch - 2 buttons', // Description of the device, copy from vendor site. (only used for documentation and startup logging)
    fromZigbee: [], // We will add this later
    toZigbee: [], // Should be empty, unless device can be controlled (e.g. lights, switches).
    exposes: [], // Defines what this device exposes, u>
};

module.exports = definition;

Zapisujemy i wychodzimy (Ctrl-s Ctrl-x).
Następnie edytujemy configuration.yaml

nano zigbee2mqtt/data/configuration.yaml

zmieniamy poziom logowania na debug

advanced:
  log_level: debug

oraz dodajemy odnośnik do nowego pliku:

external_converters:
  - BN-600087.js

Na koniec restartujemy usługę zigbee:

pm2 restart zigbee

i obserwujemy logi - zamiast NOT supported powinniśmy mieć coś takiego:

4|zigbee   | Zigbee2MQTT:info  2021-09-16 16:36:42: 0x00212effff06b652 (0x00212effff06b652): BN-600087 - dresden elektronik dresden elektronik Lighting Switch - 2 buttons (EndDevice)

a po wciśnięciu dowolnego przycisku:

4|zigbee   | Zigbee2MQTT:debug 2021-09-15 14:34:47: Received Zigbee message from '0x00212effff06b652', type 'commandOn', cluster 'genOnOff', data '{}' from endpoint 1 with groupID 17630
4|zigbee   | Zigbee2MQTT:debug 2021-09-15 14:34:47: No converter available for 'BN-600087' with cluster 'genOnOff' and type 'commandOn' and data '{}'

type ‘commandOn’, cluster ‘genOnOff’ to przykład komend, które należy odpowiednio zmapować - będą różne dla kolejnych przycisków, akcji dłuższego przytrzymania, itp. Trzeba je wszystkie przeklinać i odpowiednio wpisać do konfiguracji.
W praktyce większość konwerterów już istnieje, więc najlepiej wykorzystać je jako przykłady w naszej konfiguracji - szukamy podobnego urządzenia na liście zgodnych z zigbee2MQTT i jego definicji w jednym z plików (podział wg producentów):
https://github.com/Koenkk/zigbee-herdsman-converters/tree/master/devices

Dla naszego Lighting Switch ostateczna definicja w pliku BN-600087.js wygląda tak:

const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const extend = require('zigbee-herdsman-converters/lib/extend');
const e = exposes.presets;
const ea = exposes.access;

const definition = {
    zigbeeModel: ['Lighting Switch'], 
    model: 'BN-600087', 
    vendor: 'dresden elektronik', 
    description: 'dresden elektronik Lighting Switch - 2 buttons', 
    fromZigbee: [fz.battery, fz.command_recall, fz.command_on, fz.command_off, fz.command_move, fz.command_stop], 
    toZigbee: [tz.on_off], 
    exposes: [e.battery(), e.action(['recall_1', 'recall_2', 'recall_3', 'recall_4', 'on', 'off', 'brightness_move_down', 'brightness_move_up', 'brightness_stop'])], 
};

module.exports = definition;

Od teraz w AIS mamy odpowiednie encje do wykorzystania w automatyzacjach:

Pozostało potestować i można commit’ować do Zigbee2MQTT, aby pomoc tym, którzy nie potrafią :wink:

6 polubień

Cześć, testuję powyższe rozwiązanie natomiast bez rezultatów. Niestety po wprowadzeniu takich zmian Zigbee nie odpowiada.

Urządzeniem, które chcę dodać jest głowica termostatyczna GTZ06 (oznaczenie sprzedawcy, na pudełku również model TRV601, natomiast zigbee przeczytało jako TS0601)

Bardzo proszę o pomoc, ponieważ mam zakupione kilka głowic do domu, a w przypadku kiedy nie uda mi się ich połączyć muszę oddać i szukać coś innego.

Pozdrawiam
Mateusz



Powyższy opis dotyczy urządzeń nie rozpoznawanych przez z2m. Twoja głowica jak pisałeś jest widoczna tylko z inną nazwą. Urządzenia produkcji Tuja bardzo często występują pod różnymi kodami, ale zasada ich działania powinna być identyczna. Jeśli jest rozpoznana przez mechanizm Discovery to powinieneś mieć też jej encje w HA. Jeśli brakuje encji to spróbuj ją usunąć i sparować ponownie (w ostateczności na czystej konfiguracji). Odpal w konsoli polecenie
pm2 logs zigbee
i w logach na pewno coś znajdziesz.


Tak się ma moja głowica. Połączyłem ją kilka razy i niestety nie działa. Próbowałem również podłączyć kolejną i dalej taki sam przypadek :frowning: (wszystkich mam 11 dlatego muszę to ogarnąć, bo za chwilę kończy mi się czas zwrotu) :frowning:

Jaką masz wersję Zigbee2MQTT?

Ma stabilna 1.21.1, ale to bez znaczenia, bo nawet w 1.22 jeszcze tej głowicy nie ma:

Powinno się dać ja dodać, ale zapewne potrwa to jeszcze kilka tygodni zanim ktoś to wrzuci.

image

Czyli podsumowując, póki co nie będę w stanie sam tego dodać i muszę te oddać i szukać czegoś innego?

Jeżeli nie jesteś w stanie zrozumieć powyższego przykładu dodawania nowego urządzenia to niestety nic tu nie poradzimy. Aby odpowiednio zamalować urządzenie trzeba dokładnie obserwować logi, ale uprzedzam, że głowice należą do tych trudniejszych tematów i lepiej zamówić takie które już są obsługiwane.

Pokaż co masz w modelu? Kupiłem ostatnio w houseiq z wyglądu taka samą głowicę i u mnie zigbe2mqtt 1.21.1 ją rozpoznaje. Co prawda mam wrażenie że nie do końca prawidłowo współpracuje ponieważ local_temperature cały czas jest taka sama i wg mnie jest to wartość którą głowica miała podczas parowania. Zastanawiam się czy przypadkiem nie trzeba zaktualizować firmware na tej głowicy ale nie mam żadnej bramki Tuya.

Dokładnie w tym samym sklepie została kupiona jako GTZ06 z polecenia sprzedawcy.

Zasugerowałem się zdjęciem wstawionym przez @Sebastian ale chyba mamy jednak trochę inne głowice.

obraz

Moja to ta po prawej opisana jako GTZ08.

No ja właśnie też ją rozważałem, ale pytałem sprzedającego i zaproponował GTZ06. Ale chyba dojdzie do tego, że je wymienię na GTZ08. Posiadam również GTZ05, ale to już inna bajka (droższa, fajne wykonanie), aczkolwiek też mam z nią problem dodałem ją raz do zigbee wszystko chodziło ok po czym w celu sprawdzenia czegoś tam ją usunąłem z Zigbee i od tego czasu nie wchodzi ona w tryb parowania. Może jakiś pomysł?

@Sebastian czy jesteś w stanie pomóc zdalnie z tymi głowicami za opłatą?

Niestety nie ma takiej możliwości - nie prowadzimy wsparcia dla urządzeń kupionych od innych dostawców - fizycznie nie ma takiej możliwości abyśmy posiadali je wszystkie u siebie, testowali i serwisowali. Ten projekt ma duży potencjał integrowania wielu urządzeń, ale wszystko jest w rękach użytkowników i od nich zależy.

Nie wymieniaj na GTZ08. Jak pisałem wcześniej ta głowica mimo tego że dodaje się prawidłowo do z2mqtt to nie raportuje prawidłowo temperatury. Może w następnych wersjach z2mqtt będzie to poprawione ale ja bym nie ryzykował w ciemno zakupu 11 głowic z ułomnym działaniem. Sam się waham czy swojej nie zwrócić. Plusem tej głowicy jest pokrętło z przyciskiem. Minusem że nie raportuje położenia zaworu. Tak więc teraz to w zasadzie nie wiem czy ona coś reguluje czy też nie. Właśnie słyszałem że najlepsza z tych głowic to GTZ05 tylko jest teraz problem z dostępnością tych głowic a dodatkowo zaskoczyłeś mnie problemami z parowaniem. Przywracałeś ją do ustawień fabrycznych?

Mam jeszcze jedną głowicę TS0601 i ona w sumie działa całkiem nieźle ale wpiernicza baterię jak głupia bo żeby trzymała temperaturę ją muszę korygować automatyzacją z zewnętrznego czujnika.

Realnie rzecz biorąc to chyba nadal nie ma dobrej głowicy. Każda dostępna ma jakieś ułomności.

No ta GTZ05 za pierwszym razem bez problemowo, natomiast kolejna próba to istna katorga bez efektów. Kilkukrotny reset do ustawień fabrycznych, wyciagnięcie baterii na kilka godzin. Dzisiaj postaram się te GTZ06 sparować z tuya i wtedy przez aplikację do AIS podciągnąć, ale zobaczę czy mi wyjdzie, jak nie to chyba zdecyduję się na zwrócenie wszystkich i wezmę po prostu GTZ05

Wnioskuję że masz bramkę Tuya. Zobacz czy GTZ 05, GTZ06 nie ma jakiejś aktualizacji. Pamiętam że Ta stara TS0601 na początku też mi współpracowała fatalnie. Po jakimś czasie pojawiła się w z2mqtt aktualizacja i po nie w końcu dało się jej używać. Muszę w końcu kupić jakieś głowice. Ale totalnie nie wiem co wybrać. Ceny Danfoss ally poszybowały. W każdej chińskiej jest jakiś problem. TS0601 nie chcę brać bo wykonanie słabe i obsługa z głowicy siermiężna i jeszcze nusiałbym kupić akumulatorki 1,5V bo baterie to starczają na miesiąc.

Rozmawiałem ze sprzedawcą głowicy. Stwierdził on, że żeby działała głowica należy zaktualizować zigbee do 1.22. W jaki sposób można to zrobić jeżeli poprzez konfiguracja > ustawienia bramki AIS dom > oprogramowanie bramki > Sprawdź dostępność aktualizacji, nie wyszukuje mi nowszej wersji.?

Myślę że możesz przejść na kanał BETA - dotychczas ten kanał był Produkcyjny, ale od 3 miesięcy PROD ma zmniejszoną częstotliwość wydań. Ewentualnie:

  1. poczekaj do stycznia
  2. Podnieś tylko wersję zigbee2mqtt

Super, dzięki za pomoc. Przeszedłem na wersję BETA i spróbuję zobaczę co z tego wyjdzie.