Получить данные из MQTT - PullRequest
       11

Получить данные из MQTT

0 голосов
/ 25 апреля 2018

Есть ли способ получить текущее состояние датчика из MQTT без использования кэша или чего-либо еще?

Например, после перезапуска NR мне нужно получить все фактические значения, сохраненные в MQTT, как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 29 апреля 2018

Вы должны сохранить последнее значение в базе данных.

Я не знаю, сколько значений вы бы сохранили. Проверьте https://www.npmjs.com/package/json-db-node-red, возможно вам этого достаточно.

Сохраните все входящие значения в этом объекте json как хранилище ключей: значений.

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

0 голосов
/ 25 апреля 2018

Значения не сохраняются в MQTT, это не база данных, это система обмена сообщениями.

Также вы не получаете данные с помощью MQTT, вы подписываетесь на тему и сообщения доставляются клиенту, когда они

Единственными исключениями из этих утверждений являются следующие:

  1. Сохраненные сообщения.Если для сообщения, установленного издателем, установлен флаг сохранения, то последнее опубликованное сообщение с флагом сохранения в теме будет доставлено всем клиентам, подписавшимся на эту тему.Это полезно для обеспечения того, чтобы подписчик всегда имел доступ к последнему опубликованному значению.

  2. Подписки с высоким QOS.Если клиент настроен на подписку на тему с QOS 1 или 2, то брокер должен ставить в очередь все сообщения, опубликованные по этой теме, пока клиент находится в автономном режиме, и доставлять их клиенту при повторном подключении и повторной подписке на тему (при условии, что тот же клиент-id используется, и если флаг cleansession не установлен в true).

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

...