NEWS
Node-Red - Shelly PlusPlugS - Mqtt Node-Red Dashboard
-
@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?
-
@hape1 sagte in Node-Red - Shelly PlusPlugS - Mqtt Node-Red Dashboard:
Benötigt man nun, um es einfach zu halten, den opendtu-Adapter im iobroker für die gewünschte Funktion der Leistungsregelung überhaupt?
Du musst entscheiden, ob Du über mqtt steuern willst oder über den Adapter. Wenn Du über mqtt steuern willst, brauchst Du den Adapter nicht. Wahrscheinlich kann man auch über den Adapter steuern, dann brauchst Du mqtt nicht.
Wenn es also jetzt über mqtt geht und Du bist damit zufrieden, dann würde ich den Adapter eher rausschmeissen.
-
@mickym Tja, ich möchte nun erstmal versuchen bei mqtt zu bleiben. Ich habe den iobroker-opendtu Adapter jetzt rausgeschmissen. Nun sieht das Ganze so aus:
Leider funktioniert die Regelung immer noch nicht ...
-
@hape1 Sowas sagt mir nichts - kannst du nun einen Kommando schicken und wird es angenommen oder bist Du damit nicht zufrieden was der Flow macht?
-
@mickym Ich sende ein Kommando auf cmd auf solar/usw. , aber es wird nicht angenommen
-
@hape1 Ja wie gesagt - dann schau nochmal in den anderen Threads - ich kann Dir zu NodeRed und Mqtt allgemein helfen, aber nicht zu speziellen Geräten.
Vielleicht ist es ja auch einfacher, wenn Du über den Adapter und nicht über mqtt steuerst. Musst Dich halt für eines entscheiden.
-
@mickym ich habe jetzt den zu regelnden Wechselrichter aus der opendtu gelöscht. Somit sollten auch keine Daten usw im iobroker Baum zu sehen sein. Sind sie aber und sie tauchen auch nach händischer Löschung wieder auf. Liegt das daran, das der iobroker der Client ist?
Der Plan war, wenn nun alles gelöscht ist, lege ich den Richter neu an und schau dann noch mal ob er sich regeln läßt
-
@hape1 Nochmal das was im mqtt ist - hat mit dem iobroker Adapter nichts zu tun. Ja klar sind die im mqtt noch da. Aber du kannst die dann ja auch im mqtt löschen. Du sollst halt nicht über beide steuern.
Ja und Dein Gerät veröffentlicht ja weiter über mqtt - wenn Du das nicht willst musst die Schnittstelle deaktivieren. Aber mach halt eins nach dem anderen.
-
@mickym Manchmal wundere ich mich über meine eigene Hartnäckigkeit ...
Ich gehe jetzt zurück auf 0 und versuche es jetzt nur über den opendtu-iobroker-Adapter.
Wenn ich Dich jetzt nochmal folgendes fragen darf:
Diesen Wert würde ich nun gerne mit meinem flow beschreiben --> welchen node könnte ich dafür nehmen?
-
@hape1 Du nimmst die iobroker out Node und setzt das als command ab. Am Besten kopierst Du Dir den Pfad über die Schaltfläche in die Zwischenablage und kopierst ihn mit der iobroker-out Node in das topic.
Wenn Du mit der Maus am Ende der 1. Spalte des Datenpunktes auf diese Schaltfläche klickst, kannst Du den Pfad in die Zwischenablage kopieren und dann in das topic der iobroker-out Node:
Die ganzen iobroker Nodes findest Du in einer eigenen Kategorie: