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
-
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.
-
@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.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden
