Page 1 of 1

MQTT Parsování zprávy do proměnných

PostPosted: Wed 05. May 2021 6:52:25
by mistepik
Dobrý den,

Při získání zprávy z MQTT brokeru mi přijde následující formát a potřeboval bych uložit hodnoty do jednotlivých proměnných podle názvu, přičemž časovou značku ukládat nepotřebuji. Existuje nějaká funkce, která by byla ideální pro můj případ?

Děkuji za odpověď

Code: Select all
T: cisco/edge-intelligence/telemetry/P242_PLC02, M: {"deviceData":{"D500CSTEP":{"ts":1620190302533,"v":101},"D500C_Mode":{"ts":0,"v":null},"H100LT101":{"ts":1620191795555,"v":43.238468170166019},"H100PT101":{"ts":1620191793555,"v":6.06825065612793},"P300BHOURS":{"ts":1620186619477,"v":28},"P300BSTAT":{"ts":1620190302533,"v":100},"Station_Mode":{"ts":0,"v":null}}}

Re: MQTT Parsování zprávy do proměnných

PostPosted: Wed 05. May 2021 7:57:56
by Pavel Klimíček
Dobrý den
Zpracování není složité podívejte se v dokumentaci na tyto stránky:
https://www.promotic.eu/cz/pmdoc/Directions/FileFmt/json/FmtJSON.htm
https://www.promotic.eu/cz/pmdoc/Objects/Pm/PropMeth/JsonParse.htm

Ve Vašem případě to bude takto:

Code: Select all
var sJson = '{"deviceData":{"D500CSTEP":{"ts":1620190302533,"v":101},"D500C_Mode":{"ts":0,"v":null},"H100LT101":{"ts":1620191795555,"v":43.238468170166019},"H100PT101":{"ts":1620191793555,"v":6.06825065612793},"P300BHOURS":{"ts":1620186619477,"v":28},"P300BSTAT":{"ts":1620190302533,"v":100},"Station_Mode":{"ts":0,"v":null}}}';
var oMap = Pm.JsonParse(sJson);
var oJson = oMap.Value;

var ts0   = oJson.deviceData.D500CSTEP.ts;
var v0   = oJson.deviceData.D500CSTEP.v;
var ts1   = oJson.deviceData.D500C_Mode.ts;
var v1   = oJson.deviceData.D500C_Mode.v;
//...
Pm.Debug(ts0+","+v0+","+ts1+","+v1);

Re: MQTT Parsování zprávy do proměnných

PostPosted: Wed 05. May 2021 10:54:04
by mistepik
Funguje dle předpokladu, mockrát vám děkuji a přeji pěkný den.