Вопрос по работе драйвера wb-mqtt-serial

Добрый день

У меня к WB7 по modbus подключен китайский электросчетчик. Все что нужно считывается, все ОК.

Недавно в связи с отключениями электроэнергии задумал фиксировать факт отключения, читая со счетчика например напряжение с фаз. Но оказалось что отключенный счетчик (без питания) выдает в настроенных каналах последнее значение напряжения, которое было до отключения.

Насколько я понимаю это нормальный режим работы драйвера serial. Он читает значения с порта и записывает в MQTT. А когда устройство не отвечает на шине, то в брокере остается последнее считанное значение.

Подскажите, есть ли способ по опросу понять что устройство offline?

Спасибо

Посмотрите вот тут:

В случае наличия ошибки чтения из регистра, в мета топик записывается специальное значение.

Спасибо.

По описанию в мета топик пишется признак ошибки, например ошибки чтения - r.

И да это отображается в списке каналов.

Я пытаюсь считать его (в node-red) вот так

И получаю пустое значение:(

Что я делаю не так?

Спасибо

В названии топика не вижу название контрола.

Вот пример:

/devices/wb-w1/controls/28-0115a48fcfff/meta/error

Да, верно, упустил. Попробовал так

msg.payload = msg.payload[“/devices/wb-modbus-0-0/controls/V1/meta/error”];

В дебаг пишет значение Undefined.

Мне кажется ошибка в синтаксисе. Я таким способом не могу считать и само значение V1.

Подскажите, как в NodeRed считать значение произвольного канала MQTT? Для тех каналов которые описаны в драйвере (например в моем случае канал V1) можно считать значение нодой Get. Но мета топика там в списке нет и к нему наверное надо обращаться через js в ноде Function.

Я node red не пробовал. Может тут есть что-то полезное: Установка Node-RED на контроллер Wiren Board — Wiren Board

В nodered есть узел mqtt in (палитра - сеть) который может читать любой топик на брокере

Добрый день.

Вот я что-то не понимаю этот код. Что он должен делать?
Типично

mqttClient.subscribe('/devices/wb-modbus-0-0/controls/V1/meta/error', function(err) {

где mqttClient экземпляр объекта получаемый как “global.get(‘mqttClient’);”

Да, это решение. Спасибо.

Через MQTT In считался мета топик