Пробую российский софт для умного дома. Он правда работает?
Всем привет! С вами снова Дмитрий, не программист. В прошлый раз я установил на Wiren Board 7 визуальную среду Node-RED, не умерев в консоли. И даже проверил четыре популярных сценария: ноду Debug, мастер-выключателя, включения вытяжки при превышении концентрации CO₂, приборной панели (dashboard). Позднее я рассмотрел еще три сценария: темной комнаты, дневного/ночного освещения, термостата для теплого пола и батарей.
Но умный дом можно собрать не только на визуальной среде Node-RED. Российские разработчики давно предлагают программный пакет Sprut.hub для домашней автоматизации. Сценарии можно задавать как через фирменную визуальную среду, так и скриптами js. В Sprut.hub поддерживается большое число различных устройств, а некоторые пользователи считают его даже удобнее и проще Node-RED. Значит, настало время его попробовать! Более подробную информацию о Sprut.hub можно почерпнуть здесь.
Для использования Sprut.hub вместе с Wiren Board необходимо приобрести модуль расширения Sprut.stick ZigBee WBE2R-R-ZIGBEE-SH с вшитым ключом активации, после чего можно будет установить программный пакет. Дополнительно модуль даёт возможность подключать к контроллеру Wiren Board Zigbee-устройства. Незадолго до публикации статьи я получил информацию от разработчика Sprut.hub: совсем скоро можно будет приобрести лицензию Sprut.hub отдельно или контроллер Wiren Board с предустановленным Sprut.hub.
Установка модуля Sprut.stick в Wiren Board 7
Я получил модуль Sprut.stick ZigBee WBE2R-R-ZIGBEE-SH в простой белой коробке. Прилагается краткая инструкция по установке, но лучше воспользоваться подробным руководством на сайте.
Сначала я разобрал корпус контроллера Wiren Board 7, как показано здесь. Затем вставил модуль Sprut.stick, соблюдая полярность, после чего прикрутил крепление антенны к корпусу. Для последнего необходимо выломать заглушку. На весь процесс ушло минут двадцать.
Установка Sprut.hub
После покупки модуля Sprut.stick ZigBee WBE2R-R-ZIGBEE-SH пользователь получит ссылку на закрытый телеграмм-канал, в котором приведены инструкции по установке. Затем придется обратиться к командной строке, но только один раз. Отмечу, что скоро будет выпущен Wiren Board с предустановленным Sprut.hub, и к командной строке обращаться не придется.
На установку ушло порядка получаса, хотя здесь много зависит от скорости подключения к интернету (у меня было 4G). При наличии проводного соединения все будет намного быстрее.
Затем я успешно подключился к Sprut.hub по IP-адресу Wiren Board (порт 7777).
Следующий этап — регистрация в системе. Проблем никаких не возникло, после подтверждения email появился запрос темы интерфейса: как в системе, всегда светлая или всегда темная. Затем можно выбрать масштаб интерфейса.
Теперь нужно, чтобы Sprut.hub нашел наш контроллер Wiren Board. Напомним, что аппаратный контроллер — центральная часть умного дома, он отвечает за управление сценариями автоматизации и другими устройствами. Sprut.hub общается с железом через программные контроллеры, которые есть на каждый протокол: Modbus, MQTT, Zigbee и другие.
Стандартное программное обеспечение контроллера Wiren Board общается с подключёнными устройствами и публикует их состояние в MQTT. Кроме этого, системные устройства контроллера, такие, как зуммер, входы/выходы и боковые модули также представлены в MQTT.
Именно поэтому, несмотря на то, что в Sprut.hub есть поддержка протокола Modbus, мы будем использовать MQTT.
Для добавления контроллера нужно перейти в меню «Настройки» — «Контроллеры», нажать кнопку «Создать контроллер». Затем достаточно выбрать тип MQTT и указать желаемое название. В стандартной поставке Sprut.hub есть шаблоны для подключения устройств, но если устройства не оказалось, то можно написать свой шаблон.
В левой части окна Sprut.hub будет выведено название контроллера. Рядом следует нажать символ треугольника, чтобы были найдены все устройства, подключенные к Wiren Board.
В общей сложности в тестовом чемодане Sprut.hub нашел 40 устройств и датчиков. Каждый канал или группа устройств Wiren Board, которые были обнаружены через протокол MQTT, в интерфейсе Sprut.hub представлены в виде виртуального устройства. Например, выключатель, лампочка, датчик температуры, электрический счетчик и т.д. Список устройств можно видеть на скриншоте выше.
На вкладке «Устройства» мы видим 16 распознанных устройств в данной комнате, доступных для прямого управления. То есть можно включать/выключать лампочки, сирену, выключатели. Бывает полезно, если сценарий автоматизации отработал некорректно, либо просто что-то нужно быстро включить или выключить. Слева отображаются показания датчиков.
Кнопка в правом верхнем углу позволяет отобразить датчики и скрытые устройства.
Инициализация модуля Sprut.stick
Следующий этап — инициализация модуля Sprut.stick.
В меню «Настройки» следует выбрать конфигурационный файл «Модули расширения и порты» /etc/wb-hardware.conf, в котором указать наличие модуля Sprut.stick ZigBee в соответствующем слоте.
Чтобы определить порт, к которому подключен модуль расширения Sprut.stick ZigBee (в нашем случае слот MOD4), в консоли Wiren Board я ввел команду ls -la /dev/tty*
Как видим, в данном случае адрес /dev/ttyMOD4 или /dev/ttyS3. Осталось добавить контроллер в интерфейсе Sprut.hub.
Контроллер готов к работе, по треугольничку можно выполнить поиск устройств ZigBee.
Создание сценариев
Автоматизацию умного дома в Sprut.hub можно задать через сценарии на соответствующей вкладке. И здесь я снова протестирую сценарий протечки жидкости.
В обычной ситуации, когда протечки нет, аварийная лампа гореть не будет, ничего пищать не будет, вытяжка работать не будет.
В случае аварии загорается аварийная лампа, контроллер противно пищит, включается вентилятор вытяжки.
Переходим в «Настройки» — «Блочные сценарии» и нажимаем плюсик для добавления сценария.
Для добавления объектов к условиям их достаточно просто перетянуть из левой панели.
В верхний блок «Если» я добавил условие срабатывания по датчику протечки. И три следующих действия: лампочка, сирена и вытяжка. В нижний блок было добавлено условие, когда датчик протечки не активен: лампочка, сирена и вытяжка выключаются.
Вентилятор был распознан как «Лампочка», я переименовал его в «Вытяжку».
Обратите внимание, что для лампочки и вытяжки можно установить яркость, в случае вентилятора здесь задаются обороты.
Отладка
Обратие внимание на значки шестеренки и треугольника справа от названия сценария.
По значку шестеренки вызываются настройки сценария. Здесь его можно отключить, а также отменить выполнение на старте хаба.
Треугольник полезен для ручной проверки сценария. При этом текущий проверяемый блок будет подсвечиваться желтой рамкой.
Наконец, значок жука в правом нижнем углу выводит журнал, в котором можно посмотреть последние события, а также сохранить в файл.
Второй пример
Второй пример: срабатывание тревоги, если ночью будет обнаружено движение по датчику WB-MSW v. 3. Нет ничего проще! Переходим в «Настройки» — «Блочные сценарии» и нажимаем плюсик для добавления сценария.
Из левой панели я перетягивают «Датчик движения»
Теперь добавляю условие по датчику освещенности.
При определении движения и освещенности меньше 10 Люкс будет поднята тревога: включится лампочка и сирена.
Теперь добавим второе условие: если движения нет, то выключаем лампочку и сирену.
Здесь я еще добавил задержку на пару минут, чтобы тревога проработала какое-то время. После тестирования мне не очень понравилась точность срабатывания, поскольку датчик очень чувствительный и движение определялось практически всегда. Я поставил уровень срабатывания выше 50. А отсутствие движения — ниже 20.
В результате я успешно задал срабатывание тревоги в ночное время по датчику.
Управление со смартфона
К сожалению, приложения Sprut.hub нет. Но можно управлять умным домом с помощью браузера смартфона. Кроме того, можно настроить отправку оповещений через мессенджер Телеграм, что мы рассмотрим чуть ниже.
На мой взгляд, удобнее использовать браузер настольного ПК или ноутбука. Но и со смартфона интерфейс удобно масштабируется.
Интеграция Sprut.hub с Яндекс Алисой
Устройствами, подключенными к Sprut.hub, можно управлять с помощью голосового помощника, например, Маруси, Алисы или Сири. Мы выбрали Алису от Яндекса. Подробная инструкция по интеграции приведена здесь.
Для подключения Алисы необходимо воспользоваться приложением Яндекса «Дом с Алисой». Рекомендуется называть устройства в Sprut.hub на русском языке, а также создать в настройках умного дома Яндекса комнаты, названия которых соответствуют комнатам Sprut.hub.
Здесь есть небольшой лайфхак. На самом деле комнаты из Sprut.hub «перетекают» в Алису. То есть можно создать комнаты в Sprut.hub, обновить в Алисе список устройств, но затем закрыть приложение Яндекса и заново его открыть.
Затем следует добавить устройство умного дома Sprut.hub, ввести логин и пароль учетной записи Sprut.hub. И в умном доме Яндекса появятся устройства Sprut.hub.
Устройствами, подключенными к Sprut.hub, можно управлять как с помощью приложения «Дом с Алисой», так и голосом. Например, я попросил Алису «включи вытяжку», после чего вентилятор тестового чемодана стал вращаться. Команда «выключи вытяжку» останавливает вентилятор. Конечно, если устройств много, то им следует задать уникальные имена.
По умолчанию Алиса управляет устройствами в той комнате, в которой стоит умная колонка. И если колонка находится в спальне, то фраза «Включи свет» приведет к его включению именно в спальне. Если требуется включить свет в другой комнате, то следует ее указывать, например, «Включи свет на кухне».
Есть другая полезная функция: все датчики обновляются в реальном времени. Как раз на скриншотах можно посмотреть информацию с датчика освещенности и влажности, например.
Настройка уведомлений в Телеграм
Sprut.hub может уведомлять о событиях через робота в популярном мессенджере Telegram. Процесс настройки подробно описан здесь, я же пробегусь по нему вкратце.
Сначала в Телеграм необходимо завести своего бота. Затем добавить бота к Sprut.hub в настройках.
В Sprut.hub следует создать глобальный сценарий в виде кода и вставить текст по ссылке, указав правильный ID в Телеграм и токен бота.
Затем можно переходить в блочные сценарии и добавлять оповещение. Например, в нашем сценарии протечки датчика я добавил блок кода
global.sendToTelegram("Датчик протечки сработал")
И по срабатыванию датчика мне приходило оповещение от бота. Можно задавать и более сложные оповещения или отправлять показания датчиков, все инструкции приведены по ссылке выше.
Чуть позже интеграция с телеграмом будет реализована на уровне системы.
Заключение
Система автоматизации на основе визуальной среды Sprut.hub мне понравилась. Для ее установки достаточно добавить к контроллеру Wiren Board модуль Sprut.stick ZigBee WBE2R-R-ZIGBEE-SH, после чего в качестве бонуса можно работать с устройствами ZigBee.
Сценарии в Sprut.hub легко задать с помощью логических блоков, писать код пришлось только при настройке уведомлений в Телеграм, но разработчики обещали скоро добавить поддержку и виде логического блока. Командная строка потребуется разве что при установке визуальной среды. Sprut.hub успешно обнаружил устройства в нашем тестовом чемодане Wiren Board, я смог запрограммировать простые сценарии за считанные минуты без единой строчки кода.
Хуже или лучше Sprut.hub по сравнению с Node-RED (см. мой обзор)? Здесь, как мне кажется, вопрос вкуса. Обе визуальные среды позволяют автоматизировать умный дом через сценарии, результат будет идентичен, но пути разные. Sprut.hub больше смещен в сторону простоты и наглядности, а Node-RED лучше подойдет тем, кто желает получить больше возможностей настройки. Но отмечу, что и в Sprut.hub можно задавать сценарии через код js, поэтому программисты получат должную гибкость.
Единственный минус Sprut.hub — придется докупать модуль, а среда Node-RED бесплатна. С другой стороны, если требуется поддержка ZigBee, то модуль к Wiren Board все равно пришлось бы приобретать.
Что понравилось:
Развертывание Sprut.hub выполняется напрямую на Wiren Board 7, дополнительных систем не требуется
Добавляется поддержка устройств ZigBee
Удобное визуальное программирование сценариев автоматизации через логические блоки
Что не понравилось:
При установке пару раз пришлось обращаться к командной строке Linux через SSH
Необходимо докупать модуль Sprut.stick ZigBee к Wiren Board