Умный Дом Wirenboard — инструкция по первой настройке - «Умный Дом и решения»
- Vance
- 30-сен-2020, 20:19
- 0 комментариев
- 1 152 просмотров
Я достаточно много пишу про проектирование систем Умный Дом на оборудовании Wirenboard, выбор и подключение модулей, а про настройку ещё ни разу не писал. Эта статья — небольшое руководство на тему первого включения оборудования и базовой настройки.
Начинаем, как водится, с коробки, в которой приезжает оборудование.
У меня есть следующие модули Wirenboard:
Я писал обо всех этих модулях и о том, в каких случаях они используются, в этой статье.
Комплектация у всех устройств простая, почти везде это только само устройство. Ссылка на полную инструкцию написана на модуле. Это правильно, так как инструкция большая, к тому же, может дорабатываться, печатать её и складывать, чтобы поместилась в каждую коробочку, нет смысла. К контроллеру Wirenboard в комплекте идёт маленькая клеммная отвёртка (всегда очень уместно, у меня коллекция таких из разных устройств). Только в комплекте с модулей измерения мощности инструкция по установке токоизмерительных трансформаторов — тоже правильно, там есть определённые тонкости, на которые важно обращать внимание при подключении.
Модули, название которых начинается с WBIO, подключаются к контроллеру по шине i2c, они пристыковываются к контроллеру справа. На контроллере и всех модулях такого типа слева штекеры, а справа отверстия для соединения.
Сразу соединяю между собой контроллер и модули WBIO.
Остальные модули подключаются к контроллеру по шине modbus RS-485, вот они, пока не подключенные:
Подключаем контроллер Wirenboard с подключенными к нему модулями к роутеру кабелем, через блок питания подключаю питание 12 вольт. В контроллере Wirenboard 6.6 и предыдущих на левом торце есть разъём для подключения блока питания. Начиная с Wirenboard 6.7 этот разъём убрали, так как при установке в щите он обычно не используется, питание подключается через клеммник сверху слева на контроллере.
Контроллер по умолчанию получает IP адрес по DHCP, надо выяснить, какой адрес ему присвоился. Проще всего это сделать, посмотрев список подключенных устройств в web-интерфейсе роутера. Сразу вижу устройство с адресом 192.168.1.8.
Далее набираем этот адрес в браузере и попадаю в web интерфейс контроллера.
Это главная страница (Home), на неё мы впоследствии выведем основные элементы управления, которые называются виджеты. Также виджеты добавляются вручную на панели управления (Dashboards) и в комнаты (Rooms). Про виджеты и их распределение по разным страницам поговорим позднее.
Сразу перейдём на вкладку Devices и посмотрим доступные параметры устройств:
Видим температуру процессора и платы контроллера, напряжение питания, IP адреса разных интерфейсов, встроенные в контроллер выходы. A1, A2, A3, A4 — это четыре клеммы на на контроллере, они могут быть выходами (дискретными) или входами (дискретными или аналоговыми).
Vout — питание для шины modbus, 5v out — 5-вольтовый выход для датчиков 1-wire. То есть, с интерфейса контроллера мы можем перезагружать все подключенные по modbus устройства, а также отключать их питание при необходимости. Надо помнить, что максимальный ток выхода Vout — 1 ампер, для питания всех устройств этого может быть недостаточно. Мощность потребления каждого модуля можно найти в документации, ток потребления — это мощность, поделённая на напряжение питания. В контроллере Wirenboard 6.7 два выхода Vout, удобно для раздельного подключения питания двух шин modbus и раздельного питания, например, модулей в щите и шины датчиков.
К контроллеру я сразу подключил датчик температуры 1-wire, в интерфейсе отобразился его номер и температура (25,562 градуса).
Как всегда при начале работы с устройством хочется обновить его прошивку. В случае каких-то проблем первое, что спросит техподдержка, это последняя ли у меня версия прошивки. Способы обновления прошивки и ссылки для скачивания последней версии на странице Обновление прошивки. Вот ссылка на файлы прошивок: http://fw-releases.wirenboard.com/?prefix=fit_image/stable/
Файл прошивки весит примерно 175 мегабайт. Обновление простое: в разделе Settings нажимаем на кнопку Firmware Update и выбираем скачанный на компьютер файл прошивки. Обновление прошивки заняло 5 минут, ещё пару минут перезагрузка контроллера.
В правом верхнем углу интерфейса надпись Connected или Disconnected показывает, есть ли связь с контроллером в настоящий момент. На время перезагрузки контроллера он отключен.
Далее переходим к настройке подключенных модулей по шине i2c. В меню выбираем Config — Hardware Modules Configuration.
Internal Slot — три слота для установки модулей внутрь самого контроллера.
External I/O Modules — 8 слотов для модулей вода-вывода, которые пристыковываются к контроллеру.
RS485 — настройка двух портов RS485. Их можно отключить, второй порт можно сделать CAN.
W1 и W2 — либо подключение 1-wire датчиков, либо дискретные входы.
Mezzanine board — модули аккумуляторов.
В каждом пункте выпадающее меню, из которого выбираем подключенные у нас модули. Не забываем нажать сверху на кнопку Save.
Для модулей 1, 2 и 3 я выбрал подключенные у меня три модуля: 14 дискретных входов, 8 релейных выходов и 4 шторы. После сохранения переходим в пункт Devices.
В разделе Discrete I/O появилось множество новых элементов:
Элементы с EXT1_IN1 по EXT1_IN14 — это дискретные входы модуля WBIO-DI-WD-14. EXT2 — это 8 реле модуля WBIO-DO-R10-8. EXT3 — это модуль управления шторами WBIO-DO-R10-4.
На каждом выходе модуля штор два реле — одно (DIR) отвечает за направление движения привода, второе (ON) отвечает за подачу питания на вход реле DIR. То есть, питание подаётся либо для вращения привода в одну сторону, либо в другую, либо вообще не подаётся. Это сделано для того, чтобы избежать подачи питания на оба выходных контакта одновременно, это может сломать электропривод.
При замыкании входа модуля WBIO-DI-WD-14 на клемму iGND напротив соответствующего входа появляется галочка. Выходами можно управлять из интерфейса.
Модули, подключаемые по modbus, настраиваются в пункте меню Configs — Serial Device Driver Configuration.
У каждого модуля на шине modbus есть свой адрес. Это цифра от 1 до 247. На каждом модуле написан адрес, записанный в него производителем. У датчика WB-MSW на фото ниже видно номер 117.
Выбираем порт RS485-1, на который я подключил модули, нажимаем кнопку + Serial Device, выбираем в выпадающем списке модель датчика, вводим его номер 117. Устройство добавлено.
Можно нажать кнопку Properties и включить дополнительные поля Enable Device и Device Name.
Устройства, которые есть в списке доступных — это те, драйверы которых присутствуют в прошивке. Кроме модулей Wirenboard в списке есть счётчики Меркурий, Пульсал, некоторые модули Разумдом. Подключать устройства, драйверы которых отсутствуют в списке, тоже можно, у Wirenboard есть инструкция по самостоятельному написанию драйверов устройств, управляемых по modbus.
Таким же образом я добавил модуль реле WB-MR6C v.2 и модуль управления светодиодной лентой WB-MRGBW.
Порядок подключения модулей на шину и порядок добавления их в контроллер совершенно не важны.
Переходим в пункт меню Devices и видим, что добавленные модули там появились:
Датчик WB-MSW отображает температуру воздуха, уровень CO2, влажность, VOC, уровень звука, освещенность, уровень движения. Можно включать и выключать красную или зелёную подсветку движения или зуммер.
При первом включении датчик СО2 показал мне страшные значения 2500-3500 ppm, что крайне много. Но в инструкции написано, что датчику нужно дать некоторое время на калибровку, пару дней. Действительно, примерно через двое суток датчик стал более-менее стабильно показывать уровень СО2 в комнате с закрытым окном 750-850ppm, с открытым окном 450-600ppm.
Для модуля реле кроме индикации входа есть счётчик срабатываний каждого входа.
В настройках модулей реле есть ползунок Safety timer. На нём выставляется время в секундах, при отсутствии связи между модулем реле и контроллером по шине modbus в течение которого модуль переходит в аварийный режим и отключает все выходы. Но если связь с контроллером на это время пропадёт и выходы выключатся, то при появлении связи они в положение в момент отключения не вернутся. Если выставить значение 0, то таймер работать не будет.
Поскольку контроллер Wirenboard представляет собой компьютер на linux (Debian), многие задачи, возникающие при работе с ним, решаются через терминал по SSH.
Самая распространённая программа для работы с терминалом — PyTTY. Это маленькая и бесплатная программа, скачать её можно по этой ссылке.
Запускаем putty, открывается маленькое окно. В принципе, нам там ничего не нужно, кроме первой вкладки. Вводим в поле IP адрес контроллера, порт (22) и тип подключения (SSH) не меняем, нажимаем Open.
В открывшемся окне вводим логин root и пароль wirenboard.
Если всё верно, видим такое окно:
Сделаем несколько важных настроек, которые могут быть сделаны только через терминал.
Вводим в терминал команду timedatectl, чтобы посмотреть текущие настройки времени.
Видим, что текущее время выставлено верно (контроллер синхронизируется с сервером точного времени), но неверный часовой пояс: сейчас это UTC +0, то есть, время по Гринвичу. Для Москвы и Петербурга должно быть UTС + 3.
Набираем команду timedatectl set-timezone Europe/Moscow
Терминал никак на команду не отвечает. Но мы набираем для проверки timedatectl и получаем ответ, что теперь часовой пояс MSK +3. Есть ещё более короткая команда для отображения текущего времени и часового пояса date
Чтобы получить список всей часовых поясов, набираем команду timedatectl list-timezones
Для проверки работы сервиса синхронизации времени ntp набираем systemctl status ntp
Увидим состояние сервиса, работает ли он. Команда ntpq -p даст информацию о том, какие серверы времени используются.
Вообще, ответы на многие вопросы по работе операционной системы контроллера стоит искать не по запросу «как сделать что-то в Wirenboard» а «как сделать что-то в Debian». Это касается, в частности, настройки времени.
Если ваш контроллер Wirenboard имеет Wi-Fi модуль (это определяется по наличию антенны, выбирается при заказе контроллера), то контроллер может работать в режиме точки доступа (чтобы подключаться к нему), клиента (чтобы он сам подключался по Wi-Fi к основному роутеру) и сразу в обоих режимах.
В режиме, при котором контроллер ловит Wi-Fi от основного роутера с интернетом, а вы со своего устройства подключены к контроллеру, работать связь будет небыстро, лучше избегать такого и подключать контроллер кабелем к роутеру.
Подробно про настройку Wi-Fi написано на этой странице. Надо только добавить, что для редактирования файлов надо в программе putty написать команду mcedit и путь к файлу. В частности, так:
mcedit /etc/network/interfaces
Далее по инструкции вносим в файл необходимые изменения, нажимаем в нижней строке на кнопку Save, затем в нижнем правом углу на Quit.
После настройки контроллера в качестве Wi-Fi клиента в списке подключенных к роутеру устройств появился ещё один контроллер Wirenboard с другим IP адресом.
Обновление прошивки требуется не только для контроллера, но и для подключаемых по rs485 устройств. Для этого надо установить на контроллер утилиту для обновления прошивок командой
dpkg -s wb-mcu-fw-updater || (apt update && apt install wb-mcu-fw-updater)
Затем вводим команды обновления устройств
wb-mcu-fw-updater update-fw /dev/ttyRS485-1 -a117
В конце команды адрес устройства. Перед ним номер порта RS485. На скриншоте видно, что модули с адресами 117 и 69 обновились, модуль 177 обновления не потребовал.
Подробнее про обновление прошивок устройств можно почитать здесь.
Разумеется, web интерфейс имеет смысл закрыть логином и паролем от несанкционированного доступа. По умолчанию вход в интерфейс свободный без какой-либо авторизации.
Подробная инструкция по тому, как это сделать, здесь: Защита паролем.
В меню Devices мы видим все доступные в системе элементы управления и индикаторы со всех подключенных модулей. Чтобы удобно ими управлять, можно создавать виджеты с нужными индикаторами и кнопками, а потом размещать их на панелях управления.
Для начала заходим в Rooms и создаём комнаты, чтобы удобнее было видеть элементы, так как при создании виджетов надо будет сразу выбирать комнаты. Помимо физических комнат (гостиная, спальня и т.д.) удобно сразу делать какие-то служебные комнаты с элементами, которых не надо видеть постоянно, например, контроль протечки, измерение мощности и прочее.
Далее создаём виджеты. Заходим в пункт меню Widgets. Нажимаем Add Widget для добавления виджета.
Пишем название для виджета, выбираем комнату, в которой размещён при настройке элемент, в качестве Template выбираем тип датчика. Я искал датчик СО2, для появления его в списке надо было в качестве template выбрать Generic Sensor.
Создаём виджеты со всеми необходимыми нам элементами. При выборе элемента (пункт Sensor Value) следите за адресом устройства, параметр которого добавляется, чтобы не путать устройства.
Далее настраиваем панели управления — Dashboards. Создаём панели и добавляем на каждую нужные виджеты. Виджеты добавляются в окне редактирования дашборда нажатием иконки с карандашом в квадрате справа от названия дашборда.
Вот редактирование виджетов в дашборде:
Вот дашборд с кнопками управления реле и светодиодной лентой:
Таким образом, мы можем все элементы управления и индикаторы распределять максимально удобно. В пункте меню Settings можно выбрать, какой дашборд будет на вкладке Home, которая отображается при входе в web интерфейс контроллера.
В следующей статье расскажу о настройке взаимодействия входов и выходов контроллера и о скриптах.