NEWS
mqtt client/server adapter mit openWB
-
Hallo zusammen,
ich nutze den iobroker/ mqtt client-server adapter in der aktuellsten stable Version. Ich möchte den mqtt Adapter zur Steuerung der openWB nutzen. Hierfür habe ich den Adapter installiert und nur die IP Adresse der openWB angegeben (s.u.). Über die Forensuche/ Google habe ich nichts gefunden.
Auf der weiteren Konfigurationsseite habe ich nichts angepasst ausser "Set Retain Flag" da dies im openWB Forum so empfohlen wurde:
Nun ist es so, dass wenn ich über Vis z.b. den ChargeMode ändern möchte, dies in der OpenWB beim ersten Klick richtig ankommt (der Charge Mode ändert sich), jedoch wird der Datenpunkt nicht immer geschrieben:
D.h. in der vis Springt der Button teilweise wieder auf "deaktiviert" zurück, obwohl der Befehl erfolgreich an die OpenWB gesendet wurde. Die beiden gelb markierten Datenpunkte wurden automatisch vom mqtt Adapter angelegt.
Kann mir jemand einen Tipp geben? Ich möchte natürlich den Status der openWB in meiner Wallbox sehen können. Wird der Datenpunkt nicht richtig aktualisiert, ist das nicht möglich.
Danke vorab!
-
Ob das mit dem Retain Flag so eine gute Idee ist, wage ich mal zu bezweifeln, aber wird nicht die Ursache des Problems sein.
Ich würde grundsätzlich immer alle Haken weg machen.
In meinen Augen hast Du ja gar nichts subscribed - also wie soll sich da was ändern??
wundert mich, dass Du überhaupt Datenpunkte bekommen hast.
Ob es Dein Problem löst - weiß ich nicht. Wenn der Button wieder zurückspringt, hat ihn ja die Quelle zurückgesetzt also Dein Broker - oder OpenWB und nicht der iobroker - entweder weil der Button wie ein Taster reagiert und keinen Zustand widerspiegelt oder die Aktion nicht erlaubt ist.
Kein Ahnung. In meinen Augen setzen die Datenpunkte ein Kommando ab (also enthalten ja ein set), aber spiegeln nicht den Status wieder.Um die aktuelle Einstellung zu sehen, ist mE ein anderer Datenpunkt zuständig.
Mit dem retain - bleiben einstellung in der mqtt DB erhalten ohne, dass sie neu abgesetzt werden müssen. Ich halte sowas für problematisch. Da mqtt sowohl zum Steuern, als auch zum Anzeigen des Status immer den aktuellen Status anzeigen sollten und nicht etwas, was ich vor ewigen Zeiten mal gesetzt habe. Im iobroker hast Du zwar einen Zeitstempel aber das spielt in der normalen mqtt Kommunikation keine Rolle.
Also such mal einen anderen Datenpunkt - der Dir den Zustand anzeigt. Wie gesagt die "SET" - Datenpunkte dienen zum Steuern setzen und geben keinen Status wieder. Und das aus gutem Grund, um Endlosschleifen zu vermeiden. Hier wird nicht mit einem ACK-Flag gearbeitet, wie sonst im iobroker. Sprich wenn sowohl Du als Kommando als auch der Adapter den gleichen Datenpunkt bei einer aus dem Kommando resultierenden Statusänderung den Datenpunkt ändert, ist die Endlosschleife perfekt.
In meinen Augen wirst Du deshalb nicht drum rumkommen, einen eigenen Datenpunkt zu erstellen und das logisch abzubilden. Das heißt Du musst selbst mit Deiner Logikmaschine und dem ACK quasi wie ein Adapter agieren.
Wenn Du also einen DP unter 0_userdata.0 erstellst und Du mit VIS die Taste drückst, wird der Datenpunkt in der Regel unbestätigt geschrieben, Du agierst mit Deiner Logikmaschine und setzt das Kommando über den SET-Datempunkt im mqtt.
Sobald der Status Datenpunkt im mqtt aktualisiert wird setzt Du den 0_userdata.0 mit Deiner Logikmaschine, aber diesmal mit gesetztem ACK Flag - also aktualisierst anstatt steuerst (im Blockly) bzw setzt im NodeRed den Datenpunkt als value und nicht als command.
-
Mit den Einstellungen kann ich die Werte aus der OpenWB auslesen und in iobroker nutzen.
Steuern der OpenWB habe ich noch nicht benötigt, deshalb auch keine Erfahrung mit.
-
@holgerwolf said in mqtt client/server adapter mit openWB:
Mit den Einstellungen kann ich die Werte aus der OpenWB auslesen und in iobroker nutzen.
Steuern der OpenWB habe ich noch nicht benötigt, deshalb auch keine Erfahrung mit.
Welche Version des mqtt Adapters nutzt du? Welche oWB Software-Version (ich habe die aktuellste oWB stable 1.9.244 installiert)? Mein mqtt Adapter in v 2.4.0 geht immer kurz auf grün und dann wieder gelb. Meine Einstellungen sind wie deine.
@mickym danke für deinen Input. Tatsächlich war das ein schlechter Screenshot ohne ein Subscribe Pattern.
Danke auch für deinen Hinweis bzgl. dem Steuern, ich werde es so umsetzten. D.h. es ist also „as designed“ dass unter set die Datenpunkte nicht erscheinen und auch ggf wenn ich sie anlege nicht durch die oWB aktualisiert werden. Das erklärt natürlich einiges.
-
@mading sagte in mqtt client/server adapter mit openWB:
Welche Version des mqtt Adapters nutzt du? Welche oWB Software-Version (ich habe die aktuellste oWB stable 1.9.244 installiert)? Mein mqtt Adapter in v 2.4.0 geht immer kurz auf grün und dann wieder gelb. Meine Einstellungen sind wie deine.
mqtt ist auch 2.4.0, OWB ist auch 1.9.244
Denke auch nicht, dass es an den Versionen liegt. Das läuft bei mir schon seit Monaten mit allen Updates dazwischen ... -
Auch wenn es sich jetzt etwas vermischt, ein anderer Benutzer im owb Forum hat ebenfalls Hinweise gegeben: https://openwb.de/forum/viewtopic.php?p=39486#p39486
Entsprechend des Feedbacks habe ich schon etwas umsetzen können mit Blockly. Lustig ist nur dass set/Lademodus nicht funktioniert, global/ChargeMode schon. Siehe verlinkter Thread. Stelle dann gern mein Blockly/ Vis zu Verfügung. Die Logik im vis steht schon. Ladepunkt 1/0 geht sowie ChargeMode. Sofortlademodus kwh und SoC geht noch nicht.
-
@mading Ich versuche gerade den SoC zu setzen leider gelingt mir das auch nicht. Ich bekomme zwar alle Werte aber schreiben funktioniert leider nicht.
-
@kmuenke Machs doch umgekehrt. Frage den SoC über das generische http-SoC Modul aus dem iobroker in die OpenWB aus:
http://ip-Adresse-iobroker:8087/getPlainValue/objectname-SoC
Der simple API Adapter muss dazu installiert sein.
-
@holgerwolf said in mqtt client/server adapter mit openWB:
http://ip-Adresse-iobroker:8087/getPlainValue/objectname-SoC
Ja da kommt was zurück
http://192.168.2.20:8087/getPlainValue/mqtt.1.openWB.set.lp.1.%Soc
Antwort war 68
-
@kmuenke
Deine Aufgabenstellung ist ein SoC den du in iobroker hast in OpenWB einlesen zu können?Dann musst du den Pfad oben an deinen Objekt Punkt im iobroker anpassen. Den kannst du dann auf dem oben beschrieben mit dem generischen SoC Modul
auslesen.Ich hatte das früher so gemacht, als die OpenWB meinen SoC noch nicht direkt auslesen konnte. Den hatte ich dann mit nem Script im iobroker abgefragt und über die WebApi an OpenWB übergeben.
-
Ja genau das hatte ich so vor. Den SoC im iobroker einfach an die OpenWB wie auch immer übergeben.
Ich hatte das früher so gemacht, als die OpenWB meinen SoC noch nicht direkt auslesen konnte. Den hatte ich dann mit nem Script im iobroker abgefragt und über die WebApi an OpenWB übergeben.
Nur was muss da einstellen oder wie ist die Übergabe ?
-
Einstellungen - Modulkonfigurationen - Ladepunkte (von Warnung nicht erschrecken lassen)
und dann unter SoC Modul:
-
@kmuenke Darf ich mal nachfragen um welche EV es sich handelt?
-
wie Gei..... es funktioniert Da hätte ich auch mal gleich drauf kommen können. Super DANKE
Audi e-Tron 50 die alte Saufziege.
-
Hallo zusammen,
zur Zeit scheitere ich daran, meine PV & EVU Daten vom ioBroker via MQTT an die openWB zu übergeben.
Obwohl ich aus meiner Sicht alles so berechne, wie es in den openWB Einstellungen vorgegeben wird und die Daten per MQTT an die openWB sende, werden sie dort nicht angenommen oder übernommen...Ich sende die Daten an die openWB, sobald die PV-Anlage neue Daten ausgibt - also in etwa jede Sekunde neue Daten.
Die Einstellungen im MQTT Adapter habe ich so vorgenommen, wie sie im ersten Post abgebildet sind.Wenn ich den MQTT Adapter neu starte, dann übernimmt openWB einmalig den Wert und gibt ihn auch wieder aus - eine weitere Aktualisierung findet aber nicht mehr statt.
Hat jemand eine Idee, was ich falsch mache / falsch eingestellt habe?
-
@kmuenke damit gehts: Sofortladen SoC Ziel in %: openWB/config/set/sofort/lp/1/socToChargeTo
sh. https://github.com/snaptec/openWB/wiki/Steuerung-der-openWB-mit-iobroker-&-vis
-
@strobi wie übergibst du sie denn? Via Blockly? Soweit mir bekannt ist, benötigst du dafür den "Steuere" Block.
Das Dumme ist nur, dass die "Topics" nicht alle bekannt oder gepflegt sind. Du könntest noch in den Source Files der openWB nachsehen (-> https://github.com/snaptec/openWB/blob/master/runs/mqttsub.py). Alternativ kannst du auch über Status --> mqtt in der openWB nachsehen welches Topic benutzt wird und das nachvollziehen. Das oWB Web Interface arbeitet ebenfalls mit mqtt und übergibt die Daten an das "Backend"
-
@mading Kann man den VIS als Widget von der Seite
https://github.com/snaptec/openWB/wiki/Steuerung-der-openWB-mit-iobroker-&-vis
importieren?
Bei mir klappt das nicht, es passsiert beim Widgetimport nichts. -
@werner2000x sagte in mqtt client/server adapter mit openWB:
es passsiert beim Widgetimport nichts.
Das ist eine View , wenn du das hier meinst :
. -
@glasfaser Genau das habe ich versucht, es wird in VIS jedoch nicht angezeigt.
Ich war in VIS auf Widget importieren und habe den Inhalt der Datei view_owb.txt in das
Importfenster kopiert. Es kommt keine Fehlermeldung und es wird nicht das neue VIS View angezeigt. Komisch ...