Статья

От распаковки до Node-RED: можно ли настроить автоматизацию на Wiren Board 7, не умерев в консоли

Введение

Всем привет!

Меня зовут Дмитрий, и обычно я занимаюсь обзорами консьюмерской электроники, такой как ноутбуки и жесткие диски. Вы могли видеть мои статьи здесь и здесь.

Пару недель назад знакомый инженер из Wiren Board предложил мне необычный проект: попробовать их оборудование со стороны пользователя – неинженера. Программирование я знаю на уровне вуза, с Linux близко никогда не сталкивался. И умным домом пользовался только в виде китайских лампочек и розеток, управляемых из приложения производителя.

Мне выслали тестовый "чемодан" с основным оборудованием Wiren Board, на котором я попробую настроить несложную автоматизацию. Я сразу решил, что не буду заморачиваться с Linux и текстовыми скриптами, а воспользуюсь средой визуального программирования Node-RED (кстати, разработанной IBM). Разработчики обещают, что Node-RED позволит быстро настроить умный дом через интерфейс браузера. Посмотрим, так ли это окажется на практике.

Примечание инженера Wiren Board: часто пишут, что с нашим оборудованием сложно разобраться непрограммисту. Мы это постепенно исправляем, и решили проверить, стало ли лучше. Для этого закинули наш стандартный демо-чемодан новичку в умных домах (прости, Дмитрий 🙂), показали, где у нас лежит документация, и дали контакт техподдержки. Ниже опыт самого Дмитрия, а в конце будет второе небольшое примечание от меня.

Волшебный чемоданчик

Я получил демонстрационный чемодан Wiren Board в третьей версии. Подробное описание можно найти на официальном сайте.

Контроллер Wiren Board 7 я подключил кабелем LAN к домашнему роутеру, контроллер автоматически получил IP-адрес, по нему можно обращаться к web-интерфейсу. IP-адрес я посмотрел в интерфейсе маршрутизатора.

В чемодане уже настроены несколько сценариев автоматизации: контроль питания и повышенного энергопотребления, диммирование ламп накаливания и вентилятора, мониторинг качества воздуха, мониторинг водоснабжения и протечек. Этим возможности не ограничиваются, можно дописать свои сценарии. Но стандартный способ для этого – текстовый движок правил. А я постараюсь сделать всё через визуальное программирование.

Но сначала попробую то, что уже есть.

Преднастроенные сценарии можно запускать разными способами.

Первый способ – физический. Три имеющиеся кнопки и различные датчики позволяют выполнить все упомянутые сценарии. Второй способ – нажимая кнопки в web-интерфейсе.

Я протестировал защиту от протечек на основе модуля WB-MWAC. К выходу модуля подключены датчик протечки, кнопка Кран, счетчик воды с двигателем, имитирующим поток.

После нажатия на кнопку Кран счетчик начинает вращаться, через него как бы проходит поток жидкости. Сама кнопка Кран начинает подсвечиваться красным. Потом имитируем протечку: касаемся мокрым пальцем датчика протечки, после чего поток останавливается, кнопка начинает мигать, а модуль контроля протечек - противно пищать. Для сброса аварии (утечка устранена) достаточно снова нажать кнопку Кран.

Ниже я попробую сделать подобный сценарий с помощью Node-RED.

Чтобы мне ничего не мешало, отключу встроенные сценарии. Для этого сначала нужно перейти в режим Администратор в пункте меню Настройки - Права доступа. При этом в правом верхнем углу интерфейса появится красное обозначение административного уровня доступа.

И после этого появится пункт меню Правила, где их можно изменять, удалять и программировать новые:

Обновление ПО и прошивки

Как я прочитал в инструкции, Node-RED мне придётся установить самому. А перед этим лучше обновить обновить ПО контроллера и, на всякий случай, прошивки устройств. Здесь не обойтись без консоли, нужно подключиться к Wiren Board через SSH. Весь процесс подключения хорошо описан здесь, там же указаны логин и пароль по умолчанию. 

При обновлении было выведено сообщение о наличии новой версии конфигурационного файла. Поскольку конфигурационные файлы могут редактироваться под параметры конкретного чемодана (например, коэффициент коррекции аварийной мощности вентилятора), я оставил старую конфигурацию.

Наконец, я выполнил обновление прошивки устройств, для некоторых действительно появились новые версии.

Установка Node-RED

Следующий этап – установка визуальной среды Node-RED на контроллер Wiren Board. Весь процесс описан в руководстве.

Возник «подводный камень»: в окно mcedit под OpenSSH и Windows текст вставляется правым кликом мышью с зажатым Shift.

В результате сервис Node-RED успешно стартовал.

Затем я установил рекомендованный модуль node-red-contrib-wirenboard, после чего настроил соединение MQTT. Все процессы хорошо описаны в руководстве.

Запускаем Node-RED на демонстрационном чемодане

Для работы с нодами (узлами) Wiren Board под Node Red я нашёл небольшой обучающий видеоролик от WirenBoard SetPoint. 

Тестируем датчик протечки жидкости

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

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

В случае аварии лента загорается красным, контроллер противно пищит, включается вентилятор вытяжки.

Поехали!

Первое, что я сделал – включил отладку датчика протечки WB-MWAC. Я взял ноду wb-input, настроил в ней сенсор F1 на модуле WB-MWAC и подключил ноду debug. При срабатывании сенсора автоматически запускался писк контроллера, поэтому я сразу же добавил кнопку с нодой inject, отключающей писк. Достаточно послать 0 на ноду wb-out с выставленным устройством Alarm на WB-MWAC.

Я приложил мокрый палец к датчику, после чего успешно получил значение 1, указывающее на срабатывание.

Переходим к вытяжке. Сначала я сделал две кнопки, отсылающие 0 или 100 на вентилятор (модуль WB-MDM3, Channel 2). Значение 100 соответствует полной скорости, 0 – остановке.

Следующий шаг – две кнопки, выставляющие красный или зеленый цвет ленты. Сначала я посмотрел, как правильно выставить цвет. Для этого взял 5-секундную метку времени inject, опрашивающую подключенные устройства. Затем подключил к ней ноду wb-get и выставил четыре параметра модуля WB-MRGBW (RGB Palette, Hue, Saturation, Brightness). А затем через web-интерфейс выбирал красный или зеленый оттенок.

Для красного цвета надо выслать на светодиодную ленту значение палитры RGB Palette, равное "255;0;0", а для зеленого - "0;128;0". Кнопки отлично работали, лента переключала цвета.

Переходим к финальному этапу. Я установил ноду wb-out с сенсором протечки F1, от которой сделал ветвление на 1 вверх и на 0 вниз. Затем просто копировал уже имеющиеся ноды, которые я добавил ранее. Это быстрее, чем их заново прописывать.

По ветвлению 1 (мокрый палец на датчике) я включаю ленту, выставляю красный цвет, раскручиваю вытяжку на 100%.

По ветвлению 0 (датчик не фиксирует протечки) я включаю ленту, выставляю зеленый цвет, останавливаю вытяжку.

На практике все сработало успешно. Ура!

Заключение

Как показал тест, для базовой автоматизации на основе Wiren Board и Node-RED знания в области Linux не потребовались. Для программирования в интерфейсе Node-RED хватает школьных навыков использования алгоритмов.

Преимущество Wiren Board в том, что сервер Node-RED и контроллер умного дома оказываются одним устройством. То есть достаточно приобрести Wiren Board 7 с необходимыми модулями и датчиками, и на нём же развернуть Node-RED. Никаких дополнительных систем или компьютеров не потребуется.

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

К сожалению, полностью без командной строки Linux обойтись не удалось, поскольку развертывание Node-RED требует запуска SSH. Но процедура эта разовая, смириться можно. А вообще хотелось бы увидеть возможность покупки Wiren Board 7 с уже установленным Node-RED.

Что понравилось:

  • Развертывание Node-RED выполняется напрямую на Wiren Board 7, дополнительных систем не требуется
  • Хорошо документированный процесс установки и настройки, обучающие видео
  • Удобный набор нодов (узлов) под Wiren Board 7

Что не понравилось:

  • При установке пару раз пришлось обращаться к командной строке Linux через SSH
  • Нельзя купить Wiren Board 7 сразу с установленным Node-RED

Примечание инженера Wiren Board: свежий взгляд Дмитрия дал нам пару идей, как сделать жизнь пользователей проще. Уже поставили задачу программистам, чтобы Node-RED можно было установить кнопкой из веб-интерфейса. Снова вспомнили про обновление прошивки контроллера и периферийных устройств из веб-интерфейса.

Пожалуйста, напишите в комментариях, был ли вам интересен наш эксперимент, и стоит ли продолжать. Пока что идея для следующей статьи – собрать более сложную автоматизацию и организовать для неё интерфейс. Заодно проверим, насколько велик запас производительности у Wiren Board 7. А если у вас есть другие вопросы, пишите их в комментариях, – постараемся осветить и их.


Проект весьма замечательный. Продолжать однозначно стоит, т.к. интерес к этой теме постоянно растет. Для многих это в диковинку. А такие тестировки мало того, что и освящают тему, так ещё и показывают наглядно доступноть для простых обывателей.
Спасибо, скоро сделаем обзорный материал по самым популярным сценариям Node-RED на Wiren Board
Интересная статья, с удовольствием ознакомился бы с аналогичным материалом.
спасибо за отзыв!
Отличный подход!
Золотая середина между проприетарными и DYI решениями. Первые - дорого и сильно ограниченно, (зато работает) второе - свобода выбора, и постоянный бой с бибилиотеками и отвалами.
Спрут позволяет без проблем интегрировать WB7 с помощью специальной платы установленной в WB7. Это экономит кучу времени на настройку правил, а уж про управление голосом вообще можно было только мечтать.
Wiren Board 7 и сопутствующие устройства предоставляют возможность практически неограниченной автоматизации вплоть до среднего уровня. Прошу вас не останавляваться на достигнутом. Удобство веб интерфейса для неподготовленного пользователя - это золотая жила. Почаще садите ламеров за настройку алгоритмов автоматизации, и не стесняйтесь делать дубликаты настроек в разных местах интерфейса, чтобы он стал интуитивнее. Не забудьте сделать умный поиск по интерфейсу настроек, к этому многие привыкли.
Разумеется интеграция Node Red или даже HA, MQTT и прочей IoT обвязки галочками, как у keenetic, к примеру, сильно повысит спрос на вашу продукцию.
Мне предстоит автоматизация нового дома (отопление с ШИМ насосами, вентиляция с ШИМ вентиляторами, диммируемое освещение, рольставни, безопасность протечек и газа), и мой выбор пал на WB7 + Спрут, потому как - золотая середина.
спасибо за отзыв!

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