NEWS
Stiebel-ISG - Modbus
-
Ich habe noch ein Verständnisproblem, was nicht direkt etwas mit dem Adapter zu tun hat, aber ich komme da einfach nicht weiter. Ist vermutlich eine ganz simple Sache.
Was wäre der "richtige" Weg, die Modbus Werte per MQTT anderen Konsumenten zur Verfügung zu stellen?
Erstmal müsste ich ja in meiner MQTT Instanz in ioBroker auch die "ack=true" states senden. Wenn ich das mache (und bei Subscribe patterns "#" eingetragen habe, sowie bei publish own states einfach "*") läuft allerdings mein ioBroker in irgendeine Art Endlosschleife.
Nach ein wenig Rätseln habe ich angenommen dass das passiert, weil ich dadurch auch MQTT topics publishe, für die ich gleichzeitig eine subscription habe. Das hätte sich ja aber dadurch lösen lassen müssen, dass ich bei "prefix for all topics" einfach etwas eintrage (z.Bsp. "iobroker/"). Da ich für "iobroker/#" keine subscription habe, hätte dadurch keine Endlosschleife mehr entstehen dürfen.
Das Problem besteht aber weiter. Ich kann das aktuell nur umgehen, indem ich stark einschränke was ich in ioBroker als subscription habe, und was ich selbst veröffentliche. Ich möchte aber unter anderem gern weiterhin "#" als subscription nutzen können.
So sieht das aktuell bei mir aus, da gibt es doch aber sicher einen eleganteren Weg? Wenn jetzt durch neue Geräte noch andere Topics entstehen, müsste ich die dann alle separat zu den subscribe patterns hinzufügen.
Und da ich die eigentliche Ursache noch nicht verstanden habe, befürchte ich gleichzeitig, dass ich das Problem noch gar nicht gelöst habe. -
@berlinerbolle
Das wäre vermutlich ein Thema für einen eigenen Thread. Kann ich dir auf die Schnelle leider nicht beantworten. -
Schade, ich dachte ich hätte irgendeinen offensichtlichen Fehler gemacht, der sonst niemandem passiert. Danke trotzdem!
-
Vielleicht ist es für den ein oder anderen interessant: wegen meines "Problems" habe ich mir jetzt einfach zwei MQTT Instanzen angelegt. Die erste "normale" abonniert einfach alles wie gehabt, und sendet keine "ack=true" Parameter raus, so wie es auch Standard ist.
Die Zweite Instanz abonniert nichts, und sendet die Werte des Modbus Adapters (und ein paar JavaScript Werte, etc) raus, und hat dafür die Option aktiviert, auch Werte mit "ack=true" zu senden. Das scheint so zu funktionieren.
Angenehmer Nebeneffekt ist, dass ich im ersten Adapter direkt auch sehe, was der Zweite so sendet. Beide Adapter senden natürlich nur bei Änderung eines Wertes. -
@berlinerbolle du schreibst von deinem "Problem" und ich kapier auch nach 5x lesen deines Beitrages nicht ansatzweise worum es überhaupt geht gg
Du willst doch nur ne Heizung steuern
-
Kurzgesagt war mein Problem, dass ich die Modbus Werte auch per MQTT veröffentlichen möchte. Dann kann ich an anderen Stellen einfach per MQTT drauf zugreifen.
Wenn ich das mit der gleichen MQTT Instanz in ioBroker machen will, muss ich die Option "Send states (ack=true) too" einschalten. Das führt aber ohne intensives Filtern der abonnierten und veröffentlichten Topics zu einer Endlosschleife in der MQTT Instanz, die den ganzen ioBroker lahmlegen kann. Vermutlich deshalb, weil dann alle MQTT Meldungen die in ioBroker reinkommen, direkt auch wieder veröffentlicht werden. Ist aber wie gesagt nur eine Vermutung.Deshalb hab ich mir einfach eine zusätzliche MQTT Instanz hochgezogen, die nur dafür da ist, die Modbus Werte per MQTT zu veröffentlichen. Die abonniert gar nichts, sondern veröffentlicht nur.
-
@frana120500
Nur um Missverständnisse zu vermeiden. Das hat mit der Heizung eigentlich nicht direkt etwas zu tun. -
@berlinerbolle
Ich hatte nicht gelesen, dass du nur eine MQTT-Instanz hattest. Wäre für mein Verständnis eher gedacht, entweder als Server oder Client zu betreiben. Also zwei Instanzen.
aber wie gesagt, anderes Thema. -
Genau, hat nichts mit der Heizung an sich zu tun. Ich habe nur nach einem Weg gesucht, die Heizungsparameter aus dem Modbus Adapter per MQTT für Statistik und Steuerung auch anderen Diensten im Netz zugänglich zu machen. Zum Beispiel habe ich eine kleine NodeRed INstallation, die mir ein paar Hausdaten auf einer Webseite ausgibt.
-
@berlinerbolle Alles gut. Wollte damit keine Kritik äußern. Dafür hab ich zu wenig Ahnung von dem ganzen Zeugs.
Ich weiß nur, dass meine WP absolut verrückt spielt. Obwohl der Datenpunkt "überheizenokay" auf false steht, bollert meine WP mit den erhöhten Werten und wir gehen kaputt. Ich verbrauche die letzten Tage 45kWh Strom... täglich.
Ich muss das Script jetzt erstmal beenden und auf Fehlersuche gehen.
-
War auch nicht als Kritik angekommen.
Das mit deiner WP ist natürlich unschön. Sagt die Weboberfläche des ISG denn auch, dass du im überheizen-Modus bist?
-
@berlinerbolle
Betriebszustand 3 ist überheizen? Wo kann man das sehen? -
Ich glaube, dass das Überheizen ist, ja - dann müssten ja auch die Solltemperaturen auf deine Überheiztemperaturen eingestellt sein, oder? Also unter Info --> Anlage steht als Solltemperatur deine Überheiztemperatur?
-
@frana120500
Der Punkt ueberheizenOkay löst aber nur den Counter für Betriebsstatus 3 aus. -
@berlinerbolle
Genau so ist es.@frana120500
Zeig doch nochmal dein Skript -
@berlinerbolle Die erhöhten Werte habe ich bei Einstellungen >> Energiemanagement eingetragen. und die Anlage läuft im Programmmodus
-
@frana120500
Der Programmmodus wird aber vom Betriebszustand 3 überschieben. Mal das Skript inspizieren...Kommt denn die Telegramnachricht an, dass du nicht mehr genug Strom einspeist?
-
@unltdnetworx Nein, aber das ist ja auch nicht verkehrt, da das Script ja gar nicht auslöst.
ich habe jetzt alle Temperaturwerte händisch an der Anlage überschrieben.
-
Das kann sein, dass das bei SG Ready so nicht ist, aber bei EMI war es so, dass unter anderem die Raumsolltemperatur überschrieben wurde mit der Solltemperatur aus dem Energiemanagement.
Soll heißen im Normalbetrieb stand in "Info" --> "Anlage" die "normale" Raumsolltemperatur, und bei Überheizen stand dort die Temperatur aus dem Energiemanagement.
Falls das bei SG Ready auch so ist, müsste bei dir in "Info --> Anlage" jetzt die überhöhte Raumsolltemperatur stehen, richtig?
-
@berlinerbolle ach so meintest du das: Ja das ist korrekt