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

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

Комментарии (22)


  1. Skywrtr
    28.06.2023 07:50
    +4

    Зачем ставить Node-RED, если в HA есть свои нормальные автоматизации?


    1. sergeygals Автор
      28.06.2023 07:50

      примеры нормальных автоматизаций в студию :) а вообще ответ очевиден конечно, что бы этим могли рулить и дети


      1. Sollex
        28.06.2023 07:50
        +1

        Зачем этим рулить детям, если это настраивается и забывается.


        1. sergeygals Автор
          28.06.2023 07:50

          В образовательных целях в первую очередь. Да и про настраивается и забывается - сомнительное утверждение, появляются новые датчики, вот недавно, например, появились два TS0601, появляются новые идеи


  1. ASD2003ru
    28.06.2023 07:50

    Node-RED конечно прикольно, но оно может и подвиснуть, бывало такое. И да, такие простые действия можно и через автоматизации сделать. будет надёжнее.

    Ну и использовать датчики движения лучше на микроволновом типе, да они дороже но не будет такого, что моясь за шторкой у вас погас свет.


    1. sergeygals Автор
      28.06.2023 07:50

      Упомянутый TS0601 именно такой да, цена да примерно та же, но к нему нужно питание постоянное


  1. vviz
    28.06.2023 07:50

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


    1. sergeygals Автор
      28.06.2023 07:50
      +1

      ну именно в этих датчиках это 2 минуты, что сильно меньше 15 минут таймера + это в общем решаемо не сильно сложно https://community.smartthings.com/t/making-xiaomi-motion-sensor-a-super-motion-sensor/139806


      1. vviz
        28.06.2023 07:50

        есть и такие, и у них тоже есть беда - зоны чувствительности узкие и их явно две. Приходится долго и нудно подбирать срабатывание в небольшом помещении, например, спальной комнате.


  1. Kill_Voice
    28.06.2023 07:50

    Игрался с разными датчика в итоге больше понравились BLE Qingping CGPR1, а вот Aqara и Xiaomi вообще выкинул все, у них кривая реализация ZigBee в итоге они отваливаются при первой возможности. Но самое крутое открытие для меня оказался LD2410, нужно внешнее питание, но это того стоит, прекрасно встает под натяжной потолок и решает задачу без плясок с тайм-аутами и мертвыми зонами


    1. GavriKos
      28.06.2023 07:50

      Интересно, ни разу не отваливался xiaomi. С родным, но перепрошитым шлюзом +zigbee2mqtt


      1. Kill_Voice
        28.06.2023 07:50

        Родной шлюз это важный момент, с ним и не должны отваливаться, а вот с любым другим координатором будут приключения. Я использую Z-Stack


        1. sergeygals Автор
          28.06.2023 07:50

          У меня 38 устройств Xiaomi через самый простой USB CC2531/CC2540 с Ali. Проблемы были пока он торчал прям в порту малинки, как убрал через usb удлинитель на 20 см, проблема ушла  


          1. Kill_Voice
            28.06.2023 07:50

            У меня порядка 100 устройств от разных производителей, вероятно что-то оказалось несовместимым с Aqara, в итоге после того как в очередной раз отвалились датчики дверей и пара кнопок, надоело заниматься траблшутингом и решил просто все это заменить


  1. roofcat
    28.06.2023 07:50

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


    1. vviz
      28.06.2023 07:50

      так и есть, ZigBee кнопка и датчик, плюс брелок на 433 для реле, плюс датчик освещенности.
      Если включено брелком - автоматика не работает.
      Если определенное время суток - автоматика не работает.
      В остальное время - если освещенность высока - освещение не включается.
      Иначе включается.


  1. Kill_Voice
    28.06.2023 07:50
    +1

    Эту задачу кстати можно решить в одну ноду events: state, выставив for в 15 минут для значения off и включением по отработке false


  1. reallord
    28.06.2023 07:50
    +3

    А не проще использовать blueprint script?
    У меня уже год работает простой скрипт: https://community.home-assistant.io/t/motion-activated-light-brightness/418066
    Выставляешь лампу, датчик движения и время для таймера.
    Хватает для всех моих целей и в ванной и в туалете и в коридоре.

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

    Заводить для такого простого действия как свет по движению/присутствию Node-RED - по моему очень избыточно.


    1. sergeygals Автор
      28.06.2023 07:50
      +2

      ну не наю, 397 строчный yaml не выглядит как проще :) а Node-RED у меня много где используется, это просто один из кусочков. хотя, конечно, до BP надо бы добраться и освоить


      1. reallord
        28.06.2023 07:50
        +1

        Там не совсем так. Скрипт просто импортируется в систему как шаблон в один клик, а потом через GUI в разделе Автоматизации, просто делаешь новую автоматизацию и там тыкаешь мышью в датчик движения, лампочку и указываешь время таймера.

        Скрины как это вживую на сервере.
        https://disk.yandex.ru/i/v8Xv9uqBQZQEnA
        https://disk.yandex.ru/i/-R1J_rGZN4ALXQ

        Там вообще не надо никаких скриптов редактировать.
        Иногда даже крутому программеру хочется почувствовать себя домохозяйкой и настроить все в пару кликом мыши, а не сотни строк кода скриптов :)


        1. sergeygals Автор
          28.06.2023 07:50

          Да, спасибо, уже разобрался :)


  1. lex899
    28.06.2023 07:50

    Лично меня не устроил свет на одном датчике движения.

    1. Его недостаточно на весь санузел, всегда будет мёртвая зона.

    2. Он не видит сквозь шторку ванной.

    3. Свет загорается с ощутимой задержкой. И после выхода сразу не гаснет.

    4. По цене одного датчика можно не выключать свет в ванной 5 лет и обойтись без hass.

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