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

10 июля 2018, 18:53

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

ВАЖНО:  

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

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

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

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

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

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

Надеюсь все уже научились создавать сценарии (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: На основе данных сценариев можно реализовать уникальные приветствия для каждого пользователя для разного дня недели и времени суток. Нужно всего лишь ввести проверку дня недели или времени.  Теперь все зависит только от вашей фантазии. 

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


Все новости мира умных домов - t.me/SprutAI_News

Остались вопросы? Мы в Telegram - t.me/soprut

  1. Олег Челбаев (sprut)

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

  2. Sergei Botvina (Tabasalu)
    Sergei Botvina (Tabasalu) год назад

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

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

  3. Сергей Сафронов (deda)

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

    • Sergey Shu (grayker)
      Sergey Shu (grayker) год назад

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

  4. (Rostov36)
    (Rostov36) год назад

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

  5. Валерий Лунев (Bukvoed)

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

  6. Leonas Vilciauskas (Vilis007)
    Leonas Vilciauskas (Vilis007) год назад

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

  7. Роман Елизаров (FantomNotaBene)

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

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

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

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

К списку статей

Тематические чаты

Похожие статьи

14 ноября 2018, 06:43
Плагин для интеграции в Athom Homey дочерних zigbee-устройств, подключенных на координаторы deCONZ - RaspBee или ConBee.
03 октября 2018, 22:03
Как собрать и настроить Hyperion Ambilight - адаптивную подсветку ТВ.
09 января 2019, 17:34
Небольшая статья о том, зачем нужна малина, почему автоматизации в HomeKit это не очень хорошо и чем USB стик лучше отдельного шлюза.
02 октября 2018, 17:59
В статье изложено краткое руководство по созданию сценариев в Homey
09 мая 2018, 19:11
В данной статье я попытаюсь объяснить доходчивым языком основы написания сценариев для Athom Homey.
18 июня 2018, 17:31
Универсальные сценарии с использованием штатной возможности Devices.
23 октября 2018, 17:57
Подключение электросчетчика к УД.
29 ноября 2018, 12:16
Интегрируем пылесос Xiaomi в "умный дом" через Homey и управляем зональными уборками через Siri.
26 августа 2018, 07:07
Подключаем к Athom Homey умную ZigBee лампу на примере на примере спорта Zemismart и простейший пример редактирования плагина для Homey с ресурса GitHub
06 мая 2018, 21:21
Руководство по установке плагинов с ресурса GitHub на Homey с помощью командной строки Windows