Интеграция SCADA FUXA с контроллерами Wiren Board

From Wiren Board
This is the approved revision of this page, as well as being the most recent.
Other languages:
Лого SCADA FUXA

В данном руководстве рассматривается процесс развертывания и настройки веб-ориентированной системы визуализации FUXA для работы с оборудованием Wiren Board через протокол MQTT.

О SCADA FUXA

Пример панели управления FUXA

SCADA FUXA - это современная веб-ориентированная SCADA/HMI-платформа для автоматизации, визуализации процессов и Интернета вещей (IoT).

В зависимости от задач можно установить сервер FUXA непосредственно на контроллер Wiren Board или развернуть его на внешнем ПК/сервере, подключаясь к контроллерам удалённо.

Основной способ обмена данными с контроллерами Wiren Board — встроенный MQTT-брокер. Помимо MQTT, FUXA поддерживает протоколы Modbus RTU/TCP, OPC UA, BACnet, Siemens S7, а также работу с базами данных (SQLite, InfluxDB и др.).

Основные плюсы данной системы по отношению с другими SCADA:

  • интеграция со многими протоколами, включая MQTT, для работы с контроллерами Wiren Board;
  • открытые исходники;
  • бесплатная;
  • удобство работы: Создание дашбордов, настройка логики и управление интерфейсом происходят прямо в браузере (не нужно устанавливать тяжелые десктопные редакторы).

Процесс ознакомления с FUXA состоит из следующих шагов:

  1. Установим FUXA на контроллер.
  2. Выполним первоначальную настройку среды и подключимся к локальному MQTT-брокеру.
  3. Научимся добавлять теги и подписываться на топики.
  4. Создадим первую интерактивную панель управления (выведем температуру CPU и настроим кнопку управления зуммером).

Установка с помощью Docker

Установочный пакет FUXA по умолчанию не идёт в комплекте с контроллером Wiren Board.

Лучше всего использовать Docker для установки с изоляцией сервисов.

Для этого предварительно нужно установить Docker на контроллер — об этом можно прочесть тут:

Далее одной командой установить и запустить FUXA на 1881 порту:

# docker run -d -p 1881:1881 frangoteam/fuxa:latest

После этого решение уже будет запущено и готово к работе - можно переходить к этапу «Запуск конфигуратора и настройка».

Запуск конфигуратора и настройка

После того как вы завершили установку, нужно зайти в конфигуратор для дальнейшего создания панели управления.

Вход в интерфейс

Для настройки системы откройте браузер и введите IP-адрес вашего контроллера с портом 1881:

Переход в режим Editor

По умолчанию открывается режим просмотра. Чтобы начать создание проекта:

  1. В левом нижнем углу нажмите на иконку Три полоски (главное меню).
  2. В открывшемся списке выберите пункт Editor.
  3. Далее появится внешний вид редактора, где нужно найти кнопку конфига в виде шестеренки:

Создание источника данных (подключение брокера MQTT)

Для взаимодействия FUXA с устройствами Wiren Board необходимо добавить подключение к MQTT-брокеру контроллера.

  1. В открывшемся окне настроек выбрать Connections.
  2. Нажмите кнопку «+» в нижней части экрана для добавления нового соединения.
  3. Среди доступных подключений выбрать Mqtt клиент.


Укажите параметры подключения:

Параметр Значение
Name Произвольное имя (например, MQTT WirenBoard)
Type MQTTclient
Enabled Включить (переключатель в положение ON)
Address (mqtt://[server]:[port]) mqtt://127.0.0.1/:1883 (если FUXA на контроллере)

Нажмите OK. Если всё настроено верно, рядом с названием появится зеленый индикатор.

Добавление тегов (подписка на топики MQTT)

Для получения данных от датчиков необходимо настроить теги, привязанные к MQTT-топикам Wiren Board.

Нажмите на иконку «прикрепить» (скрепка/карандаш) рядом с созданным соединением.

Нажмите «+» для добавления тега.

Тег для подписки на топик

Настройка топика: Для указания топика вы можете:

  • ввести путь к топику вручную в формате /devices/ID/controls/CONTROL;
  • или воспользоваться функцией поиска: нажмите на иконку «лупа» (Search topics on broker) и выберите нужный параметр из списка найденных топиков.

В поле Name оставьте введенный автоматически полный путь до топика или введите понятное название (например, Hall_Temp или Buzzer_enable) - данное имя будет использоваться далее только в рамках FUXA.

Далее важно нажать Subscribe, чтобы данный топик сохранился.

Тег для публикации в топик

Для того чтобы публиковать в топик, нужно создать запись другого типа, выбрав "Publish", используя /on топики, например /devices/buzzer/controls/enabled/on.

Далее при желании использовать toggle обязательно нужно указывать маску; например, для /devices/buzzer/controls/enabled/on нужно указать маску 0-го бита.

Создание SCADA-панели

Теперь, когда у нас есть настроенные теги, перейдите на центральный холст редактора для создания визуального интерфейса.

Шаг 1: Добавление индикатора температуры CPU

Выведем на панель текущую температуру процессора контроллера:

  1. В левой панели (библиотека компонентов) выберите виджет Circular Gauge (круглый датчик) и добавьте его на холст. Обратите внимание, что перетаскивание может не работать.
  2. Выделите добавленный компонент, кликнув по нему мышкой.
  3. В правой панели перейдите в свойства (Property) и найдите раздел Variable/Tag.
  4. Выберите из списка ранее созданный MQTT-тег, отвечающий за температуру (например, подписанный на топик /devices/hwmon/controls/CPU Temperature).
  5. При необходимости там же в свойствах настройте минимальное и максимальное значения шкалы (например, Min: 0, Max: 100).

Шаг 2: Добавление переключателя для зуммера (Buzzer)

Теперь добавим элемент для управления встроенным зуммером контроллера:

  1. Из библиотеки компонентов выберите виджет Switch (переключатель) и перетащите его на холст.
  2. Выделите переключатель и откройте его свойства.
  3. В разделе Variable/Tag выберите тег, который вы создали для публикации (топик /devices/buzzer/controls/enabled/on).
  4. Найдите в свойствах компонента параметр Bitmask и обязательно установите его в значение 0. Это позволит переключателю корректно отправлять бинарные команды (1 и 0) в топик.

Запуск и тестирование

Для проверки работы нажмите на иконку «треугольник» (Launch) в верхней панели редактора. Система перейдет в режим исполнения. Проверьте, что индикаторы отображают реальные данные, а кнопки управляют устройствами. Для постоянной работы используйте вкладку Home.

Навигация и прямые ссылки

Открытие страницы по URL

Вы можете настроить автоматическое открытие конкретной страницы (View) через адресную строку:

Обратите внимание: стандартное название страницы (MainView) не работает в ссылках. Рекомендуется переименовать страницу в редакторе на простое имя (например, NewPage).

Дополнительные настройки интерфейса

Кнопки на боковой и верхней панелях

Глобальная навигация настраивается в разделе макета:

Зайдите в Edit Project -> Layout. Вкладка Navigation Side Menu: здесь добавляются кнопки, выбираются иконки и привязываются целевые страницы (View). Для стационарных экранов установите Side Mode в значение Fixed, чтобы меню не скрывалось. Вкладка Header Navigation Bar: здесь настраивается отображение уведомлений об авариях (Alarms).

Кнопки на странице

Для переходов внутри интерфейса можно использовать обычные кнопки из библиотеки компонентов:

В свойствах кнопки выберите событие (Event) -> Click -> Open Page.

Оптимизация для планшетов

Чтобы интерфейс выглядел органично на настенном планшете, используйте функцию браузера «Добавить на главный экран» или специализированное ПО.

Fully Kiosk Browser (Android)

Рекомендуемое приложение для создания профессиональных панелей управления:

Start URL: Укажите прямую ссылку на вашу главную страницу FUXA.

Kiosk Mode: Активируйте для блокировки системных кнопок планшета.

Motion Detection: Настройте включение экрана по камере при приближении человека.

Полезные ссылки

Ссылка на официальный репозиторий разработчиков ПО.

Ссылка на официальный сайт разработчиков ПО.

Поддерживаемые контроллером Wiren Board системы верхнего уровня, приложения, способы программирования, протоколы и устройства
Протоколы
Опрос датчиков и работа с устройствами (в базовой комплектации) 1-WireDLMS/COSEM Modbus RTU/TCP Master ГОСТ МЭК 61107 СПОДЭС (ГОСТ Р 58940-2020)
Опрос датчиков и работа с устройствами (с помощью модулей расширения) KNXeBUSOpenThermZ-WaveZigbee
Опрос контроллера из систем верхнего уровня и с других устройств KNX Modbus RTU/TCP SlaveMQTTOPC UASNMPZabbix МЭК 104SmartWeb (Гидролого)
Через шлюзы DALILoRaWAN
Системы верхнего уровня
Системы мониторинга и SCADA GrafanaHome Assistant IntraHouse IntraSCADASprut.hubMasterSCADANagiosSimpLight SCADARapid SCADASAYMONZabbix iRidium ServerAggreGate ТМИУС КПМажордом SCADA WebDisCo SCADA FUXA
Приложения
Управление с телефона MQTT DashiRidiumHome Assistant Apple HomeДом с АлисойСалют! Умный домМажордом
Голосовые помощники Siri Салют Алиса
Способы программирования
Языки программирования ПЛК FBD, ST, LD, SFC (МЭК 61131-3)
Визуальное программирование Node-RED
Упрощённый текстовый движок правил wb-rules
Сценарии автоматизации без программирования wb-scenarios
Стандартное программирование Python C++ Go Node.js
Протестированные устройства сторонних производителей
Адаптеры протоколов ECODim DALI GW2 Arlight DALI-LOGIC-LITE-PS-x1Lavritech L1 Lite LoRaWAN Шлюз БРШС-РК-485 (РИЭЛТА)
Аудиоресиверы сетевые URRI A1Skirell-Sound
Датчики климата DS18B20 и клоныKvadro 1WIRE-RS485Wellpro WP3066ADAMДаджет MT8057/MT8057SРД MSU21РД MSU24РД MSU34+TLPРД MSU34+THLPЭксис ИВТМ-7 М 3
Датчики присутствия MTDХ62-MB (MTD062-MB, MTD262-MB)
Датчики уровня ЭСКОРТ ДБ-2
Универсальные датчики TESLiOT (BLE)
Диммеры DALI Philio PAD07-RU Uniel UCH-M131RC/0808 Uniel UCH-M141RC/0808 РД DDL04R РД DDL24 РД DDM845R Demid.Net
Домофоны Домофоны координатного типа: VIZIT (ВИЗИТ), Элтис, Цифрал, Техком, Метаком, Beward и др.
Источники питания и ИБП MEAN WELL DRS Series
Кондиционеры

Haier YCJ-A002 Z-Wave ИК-передатчик PAR01-RU • Hisense (ONOKOM-AIR-HS-3-MB-B, ONOKOM-AIR-HS-5-MB-B, ONOKOM-AIR-HS-6-MB-B) • Daikin (ONOKOM-AIR-DK-1-MB-B, ONOKOM-AIR-DK-5-MB-B) • Mitsubishi Electric (ONOKOM-AIR-ME-1-MB-B) • AUX (ONOKOM-AIR-AUX-1-MB-B) • GREE (ONOKOM-AIR-GR-1-MB-B, ONOKOM-AIR-GR-3-MB-B) • MDV (ONOKOM-AIR-MD-1-MB-B, ONOKOM-AIR-MD-3-MB-B) • VRF (ONOKOM-AIR-MD-VRF-MB-B) • TCL (ONOKOM-AIR-TCL-1-MB-B, ONOKOM-AIR-TCL-3-MB-B) • Haier (ONOKOM-AIR-HR-1-MB-B)

Рекуператоры / вентиляция VAKIO City Air 250/500 Komfovent Breezart Lux / Aqua VENTMACHINE Colibri 650 GTC
Контроллеры вентиляции и климата Тепломаш КЭВ-БЛОК-МКDrivent V2
Контроллеры холодильного оборудования Carel BASIC(PYEZ)/EASY(PJEZ) Danfoss EKC 204A1/AK-CC 210 Danfoss EKC 202B Danfoss EKC 202D Danfoss ERC 211/ERC 213/ERC 214 Eliwell IDPlus 974
Метеостанции Сокол-М
Модули ввода-вывода Wellpro WP8026ADAM Wellpro WP8027ADAM Wellpro WP8028ADAM Wellpro WP9038ADAM
Модули реле РД DRB88 Rubetek TZ78 ICP DAS tM-P3R3 ICP DAS LC-103 Uniel UCH-M111RX/0808 Uniel UCH-M121RX/0808
Моторы для штор/Электрокарнизы Akko AM82 Dooya DM35EQ Dooya DT82 WinDeco Somfy SDN (Sonesse и Glydea Series) SunFlower KT82TV Somfy RS485 RTS transmitter Беспроводные Dooya/Somfy Dauerhaft CM5 Dauerhaft Roll 35/45 A-OK AM68 (LM100) A-OK AM35
Панели управления Cityron ПУ-3 (Modbus) Sonoff NSPanel (fw NXPanel) EKF PRO-Screen Skirell Panel
Системы защиты от протечек KAPLESTOP Ensystec Leak Protect
Считыватели карт (для СКУД) Wiegand
Счётчики воды Пульсар Пульсар-М Счётчики с импульсным выходом
Счётчики тепла Пульсар
Счётчики электроэнергии CSQ PD561Z-9SY Peacefair PZEM-016 Eastron SDM120M Eastron SDM220M Меркурий 200 Меркурий 201 Меркурий 203.2T Меркурий 206 Меркурий 230 Меркурий 231 Меркурий 234 Меркурий 236 Милур 104 Милур 105 Милур 107 Милур 305 Милур 307 Нева МТ 113 Нева МТ 123 Нева МТ 124 Нева МТ 323 Нева МТ 324 Энергомера CE301 Энергомера CE102M Энергомера CE303 Энергомера CE308 Милур 107S
Термостаты BAC-002ALN BAC-6000ALN BAC-6000ELNW BHT-6000 Series BHT-006 Series Heatit Z-TEMP2 Siemens RDF302 Ridan Greencon-R Welrok az ENGO EFAN
Управление двигателями (преобразователи частоты) Vacon/Danfoss 10 Danfoss VLT Microdrive FC51 T13-400W-12-H/T13-750W-12-H
Управление шаговыми двигателями Овен (Meyertec) MST-24 Rtelligent NT60
Прочее TasmotaESPHome
Устройства с аналоговым или цифровым выходом
Низковольтная нагрузка Реле с управляющим напряжением 12–24 В Светодиоды Низковольтные вентиляторы Низковольтные сигнальные лампы
Датчики с аналоговым выходом Датчики температуры, давления и другие, имеющие на выходе ток или напряжение
Счётчики с импульсным выходом Счётчики электроэнергии, воды, тепла и другие с импульсным выходом
Устройства с выходом «открытый коллектор» Устройства с выходом «открытый коллектор»
Устройства с питанием 220 В Лампы Контакторы и другое оборудование с питанием от 220 В

Поддерживаемые , но непроверенные в лаборатории Wiren Board устройства сторонних производителей (шаблоны от сообщества)
Опрос датчиков и работа с устройствами (в базовой комплектации) DMX-512
Адаптеры протоколов HDL KNX-DALI Gateway M/DALI.1
Датчики климата RLDA NL-3DPAS-M RLDA NL-1S111Рэлсиб ДВТ-05 XY-MD03/XY-MD04
Датчики расстояния WitMotion WT53R-485
Диммеры РД DDL84R-V
Источники питания и ИБП ИБП Импульс Мультиплекс
Конвекторы Varmann QTherm
Рекуператоры / вентиляция Рекуператор VAKIO Base Smart ПВУ Royal Clima Soffio Primo RCS-350-PRoyal Clima VENTO Systemair CorrigoПриточный клапан Vakio OpenAir
Метеостанции Netatmo Urban Weather Station
Коллекторы датчиков R4DCB08
Контроллеры вентиляции и климата Mautomatics JL204C5 (Breezart 550 Lux) GTC (General Thermo Controllers) Syberia 5.0 SystemAir VR 300 Royal Clima MACS-RC-420MBTurkov Zenit HECO 550E
Модули реле R4D3C32
Счётчики воды Элехант СВД-15 Элехант СВД-20
Счётчики электроэнергии Меркурий 204 Меркурий 208 Меркурий 238 ABB SCU100
Счетчики тепла ВИС.Т2-ТС Тепловычислитель ТМК-Н
Термостаты Hessway
Увлажнители CAREL Humisonic Xiaomi Humidifier
Прочее DIYShelly UNI Renke RS-LDO-N01-2