Добрый день, имеется modbus устройство которое я пытаюсь опрашивать с помощью wb6, создал json tamplate читать одиночные и составные регистры получается нормально, а вот как быть с массивом регистров (например нужно считать массив из 100 регистров) в документации ответа не нашел.
Собственно созрело 2 вопроса:
Есть ли json конструкция для такого случая?
Есть ли возможность не показывать пользователю эти данные на вкладке Devices, а только через History
culit, добрый день!
К сожалению, нет простого способа сделать то, что вы хотите.
Я бы сделал так: подключил бы устройство к отдельному порту, на котором нет других устройств, опрашиваемых wb-mqtt-serial. По cron-правилу вызывал бы скрипт для чтения и обработки массива регистров (через утилиту modbus_client). Хранил бы где-то значения массива, а в движке правил что-то бы с ним делал.
Возникает еще вопрос)
Есть возможность через web-rules работать с бд sqlite3, если я буду результат опроса хранить именно так?. Может существует что то подобное встроенное?
Встроенной поддержки sqlite3 нет.
Вообще, мне кажется, что ваша задача проще решается вне движка правил и Modbus-драйвера контроллера, каким-нибудь скриптом на питоне или на node.js? или на чем удобно . А взаимодействие с правилами и интерфейсом контроллера организовать через mqtt.
Идея такая: вы создаете виртуальное устройство (defineVirtualDevice), устройству добавляете контролы (смотрите примеры в статье). Для каждого контрола создается MQTT-топик в виде
У меня осталась последняя проблема которую решить никак не удается) Я создал службу которая опрашивает устройство и умеет отправлять\принимать данные по mqqt, я создал виртуальное устройство которое может управлять службой, есть ли возможность закинуть данные сразу в history не показывая их пользователю в виде полей?)
Вопрос решен, тему можно закрывать)
Если кому-нибудь понадобится, то выход очень простой, если нужно считать массив данных как в моем случае ваттметрграмму, то можно создать виртуальное устройство с одним полем value, и скриптом на любом языке работать с modbus, а считаный массив поэлементно отправлять по mqtt в созданное поле виртуального устройства, через равные промежутки времени, тем самым оно попадет в history, а виртуальное устройство останется компактным