Hallo Gemeinde!
Ich versuche den Mqtt-String eines Tasmota Smart-Meters in einzelne Datenpunkte zu zerlegen.
Für mein Vorhaben gibt es auch gute Beispiele, ich komme aber nicht weiter.
Kann mal bitte jemand über das Script gucken und mir sagen, wo es klemmt?
Die Zeichenkette die via mqtt kommt sieht so aus:
{"Time":"2022-08-24T17:17:12","":{"Meter_Number":"XXXXXXXXXXXXXXX","Total_in":792.5229,"Total_out":290.8330,"Power_curr":25}}
Folgendes Script verwende ich:
on({id: 'mqtt.0.tele.tasmota_121518.SENSOR', change: "any"}, function (obj) {
var Total_in
var Total_out
var Power_curr
//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.tele.sonoff.SENSOR').val);
} catch (e) {
console.error('Cannot parse: ' + getState('mqtt.0.tele.tasmota_121518.SENSOR').val);
return;
}
Total_in = obj.Total_in;
Total_out = obj.Total_out;
Power_curr = obj.Power_curr;
setState('javascript.0.Total_in', (Total_in));
setState('javascript.0.Total_out', (Total_out));
setState('javascript.0.Power_curr', (Power_curr));
});
Unter den Objekten im Unterordner Javascript.0 habe ich die 3 Variablen Total_in, Total_out und Power_curr angelegt (Zahl).
Vielen Dank schonmal für eure Hilfe!