Интеграция SmartWeb и Wirenboard 6
Полезные ссылки:
Настройка CAN
- Откройте веб-интерфейс, переключите порт RS-485/CAN в режим CAN: На вкладке Hardware Modules Configuration выберите настройки RS485-2/CAN interface config, выберите Module type CAN interface и нажмите кнопку Save.
- (Вариант 1): В веб-интерфейсе - Settings - Configs - Network Interface Configuration выбрать пункт «Interface can0» - Сделать «Interface can0» = CAN
- (Вариант 2): Либо добавить в конец файла
vim /etc/network/interfaces
следующие строки, если их нет:allow-hotplug can0 iface can0 can static bitrate 20000
Установка драйвера wb-mqtt-smartweb
Этот пакет нужен для того, чтобы любые датчики, доступные в MQTT на Wirenboard, представить в виде сенсоров виртуального контроллера на CAN-шине, которые можно использовать в работе реальных контроллеров SmartWeb.
Кроме того, этот драйвер позволяет вытащить показания программ SmartWeb в MQTT шину Wirenboard 6, с возможностью их чтения и изменения.
Это потом позволит использовать SmartWeb во всех автоматизациях, которые работают с Wirenboard 6.
Техническое описание здесь: https://github.com/wirenboard/wb-mqtt-smartweb
- Выполнить следующую команду:
apt update && apt install wb-mqtt-smartweb
- Положите в папку файл с шаблоном комнаты:
cd /etc/wb-mqtt-smartweb.conf.d/classes
wget http://teplomonitor.ru/documents/ROOM_DEVICE.json
Настройка маппинга датчиков из WB6 в SmartWeb
- Открываем Configs, там
/etc/wb-mqtt-smartweb.conf
(SmartWeb Driver Configuration)
- Если нет еще контроллера, добавляем, нажав «+ Virtual SmartWeb Controller». Можно иметь несколько виртуальных контроллеров.
- «Controller ID» ставим любой свободный ID контроллера на шине CAN, можно оставить по-умолчанию 204
- Если нет мэппинга, добавляем. Максимально на один виртуальный контроллер можно иметь 32 датчика.
- Device Id/Control Id пишем [Device]/[Control], где [Device] и [Control] брать из полей со страницы Settings → MQTT Channels, напр. «noolite_rx_0x6276/temperature» или «hwmon/CPU Temperature»
- Sensor index - ставим по-порядку, начиная с 1. Максимум 32.
- Value timeout (minutes) - время отсутствия новых значений показания датчика, после которого в SmartWeb будет отправляться показание «обрыв датчика». Полезно при работе с радиоканальными датчиками, которые шлют значения раз в час, тогда надо поставить 120 мин, т.е. даем штатно «пропасть» одному значению.
- Не забываем нажать Save!
- В сети SmartWeb этот контроллер появляется как контроллер SmartWeb External Controller с ID который мы указали в настройках, см. выше. Используйте встроенный в веб-интерфейс SmartWeb "Конфигуратор", чтобы привязать датчики Wirenboard 6 к входам программ на SmartWeb. Заводить программы на Wirenboard 6 - нельзя.
- В конце концов сделать тест на перезагрузку - выключить и включить питание WB6 и SmartWeb и дождаться когда датчики появятся снова.
Работа с MQTT топиками
При старте драйвера, создается Device с именем «sw [тип программы] [ID программы]», создаются топики вида:
/devices/sw [тип программы] [ID программы]/controls/[имя параметра]
Примеры:
/devices/sw OUTDOOR_SENSOR 1/controls/outdoorSensor
/devices/sw BOILER 4/controls/flowSensor
/devices/sw BOILER 4/controls/boilerPump
На данный момент, поддерживаются только программы «Комнатное устройство», остальное будет добавляться шаблонами по необходимости.
Интеграция в Node-RED
Ранее, для этой интеграции можно было воспользоваться Node-RED. Если вам необходимо, можете увидеть, как это делалось, в этой статье: SmartWeb -> MQTT (WB6) через Node-RED