Решил немного поэкспериментировать с новыми Zigbee устройствами Tuya на стике 2538. Первым приплыло мне с aliexpress устройство Tuya TS0044. Выглядит на вид интересно. 4 кнопки весьма приятны в “употреблении”, батарейка CR2430 🙂 Цена не комфортная. 🙁 Ну да ладно.
Надо теперь подружить со стиком. Но не тут то было … Официально в zigbee2mqtt поддержка имеется – а вот из коробки не заработало.
Zigbee стик упорно его не видел. В debug логе тоже ничего не было. Вообщем наехал я на продавца и диспут открыл :), написал автору zigbee2mqtt “чо за дела братан ?”, глаза видят, а руки подводят.
Для начала ищем файл конфигурации zigbee2mqtt с именем configuration.yaml (у меня он оказался по пути /opt/zigbee2mqtt/data ) в нем содержится список всех устройств Zigbee, которых нашел стик и добавляем в конец файла строку вида :
zigbee_shepherd_devices: true
рестартим zigbee сервис :
root@hassbian:/opt/zigbee2mqtt/data# systemctl restart zigbee2mqtt.service
включаем спаривание для zigbee устройств (join_pair) в home assistant и смотрим логи zigbee2mqtt (должно быть что то подобное)
Nov 14 21:04:51 hassbian npm[17791]: Zigbee2MQTT:debug 2020-11-14 21:04:51: Device '0xbc33acfffe5e713f' announced itself Nov 14 21:04:51 hassbian npm[17791]: Zigbee2MQTT:info 2020-11-14 21:04:51: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"announce","meta":{"friendly_name":"0xbc33acfffe5e713f"},"type":"device_announced"}' Nov 14 21:04:53 hassbian npm[17791]: Zigbee2MQTT:debug 2020-11-14 21:04:53: Received Zigbee message from '0x00158d0001a41609', type 'read', cluster 'genTime', data '["time"]' from endpoint 1 with groupID 0 Nov 14 21:04:54 hassbian npm[17791]: Zigbee2MQTT:debug 2020-11-14 21:04:54: Received Zigbee message from '0xbc33acfffe5e713f', type 'readResponse', cluster 'genBasic', data '{"modelId":"TS0044"}' from endpoint 1 with groupID 0 Nov 14 21:04:54 hassbian npm[17791]: Zigbee2MQTT:debug 2020-11-14 21:04:54: No converter available for 'TS0044' with cluster 'genBasic' and type 'readResponse' and data '{"modelId":"TS0044"}' Nov 14 21:04:54 hassbian npm[17791]: Zigbee2MQTT:debug 2020-11-14 21:04:54: Received Zigbee message from '0xbc33acfffe5e713f', type 'readResponse', cluster 'genBasic', data '{"manufacturerName":"_TZ3000_vp6clf9d"}' from endpoint 1 with groupID 0 Nov 14 21:04:54 hassbian npm[17791]: Zigbee2MQTT:debug 2020-11-14 21:04:54: No converter available for 'TS0044' with cluster 'genBasic' and type 'readResponse' and data '{"manufacturerName":"_TZ3000_vp6clf9d"}' Nov 14 21:04:55 hassbian npm[17791]: Zigbee2MQTT:debug 2020-11-14 21:04:55: Received Zigbee message from '0xbc33acfffe5e713f', type 'readResponse', cluster 'genBasic', data '{"powerSource":3}' from endpoint 1 with groupID 0 Nov 14 21:04:55 hassbian npm[17791]: Zigbee2MQTT:debug 2020-11-14 21:04:55: No converter available for 'TS0044' with cluster 'genBasic' and type 'readResponse' and data '{"powerSource":3}' Nov 14 21:04:55 hassbian npm[17791]: Zigbee2MQTT:debug 2020-11-14 21:04:55: Received Zigbee message from '0xbc33acfffe5e713f', type 'readResponse', cluster 'genBasic', data '{"zclVersion":3}' from endpoint 1 with groupID 0 Nov 14 21:04:55 hassbian npm[17791]: Zigbee2MQTT:debug 2020-11-14 21:04:55: No converter available for 'TS0044' with cluster 'genBasic' and type 'readResponse' and data '{"zclVersion":3}' Nov 14 21:04:56 hassbian npm[17791]: Zigbee2MQTT:debug 2020-11-14 21:04:56: Received Zigbee message from '0xbc33acfffe5e713f', type 'attributeReport', cluster 'genBasic', data '{"65506":28,"appVersion":255}' from endpoint 1 with groupID 0 Nov 14 21:04:56 hassbian npm[17791]: Zigbee2MQTT:debug 2020-11-14 21:04:56: No converter available for 'TS0044' with cluster 'genBasic' and type 'attributeReport' and data '{"65506":28,"appVersion":255}' Nov 14 21:04:56 hassbian npm[17791]: Zigbee2MQTT:debug 2020-11-14 21:04:56: Received Zigbee message from '0xbc33acfffe5e713f', type 'readResponse', cluster 'genBasic', data '{"appVersion":66}' from endpoint 1 with groupID 0 Nov 14 21:04:56 hassbian npm[17791]: Zigbee2MQTT:debug 2020-11-14 21:04:56: No converter available for 'TS0044' with cluster 'genBasic' and type 'readResponse' and data '{"appVersion":66}' Nov 14 21:04:56 hassbian npm[17791]: Zigbee2MQTT:debug 2020-11-14 21:04:56: Received Zigbee message from '0xbc33acfffe5e713f', type 'attributeReport', cluster 'genBasic', data '{"65506":28,"appVersion":66}' from endpoint 1 with groupID 0 Nov 14 21:04:56 hassbian npm[17791]: Zigbee2MQTT:debug 2020-11-14 21:04:56: No converter available for 'TS0044' with cluster 'genBasic' and type 'attributeReport' and data '{"65506":28,"appVersion":66}' Nov 14 21:04:56 hassbian npm[17791]: Zigbee2MQTT:debug 2020-11-14 21:04:56: Received Zigbee message from '0xbc33acfffe5e713f', type 'readResponse', cluster 'genBasic', data '{"stackVersion":0}' from endpoint 1 with groupID 0 Nov 14 21:04:56 hassbian npm[17791]: Zigbee2MQTT:debug 2020-11-14 21:04:56: No converter available for 'TS0044' with cluster 'genBasic' and type 'readResponse' and data '{"stackVersion":0}'
Анонс состоялся.
MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"announce","meta":{"friendly_name":"0xbc33acfffe5e713f"},"type":"device_announced"}'
заходим в MQTT брокер на Home Assistant и получаем наши сенсоры
При нажатии на любой из клавиш видим значения что-то типа 1_Single, 2_Single и т.д. / двойным (!) 1_Double, 2_Double ….тапом или длинным 1_hold, 2_hold … (кстати жать нужно на каждой клаве ближе к индикаторам, тогда ложных срабатываний не будет). Чтобы получить hold статус жмем 5 секунд. Итого получается можно навесить 12 действий. УРАаааа! Товарищи! Нумерация такая
Теперь примеры автоматизации. Прописываем в automation.yaml автоматизацию на открытие – закрытие – остановку штор. Это самый простой пример. Одним нажатии кнопкой 1 – мы открываем и закрываем шторы (последовательная операция) и двойным нажатием на кнопку 1 мы останавливаем до нужной нам позиции шторы как при закрытии так и при открытии, ну и 3ий вариант открываем/закрываем шторы наполовину
# Выключение/Включение штор по одинарному клику 1_single - alias: Badroom curtain open-close (single_1) trigger: - platform: state entity_id: sensor.0xbc33acfffe5e713f_action to: 1_single action: - service: cover.toggle entity_id: - cover.curtain_158d0001299c3a # Остановка штор по двойному клику 1_double - alias: Badroom curtain stop (double_1) trigger: - platform: state entity_id: sensor.0xbc33acfffe5e713f_action to: 1_double action: - service: cover.stop_cover entity_id: - cover.curtain_158d0001299c3a # Раскрываем шторы на половину - alias: Badroom curtain open 50% (1_hold) trigger: - platform: state entity_id: sensor.0xbc33acfffe5e713f_action to: 1_hold action: - service: cover.set_cover_position data: entity_id: cover.curtain_158d0001299c3a position: 50
Подитожим.
Свою функцию он выполняет отлично. Все срабатывает хорошо – задержек нет. Осталось только нанести все надписи на выключатель – чтобы не запутаться во всех 8ми сценариях 🙂 Мне пришлось освободить 2 кнопки Xiaomi/Aqara и Aqara Cube и заменить одним этим выключателем. Если честно этот тупой-глючный зигби кубик Aqara / Xiaomi просто достал. Сейчас работает все с первого раза.
Его через Gayeway 3 тжно подключить будет ?