Wb-rules: как обновлять виртуальное устройство из внешнего Python-драйвера при readonly контролах

Добрый день!
Есть виртуальное устройство (defineVirtualDevice) и внешний Python-драйвер, который обновляет его контролы. Контролы хочется оставить readonly: true и при этом получать whenChanged.

Как корректно обновить значения в топиках? Можно ли напрямую писать в ячейку без /on или wb-rules будет работать не корректно?

Добрый день.
Нет, readonly значения только пишутся в виртуальные устройства и только тем сервисом который их создал.
Для связи с внешним скриптом имеет смысл использовать trackMqtt() и читать отдельные (можно не соответствующие конвенции) топики, в которые публикует Python. Ну и прочитанное - выводить уже в контролы виртуального устройства.

Я немного опишу подробнее, на всякий случай.
wb-rules создает какой-то readonly топик.
Значение в нем лежит в MainGate/position например.
То есть полный путь /devices/MainGate/controls/position
На публикацию в /devices/MainGate/controls/position чем-то сторонним wb-rules не реагируют, (оно ж только для чтения). Публикация из самого движка правил обрабатывается внутри движка.
И тут может быть такое:
На топик кроме самого wb-rules подписан еще какой-то сервис. Например NodeRed. Он - будет реагировать на публикацию из стороннего скрипта в движок правил - нет. То есть можно получить неожиданное поведение.

Да, спасибо!

Я сделаю отдельный канал для общения wb-rules с драйвером через trackMqtt(), чтобы сохранить readonly.

Спасибо еще раз за разъяснения!