Статья

Кладём на лопатки NodeRed и HomeAssistant с помощью iOS 13.1 & HomeKit

Многие используют HomeKit, но ещё многие ругают его за куцые автоматизации, и с гордо поднятой головой рассказывают (-ли), как они умеет включать свет через 3 часа 33 минуты после рассвета, или мигать лампочками, ну и ещё всякими бесполезными вещами. Нет, может оно и полезно, и зачастую нужно, но хотите ли вы вникать синтаксис nodeJS или JavaScript? А может вы хотите написать автоматизацию в блокноте (ниже, как пример, автоматизация HomeAssistant)?

- alias: 'ESP Button Lights' trigger: - platform: state entity_id: binary_sensor.matt_lights to: 'on' - platform: state entity_id: binary_sensor.matt_lights to: 'off' action: service: switch.toggle entity_id: - switch.matts_bed_lamp - switch.matts_desk_light

Думаю, что у большинства простых обывателей, накупивших недорогих HomeKit аксессуаров, волосы встанут от количества нужных статей (например, 10 штук), которые им необходимо будет прочитать, не считая других мануалов и примеров, чтобы только установить и настроить одну/две автоматизации в HomeAssistant.

Или сутками «торчать» в чате NodeRed, чтобы задать ещё кучу вопросов, получив пример от другого, более опытного пользователя в чате. Безусловно, NodeRed хорош, если нужно из реле сделать ворота, или из геркон - датчик движения. А ещё он хранит переменные (значения, которые можно передавать между автоматизациями). Но на этом основные преимущества для HomeKit заканчиваются.

В iOS 13 Apple дала возможность использовать Shortcuts, или Быстрые Команды, в связке с HomeKit. Возможно, кто-то уже был ранее с ними знаком. Кто-то писал свои, или использовал написанные другими. На их основе сделано множество отличных «приложений», от простых, вроде скачать видео с YouTube, или планировщика Cron внутри iOS.

Но сегодня мы научимся писать свои сложные автоматизации, используя только HomeKit, тратя на это в десятки раз меньше времени и сил, чем в других системах. Также не потребуется больше ничего, кроме этой статьи. Если же это покажется вам сложным, я рекомендую вам погрузиться в дебри HomeAssistant и зайти сюда вновь через месяц, когда вы освободитесь.

Итак. Любая автоматизация включает в себя такие базовые вещи, как:

  • Триггер. Событие, после которого будет стартовать наша автоматизация.
  • Условия. Некие ограничения, которые не будут давать старт нашей автоматизации, если не соблюдены все условия.
  • Сценарии. Само действие, например - включить свет.

С триггерами в HomeKit по-прежнему все плохо. Программа Дом даёт ограниченный набор, а чтобы, к примеру, триггером выступало любое изменение температуры/влажности/освещённости или изменение уровня Воды в каком-нибудь горшке, то придётся использовать программы по типу Home. По сути, она нужна лишь для того, чтобы в созданной автоматизации поменять триггер. Со всем остальным справиться программа Дом.

Теперь придумаем первый «сложный» (ранее недоступный в HomeKit) сценарий. Например.

Хотим, чтобы вытяжка в ванной комнате включалась при превышении влажности 75%, при условии, что закрыта дверь. Отключалась - при условии, когда влажность ниже 75%, или открыта дверь. Также хотим получить в телеграмм уведомление о том, что кто-то начал и закончил мыться.

Создавайте автоматизацию, выбираете любой триггер, на выборе аксессуаров в самый низ - Преобразовать в быструю команду.А далее - просто посмотрите видео. Не нужно описывать такие простые действия, как создание автоматизации в HomeKit. Посмотрите один раз и попробуйте создать свою. У вас должно получиться:

Посмотрели? Теперь пройдёмся по важным моментам.

После изменения триггера в программе Home, автоматизация будет запускаться каждый раз, как будет изменятся влажность. Первое условие Если - проверяет, включена вытяжка или нет, и если включена, переходит к проверке следующего условия - закрыта ли дверь. Если и дверь закрыта, останется проверить влажность. Если она опустилась ниже 75, то остаётся выключить вытяжку и отправить уведомление в Telegram.

Если же вытяжка выключена, опять проверим условие влажности. Если значение больше 75, проверим дверь, и если она закрыта - запустим вытяжку и отправим уведомление в Telegram. Если у вас есть Sonoff iFAN, можно усложнить сценарий, включая разные режимы, в зависимости от нужных вам порогов влажности.

На видео не хватает некоторых данных, а именно, URL и chat_id. Последнее - это ID чата, или ваш ID (ник), в зависимости от того, куда вы хотите получать уведомления.

URL - https://api.telegram.org/botTOKEN/sendMessage, где слово TOKEN замените на токен, который вы получите от @BotFather для созданного вами бота (для создания нужно указать имя и ник) и все, токен у вас.

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

Теперь немного поговорим о возможностях. Если вы хотите включать вашу вытяжку в зависимости от влажности в Зимбабве, то на это действие у вас уйдёт не более 5 минут, без изучения различных языков программирования. Воспользуйтесь компонентами - Получить содержимое URL, получить словарь, получить значение словаря (расположите их последовательно), а ещё лучше, воспользуйтесь приведённым ниже примером:

https://www.icloud.com/shortcuts/3e6c78475f86443599ca93417bb863b2В

В нем мы в несколько действий извлечём влажность для нужного с API Яндекс Погоды, и далее, на основе ее, вы сможете построить свой сценарий.

Также есть множество вариантов работы с геопозицией, подробным прогнозом погоды, перевода текста, обработки фотографий, и многое, многое другое. У вас даже получится диммировать лампу, просто нажимая простую круглую кнопку Xiaomi.

Конечно, это самая малая часть новых автоматизаций в HomeKit, и мы попробуем уложить все самые сложные сценарии в три статьи, и при этом, больше будем говорить о глобальных вещах, чем о рутине, чем не могут похвастать монструозные HomeAssistant и NodeRed.

Также в качестве примера посмотрите ещё пару видео, где демонстрируются возможности быстрых команд, которые вы с легкостью сможете внедрить в свои автоматизации HomeKit.

Опрос камеры в комнате на наличие людей (лиц) и выдача результата:

Опрос счетчика и отправка всех расчетов в Telegram:

Если Вам интересны примеры этих команд, обращайтесь в сообщество, я пришлю вам доработанные под ваши условия команды!

16

Вернуться назад
Вернуться назад