NODE RED -Как получить значение payload_raw из MQTT и сохранить в MySql - PullRequest
0 голосов
/ 20 января 2020

Я новичок в NODE RED и пытаюсь получить значение payload_raw из MQTT и сохранить его в MySql. Это считывание с датчика на MQTT:

rg186/devices/thingsnode/up {"app_id":"rg186","dev_id":"thingsnode","hardware_serial":"0004A30B001BDBBD","port":2,"counter":3792,"payload_raw":"DiwA2wcO","payload_fields":{"battery":3628,"event":"interval","light":219,"temperature":18.06},"metadata":{"time":"2020-01-20T09:24:01.609075061Z","frequency":868.5,"modulation":"LORA","data_rate":"SF7BW125","airtime":51456000,"coding_rate":"4/5","gateways":[{"gtw_id":"eui-c0ee40ffff296d5b","timestamp":3574037131,"time":"","channel":2,"rssi":-51,"snr":7.8,"rf_chain":1,"latitude":51.320107,"longitude":-0.55894303,"location_source":"registry"}]}}

У меня есть соединение с MySQl на NODE-RED, и у меня также работает соединение MQTT, и мой вопрос заключается в том, как мне получить это значение payload_raw и сохранить на MySQL также было бы хорошо узнать, как получить payload_fields тоже.

Я знаю, как вставить в mysql .. Мне нужно получить значение payload_raw (DiwA2wcO) в строку из MQTT: моя функция:

var Data = msg.payload;
s = Data;
var payload_raw = s.payload_raw;
var t = s.metadata.time;
msg.topic = "INSERT INTO LoraTest (Bettery) VALUES ('"+payload_raw+"')"; 
msg.payload = [payload_raw]; return msg;

и topi c в узле "mqtt in" - - rg186/devices/thingsnode/#

Я считаю, что topi c в "mqtt in" неверен, и если будет новое чтение в MQTT, он автоматически использует функцию для сохранения в базу данных?

ОБНОВЛЕНИЕ:

Я использую TTN для чтения данных с устройства на mqtt, и там я получаю его в формате, как указано выше, используя эту команду:

mosquitto_sub -h eu.thethings.network -t "+/devices/+/up" -u "rg186" -P "ttn-account-v2.xxxxxxxxxxxxxxxxxxxxxxx" -v

и я хочу, чтобы NODE-RED получил значение payload_raw.

Что не работает:

Я не знаю, как правильно настроить это (соединение MQTT в порядке, но я не знаю, как получить доступ к данным, которые я получаю в MQTT от NODE- RED): enter image description here и если этот поток и функция верны и позволяют отправлять значение payload_raw в базу данных сразу после того, как ttn отправит новое чтение в MQTT.

Заранее спасибо!

...