NEWS
Temperatur aus JSON auslesen
-
Wäre ne möglichkeit, aber dann müsste ich das koplette ESP-Programm ändern,
denn es werden char an das LCD-geschickt.
Kann ich da nix im Javascript beim ioBroker ändern?
Wäre für mich einfacher.
Hab beim ESP-Display schon ehwigkeiten gebraucht, bis ich es hinbekommen habe
zwei Topics anzeigen zu lassen….
-
Ich denke, das könnte hilfreich sein: https://jsonformatter-online.com/
-
Hab da nochmal eine frage,
Die objecten runden immer ab, in vis kannst du im widget angeben wieviel stellen immer hinterm comma gezeigt werden muessen.
- Dutch
Hi,
ich muss das alte Thema nochmal aufgreifen. Welches Widget nutzt du dafür? Bei mir kann ich keine Kommastellen ausgeben bzw habe die Auswahl nicht. Ich nutze zum Anzeigen von Temperten Basic Strick dort gibt es aber das Feld erweitert mit den Komma stellen nicht? Gerade in Bezug auf Xiaomi dort werden mir 2 komme stellen ausgegeben aber es reicht eine
Grüße
Clemens
- Dutch
-
Hallo,
ich bin ganz neu in dem Thema Mqtt-ioBroker.
Ich habe mir den ioBroker mit dem Modul MQTT-Adapter (auf Server Konfiguriert) auf einem Raspi3 installiert.
Als Aktor habe ich ein Sonoff-Basic mit der Tasmota Firmware.
Das läuft auch soweit, nur leider bekomme ich die Daten aus dem Sonoff-Modul fast alle im JSON-Format.
Welches wie für die Temperatur-Sensoren in der Variable "SENSOR" zu finden ist und wie folgt aussieht:
{"Time":"2017-05-19T11:33:10", "DS18x20":{"DS1":{"Type":"DS18B20", "Address":"28FFB2AD621603FE", "Temperature":19.8}, "DS2":{"Type":"DS18B20", "Address":"28FF598A621603A2", "Temperature":13.5}}, "TempUnit":"C"}Jetzt wäre meine Frage, wie ich die beiden Temperaturen in einzelne Variablen bekomme?
Soweit ich das bis jetzt verstanden habe muss ich irgendwo einen Code hinschreiben, der das irgendwie auseinander fummelt und dann z.B. in die Var Temp1 und Temp2 schreibt…
@feuer001
Leider muss ich nochmal fragen, ich habe die ganze Zeit dieses Script benutzt um Temperaturen aus einem JSON auszulesen, was auch sehr lange Zeit funktioniert hat. Nach einem defekt meiner Speicherkarte muss ich jetzt leider alles neu einrichten und auch alle meine Scripts neu erstellen. Jetzt habe ich dieses Forum wiedergefunden wo damals schonmal fragen musste. Und da ich jetzt auch auf den aktuellen iobroker aktualisiert habe, läuft leider dieses Script nicht mehr. Könnte vielleicht einer nochmal so nett sein und mir nochmals helfen??
Gruß
Feuer001 -
@feuer001
Leider muss ich nochmal fragen, ich habe die ganze Zeit dieses Script benutzt um Temperaturen aus einem JSON auszulesen, was auch sehr lange Zeit funktioniert hat. Nach einem defekt meiner Speicherkarte muss ich jetzt leider alles neu einrichten und auch alle meine Scripts neu erstellen. Jetzt habe ich dieses Forum wiedergefunden wo damals schonmal fragen musste. Und da ich jetzt auch auf den aktuellen iobroker aktualisiert habe, läuft leider dieses Script nicht mehr. Könnte vielleicht einer nochmal so nett sein und mir nochmals helfen??
Gruß
Feuer001@feuer001-0 sagte in Temperatur aus JSON auslesen:
läuft leider dieses Script nicht mehr.
Die drei Datenpunkte vom Typ "string" mit den folgenden IDs exisitieren?
const idJSON = 'mqtt.0.SENSOR'; // Datenpunkt-ID mit JSON-String const idTemp1 = 'mqtt.0.Temperatur1'; const idTemp2 = 'mqtt.0.Temperatur2'; function JSONtoTemp(json) { let obj = JSON.parse(json); let Temp1 = obj.DS18x20.DS1.Temperature; let Temp2 = obj.DS18x20.DS2.Temperature; setState(idTemp1, Temp1.toFixed(1) + ' °C'); setState(idTemp2, Temp2.toFixed(1) + ' °C'); } JSONtoTemp(getState(idJSON).val); // Script start on(idJSON, function(dp) { // triggern bei Wertänderung JSONtoTemp(dp.state.val); }); -
@feuer001-0 sagte in Temperatur aus JSON auslesen:
läuft leider dieses Script nicht mehr.
Die drei Datenpunkte vom Typ "string" mit den folgenden IDs exisitieren?
const idJSON = 'mqtt.0.SENSOR'; // Datenpunkt-ID mit JSON-String const idTemp1 = 'mqtt.0.Temperatur1'; const idTemp2 = 'mqtt.0.Temperatur2'; function JSONtoTemp(json) { let obj = JSON.parse(json); let Temp1 = obj.DS18x20.DS1.Temperature; let Temp2 = obj.DS18x20.DS2.Temperature; setState(idTemp1, Temp1.toFixed(1) + ' °C'); setState(idTemp2, Temp2.toFixed(1) + ' °C'); } JSONtoTemp(getState(idJSON).val); // Script start on(idJSON, function(dp) { // triggern bei Wertänderung JSONtoTemp(dp.state.val); });@paul53
Vielen Herzlichen Dank
Läuft wieder, hat sich mal wieder was geändert.
Und sorry, für die späte Rückmeldung.