Pull to refresh

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

Level of difficultyMedium
Reading time1 min
Views8.6K

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

  • 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 минут даже если вы ушли и он вам не нужен.

Tags:
Hubs:
Total votes 3: ↑2 and ↓1+3
Comments37

Articles