Кое что из моих сочинений на свободную тематику:
Мультирум из подручных средств, и добавление всего этого в Home-assistant
Делаем дашборд из планшета. Опять же для Home-assistant
Умный дом, муки выбора. Или мое предвзятое мнение о системах.
В прошлый раз мнения разделились, поэтому статья будет без юмора, и полная серьезности. То есть сухая и техническая.
Кто первый пошутит про цифры на скрине?
Вводная.
Итак, стратегия умного дома (на бумаге) подразумевает, что система сама знает, что нужно пользователю в данный момент и делает его жизнь лучше и удобней без его участия.
Система сама знает, что, когда я подхожу к дому, нужно включить чайник, за час до срабатывания будильника надо включить теплый пол, когда все ушли из дома, пора запустить пылесос, и тд
Но по факту - полная домашняя автоматизация — это идея, которая еще слишком далека от идеальной реализации. Сразу оговорюсь и выведу за скобки функции безопасности, их автоматизировать можно и нужно. Условно говоря, даже если бы я жил один, система все равно не могла бы предусмотреть, что я хочу от нее в данный момент. А когда в доме живет семья с детьми, то вся автоматизация, которая отвечает за удобство - начинает спотыкаться об тщетность бытия. А пылесос об разбросанные игрушки. Да и чай я сегодня не хочу.
Поэтому я пришел к тому, что автоматизация должна давать мне право выбора. Например, если упала влажность - то включить увлажнитель сейчас, или включить, когда я поеду домой. Или вообще на час - и хватит. Когда все ушли из дома, пылесос должен спросить, стоит убраться или нет. Ведь умный дом не знает, разбросаны игрушки по всей квартире или нет. Или, например, в пятницу, обычно, я езжу на дачу, и неплохо бы поднять температуру до комфортной к моему приезду. Но зачем топить, если вдруг я поеду на дачу, но не на свою? Правильно, для этого перед выходом нужно спросить у меня куда я еду, когда, сажусь в машину.
Практическая часть
На данный момент, есть два основных варианта, чтобы удобно это реализовать. (По факту больше, но это уже совсем вкусовщина, и предположу, что она не носит массовый характер)
1. Телеграмм (Но он же заблокирован, хаха)
2. Push в IOS
С телегой я игрался, но она не зашла настолько, насколько понравился нативный пуш на яблочных устройствах.
Дальше будет все совсем сухо.
Ставим Home Assistant Companion
И настраиваем подключение к HA
(*То приложение что сейчас находиться в эпл сторе, может подключаться только через Legacy API Password. Если вы используете авторизацию по логину и паролю, то варианта 2. Первый: включить Legacy API Password, второй: поставить бету через TestFlight, а заодно и стать бета тестером)
Далее идем в Notification settings, и там жмем update push settings.
Рассмотрим на примере автоматизации для увлажнителя. Здесь смысл следующий, если влажность опускается ниже 20%, то нам приходит уведомление с вариантами действия: Включить и включить на 1 час.
Теперь перейдем к конфигам ассистента.
configuration.yaml
ios: push: categories: - name: humidifier identifier: humidifier actions: - identifier: HUMIDIFIERON title: "Вкл увлажнитель" activationMode: 'background' authenticationRequired: no destructive: no behavior: 'default' - identifier: HUMIDIFIER1H title: "Включить на 1 час" activationMode: 'background' authenticationRequired: no destructive: no behavior: 'default' - name: alarm
Разберем этот пример.
- name: humidifier - это название группы.
- identifier: humidifier - это идентификатор. Он указывается в автоматизации, как меню выбора. Все что в этой группе есть, то и будет выводиться под уведомлением. Ни больше ни меньше.
- actions: и под ним уже идет перечисление возможных действий. После него следует еще раз
- identifier: HUMIDIFIERON Это конкретный пункт меню Его пишем БОЛЬШИМИ БУКВАМИ что бы не путаться.
- activationMode: 'background' Это мы использовать не будем, но по названию вы сами догадались что это отображение уведомления в фоне.
- authenticationRequired: no - требовать авторизацию на телефона (отпечаток) что бы открыть уведомление.
- destructive: no выделять красным
- behavior: 'default' - что это?
Перейдем к самим автоматизациям
- alias: 'Notify bedroom hum' ############Влажность в спальне с управлением через уведомления initial_state: 'on' trigger: - platform: numeric_state entity_id: sensor.humidity below: 20 action: - service: notify.notify data: title: Датчик влажности message: "{{ '\ud83d\udca7' }} Влажность в спальне опустилась меньше 20%, и составляет: {{ states('sensor.humidity') }} процентов." data: push: badge: 0 category: "humidifier"
Ну тут все просто, category: "humidifier" как раз и есть тем самым идентификатором, который предоставляет выбор.
А далее следует как раз 2 автоматизации которая как раз и соответствуют включение увлажнителя, и включению на 1 час.
- id: push_notify_hum_on #Вкл увлажнитель по ссылке в уведомлении alias: 'Push Notify Hum ON' initial_state: 'on' trigger: - platform: event event_type: ios.notification_action_fired event_data: actionName: HUMIDIFIERON action: service: homeassistant.turn_on entity_id: switch.plug - id: push_notify_hum_on1h #Вкл увлажнитель на 1 час по ссылке в уведомлении alias: 'Push Notify Hum ON 1H' initial_state: 'on' trigger: - platform: event event_type: ios.notification_action_fired event_data: actionName: HUMIDIFIER1H action: - service: homeassistant.turn_on entity_id: switch.plug - delay: '01:00:00' - service: switch.turn_off entity_id: switch.plug
В общем-то, все предельно просто и, как обычно, вступление заняло больше строк чем реализация.
норм статья, годно
А я по трЭЭЭшу скучаю )))) подписался жду продолжения )))
Спасибо за статью, очень понравилась. Шутка с цифрами удалась, а в чем секрет. Вроде по коду все Ок и должно быть значение влажности меньше 20.
Буду ждать продолжения ....
Да там нет секрета, событие (триггер) можно вызвать принудительно в любой момент :)
а как оно с Deep sleep ? выводит? может лучше через Homebridge сделать? для себя любимой эппл нормальный сертификат пользуют и пуш пробуждает телефон.
ЗЫ просто коллеги долго мучались с одной домофонной поделкой, которая не выводила телефон из спячки из-за чего пропускались звонки в дверь.
Кого, телефон? Конечно, это же нативный пуш. Через хом-бридж я себе слабо представляю как сделать подобное.
Для ЗЫ можно попробовать pushbullet. С ним раньше тоже работал, никакх проблем
это не нативный, это от ассистента. поэтому и спросил. проверьте, если можно. для коллег было очень неприятно - продать недешевый домофон и потом плясать с бубном.
Я этим каждый день пользуюсь, можно не проверять )
Почему от ассистента не может быть нативным? и чем он отличается от других приложений (в том числе тех, что установлены по умолчанию)?
ну если эппл его купит - будет, а пока приходится писателям софта покупать сертификат.
ЗЫ Я Вас услышал, хорошо что работает. Но я все равно противник сторонних софтин. Все должно быть в приложении дом )))
Автоматизация "push_notify_hum_on1h" не содержит никакой информации о том, что увлажнитель будет включен на 1 час. Где это указывается?
Да, спасибо. Поправил.
Сервер с HA обязательно должен иметь белый IP?
Нет конечно
По внутреннему внутри сети
А я правильно понимаю, что если влажность стала допустим 16, а датчик обновляется раз в 2 минуты, то будет сыпаться куча push каждые 2 минуты пока увлажнитель не поднимет влажность до 20?
Нет, тригером является снижение ниже 20. Пока не поднимется до 20 - это уведомление приходить не будет. Датчики температуры сяоми, передают значения сразу после изменения.
Вопрос такой, а как сделать уведомление на несколько телефонов. Отдельными автоматизациями или можно в одну перечислить?
Добрый день. возможно ли тоже самое реализовать только через Node-red?