Статья

Сценарий определения и озвучивания прихода домой

Всегда приятно, когда "Умный дом" не только понимает своего хозяина, но и входит с ним в некий интерактив. Сегодня мы будем учить наш "Колобок" правильно определять приход домой каждого из членов семьи и включать индивидуальное приветствие. Для реализации данной возможности у меня написана серия из 9 сценариев.  Логика их работы относительно проста: Вы приходите домой, открываете дверь и через несколько секунд вы слышите индивидуальное приветствие.  

ВАЖНО:  

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

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

- Базовая функция определения присутствия пользователя дома на данный момент работает не всегда корректно. Разработчики Athom знают о данной проблеме и обещали исправить данный "баг" с обновлением мобильного приложения летом 2018. 

Итак, приступим...

Для реализации данной задумки нам понадобиться:

Естественно сам Athom Homey.Датчик открытия двери (я использую датчик открытия дверей и окон Xiaomi Mi Smart Home Door/Window Sensors).Плагин для работы с переменными из Homey App Store - Better Logic.Плагин озвучивания сообщений Soundboard. (Как научить "колобка" говорить по-русски, более подробно расписано тут)Записанные индивидуальные приветствия в формате mp3 или wavСмартфон с установленным официальным приложением от Anhom Homey Включенная функция обнаружения пользователя в приложении на смартфоне.

Надеюсь все уже научились создавать сценарии (Flow), если нет, то читаем тут и возвращаемся обратно.

Введение - функция определения присутствия

Сценарии построены на основе базовой функции "колобка" определения пользователя в зоне дома (LOCATION и PRESENCE). На основе данных о вашей геопозиции и подключении к домашней Wi-Fi сети, ПО на смартфоне определяет, где вы находитесь и передает информацию на сервер, который в свою очередь отправляет данные в Homey. Все что вам для этого нужно, это указать в ПО Athom на вашем ПК местоположение вашего дома (Setting - Раздел System - Lоcation - Automatically detect my location либо Manually select my location). Далее в настройках приложения на смартфоне включаем функцию определения присутствия (Setting - Use home detection - On) и выставляем радиус определения. Рекомендую использовать 300м, так вы сможете смело выходить в магазин у дома не запуская лишний раз сценарий приветствия. 

Если вы планируете определять присутствие нескольких пользователей, то им необходимо установить свое приложение на смартфон, создать свой аккаунт и добавить в ваш Homey. Я регистрировал второго пользователя через его приложение на телефоне. Для добавления нового пользователя водим новый e-mail, указанный при регистрации (Setting - Users) и нажимаем Add User. После чего, в приложении на смартфоне второго пользователя, нужно будет подтвердить тот факт что вас добавили к устройству.

Сценарии 1 и 2 - озвучивание открытия и закрытия двери

Для тех, кому не нравиться частые речевые сообщения, данные сценарии можно пропустить, так как они никак не пересекаются остальными и несут исключительно эстетический характер. В моем случае при открытии двери ВСЕГДА произносится фраза " Внимание дверь открыта", при закрытии - "Дверь закрыта".

Создание переменных

В работе серии сценариев мы будем использовать несколько переменных, в которых будет храниться информация о местонахождении пользователя. Значение переменных: 0 - пользователь вне зоны дома, 1- пользователь вблизи дома, 2 - пользователь внутри дома.

Устанавливаем плагин Betterlogic и в настройках плагина (Setting - Раздел Apps - Betterlogic) для каждого пользователя создаем свою переменную (числового типа). В самом начале присваиваем любое числовое значение для каждой переменной (Например 2)

Создаем столько переменных, сколько пользователей вы планируете задействовать в приветствии. (В моем случае их 2. Я и жена) 

Сценарии 3 и 4 - определение ухода

При определении любого пользователя за пределы радиуса дома, делаем значение его переменной = 0 (нулю).

Сценарии 5и 6 - определение в области дома

При определении любого пользователя в пределах радиуса дома, делаем значение его переменной = 1.

Сценарии 7 и 8 - определение прихода домой

Итак, пользователь находиться у дома и его переменная уже = 1. При открытии двери, сравниваем значение переменной, если она меньше 2, то запускаем "приветственное" сообщение для пользователя и делаем значение переменной = 2. Стоит понимать, что если оба пользователя зайдут одновременно, то "приветственное" сообщение будет запущено одновременно, поэтому необходимо сделать отстройку одного сообщение от другого (следует учитывать длительность первого сообщения). В сценарии 7 (для главного пользователя) - сообщение запускается через 10 секунд после открытия двери. В сценарии 8 - сообщение для второго пользователя запускается через 20 секунд после открытия двери. Таким образом сообщения будут воспроизведены последовательно. 

Сценарии 9 и 10 открытие двери, когда пользователь находится дома

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

Вот собственно и все. Наши индивидуальные приветствия готовы.

PS: Данные сценарии оттестированы на протяжении недели с приложением для iPhone - ложных срабатываний не было. На данный момент не удается победить приложение для Андроид для второго пользователя - "приветствия" выполняются нерегулярно. Скорее всего виной нестабильная работа самого приложения. Если кто-то найдет ошибку в приведенных алгоритмах - буду рад учесть все замечания и поправить.

PSS: На основе данных сценариев можно реализовать уникальные приветствия для каждого пользователя для разного дня недели и времени суток. Нужно всего лишь ввести проверку дня недели или времени.  Теперь все зависит только от вашей фантазии. 

Удачных экспериментов!


Отличная работа, спасибо за труд ;)

всегда рад , тебе спасибо за все!!!

Интересное решение. 

Молодец!!!!!!

красиво статью оформил, молодец!

С картинками немного промахнулся, надо было нарезать под один размер.

спасибо! Очень пригодилось)

Супер! Давно искал подобную информацию

Спасибо, полезная информация!!!

Все, вроде, неплохо и по делу. Но один кейс не учтен и у меня пока нет мыслей как это исправить.

Суть: Один человек (Вася) находится дома. Второй человек (Маша) был далеко от дома и зашел в зону тех самых трехсот метров. Маша позвонила Васе и попросила встретить ее у магазина, помочь донести сумки.

Получаем итог: Маша вошла в зону трехсот метров (переменная стала единицей), когда Вася будет выходить и откроет дверь, через десять секунд, дома Homey произнесет приветствие Маше, а когда они оба вернутся, будет молчать.

Может, чего-то недосмотрел, но очень похоже, что именно так и получится.

Нужен плагин проверяющий присутствие пользователя в вайфай сети. Если добавить этот блок проверки может сработать , но при условии что вайфай в телефоне всегда включен >_<. Надо протестировать  плагин Smart Presence, может он впаре с штатным сможет  показывать более точный результат.


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

Устройства


Xiaomi

Door and Window Sensor

(25 отзывов)

Athom Homey

Homey

(6 отзывов)

Athom Homey

Homey Pro

(1 отзыв)

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