NEWS
Node-Red - Shelly PlusPlugS - Mqtt Node-Red Dashboard
-
@mickym ok, und nun soll der client (also die openDTU) auf die Ip des Mosquitto gerichtet werden?
-
@hape1 Na klappt denn im iobroker der Verbindungstest und startet der Adapter?
Als nächstes würde ich den neuen Broker in NodeRed definieren und über die mqtt-Out ein topic beschreiben und schauen, ob das im iobroker-mqtt Adapter ankommt. -
@mickym der Adapter im iobroker ist oben, der Verbindungstest zum Mosquitto-Server ist "ok"
-
@hape1 Na wie gesagt - dann definiere den Broker nun in NodeRed und beschreibe mit mqtt-Out ein topic und schau ob das im Adapter auftaucht.
-
@mickym So, habe nun ein mqtt-out-node mit dem neuen Mosquitto-Server bestückt --> Verbindung ist da! Aber hier habe ich jetzt ein Verständnisproblem: Wie komme ich den nun an meinen Datenpunkt für die openDTU? Aus den Datenpunkten, die in den Objekten vom iobroker angezeigt werden?
-
@hape1 Na wenn Du mit der mqtt-out Node was beschrieben hast und das im iobroker auftaucht - dann ist ja gut.
Deine openDTU - musst Du ja nun nur noch auf die IP Adresse des mosquitto eintragen bzw. ändern - also dem lxc Container.
Der mosquitto SAMMELT ALLES - und alle anderen holen sich die Daten vom mosquitto - es gibt keine Querkommunikation sondern nur einen Stern mit dem mosquitto als ZEntrum.
Das rosa ist Dein mosquitto
-
@mickym Ok, d.h. die iobroker-mqtt-adapter Objekte sind nun die, die aus dem Mosquitto-Server kommen. D.h. auch, ich kann mir die Datenpunkte dann nun immer noch aus den Objekten vom iobroker holen ... ?
-
@hape1 Ja und Du kannst auch im iobroker im Adapter Datenpunkte beschreiben - das wird automatisch an den mosquitto weitergeleitet. Mosquitto leitet sie dann ggf. ebenfalls weiter.
Nun sollte ja auch nicht mehr das Problem auftreten, dass Du über NodeRed ein topic beschreibst und sich das unterschiedlich verhält, als wenn Du es im iobroker selbst beschreibst.
Das war ja der Ausgangspunkt warum ich Dir den Umstieg auf mosquitto empfohlen habe.
-
@mickym Ok, das funzt jetzt bis hierhin soweit. Mehr kann ich jetzt nicht sagen, die Wechselrichter müssen mit DC, also Sonne versorgt werden, somit jetzt "tot". Morgen weiß ich mehr und gebe Rückmeldung.
Und, ich kann es nicht oft genug sagen: DANKE!
-
@hape1 Na das ist doch schön. Dann schlaf mal gut.
-
Nun habe ich die gleiche Frage in einem Thread gefunden: https://forum.iobroker.net/topic/63290/opendtu-per-mqtt-auslesen-und-steuern
Es soll also ein cmd-Ast erstellt werden. Da aber die Wechselrichter in den Objekten von iobroker 2x auftauchen, also unter mqtt und unter opendtu wäre jetzt meine Logik das man den Ast unter dem Gerät unter opendtu einbringt ... habe ich jetzt gemacht, klappt aber nicht, der Richter reagiert nicht
-
na ist wichtig, wo der cmd Ast hinmuss. du kannst aber einfach das topiic mit mqtt-out beschreiben- die Datenpunkte tauchen automatisch auf..
Das mit dem Retain hätte ich auch nicht geglaubt.
-
@hape1 bitte nicht nachträglich editieren!
Das reisst die Antwort von @mickym@hape1 das ist zwar komisch, dass ein retain flag gestzt werden muss, aber dann mach halt den Haken rein. Das könnte übrigens auch eine Ursache sein, warum das gorher nucht richtig ging, da der broker als Adapter mit Retain Flags in meinen Augen Probleme macht.
aus dem Zusammenhang.
Diese bezog sich auf
@mickym Moin, leider funktioniert das Wert setzen in der neuen Konfiguration nicht mehr. Es geht nur über "Wert setzen" im Datenpunkt selber in iobroker-Mqtt ... Ich habe jetzt die Info ergoogelt, das ein "Retain-Flag" gesetzt werden muss, ansonsten wird der eingestellte Wert ignoriert.
und welche der beiden Varianten gilt jetzt wirklich?
-
@mickym mir ist nicht klar wo der Ast hinkommen soll --> unter mqtt oder opendtu?
Ich habe jetzt mal in beide also unter mqtt und opendtu den cmd-Zweig gesetzt (cmd/limit_persistent_relative). Der Richter reagiert in beiden Zweigen nicht.
-
@hape1 Na ich habe den anderen Thread gelesen, halt direkt unter die Seriennummer. Auf der Ebene zum Status
Hier im anderen Thread auf der Ebene mit device und status
Wie gesagt, das musst schon Du in Deiner Doku nachlesen. Das hat jetzt nichts mehr mit mqtt oder NodeRed zu tun - sondern jedes Gerät hat selbst einen Ast auf den es hört, den veröffentlicht es aber nicht selbst, da es sonst zu einer Endlosschleife käme.
-
@mickym Wir verstehen uns glaube ich falsch. Bitte warte einen Moment, ich schicke Dir Screenshots
Hier sieht man besser, was ich mit zweimal auftauchen meine ...
-
Na nach dem anderen Thread - aber wie gesagt dass muss Du halt nochmal lesen würde ich das topic unter
solar/1161839xxx/cmd/limit_persistance_relative
schreiben
Unter:
opendtu - darfst Du höchstens in den Adapter etwas mit den iobroker-out Nodes schreiben, aber da nur in bestehende Datenpunkte.
DAS HAT MIT MQTT NICHTS ZU TUN!!!!!Wenn Du musst Dich entscheiden, ob Du mit Deinem Gerät über mqtt ODER über den iobroker Adapter kommunizieren willst. Aber NICHT BEIDES.
In den opendtu - Ast - also in den Adapter kannst Du nur mit den iobroker-out Nodes schreiben, als ob Du in den objekten selbst was änderst. Da schreibst Du dann von NOdeRed aus mit den iobroker-Out NOdes mit dem Type: command wenn Du ewas steuern willst.
-
@mickym Also habe jetzt den cmd Datenpunkt unter mqtt/0/solar/12133484584585/cmd/limit_persistent_relative angelegt. Welche Rolle bekommt denn der cmd-Folder bzw. dann der Unterordner limit_persistent_relative?
-
@hape1 Du brauchst das nicht anlegen. Das wird automatisch angelegt wenn Du das topic so wie gepostet in die mqtt-Out Node einträgst.
Grundsätzlich musst Du Dich entscheiden, ob Du mit Deinem Gerät über den iobroker Adapter oder über mqtt kommunizieren willst.
Das ein Gerät auf bestimmte topic im mqtt hört, ist in der Firmware des Gerätes hinterlegt. Diese topics musst Du aber selbst beschreiben/anlegen - da ein Gerät schlecht auf ein topic hören und es selbst beschreiben kann - das würde ja zu einer Endlosschleife führen, da mqtt kein ACK Flag kennt, so wie der iobroker.
Wenn Du mit mqtt kommunizierst dann ist der Pfad nicht
mqtt/0/solar/12133484584585/cmd/limit_persistent_relative
sondern
solar/12133484584585/cmd/limit_persistent_relative
Das vorne ist die Instanz des Mqtt-Adapters und hat mit mqtt nichts mehr zu tun. Deswegen gibst du in NodeRed in der mqtt-Out Node auch nicht mqtt/0/....... ein, sonder solar/......
Zusammenfassend kann man sagen, dass bzgl. mqtt - auf alle topics unter cmd hört und diese subscribed hat und dann nur die topics richtig interpretieren muss. Sprich in cmd kommen Kommandos die Du schicken willst, welches Kommando hängt vom topic unter cmd ab. - Der Wert wird auch vom Gerät nicht verändert, sondern nur als Eingabefeld benutzt, um mit dem Gerät zu kommunizieren - das Gerät meldet den augenblicklichen Status dann in den anderen Datenpunkten zurück.
-
@mickym Ah, jetzt ist zumindest ansatzweise der "Groschen" (hieran kann man erkennen, das ich nicht mehr so ganz jung sein kann )gefallen: Ich habe die ganze Zeit im mqtt-baum den Datenpunkt angelegt --> nach Deiner Erklärung natürlich ist das falsch, verstanden. Habe ich entsprechend geändert --> und tada, taucht genau da auf, wie Du es beschrieben hast.
Jetzt meine weitere Frage: Das Device opendtu, also damit meine ich das physische Gerät hat ja eine Mqtt-Schnittstelle. Diese ist aktiviert und sendet bzw. empfängt auch.
Benötigt man nun, um es einfach zu halten, den opendtu-Adapter im iobroker für die gewünschte Funktion der Leistungsregelung überhaupt?