NEWS
OpenMQTT Gateway Wetterstation Iobroker Datenpunkt JSON
-
Ich würde mich der Frage anschließen wollen, da ich gerade mit den ersten Tuya-Geräten zum MQTT-Adapter umgezogen bin. Der Sonoff-Adapter "exportiert" zwar alle Sensorwerte automatisch in Datenpunkte, ich würde aber gerne den MQTT-Adapter verwenden. Mit googlen bin ich leider nicht weitergekommen.
-
Im Prinzip kannst du im Bedarfsfall jederzeit auf einen Wert aus einem JSON zugreifen, dann musst du halt beschreiben wo du ihn brauchst. Alternativ erstellst halt Datenpunkte als Alias oder Du nimmst meinen Node-Red Flow, der erstellt Dir aus jedem JSON einzelne Datenpunkte unter 0_userdata.0
Im Prinzip ist JSON eine sehr effiziente Methode Daten zu übertragen und man pickt sich nur im jeweiligen Anwendungsfall den benötigten Wert raus.
-
Vielen Dank für deine Antwort, das hat mir auf die richtige Spur geholfen!
Ich kann mir mit folgendem Blockly Attribute auf der Konsole ausgeben:
Das Anlegen eines Datenpunktes unter alias.0 hat hingegen leider nicht funktioniert:
-
@ofbeqnpolkkl6mby5e13 Du erstellst einen Datenpunkt unter alias.0 und zeigst dann auf den originalen Wert im mqtt-Adapter und modifizierst die Lesefunktion.
Beispiel: Du hast unter mqtt folgenden Wert stehen.
Du kannst sehr wohl Aliase selbst erstellen - der Device Adapter ist derzeit in meinen Augen nicht geeignet.
-
@ofbeqnpolkkl6mby5e13 sagte: Das Anlegen eines Datenpunktes unter alias.0 hat hingegen leider nicht funktioniert:
Eigene Datenpunkte legt man unter "0_userdata.0" an, was auch per Blockly funktioniert.
Für Datenpunkte unter "alias.0" benötigt man kein Skript, da Konvertierungsmöglichkeiten enthalten sind.
-
Okay, eine Grundsatzdiskussion dazu hatte ich auch gerade gefunden:
https://github.com/ioBroker/ioBroker.js-controller/issues/906
-
@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