Помогите разобраться с mqtt и wb-rules

Предыстория такова: создаю виртуальное устройство, например DEV1 и контроллер на нем CON1. Передаю на него вручную значение командой mosquitto_pub -t /devices/DEV1/controls/CON1 -m 25. Всё ок, в веб интерфейсе значения меняются. Но если я пишу правило, например, по нажатию кнопки записать в переменную значение на этом устройстве ( var x = dev[DEV1][CON1]) то тут выходит лажа. В массиве dev постоянно одно значение, которое было на устройстве в момент инициализации (например, после сохранения скрипта). Можем сколько угодно посылать вручную значения на устройство. В интерфейсе оно будет отображаться, но в массиве dev обновляться не будет. Что я делаю не так??

По этой же причине, как я понимаю, передача значений вручную не инициирует правила в блоке whenChanged: “DEV1/CON1”

Ну и доп вопрос: есть ли в wb-rules функции для работы с файлами?

Изменение состояния должно производиться отправкой сообщения в подтопик /on, как описано в документации.

Т.е. вы должны делать

mosquitto_pub -t /devices/DEV1/controls/CON1/on -m 25

доп. вопрос не очень понятен.

В wb-rules есть функция loadConfig(), которая загружает и парсит JSON-файл с диска. Это очень полезно, если вашему правилу нужна конфигурация. Примеры использования можно посмотреть у нас в коде, например в драйвере wb-mqtt-dac.

Для всего остального сейчас обёрток нет, но вы можете использовать семейство команд spawn и runShellCommand для выполнения произвольных shell-команд.

Изменение состояния должно производиться отправкой сообщения в подтопик /on, как описано в документации.

В документации написано про реле, и я наивно подумал, что это относится только к переключателю.

доп. вопрос не очень понятен.

В wb-rules есть функция loadConfig(), которая загружает и парсит JSON-файл с диска.

Это именно то, что нужно. Спасибо. Только похоже readConfig(), а не loadConfig().
Сохранять только через runShellCommand, или есть что-то типа saveConfig()?

Подскажите, еще, как правильно сохранить в фал JSON? Просто если сохранять через echo, то она убирает кавычки. Можно конечно перед сохранением перегонять все параметры и переименовывать их с " но кажется мне, что есть более простое решение.