Допустим у вас есть:
Home Assistant
установленный в нем Zigbee2MQTT
установленный в нем Node-RED
желание что бы на всем этом горел свет когда кто-то находится в помещении
Конечно можно купить 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 минут - свет вырубается.
Пару минусов этого решения:
Если лежать в ванной / сидеть на горшке и не шевелиться то таймер вырубит свет через 15 минут :) Такое редко, но бывает.
Свет будет гореть всегда 15 минут даже если вы ушли и он вам не нужен.