На объекте собрана система мониторинга на оборудовании WirenBoard, на отдельном компьютере установлено ПО SimpleSCADA которое через локальную сеть получает данные о состоянии устройств подключенных к контроллеру WB, в то же время есть возможность через СКАДА управлять освещением и т.д.
Создали через двигатель правил виртуально устройство которое через ИК-команды отправляемые с WB-MIR управляет кондиционером, и через физический датчик подключенный к контроллеру отображает температуру воздуха северной в Интерфейсе контроллера. Далее создали группу устройств с параметрами визуального устройства в “Шлюзе MQTT - OPC UA” чтобы прокинуть все в СКАДА, однако как бы не меняли параметры в шлюзе всегда видим в системном журнале сообщение формата [wb-mqtt-opcua] ERROR: [OPCUA] Control is not found ‘ServerClimateController/state’
В чем может быть причина?
для пробы попробовал удалить созданную вручную группу с каналами в Шлюзе MQTT - OPC UA и перезапустить сервер wb-mqtt-oupua через ssh, по итогу при повторном запуске сервис автоматически создал группу и все каналы виртуального устройства. Однако добавив все в СКАДА в системном журнале WB появились новые сообщения об ошибке:
[wb-mqtt-opcua] ERROR: [OPCUA] Variable node ‘ServerClimateController/turnOff’ read error: Control “turnOff” of device “ServerClimateController” is incomplete @ wblib/control.cpp:272
[wb-mqtt-opcua] ERROR: [OPCUA] Variable node ‘ServerClimateController/setTemp2’ read error: Control “setTemp2” of device “ServerClimateController” is incomplete @ wblib/control.cpp:272
Не пойму что делаем не так
Добрый день.
Тут довольно интересный момент. Подпишитесь пожалуйста на все (на корневой топик и все нижние) созданное виртуальное устройство и покажите результаты
root@wirenboard-AFDDAM35:~# mosquitto_sub -t ‘/devices/ServerClimateController/controls/orientation’ -v
/devices/ServerClimateController/controls/orientation 0
root@wirenboard-AFDDAM35:~# mosquitto_sub -t ‘/devices/ServerClimateController/controls/state’ -v
/devices/ServerClimateController/controls/state 2
root@wirenboard-AFDDAM35:~# mosquitto_sub -t ‘/devices/ServerClimateController/controls/leftStatus’ -v
/devices/ServerClimateController/controls/leftStatus 1
root@wirenboard-AFDDAM35:~# mosquitto_sub -t ‘/devices/ServerClimateController/controls/rightStatus’ -v
/devices/ServerClimateController/controls/rightStatus 0
root@wirenboard-AFDDAM35:~# mosquitto_sub -t ‘/devices/ServerClimateController/controls/temperature’ -v
/devices/ServerClimateController/controls/temperature 20.5
Топики:
/devices/ServerClimateController/controls/turnOff
/devices/ServerClimateController/controls/setTemp1
/devices/ServerClimateController/controls/setTemp2
/devices/ServerClimateController/controls/setTemp3
/devices/ServerClimateController/controls/setTemp4
Ничего не выдают, это кнопки.
Удобнее сразу
mosquitto_sub -v -t '/devices/ServerClimateController/#'
там важнее подтопики, такие как /meta
root@wirenboard-AFDDAM35:~# mosquitto_sub -v -t ‘/devices/ServerClimateController/#’
/devices/ServerClimateController/meta/driver wb-rules
/devices/ServerClimateController/controls/leftStatus 1
/devices/ServerClimateController/controls/leftStatus/meta {“order”:10,“readonly”:true,“title”:{“en”:“Левый кондиционер включен”},“type”:“switch”}
/devices/ServerClimateController/controls/leftStatus/meta/type switch
/devices/ServerClimateController/controls/leftStatus/meta/order 10
/devices/ServerClimateController/controls/leftStatus/meta/readonly 1
/devices/ServerClimateController/controls/orientation 0
/devices/ServerClimateController/controls/orientation/meta {“order”:0,“readonly”:true,“title”:{“en”:“Текущий кондиционер”},“type”:“value”}
/devices/ServerClimateController/controls/orientation/meta/type value
/devices/ServerClimateController/controls/orientation/meta/order 0
/devices/ServerClimateController/controls/orientation/meta/readonly 1
/devices/ServerClimateController/controls/rightStatus 0
/devices/ServerClimateController/controls/rightStatus/meta {“order”:11,“readonly”:true,“title”:{“en”:“Правый кондиционер включен”},“type”:“switch”}
/devices/ServerClimateController/controls/rightStatus/meta/type switch
/devices/ServerClimateController/controls/rightStatus/meta/order 11
/devices/ServerClimateController/controls/rightStatus/meta/readonly 1
/devices/ServerClimateController/controls/setTemp1/meta {“order”:102,“readonly”:false,“title”:{“en”:“Включить на 18”},“type”:“pushbutton”}
/devices/ServerClimateController/controls/setTemp1/meta/type pushbutton
/devices/ServerClimateController/controls/setTemp1/meta/order 102
/devices/ServerClimateController/controls/setTemp1/meta/readonly 0
/devices/ServerClimateController/controls/setTemp2/meta {“order”:103,“readonly”:false,“title”:{“en”:“Включить на 19”},“type”:“pushbutton”}
/devices/ServerClimateController/controls/setTemp2/meta/type pushbutton
/devices/ServerClimateController/controls/setTemp2/meta/order 103
/devices/ServerClimateController/controls/setTemp2/meta/readonly 0
/devices/ServerClimateController/controls/setTemp3/meta {“order”:104,“readonly”:false,“title”:{“en”:“Включить на 20”},“type”:“pushbutton”}
/devices/ServerClimateController/controls/setTemp3/meta/order 104
/devices/ServerClimateController/controls/setTemp3/meta/readonly 0
/devices/ServerClimateController/controls/setTemp3/meta/type pushbutton
/devices/ServerClimateController/controls/setTemp4/meta {“order”:105,“readonly”:false,“title”:{“en”:“Включить на 21”},“type”:“pushbutton”}
/devices/ServerClimateController/controls/setTemp4/meta/type pushbutton
/devices/ServerClimateController/controls/setTemp4/meta/order 105
/devices/ServerClimateController/controls/setTemp4/meta/readonly 0
/devices/ServerClimateController/controls/state 2
/devices/ServerClimateController/controls/state/meta {“order”:0,“readonly”:true,“title”:{“en”:“Состояние”},“type”:“value”}
/devices/ServerClimateController/controls/state/meta/type value
/devices/ServerClimateController/controls/state/meta/order 0
/devices/ServerClimateController/controls/state/meta/readonly 1
/devices/ServerClimateController/controls/temperature 19.125
/devices/ServerClimateController/controls/temperature/meta {“order”:110,“readonly”:true,“title”:{“en”:“Температура”},“type”:“value”,“units”:“deg C”}
/devices/ServerClimateController/controls/temperature/meta/type value
/devices/ServerClimateController/controls/temperature/meta/units deg C
/devices/ServerClimateController/controls/temperature/meta/order 110
/devices/ServerClimateController/controls/temperature/meta/readonly 1
/devices/ServerClimateController/controls/turnOff/meta {“order”:101,“readonly”:false,“title”:{“en”:“Выключить”},“type”:“pushbutton”}
/devices/ServerClimateController/controls/turnOff/meta/type pushbutton
/devices/ServerClimateController/controls/turnOff/meta/order 101
/devices/ServerClimateController/controls/turnOff/meta/readonly 0
Так, похоже понятно.
А если сменить тип топика (контрола) на switch?
pushbutton не имеет состояния, он только генерирует события.
Изменить само виртуально устройство или речь идет о настройки Шлюза OPCUA?
Само виртуальное устройство.