Организация присутствия на датчике движения в Home Assistant

от автора

Допустим у вас есть

  • Home Assistant

  • установленный в нем Zigbee2MQTT

  • установленный в нем Node-RED

  • датчик движения RTCGQ01LM или RTCGQ11LM

  • желание что бы на всем этом горел свет когда кто-то находится в помещении

Конечно можно купить TS0601, он прикольный, может работать как роутер, но требует отдельного питания и довольно сильно спамит сообщениями

Поэтому можно применить таймер и обойтись только датчиком движения. Выглядит это примерно так

«Motion bathroom» — подписка на топик датчика движения

«Switch occupancy» — ветвление по данными из json

«state_right — ON» — формирование сообщения включения правого переключателя (у меня там стоит WS-EUK02 и свет только на правом, функция выглядит так

msg.payload = {"state_right": "ON"};  return msg;

«Reset timer» выглядит так

var msg = { reset:true }; return msg;

«state_right — OFF» — формирования json выключения

msg.payload = {"state_right": "OFF"};  return msg;

«delay 15m» — задержка на 15 минут

Ну и «Switch bathroom set» — отсылка сoобщений (mqtt out) в топик выключателя zigbee2mqtt/switch_bathroom/set

Все комопоненты — стандарные из Node-Red. mqtt in / out из network, остальное все из functions

Работает все тупенько, как понятно из схемы

  • Если происходит движение — включается свет и сбрасывается таймер задержки на отсчет с нуля

  • Если движения нет — запускается таймер и если движения не было 15 минут — свет вырубается.

Пару минусов этого решения:

  1. Если лежать в ванной / сидеть на горшке и не шевелиться то таймер вырубит свет через 15 минут 🙂 Такое редко, но бывает

  2. Свет будет гореть всегда 15 минут даже если вы ушли и он вам не нужен


ссылка на оригинал статьи https://habr.com/ru/articles/744398/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *