Интеграция SmartWeb и Wirenboard 6

  1. Откройте веб-интерфейс, переключите порт RS-485/CAN в режим CAN: На вкладке Hardware Modules Configuration выберите настройки RS485-2/CAN interface config, выберите Module type CAN interface и нажмите кнопку Save.
  2. (Вариант 1): В веб-интерфейсе - Settings - Configs - Network Interface Configuration добавить интерфейс (+) «Interface can0» - Сделать «Interface can0» = CAN, Name = can0, Bitrate = 20000
  3. (Вариант 2): Либо добавить в конец файла
    vim /etc/network/interfaces


    следующие строки, если их нет:

    allow-hotplug can0
    iface can0 can static
    bitrate 20000

Этот пакет нужен для того, чтобы любые датчики, доступные в 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

Если у вас установилась версия меньше чем (1.2.0), то далее добавьте эти файлы шаблонов:

  • Положите в папку файл с шаблоном комнаты:
    cd /etc/wb-mqtt-smartweb.conf.d/classes
    wget http://teplomonitor.ru/documents/ROOM_DEVICE.json
  • Положите в папку файл с шаблоном уличного датчика:
    wget http://teplomonitor.ru/documents/OUTDOOR_SENSOR.json
  • Положите в папку файл с шаблонами котла:
    wget http://teplomonitor.ru/documents/TEMPERATURE_SOURCE.json
    wget http://teplomonitor.ru/documents/TEMPERATURE_GENERATOR.json
    wget http://teplomonitor.ru/documents/BOILER.json
  • Положите в папку файл с шаблонами контура:
    wget http://teplomonitor.ru/documents/CONSUMER.json
    wget http://teplomonitor.ru/documents/CIRCUIT.json
    wget http://teplomonitor.ru/documents/HEATING_CIRCUIT.json
  • Положите в папку файл с шаблоном бассейна:
    cd /etc/wb-mqtt-smartweb.conf.d/classes
    wget http://teplomonitor.ru/documents/POOL.json
  • Положите в папку файл с шаблоном ГВС:
    cd /etc/wb-mqtt-smartweb.conf.d/classes
    wget http://teplomonitor.ru/documents/DHW.json
  • Положите в папку файл с шаблоном Обобщенного реле:
    cd /etc/wb-mqtt-smartweb.conf.d/classes
    wget http://teplomonitor.ru/documents/GENERIC_RELAY.json
  • Открываем Configs, там
    /etc/wb-mqtt-smartweb.conf

    (SmartWeb Driver Configuration)

  1. Если нет еще контроллера, добавляем, нажав «+ Virtual SmartWeb Controller». Можно иметь несколько виртуальных контроллеров.
  2. «Controller ID» ставим любой свободный ID контроллера на шине CAN, можно оставить по-умолчанию 204
  3. Если нет мэппинга, добавляем. Максимально на один виртуальный контроллер можно иметь 32 датчика.
  4. Device Id/Control Id пишем [Device]/[Control], где [Device] и [Control] брать из полей со страницы Settings → MQTT Channels, напр. «noolite_rx_0x6276/temperature» или «hwmon/CPU Temperature»
  5. Sensor index - ставим по-порядку, начиная с 1. Максимум 32.
  6. Value timeout (minutes) - время отсутствия новых значений показания датчика, после которого в SmartWeb будет отправляться показание «обрыв датчика». Полезно при работе с радиоканальными датчиками, которые шлют значения раз в час, тогда надо поставить 120 мин, т.е. даем штатно «пропасть» одному значению.
  7. Не забываем нажать Save!
  8. В сети SmartWeb этот контроллер появляется как контроллер SmartWeb External Controller с ID который мы указали в настройках, см. выше. Используйте встроенный в веб-интерфейс SmartWeb "Конфигуратор", чтобы привязать датчики Wirenboard 6 к входам программ на SmartWeb. Заводить программы на Wirenboard 6 - нельзя.
  9. В конце концов сделать тест на перезагрузку - выключить и включить питание WB6 и SmartWeb и дождаться когда датчики появятся снова.

При старте драйвера, создается 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

На данный момент, поддерживаются только некоторые программы, например «Комнатное устройство», остальное будет добавляться шаблонами по необходимости.

Вы можете синхронизировать работу ваших термостатов (Zigbee, Z-Wave, KNX, Modbus и другие), которые вы можете подключить к Wirenboard, и SmartWeb.

Для этого:

Там нажмите «New…»

Например можете использовать название «room_sync.js».

В качестве текста используйте такой пример:

  1. var swRoomNum = 2; // вставить номер комнаты на SmartWeb
  2.  
  3. var realDevice = "ZIGBEE_THERMOSTAT_1" ; // по образцу вставить строку от вашего реального девайса
  4. var realControl = "roomSetpoint" ; // по образцу вставить строку от вашего реального контрола
  5.  
  6.  
  7.  
  8. // ----------------------------------------------------- Дальше ничего не трогать
  9. var swDevice = "sw ROOM_DEVICE " + swRoomNum ;
  10. var swControl = "roomComfortTemperature";
  11. var swControlId = swDevice +"/"+ swControl ;
  12. var realControlId = realDevice +"/"+ realControl ;
  13.  
  14. defineRule("virtual_whenChanged", {
  15. whenChanged: [swControlId, realControlId], // топики, при изменении которых сработает правило синхронизации
  16. then: function (newValue, devName, cellName) {
  17. log("devName:{}, cellName:{}, newValue:{}", devName, cellName, newValue) // вывод сообщения в лог (В ПРОДАКШНЕ ЗАКОММЕНТИРОВАТЬ!)
  18.  
  19. if (cellName == swControl) { dev[realControlId] = newValue; };
  20. if (cellName == realControl) { dev[swControlId] = newValue; };
  21.  
  22.  
  23. }
  24. });

Поменяйте переменные:

  • swRoomNum - номер комнаты SmartWeb,
  • realDevice - название устройства вашего термостата в Wirenboard
  • realControl - название переменной которая используется вашим термостатом для установки желаемой температуры

О Sprut.hub: https://spruthub.ru/

Его также можно установить на Wirenboard, см. вопрос на портале wirenboard

Необходимо в /mnt/data/makesimple/.SprutHub/data/Templates/MQTT/Custom положить файл sw.json, командой:

wget -P /mnt/data/makesimple/.SprutHub/data/Templates/MQTT/Custom/ http://teplomonitor.ru/documents/sw.json

После этого ребутнуть спрутхаб

Ранее, для этой интеграции можно было воспользоваться Node-RED. Если вам необходимо, можете увидеть, как это делалось, в этой статье: SmartWeb -> MQTT (WB6) через Node-RED

  • каталог/автоматика/управление/smartweb/wirenboard_6.txt
  • Последние изменения: 2024/03/20 15:54
  • admin