NEWS
Problem JSON string mit Klammer in Objektnamen
-
Hallo zusammen,
ich bekomme von einem Sensor folgenden string per MQTT übermittelt:{"temperature":"12.69","humidity":"49","move count":"2","moving state":"0","pitch":"-4","roll":"2","voltage(mV)":"3040"}
Jetzt möchte ich einzelne Werte aufteilen und in Datenpunkte schreiben.
Dafür habe ich das folgende JS script, welches für temperatur und humidity wunderbar funktioniert.const AussenSensor = 'mqtt.0.Wohnwagen.Sensor_Aussen' /*Daten von Wohnwagen Sensor Aussenbereich*/; const AussenTemp = '0_userdata.0.Wohnwagen.AussenTemp' /*Temperatur Aussenbereich*/; const AussenHumi = '0_userdata.0.Wohnwagen.AussenHumidity' /*Humidity Aussenbereich*/; const AussenBatt = '0_userdata.0.Wohnwagen.AussenSensorBatterie' /*Batterie mV Sensor Aussenbereich*/; on(AussenSensor, function(dp) { // triggert bei Wertänderung let obj = JSON.parse(dp.state.val); setState(AussenTemp, obj.temperature, true); setState(AussenHumi, obj.humidity, true); setState(AussenBatt, obj.voltage(mV), true); });
Allerdings wird in dem String die Spannung mit der Bezeichung "voltage(mV)" geliefert. Und hiermit hat das script wohl wegen dem (mV) seine Probleme.
In den Datenpunkt wird hier {"ack":true} geschrieben anstelle des Wertes. Leider kann ich das am Sensor auch nicht ändern.
Hat einer eine Idee wie ich das Script anpassen muss damit ich den Wert in den Datenpunkt geschrieben bekomme?Danke schon mal
-
@neumis sagte in Problem JSON string mit Klammer in Objektnamen:
{"temperature":"12.69","humidity":"49","move count":"2","moving state":"0","pitch":"-4","roll":"2","voltage(mV)":"3040"}
Schreib mal
obj["voltage(mV)"]
ohne Punkt dazwischen.
-
@mickym
Klasse! Das ist esDanke für den Tipp und schöne Ostern.