NEWS
OpenMQTT Gateway Wetterstation Iobroker Datenpunkt JSON
-
@paul53 sagte in OpenMQTT Gateway Wetterstation Iobroker Datenpunkt JSON:
Eigene Datenpunkte legt man unter "0_userdata.0" an, was auch per Blockly funktioniert.
Das mache ich natürlich schon lange über das bekannte Skript hier aus dem Forum. Aber danke!
-
@ofbeqnpolkkl6mby5e13 Ich zeig Dir gerade einen Weg - aber halt nicht so ungeduldig. siehe mein letzten Post. Normalerweise machst Du unter alias.0 eine Gerät und darunter dann einen Status zum Beispiel temperatur.
-
@mickym sagte: der Device Adapter ist derzeit in meinen Augen nicht geeignet.
Der Alias-Manager ist besser geeignet.
Die grundlegende Ordner-Struktur unter "alias.0" erstellt man besser manuell im Tab "Objekte". -
@paul53 sagte in OpenMQTT Gateway Wetterstation Iobroker Datenpunkt JSON:
@mickym sagte: der Device Adapter ist derzeit in meinen Augen nicht geeignet.
Der Alias-Manager ist besser geeignet.
Ja aber das Admin Interface finde ich inzwischen bestens geeignet.
Jedenfalls sollte man halt erst ein Gerät anlegen und darunter dann die States - hier mal an meinem Beispiel:
Der mqtt-datenpunkt enthält nun folgenden JSON:
{"battery":30,"device":{"applicationVersion":5,"dateCode":"20191205","friendlyName":"temperatur/bad","hardwareVersion":30,"ieeeAddr":"0x001xxxxxxxxxxxxxx","manufacturerID":4151,"manufacturerName":"LUMI","model":"WSDCGQ11LM","networkAddress":xxxxx,"powerSource":"Battery","softwareBuildID":"3000-0001","stackVersion":2,"type":"EndDevice","zclVersion":1},"humidity":47.22,"last_seen":"2022-09-27T14:01:37+02:00","linkquality":255,"power_outage_count":6,"pressure":937.4,"temperature":23.48,"voltage":2955}
Wie schon von @paul53 erwähnt bekommst Du Warnmeldugen solange Du den originalen Datenpunkt nicht angibst.
Den gibst Du also direkt dort ein und für die Lesefunktion gibst Du das
JSON.parse(val).gewünschter_Wert
an
-
@mickym sagte: das Admin Interface finde ich inzwischen bestens geeignet.
Ich auch, da ich weiß, dass man erst einmal eine Warnung erhält, bevor man die ID des Original-DP zuweisen konnte.
-
Das ist natürlich eine geniale Lösung! Vielen, vielen Dank!
-
Ich hoffe, das hilft auch dir.
-
@ofbeqnpolkkl6mby5e13 Hallo vielen Dank für die hilfreichen Tipps, aber bei mir steht immer Aussentemperatur das ist mein Datenpunkt = 0.
Hier mein Blockly dazu
-
@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.