NEWS
[gelöst] Hilfe Mqtt jason in Datenpunkt
-
Hallo,
habe folgendes Problem bekomme irgendwie die Werte aus dem mqtt Datenpunkt{"hc1":{"seltemp":21.5,"currtemp":21.6,"mode":"auto"}}
nicht in ein neuen user Datenpunkt geschrieben .
Hier das Skript dazu://MQTT Json to Objekt // Create States createState('javascript.0.thermostat_date.seltemp',0,{type: 'number',name: 'seltemp', read: true,write: true,role: 'value' }) // Script beginning on({id: 'mqtt.0.ems-esp.thermostat_data', change: "any"}, function (obj) { //variabele erstellen objecte var seltemp; //der try ist wichtig das der adapter nicht abschmiert bei einem fehler, hiermit pasen wird die json in ein object try {obj = JSON.parse(getState("mqtt.0.ems-esp.thermostat_data").val); } catch (e) { console.error('Cannot parse: ' + getState("mqtt.0.ems-esp.thermostat_data").val); return; } //hier schreiben wir die daten des json strings in die variabelen, links die variable und rechts der name im json. obj bedeuten halt lese den wert nach : seltemp = obj.seltemp; setState('javascript.0.thermostat_date.seltemp', (seltemp)); //jetzt lass uns mal im log zeigen was wir bekommen haben log(seltemp); });
Habe das gleich skript mit einen anderen Datenpunkt am laufen, da sieht der wert des Datenpunktes so aus :
{"wWComfort":"Eco","wWSelTemp":55,"wWDesiredTemp":70,"selFlowTemp":75,"selBurnPow":26,"curBurnPow":0,"pumpMod":0,"wWCircPump":0,"outdoorTemp":2.1,"wWCurTmp":56.6,"wWCurFlow":0,"curFlowTemp":36.3,"wWActivated":"on","burnGas":"off","flameCurr":0,"heatPmp":"on","fanWork":"off","ignWork":"off","wWCirc":"off","heating_temp":80,"pump_mod_max":100,"pump_mod_min":10,"wWHeat":"off","wWStarts":4984,"wWWorkM":41526,"UBAuptime":2576775,"burnStarts":17792,"burnWorkMin":547914,"heatWorkMin":506388,"ServiceCode":"0H","ServiceCodeNumber":203}
Ich glaube es liegt an den zusätzlichen Klammern. Weiß aber nicht wie das Skript anpassen muss damit es funktioniert.
Ich hoffen es kann mir einer helfen.
-
@Icube sagte:
seltemp = obj.seltemp;
seltemp = obj.hc1.seltemp;
-
@paul53 danke funktioniert.
Hatte das eigentlich auch so versucht damals ging es nicht