Найти в Дзене
HASSStas: Рецепты HomeAssistant

Датчики движения Tuya: Wi-Fi и Zigbee

В статье про климатические сенсоры от Xiaomi я упоминал, что те сенсоры были одним из двух случаев, когда я сильно прокололся с покупкой. С теми сенсорами всё в итоге обошлось, они исправно работают и я заказал ещё. Второй вещью, с которой не повезло, оказались нонеймовые датчики движения, брендированные Tuya. Для тех, кто не знает, Tuya - это семейство разной техники для умного дома, собранное различными вендорами под одной из модификаций протокола обмена данными. Все эти устройства управляются из-под фирменных приложений Tuya/SmartHome, которые, по сути, представляют из себя облако для всех этих разношерстных компаний. Датчики Tuya работают как по Zigbee, так и по Wi-Fi. Именно датчики движения Tuya и стали моей второй головной болью, не решённой до сих пор. Сейчас точно не вспомню, почему я заказал сначала версию Wi-Fi - может быть, потому что у меня ещё не было стика Conbee, а может потому что тогда не было модификаций Zigbee или они были слишком дорогие, но факт остаётся фактом -
Оглавление

В статье про климатические сенсоры от Xiaomi я упоминал, что те сенсоры были одним из двух случаев, когда я сильно прокололся с покупкой. С теми сенсорами всё в итоге обошлось, они исправно работают и я заказал ещё.

Второй вещью, с которой не повезло, оказались нонеймовые датчики движения, брендированные Tuya.

Для тех, кто не знает, Tuya - это семейство разной техники для умного дома, собранное различными вендорами под одной из модификаций протокола обмена данными. Все эти устройства управляются из-под фирменных приложений Tuya/SmartHome, которые, по сути, представляют из себя облако для всех этих разношерстных компаний. Датчики Tuya работают как по Zigbee, так и по Wi-Fi.

Именно датчики движения Tuya и стали моей второй головной болью, не решённой до сих пор.

Картинка со страницы товара на AliExpress.
Картинка со страницы товара на AliExpress.

Сейчас точно не вспомню, почему я заказал сначала версию Wi-Fi - может быть, потому что у меня ещё не было стика Conbee, а может потому что тогда не было модификаций Zigbee или они были слишком дорогие, но факт остаётся фактом - я заказал два датчика движения Tuya Wi-Fi.

И уже в процессе настройки оказалось, что интеграция tuya в HomeAssistant не умеет работать именно с датчиками движения. Вроде бы разработка идёт, но теме, в которой мусолится разработка и поддержка таких датчиков, уже года два. То есть на скорое решение, как было с климатическими сенсорами, рассчитывать не приходится.

Поэтому пришлось идти другим путём.

Интеграция Wi-Fi PIR через пинг

В той же теме, где обсуждаются возможности подключения датчиков движения на базе учётной записи tuya, было предложено обходное решение - через ping. Такой способ мне уже был знаком, через пинг я определяю присутствие семьи дома, так что я уже знал, как этим пользоваться и какие грабли предстоят.

В первую очередь надо разделить трекеры для устройств и трекеры для датчиков движения, потому что датчики движения надо сканировать каждую секунду, иначе будет слишком долгая задержка между сработкой датчика и реакцией. Сканировать все устройства раз в секунду - неоправданно нагружать сеть. Роутер у меня был на один диапазон 2.4ГГц, и большое количество активных устройств просто ухудшало раздачу интернета.

В итоге датчики движения были сделаны не через device_tracker, а через более подходящий для этого binary_sensor:

- platform: ping
  name: ping_tuya_pir_hall
  host: !secret tuya_pir_hall
  count: 1
  scan_interval: 1

Здесь создаётся бинарный сенсор (вкл/выкл), который раз в секунду пингует устройство и при первом же успешном пинге меняет своё состояние. Автоматизация на включение света при движении:

- alias: Свет в прихожей при движении
  trigger:
  - entity_id: binary_sensor.
ping_tuya_pir_hall
    platform: state
    to: 'on'
  condition:
  - condition: template
    value_template: '{{ states.sun.sun.attributes.elevation < 15 }}'
  action:
  - service: light.turn_on
    entity_id: light.sonoff_1000abc123

Здесь кроме сработки самого датчика учитывается высота солнца над горизонтом. Потому что свет нужно включать, как правило, ещё до фактического захода солнца.

И автоматизация выключения, если нет движения больше трёх минут:

- alias: Свет в прихожей выкл
  trigger:
  - entity_id: binary_sensor.
ping_tuya_pir_hall
    platform: state
    to: 'off'
    for: 00:03:00
  action:
  - service: light.turn_off
    entity_id: light.
sonoff_1000abc123

Несмотря на то, что такое решение работает довольно стабильно, у него есть один существенный минус - очень большая задержка (несколько секунд) между движением и включением света. Есть ещё нюанс, который нельзя назвать недостатком, но нужно иметь его ввиду - у Wi-Fi-версии датчика есть переключатель таймаута сработки - 2 или 4 минуты. То есть если датчик движения сработал, то потом 2/4 минуты он не будет обращать внимания ни на какое движение. У меня переключатель установлен на 2 минуты и сделан таймаут в 3 минуты для выключения. Получается, у датчика есть одна минута в запасе, чтобы уловить какое-то движение, чтобы свет не выключился. Обычно этого хватает.

Интеграция Zigbee PIR

Задержка сработки в несколько секунд - это очень много. Довольно часто получается так, что зашёл в комнату чтобы что-нибудь взять, вышел и включился свет. Нам, привыкшим, что свет включается мгновенно, переучиться включать свет вручную очень сложно, поэтому следующим шагом стала покупка точно такого же датчика, но уже со встроенным Zigbee.

И тут тоже оказалось всё не слава богу. Срабатывает датчик - да, мгновенно. Но, как оказалось, после первой сработки все последующие отрабатывают как-то хаотично, может пройти несколько секунд, а может и несколько минут. Добиться стабильной работы от датчика не удалось до сих пор, пришлось увеличить таймаут на выключение до 5 минут и даже это не всегда помогает. Но обо всём по порядку.

Датчик. Выглядит датчик точно так же, как его брат-близнец с Wi-Fi, даже питается так же от трёх ААА. Единственное отличие - переключатель. У Wi-Fi он переключает таймаут между 2 и 4 минутами, а в Zigbee он просто включает или выключает устройство.

Интегрируется датчик через свисток Zigbee. Я в своё время не стал экономить и взял Conbee II, об этом я тоже обязательно расскажу. Подключение к свистку простейшее и одинаковое для всех устройств: переводим с помощью длинного нажатия кнопки Reset устройство в режим сопряжения и запускаем поиск устройств в интерфейсе PhosconApp, датчик находится и... пропадает. В веб-интерфейсе этого датчика не видно. Я добавлял его раз пять, но оно так и не появилось. Однако само устройство в интеграции HomeAssistant появляется:

-2

Здесь можно поправить все параметры объекта (иконку, название) и начинать использовать его в своих автоматизациях. Тип устройства остался такой же binary_sensor, поэтому при переходе с Wi-Fi на Zigbee понадобилось только поменять название самого сенсора, остальное всё осталось как в примерах выше.

Работает датчик, как я уже сказал, не ах, поэтому я раздумываю над вариантами: заказать другой Zigbee-датчик от другого производителя, предварительно убедившись, что он полностью поддерживается (это тысяча-полторы расходов на штуку); начать баловаться с кастомными прошивками вроде Tasmota/ESPHome и пробрасывать через MQTT (это пара недель, ориентировочно, танцев с бубнами); или же забить и пользоваться пока тем, что есть.

Пока что я остановился на третьем варианте, но как только станет скучновато - я думаю, что я займусь перепрошивками. Тогда мой Дзен станет менее нубским и "4dummies", но это будет полезная информация для всех.

А пока что, как обычно, шер, лайк, подписки, вот это всё.