Кое-чего интересного можно автоматизировать, если "знать" находится-ли кто-то дома. Мобильный телефон имеют практически все, поэтому... Один из вариантов - отслеживать его местонахождение по GPS, но проблема будет с определением координат, когда телефон находится в здании/помещении. Значит, этот вариант отпадает. Второй вариант - отслеживать с помощью ping'а телефона, что может сказать о том, что телефон находится в зоне действия домашней WiFi-сети. Но в последнее время тут тоже возникают проблемы - в связи с ограничениями по доступу к тытрубе и т.п., иногда отключаешь WiFi дабы остаться на мобильной передаче данных, где ограничений поменьше, а включать его только из-за определения присутствия совсем неохота. Наилучшим вариантом решения задачи был "назначен" вариант с определением нахождения в зоне действия Bluetooth. В моем варианте (квартира в брусовом доме, вшитый BlueTooth-модуль на сервере HA, сервер в центре квартиры) - самый оптимальный вариант. Итак, приступим... Идем в HACS, который устанавливали в другой статье, ищем BLE Monitor, скачиваем, по просьбе HA перегружаем HA.
iBeacon Tracker в Home Assistant — это интеграция для отслеживания устройств iBeacon. С помощью iBeacon Tracker Home Assistant может оценивать расстояние от устройства iBeacon до ближайшего адаптера Bluetooth. Как вариант, в подобном проекте можно использовать специальные iBeacon-метки в виде, например, таких[
Стоимость относительно небольшая, но ждать почти месяц неособо охота... Да и "лишнюю" железку таскать тоже... В-общем, решил попробовать обойтись малой кровью - поставил на телефон эмулятор iBeacon-метки BeaconScope (есть в play-маркете, выбрал опытным путем). Он помогает в том числе и разработчикам для отладки ПО.
BlueTooth-модуль у меня "вшит" в материнке сервера, поэтому он был опознан и включен уже в процессе установки HA.
После установки на телефон BeaconScope переходим на закладку Transmit, дабы немного настроить и включить передачу данных метки. Собственно, я изменил только название самой первой в списке метки, которую решил использовать, и включил передачу (остальные пробовал, но почему-то ничего не смог с ними сделать... правда неособо-то и мучался)
После этого будет найдено новое устройство. Идем в настройки iBeacon Tracker и вводим UUID метки, который указан в настройках BeaconScope. После всех манипуляций наша метка появится в списке устройств.
У нашего устройства есть один сенсор - Ориентировочное расстояние. На скриншоте ниже видно, что этот сенсор показывает расчетное расстояние от сервера (в моем случае) до метки - 1 или 2 м. Попробовал походить с телефоном по квартире и могу сказать, что при включении определяется метка практически моментально, а вот изменение состояния (например, выключение, изменение расстояния или выход из зоны обнаружения) происходит с запозданием минуты на 2-3... Само расстояние определяется более-менее верно, хотя оно мне не очень-то и нужно - мне нужно знать лишь факт нахождения телефона в радиусе обнаружения. Учитывая, что BlueTooth "по паспорту" работает в радиусе 10 м, нам этого хватит. В настройках можно посмотреть на историю изменения статуса метки.
<<< Подборка статей на этом канале про Home Assistant >>>
Можно привязать метку к конкретному человеку-пользователю HA. В моем случае, я один, поэтому идем в настройки и в закладке "Люди" жмякаем на нужного пользователя. Далее ищем строчку выбора устройства, по которому будем отслеживать, где выбираем метку, генерируемую телефоном.
Кстати, HA по-умолчанию вносит в список устройств для отслеживания пользователя те устройства (телефон, планшет и т.п.), где был установлен официальный клиент HA, как это делал я, и подключались под соответствующим логином, поэтому лучше проверять этот список, дабы избежать ложных данных. Фишка в том, что если указаны несколько устройств для отслеживания, то при разных статусах (home или not_home) статус пользователя не всегда будет определен правильно.
Для обработки события (собственно, придумал пока отключать принудительно свет только при уходе из поля обнаружения метки) можем создать автоматизацию. В автоматизации в качестве триггера используем смену состояния персоны (state) с "дома"(home) на "не дома"(not home). Идем в Настройки->Автоматизации и создаем новую автоматизацию, ну и сохраняем ее.
Просто ради интереса можем на одном из дашбордов сделать карточку отображения состояния персоны. Входим в редактирование дашборда и жмякаем внизу справа кнопку "Добавить карточку". Переходим на закладку "Объекты", отмечаем галкой интересующую нас личность, нажимаем кнопку "Продолжить". В итоге у нас на дашборде появится новая карточка, на которой будет отображаться состояние персоны - или "Дома" или "Не дома" в зависимости от того, появилась ли метка в радиусе обнаружения BlueTooth-приемника.
Эту же автоматизацию можно реализовать в NodeRed про установку которого я рассказывал в другой статье. Итак, на карту нового потока перетаскиваем узел(ноду) state_changed и настраиваем ее на сработку при переходе entity "Андрей" в состояние "is not home". Тип состояния меняем на String, если там стоит что-то другое. Далее подключаем к ее выходу "true" ноду "action", которая будет выключать свет (это мы уже делали, например, в этой статье или в этой статье).
Не забываем после всего этого нажать в правом верхнем углу кнопку "Развернуть" и наслаждаемся результатом - свет будет принудительно выключаться (если по какой-то причине остался включенным) примерно через 2-3 минуты, как вы ушли из из дома. Не знаю помешают ли друг другу одновременно работающие автоматизации, созданные по-разному, но предполагаю, что нет. Пока что не могу найти как отключить выполнение потока в NodeRed с помощью кнопки на дашборде... Это нужно, например, чтобы свет не выключался автоматизацией ни в каком случае... Может кто знает - поделитесь в комментах...
Дальше будет еще много вкусного, поэтому
Ставьте лайки, оставляйте комментарии, страница в VK, подписывайтесь на канал, присоединяйтесь в Telegram чтобы ничего не пропустить!
#умныйдом #календарь #HA #HomeAssistant #сделайсам #минипк #неттоп #nettop #HACS #nodered #node-red #nodered #dwainsdashboard #dwains #dashboard #планшет #ibeacon #bluetooth