NEWS
OpenMQTT Gateway Wetterstation Iobroker Datenpunkt JSON
-
@jens-g
Den Datenpunkt erzeugt man nur einmal außerhalb eines Triggers mit richtigen Common-Attributen. Innerhalb des Triggers verwendet man "aktualisiere". -
-
@paul53 Danke werde ich sofort ändern. So nun warte ich auf die nächste Änderung. Hat funktioniert ganz großes Dankeschön an dich endlich kann ich es in meine Visualisierung einbinden. Wie bekomme ich den nun die Einheit angezeigt beispielsweise °C
-
@jens-g Klick auf das Bleistiftsymbol und füge Unit hinzu
-
@mickym Vielen Dank habe ich doch glatt übersehen, jetzt läufts.
-
Hat leider nicht lange angehalten, nun empfängt mein RXB6 die Wetterdaten nur noch sporadisch ;(. Kann mir jemand einen besseren Sensor empfehlen ?. Der ist wohl hin oder zumindest sehr empfangsschwach !. Modell Nummer KS-RXB6 China Variante = kannste knicken.
Habe zurzeit eine Antenne/Dupont Kabel dran, würde eine andere Antenne helfen ?Jetz gehts erstmal wieder sogar ohne Antenne, aber am nächsten Morgen ist das Signal weg oder er zeigt das falsche an.
Nun reagiert er gar nicht mehr auf die Wetterstation das soll wohl defekt bedeuten -
Update: Direkt zwei Stück bei Amazon geordert und haben den Quarz 13.52127 drauf, damit ist die Reichweite sehr unterirdisch. Also weitersuchen
-
Ich erhalte viele Fehlermeldungen vom Javascript-, Influxdb- und MQTT-Adapter:
javascript.0 error Invalid read function for undefined: JSON.parse(val).ENERGY.Current => Unexpected end of JSON input
Die anderen genannten Adapter melden denselben Fehler. Muss ich den folgenden Befehl noch mit irgendeinem Zeichen abschließen?:
JSON.parse(val).ENERGY.Current
-
@ofbeqnpolkkl6mby5e13 Nein es bedeutet, dass wahrscheinlich Dein JSON Input kein JSON ist - da müsstest Du halt mal den originären JSON posten. Wenn das ein leerer Wert oder irgendwas anderes ist - dann funktioniert das so halt nicht.
Invalid read function for undefined
Scheint so, dass da (null) im originalen Datenpunkt drin steht und der nicht definiert ist.
ggf. kannst du den Fehler so abfangen:
val ? JSON.parse(val).ENERGY.Current : val
-
Probiere ich aus, danke!
Hier mal der Datenpunkt:
{"Time":"2022-10-11T14:44:54","ENERGY":{"TotalStartTime":"2022-09-24T09:13:58","Total":0.602,"Yesterday":0.044,"Today":0.056,"Period": 0,"Power": 2,"ApparentPower": 5,"ReactivePower": 5,"Factor":0.40,"Voltage":229,"Current":0.023}}
-
@ofbeqnpolkkl6mby5e13 sagte in OpenMQTT Gateway Wetterstation Iobroker Datenpunkt JSON:
{"Time":"2022-10-11T14:44:54","ENERGY":{"TotalStartTime":"2022-09-24T09:13:58","Total":0.602,"Yesterday":0.044,"Today":0.056,"Period": 0,"Power": 2,"ApparentPower": 5,"ReactivePower": 5,"Factor":0.40,"Voltage":229,"Current":0.023}}
Na so muss es eigentlich schon funktionieren - wie Du es anfangs gehabt hast.
JSON.parse(val).ENERGY.Current
Die Frage ist halt, ob die Werte immer so kommen oder ob da zwischendrin (null) oder skalare Werte kommen.
-
@mickym sagte in OpenMQTT Gateway Wetterstation Iobroker Datenpunkt JSON:
Die Frage ist halt, ob die Werte immer so kommen oder ob da zwischendrin (null) oder skalare Werte kommen.
Das nehme ich auch an. Ich probiere das von oben mal, wie bereits geschrieben. Mir reicht es, wenn die Fehlermeldung weg ist, ob da jetzt immer ein Wert übermittelt wird, ist egal.
-
Ich verstehe das nicht, hatte noch ein NodeMcu V3 rumliegen, alles aufgebaut. Jetzt sogar eine Antenne sprich Draht dran mit einem RX470 Modul und trotzdem empfängt er nur meine Elro Steckdosen und Fernbedienung. Habe sogar extra in der aktuellen Tasmota das Nexus Protocol in der rcswitch.cpp hinzugefügt und mit RfProtocol36 1 aktiviert = Wenn ich an der Wetterstation den Knopf zum senden drücke passiert nichts :(. Mal schauen ob diese Woche mein RXB8 kommt der sollte genug Leistung haben. Also Software Fehler im Bezug auf OpenMQTT kann ich wohl ausschliessen!
-
@mickym sagte in OpenMQTT Gateway Wetterstation Iobroker Datenpunkt JSON:
Ja aber das Admin Interface finde ich inzwischen bestens geeignet.
Hi Micky
Ich wollte das gerade bei einem JSON versuchen, um daraus 1 Preis vom Diesel zu filtern.
Problem ist, dass der Name vom Wert öfter vorkommt.price
{ "Super Plus": { "title": "Super Plus", "date": "05.12.2022-11.12.2022", "price": "1,642 EUR" }, "Super": { "title": "Super", "date": "05.12.2022-11.12.2022", "price": "1,498 EUR" }, "Normal": { "title": "Normal", "date": "05.12.2022-11.12.2022", "price": "1,498 EUR" }, "Diesel": { "title": "Diesel", "date": "05.12.2022-11.12.2022", "price": "1,685 EUR" }, "Premium Diesel": { "title": "Premium Diesel", "date": "05.12.2022-11.12.2022", "price": "1,919 EUR" } }
Ich hab den
alias.0.IQ-Preis.Diesel
angelegt.
Dort0_userdata.0.IQ_Sprit.IQ_Sprit
hinterlegt.
Dann wollte ichalias.0.IQ-Preis.Diesel
bearbeiten. BeiKonverter beim Lesen
hab ichJSON.parse(val).price
verwendet.
Nach dem speichern hats mir den ioB gekillt.
Konnte nur mit Schnelligkeit auf einen anderen DP klicken und dann den Alias löschen.Was hab ich da falsch gemacht?
javascript.1 2022-12-08 21:41:40.333 error Error: Cannot read properties of undefined (reading 'toString') javascript.1 2022-12-08 21:41:40.333 error An error happened which is most likely from one of your scripts, but the originating script could not be detected. host.ioBroker 2022-12-08 21:41:17.690 error instance system.adapter.javascript.0 terminated with code 1 (JS_CONTROLLER_STOPPED) host.ioBroker 2022-12-08 21:41:17.690 error Caught by controller[0]: at processImmediate (node:internal/timers:468:21) host.ioBroker 2022-12-08 21:41:17.690 error Caught by controller[0]: at Immediate.<anonymous> (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:7439:39) host.ioBroker 2022-12-08 21:41:17.690 error Caught by controller[0]: at Object.formatAliasValue (/opt/iobroker/node_modules/@iobroker/js-controller-common/lib/common/tools.js:2555:35) host.ioBroker 2022-12-08 21:41:17.690 error Caught by controller[0]: TypeError: Cannot read properties of undefined (reading 'toString') javascript.0 2022-12-08 21:41:17.485 error TypeError: Cannot read properties of undefined (reading 'toString') at Object.formatAliasValue (/opt/iobroker/node_modules/@iobroker/js-controller-common/lib/common/tools.js:2555:35) at Immediate.<anonymous> (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:7439:39) at processImmediate (node:internal/timers:468:21) javascript.0 2022-12-08 21:41:17.485 error Error: Cannot read properties of undefined (reading 'toString')
-
@negalein Ist ja auch nicht price - sondern Du musst schon den ganzen Pfad eingeben und der Wert muss eindeutig sein.
Wenn Du den Dieselpreis haben willst, dann musst Du das auch halt angeben
JSON.parse(val).Diesel.price
-
@negalein sagte: alias.0.IQ-Preis.Diesel bearbeiten. Bei Konverter beim Lesen hab ich JSON.parse(val).price verwendet.
JSON.parse(val).Diesel.price
Der Alias muss vom Typ "string" sein.
-
@paul53 schneller
-
@mickym sagte in OpenMQTT Gateway Wetterstation Iobroker Datenpunkt JSON:
Wenn Du den Dieselpreis haben willst, dann musst Du das auch halt angeben
@paul53 sagte in OpenMQTT Gateway Wetterstation Iobroker Datenpunkt JSON:
Der Alias muss vom Typ "string" sein.
Danke euch Zwei. Dann probier ich es gleich nochmal.
-
@mickym sagte in OpenMQTT Gateway Wetterstation Iobroker Datenpunkt JSON:
@paul53 schneller
Hi Micky
Das JSON hat sich wegen neuem Script geändert und sieht nun auszugsweise (der relevante Teil für mich) so aus.
{ "ÖSTERREICH": { "services": { "Super Plus": [ { "date": "05.12.2022-11.12.2022:", "price": "1,642 EUR" } ], "Super": [ { "date": "05.12.2022-11.12.2022:", "price": "1,498 EUR" } ], "Normal": [ { "date": "05.12.2022-11.12.2022:", "price": "1,498 EUR" } ], "Diesel": [ { "date": "05.12.2022-11.12.2022:", "price": "1,685 EUR" } ],
JSON.parse(val).Diesel.price
muss es nun so lauten?
JSON.parse(val).ÖSTERREICH.services.Diesel.price
-
@negalein ja