Вообщем сам процесс мысль – анализ – идея – реализация весьма банальны, но интересны. Кому то может показаться, что ничего нового в этом нет – но напоминаю, что этот сайт для новичков в области УД 🙂 Я даю вам толчок – вы масштабируете, развиваете и т.д. С чего начинал сам. На примере. Есть у нас ванная комната в которой есть А) толчок Б) душевая кабинка В) система вентиляции и т.д.. В “сранном” месте можно производить много действий и все по понятиям – при этом ничего не трогая – не дергая и не ломая. Более детально. Помыться в душевой, при этом чтобы не было сюрпризов (например : отключение света через датчик в ненужный момент), сидите вы на толчке или моетесь и тупо зависли – все (а именно автоматизация должна работать более менее под вас и ваши нужды). Давайте попробуем с эмулировать в уме подобную ситуацию. Есть еще одно но – это умные датчики и китайские сервера. Но мы с вами уже научились работать вне китайского облака – однако не все иногда гладко бывает и в локалке. То один датчки не сработает, то второй не отработает (а они все могут быть взаимосвязаны последовательностью) и все причиной этому : то wifi где-то слабенький в дальней комнате, то при малой емкости батареи датчики выделываться начинают, то Zigbee не пробивает, то тупо тупят сами устройства … короче факторов может быть множество и со всеми надо бороться и учитывать 🙂 Mihome не очень надежная система УД и мы все надеемся, что когда-то …. усе будет пучком у нее. АХА. Ждите. Так вот, что там с ванной комнатой. Приведу ниже автоматизацию всей ванной комнаты :
Рассмотрим целый блок сценериев ниже
### Включение света в Ванной 1го этажа при наличии движения - alias: Bathroom1_Turn_ON_light_scene-1_(motion on) initial_state: true trigger: - platform: state entity_id: binary_sensor.motion_sensor_158d0001a24db4 to: 'on' condition: - condition: state entity_id: switch.wall_switch_158d00014aa04d state: 'off' action: - service: switch.turn_on entity_id: switch.wall_switch_158d00014aa04d # Начинает работать таймер на максимальное время включения света 30 минут. После если движения нет в этом промежутке времени отключает свет. - service: timer.start entity_id: timer.light_bathroom_30m_off ### Включение света в Ванной 1го этажа при открытии двери (если сразу не сработал датчик движения или сбойнул) - alias: Bathroom1_Turn_ON_light_scene-2_(door open) initial_state: true trigger: - platform: state entity_id: binary_sensor.door_window_sensor_158d0001dad70c to: 'on' condition: - condition: state entity_id: switch.wall_switch_158d00014aa04d state: 'off' action: - service: switch.turn_on entity_id: switch.wall_switch_158d00014aa04d - service: timer.start entity_id: timer.light_bathroom_30m_off ### Выключение света в ванной 1го этажа при отсутствии движения в течении 10 минут - alias: Bathroom1_Turn_OFF_light_above_10_min_(no motion) initial_state: true trigger: - platform: state entity_id: binary_sensor.motion_sensor_158d0001a24db4 to: 'off' for: minutes: 10 condition: - condition: state entity_id: switch.wall_switch_158d00014aa04d state: 'on' action: - service: switch.turn_off entity_id: switch.wall_switch_158d00014aa04d ### Выключение света в ванной 1го этажа после закрытия двери и отсутствия движения в течении 10 минут - alias: Bathroom1_Turn_OFF_light_above_10_min_(door closed) initial_state: true trigger: - platform: state entity_id: binary_sensor.door_window_sensor_158d0001dad70c to: 'off' for: minutes: 10 condition: - condition: state entity_id: switch.wall_switch_158d00014aa04d state: 'on' - condition: state entity_id: binary_sensor.motion_sensor_158d0001a24db4 state: 'off' action: - service: switch.turn_off entity_id: switch.wall_switch_158d00014aa04d ### Выключение света в Ванной 1го этажа в случае поломки датчиков (через 30 минут) # Если не сработали сценарии: # - Bathroom1 Turn OFF light above 10 min (motion) # - Bathroom1 Turn OFF light above 10 min (door closed) - alias: Bathroom1 Turn OFF (LT) Timer On initial_state: true trigger: - platform: event event_type: timer.finished event_data: entity_id: timer.light_bathroom_30m_off condition: - condition: state entity_id: switch.wall_switch_158d00014aa04d state: 'on' action: - service: switch.turn_off data: entity_id: switch.wall_switch_158d00014aa04d - service: notify.telegram data: message: "Внимание. Свет в Ванной 1эт. не был выключен продолжительное время. Время выключения: {{ states('sensor.time') }}" ### Если выключатель света в Ванной переходит в Off, то прекращаем работу таймера - alias: Bathroom1 Turn OFF (LT) Timer Off trigger: - platform: state entity_id: switch.wall_switch_158d00014aa04d to: 'off' action: - service: timer.cancel entity_id: timer.light_bathroom_30m_off ### Включение света в Ванной 1го этажа по кнопке одинарного нажатия (на душевой) - alias: Bathroom1 Turn OFF light switch click (shower) trigger: - platform: event event_type: xiaomi_aqara.click event_data: entity_id: binary_sensor.switch_158d00021353fd click_type: single action: - service: switch.turn_on entity_id: switch.wall_switch_158d00014aa04d - service: timer.start entity_id: timer.light_bathroom_30m_off ### Включение света в Ванной 1го этажа по кнопке одинарного нажатия (у унитаза) - alias: Bathroom1 Turn OFF light switch click (toilet) trigger: - platform: event event_type: click event_data: entity_id: binary_sensor.switch_158d0001051509 click_type: single action: - service: switch.turn_on entity_id: switch.wall_switch_158d00014aa04d - service: timer.start entity_id: timer.light_bathroom_30m_off
В данной ванной было внедрено.
– включение света при входе и выключение по выходе. В ванной установлено два датчика для этого действия. Весьма оправдано. Так например : датчик открытия двери Aqara и датчик движения Aqara. Один работает на условие : дверь открыта включаем свет (можно добавить еще в зависимости от времени суток (до рассвета – после рассвета … я пока иду по простому сценарию – свет включаем всегда вне зависимости от времени суток), ах сколько уже раз когда первый датчик не срабатывает – то срабатывает второй – датчик движения нацеленный (макс угол обзора 70 град) на вход и душевую и часть толчок (дверь – душевая – толчок – все три девайса расположены между собой под 45 град) . Но там то нужно 90град. Отдаляем датчик чуть выше по высоте – в самый дальний верхний угол в ванной. И так датчик движения нам подстраховывает отсутствие активности датчика открытия двери (по разным причинам выхода из строя или его тупизны). Таким образом мы решили эту проблему с включением света. Но теперь нам нужно также решить и выключением света. А выключаться он должен (обязан) в случае : 1) отсутствия движения в зоне 90 градусов видимости. 2) какого отведенного максимального времени присутвия. 3) нахождения человека в ванной внутри душевой. Но не всегда так гладко. Датчики Xiaomi это лотерея в их работе.
И так. Если движение в ванной есть на протяжении какого времени то датчик движения это фиксирует и не позволяет отключать свет. Если движение прекратилось в течении 10 минут – свет отключится. Если не отключится – то после 30 минут сработает уже “жестко” счетчик (дополнительный триггер подсчета времени) и выключить все к чертям. По моим расчетам и наблюдениям 30 минут достаточно для любого дельца в ванной. Но всегда можно пересмотреть. А теперь допустим что дверь в ванной забыли закрыть – то также нас выручает этот таймер. Таймер максимального времени – это наша выручалка. У меня этот таймер всегда ассоциируется в нотификацией (т.е. это говорит о том что либо дверь забыли закрыть в ванной (и сценарий при этом не выполнился) или отказался работать один из двух датчик должным образом).
- service: notify.telegram data: message: "Внимание. Свет в Ванной 1эт. не был выключен продолжительное время. Время выключения: {{ states('sensor.time') }}"
Еще вариант. Ну там просто до усрачки нужно быть в ванной более 30 минут. 🙂 На этот случай мы дополняем дополнительным устройством кнопкой включения Aqara/Xiaomi. Очень выручает. Таким образом мы можем настроить эту кнопку (например двойное нажатие, активировав время +еще 30 минут пребывания на толчке т.е. заставить работать доп. таймер времени либо сценарий на одинарное нажатие – тупо включить свет до победного конца). Выключением света уже позаботиться сценарий отсутствие движухи в ванной каждые 10 минут которые он будет анализировать. Иногда мы заканчиваем дела ранее дополненного времени – то тут уж звиняйте : свет будет гореть в холостую ниже таймера максимального времени при условии, что не сработает датчик движения и тупо не заснет. У меня светильники в ванной светодиодные 🙂 это упрощает мои переживания – потребление весьма низкое. Время на которые датчик начинает определять движение = 1 минута на Aqara. Но это время можно сократить небольшой переделкой этого датчики, но вам чаще тогда придется менять батарейки на нем. Это минус.
Также например в душевой у меня также снаружи расположена кнопка дополнительного времени Xiaomi или Aqara – это раз. и Второй вариант : мне достаточно открыть дверь душевой как сразу сработает датчик движения и включит по новой свет. При этом можно сделать так чтобы обнулился таймер максимального времени в ванной. Датчки движения Aqara очень точно срабатывает на движуху которые направлена прямиком в него – т.е. душевой. Все эти нюансы стоит учитывать и дополнять автоматизации к максимальному близкому идеалу. Тупо построить все это дело на паре датчиков – дело для “слабаков” 🙂 Мы не ищем легких путей. Но и усложнять при этом не нужно.
Иногда (приходится) наиболее отвественные сценарии параллелить со сценариями Mihome. Так например забыл выключить утюг.
- alias: Bathroom-2 Switch Click On IRON trigger: - platform: event event_type: xiaomi_aqara.click event_data: entity_id: binary_sensor.switch_158d0001a66b29 click_type: single condition: - condition: state entity_id: switch.wall_plug_158d000224e991 state: 'off' action: - service: switch.turn_on entity_id: switch.wall_plug_158d000224e991 - service: timer.start entity_id: timer.device_bathroom_1h_off - alias: Bathroom-2 Switch Click Off IRON trigger: - platform: event event_type: xiaomi_aqara.click event_data: entity_id: binary_sensor.switch_158d0001a66b29 click_type: single condition: - condition: state entity_id: switch.wall_plug_158d000224e991 state: 'on' action: - service: switch.turn_off entity_id: switch.wall_plug_158d000224e991 - service: timer.cancel entity_id: timer.device_bathroom_1h_off # Выключение утюга в Ванной 2го этажа в случае поломки датчиков (время 1 час) - alias: Bathroom2 Turn Off IRON (LT) trigger: - platform: event event_type: timer.finished event_data: entity_id: timer.device_bathroom_1h_off condition: - condition: state entity_id: switch.wall_plug_158d000224e991 state: 'on' action: - service: switch.turn_off data: entity_id: switch.wall_plug_158d000224e991 - service: notify.telegram data: message: "Внимание. Утюг в Ванной 2эт. не был выключен продолжительное время. Время выключения: {{ states('sensor.time') }}" - alias: Bathroom2 Turn Off IRON (LT) trigger: - platform: state entity_id: switch.wall_plug_158d000224e991 to: 'off' action: - service: timer.cancel entity_id: timer.device_bathroom_1h_off
В данном примере все вроде бы понятно. Забыл выключить утюг и вышел из дому – так через час он сам выключиться. Но при включении утюга я всегда ставлю сообщение от Mihome, что утюг включен. Это просто – и останется в голове какое-то время. Так как надеяться на автоматизацию в HomeAssistant тоже не дело.
Думаю я направил вам по истинному пути … как создавать толковые простые автоматизации со страховкой. Конечно можно наворотить куда еще глубже и по своим понятиям – но подобные сценарии описаннеы выше у меня уже пару лет работают и выручают. Мелочь а работает 🙂 Не стоит экономить на дополнительных датчиках.
спасибо за блог! надеюсь скоро сделаю управление колонками по ик (дурацкие 5.1мколонки от sven сбрасывают свои настройки при отключении электричества, а ещё гудят пока не замоютишь) Ох. но вот это выглядит гораздо хуже чем мой код на плюсах… а у меня сценарии при этом более навороченные. Датчики все проводные и работают стабильно. Кнопка «добавить времени» звучит как жуть какая-то неестественная. у меня есть выключатель на стене (тот же что и был до наделения ума), но его единственная функция менять основной свет и ночную подсветку (обычно выбор делается автоматически в зависимости от времени суток, но иногда -рвётся по ощущениям). Но у… Подробнее »