Интеграция SmartWeb и Wirenboard 6
Полезные ссылки:
Настройка CAN
- Откройте веб-интерфейс, переключите порт RS-485/CAN в режим CAN: На вкладке Hardware Modules Configuration выберите настройки RS485-2/CAN interface config, выберите Module type CAN interface и нажмите кнопку Save.
- (Вариант 1): В веб-интерфейсе - Settings - Configs - Hardware interfaces configuration
- (Вариант 2):
vim /etc/network/interfaces
Добавить в конец файла следующие строки, если их нет:auto can0 iface can0 inet manual pre-up ip link set can0 type can bitrate 20000 up ifconfig can0 up
Настройка wb-mqtt-smartweb
Этот пакет нужен для того, чтобы любые датчики, доступные в MQTT на Wirenboard, представить в виде сенсоров виртуального контроллера на CAN-шине, которые можно использовать в работе реальных контроллеров SmartWeb.
- Выполнить следующие команды:
apt update
apt install wb-mqtt-smartweb
- Открываем Configs, там
/etc/wb-mqtt-smartweb.conf
(SmartWeb Driver Configuration)
- «SmartWeb Controller ID» ставим любой свободный ID контроллера на шине CAN, можно оставить по-умолчанию 204
- Если нет мэппинга, добавляем, если есть - изменяем. Device Id/Control Id пишем [Device]/[Control], где [Device] и [Control] брать из полей со страницы Settings → MQTT Channels, напр. «noolite_rx_0x6276/temperature» или «hwmon/CPU Temperature»
- Sensor - ставим по-порядку, начиная с 1
- SmartWeb output mapping point - ставим по-порядку, начиная с 0
- Value timeout (minutes) - время отсутствия новых значений показания датчика, после которого в SmartWeb будет отправляться показание «обрыв датчика». Полезно при работе с радиоканальными датчиками, которые шлют значения раз в час, тогда надо поставить 120 мин, т.е. даем штатно «пропасть» одному значению.
- Не забываем нажать Save!
- В сети SmartWeb этот контроллер появляется как контроллер SmartWeb X1 с ID который мы указали в настройках, см. выше. Используйте встроенный в веб-интерфейс SmartWeb "Конфигуратор", чтобы привязать датчики Wirenboard 6 к входам программ на SmartWeb. Заводить программы на Wirenboard - нельзя.
- В конце концов сделать тест на перезагрузку - выключить и включить питание WB6 и SmartWeb и дождаться когда датчики появятся снова.
Настройка интеграции SmartWeb -> MQTT (WB6) через Node-RED
Эта настройка позволяет вытащить показания программ SmartWeb в MQTT шину Wirenboard 6, с возможностью их чтения и изменения.
Это потом позволит использовать SmartWeb во всех автоматизациях, которые работают с Wirenboard 6.
Не устанавливайте ничего сверх того, что здесь описано, т.к. Node-RED легко может переполнить небольшое хранилище (980 МБ) на WB6.
1. Устанавливаем Node-RED
(источник) https://wirenboard.com/wiki/Node-Red
Установка
Для установки Node-RED на Wiren board 6 подключитесь к контроллеру по SSH и введите в консоль несколько команд:
Настраиваем репозиторий Node JS
curl -sL https://deb.nodesource.com/setup_12.x | bash -
Устанавливаем необходимые компоненты
apt-get install -y nodejs git make g++ gcc build-essential
Запускаем установку Node-RED
npm install -g --unsafe-perm node-red
Создание Сервиса
Для автозапуска Node-RED необходимо настроить сервис. Для этого зайдите в папку /etc/systemd/system/ и создайте файл nodered.service
nano /etc/systemd/system/nodered.service
Затем скопируйте в этот файл:
- nodered.service
[Unit] Description=Node-RED graphical event wiring tool Wants=network.target [Service] Type=simple User=root Group=root WorkingDirectory=/home Nice=5 Environment="NODE_OPTIONS=--max_old_space_size=256" ExecStart=/usr/bin/env node-red $NODE_OPTIONS $NODE_RED_OPTIONS KillSignal=SIGINT Restart=on-failure SyslogIdentifier=Node-RED [Install] WantedBy=multi-user.target
Сохраните изменения Ctrl-O, Enter и закройте файл Ctrl-X.
Теперь для включения сервиса нужно ввести команды:
systemctl enable nodered.service service nodered start
2. Устанавливаем node-red-contrib-socketcan
https://flows.nodered.org/node/node-red-contrib-socketcan
Открываем интерфейс Node-RED - ip_WB:1880
Открываем меню Node-RED → Manage Palette → Install → node-red-contrib-socketcan → Install