Как правильно настроить срок действия TTL для сообщений MQTT на ThingsBoard?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как правильно настроить срок действия TTL для сообщений MQTT на ThingsBoard?

Сообщение Anonymous »

Чтобы срок действия сообщений MQTT истекал через определенное время в ThingsBoard, к сообщению можно добавить параметр времени жизни (TTL). Внутри цепочек правил ThingsBoard можно добавить больше логики. Чтобы TTL работал, необходимо добавить его в метаданные.
Типичный рабочий процесс в цепочке правил ThingsBoard:
1.Сообщение, полученное входным узлом.

2.Метаданные и данные разделяются.

3.Узлы обрабатывают оба по отдельности.
Используется следующая тема: v1/devices/me/telemetry
Формат данных полезных данных выглядит следующим образом: {"ts":1451649600512, "values":{"key1":"value1", "key2":"value2"}}
Как правильно добавить TTL к сообщению, чтобы оно работало в ThingsBoard? Я хочу, чтобы срок действия определенных сообщений истекал через определенное время, в зависимости от содержимого сообщения.
Насколько я понимаю, TTL необходимо добавить в метаданные, иначе это не будет работать.
Ранее для этого я использовал узел JavaScript в цепочке правил. В зависимости от содержания сообщения в скрипт будет добавлена ​​строка:

Код: Выделить всё

if(typeof msg.Alive !== 'undefined'){
metadata.TTL = "45";
}

return {msg: msg, metadata: metadata, msgType: msgType};
Кажется, это сработало. Однако возникшая проблема заключается в ограничении количества выполнений JS-скриптов. Если сделать это с помощью цепочки правил, этот предел будет достигнут довольно быстро.
Поэтому предыдущее решение невозможно при использовании большого количества устройств. Как правильно выполнить описанное выше в ThingsBoard без использования JS?
Наш новый подход заключался в включении TTL в полезные данные сообщения, например {"ts":1451649600512, "TTL": 15, "values":{"key1":"value1", "key2":"value2"}. Предполагалось, что TTL будет восприниматься как метаданные, как и временная метка. Казалось, это не так. Добавление его к «значениям», то есть к данным, привело к его отображению в данных ThingsBoard, но не решило нашу проблему.

Подробнее здесь: https://stackoverflow.com/questions/771 ... hingsboard
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»