NEWS
Daten vom iobroker nach node-red (extern) holen
-
Hallo zusammen,
ich beschäftige mich nun schon eine gewisse Zeit mit dem iobroker und habe soweit alles am Laufen.
Ich benutze den iobroker zum Auslesen von Strom-Zählerdaten.
Dafür habe ich den Smartmeter-Adapter installiert.Soweit so gut. Die Daten kommen und sind im iobroker sichtbar.
Das ganze System läuft auf einem Raspberry-Pi 4.
Ich habe einen weiteren Raspberry-Pi 4, wo node-red installiert ist und Daten behandelt.
Vorrangig benutze ich node-red um auf LoRaWAN-Sensoren zu zugreifen.Der Betrieb von zwei Raspberry-Pi's ist leider notwendig, da die beiden Geräte örtlich von einander getrennt betrieben werden.
Nun zu meinem eigentlichen Problem bzw. Frage.
Wie kann ich die Daten vom iobroker, also dem einen Raspberry-Pi, zum zweiten Raspberry-Pi mit node-red bekommen?
Ich habe versucht das ganze über die mqtt-Funktion im node-red zu realisieren.
Leider bekomme ich keine Verbindung zum iobroker.Ist das grundsätzlich nicht möglich? Oder bin ich da schon auf dem einigermaßen richtigen Weg?
Über Tipps und Anregungen würde ich mich freuen.
Gruß
eliteee
-
@eliteee Doch mqtt ist der richtige Weg. Ich würde mosquitto auf einer der beiden Maschinen installieren und auch den iobroker als Client zugreifen zu lassen, genauso wie NodeRed. Wenn Du nicht gleich ganze Adapter veröffentlichen willst, sondern selektiv vorgehen willst, dann würde ich den mqtt-client verwenden - dann kannst Du das Zahnrad je Datenpunkt, den Du veröffentlichen willst steuern. Wenn du ganze Instanzen veröffentlichen willst, dann kann man das mit Wildcards machen sollte aber ein topic voranstellen.
-
@mickym Ich bin wieder ein Stück weiter.
Ich kann mit meinem Raspberry 1 auf den Raspberry 2 mit Smartmeter zugreifen.
Oder sagen wir mal ich greife irgendwelche Daten ab.Innerhalb der Objekte sieht es wie folgt aus:
Da würde ich nun gerne den Wert "1-0:1_8_0__255.value" in mein Node-Red auf dem ersten Raspberry einlesen.
Im Node-Red-Flow habe ich dafür die Funktion "mqtt-in" angelegt, die alle 10 Sekunden angestoßen wird.
Ergebnis wird dann erstmal zu Testzwecken über ein Debug-Funktion angezeigt.Im Debug kommen zwar Zahlen an. Aber eben nicht der Zählerstand.
@mickym : Hättest Du einen Tipp, wo ich da angreifen muss bzw. könnte?
-
@eliteee Also generell halte ich überhaupt nichts davon - mit Zeitintervallen Daten zu übertragen. Die mqtt-IN Node würde automatisch getriggert sobald neue Informationen gepublished werden und dann muss es auch nicht alle 10 s sein. Das belastet die Systeme nur unnötig.
Ich würde wie gesagt mosquitto als Broker installieren. Oder zumindest eine neue mqtt-Instanz aufmachen.
Wenn Du Deine ganzen smartmeter punkte publishen willst, dann mach eine neue mqtt-Instanz als Client auf
Ich habe mal den ganzen tr-064 Adapter mit Datenpunkten gepublished. So kannst Du es mit
smartmeter.0.*
machen. Alles publishst Du alles unter einen eigenen Präfix - ich habe es unter iobroker gemacht (alles rot markiert).
Alles wird dann unter iobroker veröffentlicht:
In der mqtt-In Node - subscribest Du einfach alles indem Du
iobroker/#
spezifizierst.
Wie gesagt - auch wenn Du Deinen mqtt Adapter als Server bislang betreibst - würde ich Dir in jedem Fall noch eine eigene Instanz zu publizieren verwenden und alle mqtt Optionen beim Server aushaken.
Und nochmal ein Broker sorgt sich selbstständig um die Veröffentlichung - da braucht es keine zeitliches Abfragen.