ich konnte endlich meine Heizung mit einem RPI ebusd Modul anbinden und kann auch alle Werte auslesen. Nun wollte ich nicht
den Weg über den Client Socket gehen sondern über MQTT. Leider bin ich hier noch nicht so fit. Das Modul IPS-KS-MQTT könnte man dafür sicher nutzen, nur weiß ich nicht wie ich einen Get Befehl per Script absetzen kann. Vielleicht kann mir da jemand helfen.
Der Befehl sieht auf der Console des Brokers (gleicher Rechner wie IPS ) so aus :
ja soweit bin ich auch schon und läuft auch. Also Daten kommen an über Kai´s Modul.
Mir fehlt momentan einfach der Ansatz wie ich das Modul verwende, aber am Wochenende
werde ich mich mal einlesen. Wäre trotzdem schön, wenn du mir mal 1-2 Beispiele zeigst,
wie du liest und schreibst.
Hab es hinbekommen. Muss mir nun noch einen sinnvollen Weg suchen die Abfragen zu sortieren usw… Fragst du die
dich interessierenden Werte alle einzeln ab? Ich will ja nur die Kerndaten nicht alles was eBus hergibt.
Seid ihr hier weitergekommen? Ich rufe die Daten aktuell noch über shell_exec ab - was sauber funktioniert, aber vielleicht bekomme ich es über MQTT ein bisschen eleganter hin?
also ich löse es mit MQTT. Ein Teil der Werte wird quasi vom EBUSD gepollt, die greife ich teilweise ab und werte diese aus.
Den anderen Teil muss man quasi per MQTT abfragen und dann die Antwort auswerten. Inzwischen schalte ich so die Heizung auch per IPS auf Sommer oder Winter oder Warmwasser komplett aus, wenn ich im Urlaub bin. All zu viel wollte ich da nicht eingreifen, geht nur um Sachen, welche ich sonst an der Heizung direkt umgestellt hab.
Die Auswertung der einzelnen Temperaturen ist zwar nett, braucht aber normal kein Mensch.
bei MQTT musst du ja nicht ein externes Programm aufrufen, sondern sendest die Daten über MQTT ( ich habe das MQTT Modul von Kai verwendet ). Hier ein Beispiel der Abfrage welche ich dann aller x Min. starte. ( Der Auswertscript empfängt die Daten dann und schreibt Sie in die Variablen )
Funktioniert bei mir zumindest seit Monaten einwandfrei. Du musst halt einen EBusd mit MQTT installiert haben. Dieser sendet dann an den Broker, welcher bei mir auf dem gleichen Rechner wie IPS läuft. Ist noch nicht der in IPS integrierte, weil es den damals noch nicht gab. Wenn du mehr Details brauchst schreib ich das dir gern mal zusammen, aktuell ist die Zeit nur etwas knapp.
das wäre großartig, wenn du das gerne hier zusammenschreiben würdest.
Ich habe die aktuelle ebusd 3.3 mit MQTT installiert, nutze aber noch die alten Befehle. Ebenso nutze ich MQTT bereits für die Shelly-Module, aber da muss ich gar nix machen
Mir reicht es schon zu wissen, wie ich ebusd im MQTT-Modus starten kann und dann eben meine vorhandenen Variablen (z.B. Warmwasser-Temperatur) per MQTT füllen kann, und eben nicht über das Skript. Königsdisziplin ist dann, Werte in die Anlage zu schreiben, z.B. die Leistung der Zirkulationspumpe. Ich nehme an, dass zumindest die Strings aus den CSVs gleich sind?
ich hänge auch gerade an diesem Thema, bin mir aber nicht sicher, ob ich in diesem Thread richtig bin.
Ich habe einen Raspberry mit ebusd laufen und kann auf dem über ebusctl auf alle Daten des Brenners (BAI) und der Regelung (700) zugreifen. Soweit sind die Grundlagen geschaffen …
Auch die MQTT Verbindung zu IPS funktioniert und es kommen Daten an (MQTT Server und MQTT Device). Allerdings frage ich mich, wie ich die Daten refreshen oder setzen kann.
Due to the subscription to the topic, ebusd also allows actively sending messages on the eBUS. This is supported by using a specific suffix to the topic:
[ul]
[li]/get: initiates an active refresh of a read message from the eBUS.[/li]> When the message was read, ebusd send the corresponding topic to MQTT.
[li]/set: allows to send a write message to the eBUS (if the access level allows it, see above).[/li]> [li]/list: publishes all messages known so far (according to access level, see above).[/li]> [/ul]
For /get and /set suffixes, the optional message payload can be used to transfer additional input data, e.g. the values to be set for a write message or the needed input for a read message, separated by semicolon.
In der IPS Doku zu MQTT steht ein Beispiel wie man über die Instanzkonfiguration oder über RequestAction einen Wert setzen kann. Aber das funktioniert hier nicht. Wenn ich den Wert über ‚/GET‘ aktualisieren möchte, dann steht anschließend ‚/GET‘ in der Statusvariablen
MQTT ist noch neu für mich, daher denke ich, dass ich sicherlich irgendetwas überlesen habe. Könnte mir hier jemand weiterhelfen?
Ich glaube die meinen, dass du am Topic ein /get anhängen musst. D.h. du willst eine neue MQTT Instanz erstellen die mit irgendwas/get endet. Dort dann ein RequestAction auf die Variable (Inhalt wahrscheinlich egal)
Ah, in die Richtung geht es. Ich werde es mal ausprobieren. Es scheint mir aber sehr umständlich zu sein, für die /get und /set Variante jeweils neue Instanzen erstellen zu müssen.
Ist das vielleicht noch ein offenes Thema bei der IPS Implementierung von MQTT, oder lässt sich so etwas dann wohl nur über ein eigenes Modul sinnvoll lösen?