Autor Thema: Helios KWL per ModbusTCP regeln/steuern  (Gelesen 2086 mal)

Online hugomckinley

  • Jr. Member
  • **
  • Beiträge: 78
Helios KWL per ModbusTCP regeln/steuern
« am: 27 Juli 2017, 22:48:40 »
Für alle Besitzer einer Helios Lüftung die per ModbusTCP erreichbar ist. (Sollte aber auch über Modbus per RS485 leicht anpassbar sein)

Mein Script hat einen funktionalen Stand erreicht, der auch für andere brauchbar sein sollte.
Ich werde diesen Artikel immer auf dem aktuellen Stand halten, damit jeder die aktuelle Version des Scripts herunterladen kann.   

Meine Anforderungen waren:
  • Ansteuerung per TCP
  • Regelungsbetrieb in Abhängigkeit der Zuluft- und Ablufttemperatur.
    Wenn es im Haus zu warm wird, versucht die Lüftung warme Luft(an heißen Tag) draußen zu lassen und kühle Luft (in der hoffentlich kühleren Nacht) herein zu bringen. (Wenn im Haus eine gewisse Ablufttemperatur überschritten ist.)
  • Sonderprogramme per Taster o.ä. wählbar (z.B. Toilettenlüftung, Kochen, Partybetrieb, ...)

Voraussetzungen:
  • Nicht zwingend, aber sinnvoll --> Lüfterstufen der KWL anpassen. (1: Reduzierte Lüftung(-30% Luftmenge), 2: Nominelle Lüftmenge, 3: Intensivlüftung (+30% Luftmenge), 4: Ultralüftung (+60% Luftmenge)) (Feuchteschutz lt. Heliosauslegung existiert nicht mehr, da er nie verwendet wurde.)
  • Perlmodul Data::UUID wird benötigt (für das eindeutige Benennen von at (geht aber sicher einfacher)
Hinweis: Wer Interesse hat, die Lüfterstufen anzupassen -> https://www.kwleasyplan.de/Downloads/Planung-Einregulierung/17.html

Bedienungsanleitung:
  • {helios_define_kwl("KWL_EG_KG","192.168.0.20","Technik")}
    legt eine Lüftung mit dem Namen KWL_EG_KG mit der IP 192.168.0.20 an, verbindet sich gleich damit und weist ihr den Raum Technik zu. Im selben Raum gibt es dann auch noch diverse ATs für das Polling der Anlage. Das angelegte Device liest jetzt Daten der Anlage aus und füllt die entsprechenden Readings. Es findet noch keinerlei Beeinflussung der Anlage statt. Kann verwendet werden, um die Anlage zu visualisieren.
  • {helios_define_rg("Technik")}
    legt eine readingsgroup an, die einige Parameter der Anlage(n) anzeigt und dazu dient, die Automatik zu steuern/parametrieren. Folgende Dinge sind derzeit per Mausklick änderbar:
    (aktueller Wert wird angezeigt, Klick schaltet um)
    • Automatik: helios: Anlage wird von Helios-Software gesteuert, fhem: Anlage wird von fhem gesteuert
    • Pollenfilter: yes: Der Pollenfilter ist eingesetzt, no: Der Pollenfilter ist nicht eingesetzt
      (Es werden die Kennlinien der Anlage angepasst, siehe weiter unten)
    • Max. Level: Es wird die Begrenzung zwischen Stufe 3 und Stufe 4 umgeschaltet
    • Restlaufzeit Filter: Wenn die Restlaufzeit 0 ist, wird durch den Klick die Laufzeit neu gestartet
    • Betriebsstunden (Vorheizung): Es wird ein manueller long_poll ausgeführt
Hinweis: Es wird ein notify angelegt, welches die Funktionen der Readingsgroup aufruft.
  • {helios_req_level("KWL_EG_KG",4,15)}
    in einem notify, das auf einen Taster im WC triggert, fordert für 15 Minuten die Lüfterstufe 4 an.
    Wird genauso in der Küche für das Kochen verwendet. z.B. 180 Minuten Stufe 3. (Ist besonders dann relevant, wenn die Lüftung im Absenkbetrieb läuft, weil es draußen heiß ist, aber trotzdem gekocht wird ;-)
  • Das Attribut time_list legt die Umschaltzeiten für die Zeitsteuerung fest. Format ist HH:MM|Lüfterstufe. Der Umschaltzeitpunkt kann bis zu 10 Minuten später sein, je nachdem wann das at der Regelung läuft.
  • Das Attribut level_G4_F7 legt die Kennlinien des Zuluftventilators fest (siehe Einregulierungskennlinien)
    Die aktuellen Werte werden von der Anlage ausgelesen und für beide Kennlinien gespeichert. Dann muss man je nachdem, ob die gelesenen Werte mit oder ohne Pollenfilter sind, die anderen Werte eintragen.
    5.5 6.1 6.6 7.6|5.5 6.1 6.6 7.6
    Erster Block: Werte mit G4 Filter, zweiter Block Werte für G4+F7 Filter. Nachdem ich den Pollenfilter drinnen habe, muss der erste Block geändert werden.

Update von bestehenden Anlagen:
Sollte es schon eine KWL geben, muss diese erneut mit dem gleichen Namen angelegt werden. (Defmod macht das Update des Objekts.) Das wars schon.


Im Betrieb sieht das dann wie unten im Bild aus.
Erklärung:
  • Es sind zwei Anlagen.
  • Oben jeweils die Temperaturen -> siehe Legende.
    Unten die Parameter der Anlage -> nur die Lüfterstufe (rosa Linie) ist hier relevant.
  • KWL_EG_KG läuft im Kühlbetrieb. Das Absenken bei steigenden Außenlufttemperaturen ist gut zu erkennen.
  • KWL_OG_DG läuft im Zeitbetrieb (kühl genug im Haus). Hier sind die diversen Toilettenbesuche der Bewohner und das Kochen erkennbar.

Im nächsten Screenshot sieht man zum besseren Verständnis, wie das bei mir aussieht. (Das Rollo gehört natürlich nicht zur Lüftung ;-)

... und noch ein aktueller Screenshot des Winterbetriebs, bei dem man die Leistung der Vorheizung und den Zeitbetrieb sieht.

Folgende Parameter sind als Attribute der Lüftungsdevices konfigurierbar:
  • control_mode_limit: legt fest, wann zwischen Kühlbetrieb und Zeitbetrieb gewechselt wird.
  • hysteresis: legt die Hysterese der Schaltvorgänge für die Lufttemperaturen fest.
  • max_cooling_diff: Temperaturdiffernz zw. Abluft und Zuluft für maximale Kühlung(Stufe 4).
  • std_cooling_diff: Temperaturdiffernz zw. Abluft und Zuluft für normale Kühlung(Stufe 3).
  • max_allowed_level: maximale Lüfterstufe die erlaubt ist. (Lärm/Stromverbrauch)
  • level_G4_F7: Lüfterkennlinie ohne und mit Pollenfilter.

Das war es schon aus Endanwendersicht :-)

Das vorliegende Script ist noch nicht fertig. Folgende Punkte stehen auf meiner Wunschliste.
  • sprechende Namen für die Register (derzeit nur laut csv herauszufinden)
  • Beachrichtigungen (Filterwechsel, Fehler/Warnungen/Infos inkl. String, Verbindung zur Anlage(kann nicht über opened erkannt werden -> Zeitstempel Reading?))

Diese Liste ist sicher nicht vollständig und deckt nur meine Wünsche ab.
Weitere Details findet ihr im Changelog im Scriptfile.
Ich möchte euch bitten, diese Liste per Post in diesem Thread mit euren Wünschen zu erweitern und ich schaue was ich realisieren kann.

Technische Details für die, die es genauer wissen wollen.
  • Das Script basiert auf dem ModbusAttr-Modul von Stefan Strobel. Dieser hat es extra für Helios-User modifiziert um asynchron lesen zu können. Nochmals herzlichen Dank dafür.
  • Ich habe versuchsweise eine Lüfterstufe probiert die 100% der Anlagenleistung entspricht. Dabei hatte man aber das Gefühl, dass man akustisch im Windkanal schläft! Meine Stufe 4 mit +60% ist absolut schlafzimmertauglich, wobei ich aber sagen muss, dass unsere Anlage sehr leise ist.
  • Es gibt ein userReading WBG, das den Wärmebereitstellungsgrad des Wärmetauschers errechent (stimmt derzeit nur für Winterbetrieb)
  • Das Umschalten zwischen Kühl- und Zeitbetrieb erfolgt mit der Hälfte der eingestellten Hysterese, da sich die Ablufttemperatur sehr träge verändert.
  • Es ist mir sehr wohl bewusst, dass man mit einer KWL nicht klimatisieren kann, jedoch ist es subjektiv jetzt um einiges angenehmer und in der (kühlen( Nacht ist die große Luftmenge sehr angenehm
Zur Regelung:
  • Die Regelung hat Töpfe für die jeweiligen Lüfterstufen und es zieht der höchste Topf der nicht leer ist. Diese Töpfe werden durch die Automatik und Sonderprogramme befüllt und wieder geleert. Somit ist es egal, woher die Anforderung einer Stufe kommt.
  • Für Sonderprogramme werden ATs erzeugt, welche nach Ablauf der gewünschten Zeit den Topf wieder um eins verringern.
Technische Wunschliste:
  • longpoll beim Anlegen der Anlage wird nicht ausgeführt! (queue too long) sollte erledigt sein, noch nicht getestet

Für jegliche Anregung und Kritik/gefunden Fehler bin ich dankbar. Ansonsten bastle ich im stillen Kämmerlein weiter und melde mich bei Neuigkeiten.

Grüße,
Hugo
« Letzte Änderung: 17 Juni 2018, 21:09:15 von hugomckinley »
----------------------------------------------------
OW-SERVER-ENET-2
div. 1-wire Sensoren
HMLAN + HM-Komponenten
Gefällt mir Gefällt mir x 1 Liste anzeigen

Online hugomckinley

  • Jr. Member
  • **
  • Beiträge: 78
Antw:Helios KWL per ModbusTCP regeln/steuern
« Antwort #1 am: 21 September 2017, 20:21:15 »
#   V0.99:
#      - bugfix: set the correct readings after changing the pollen-filter
#      - bugfix: corrected loglevels
#      -
#   V0.98:
#      - bugfix: corrected timing for communication (dev-timing-sendDelay, dev-timing-commDelay)
#      - bugfix: maxqueuelength set to 500 to avoid "queue too long" error for the long_poll
#   V0.97:
#      - bugfix: corrected link in readingsgroup for filterreset
#      - feature: filterreset implemented (v01034 noticed as flag for filterreset)
#      - bugfix: execute long_poll after setting a register via the readingsgroup
#   V0.96:
#      - bugfix: corrected Preheating value (event-on-update-reading was not set)
#      - feature: added functional readingsgroup (switch steeringmodes, manual long_poll, enable/disable pollen filter,
#        switch max_allowed_level between 3 and 4, reset filter time(not funtional yet))
#      - bugfix: wrong split pattern in some cases
#      - bugfix: no RW check in helios_reg subroutine
#      - feature: easier redefinition of device (defmod replced define)
#   V0.95:
#      - feature: timeautomatic implemented
#   V0.94:
#      - bugfix: consider the max_allowed_level attribute
#   V0.93:
#      - feature: consider the summerbypass setting
#      - feature: allow cooling mode only if summerbypass/passive cooling is allowed (uses v021020 v02121 v02128 and v02129)
#   V0.92:
#      - bugfix: changed switching value for control_mode from hysteresis/3 to hysteresis/2 (hystersis/3 lead to fast switching of mode)
#   V0.91:
#      - bugfix: correct generation of ATs to avoid concurrent time of polls (alignTime)
#    V0.9:
#       - initial release


#Known Bugs:
#
#2017-10-07: times in time_list MUST be hh:mm (05:45)! h:mm (5:45) is not allowed because of the key sort of the hash
#2017-10-07: max_allowed_level ignores level instead of remapping to the allowed maximum
#2017-07-19: long_poll isn't executed at the generation of the Device (other polls too?)

#ToDo:
#    - sprechende Namen für die Register
#    - Benachrichtigungen (Filterwechsel, Fehler/Warnungen/Infos inkl. String, Verbindung zur Anlage(kann nicht über opend erkannt werden -> Zeitstempel Reading?))
« Letzte Änderung: 17 Juni 2018, 21:10:30 von hugomckinley »
----------------------------------------------------
OW-SERVER-ENET-2
div. 1-wire Sensoren
HMLAN + HM-Komponenten

Offline amthenia

  • New Member
  • *
  • Beiträge: 44
Antw:Helios KWL per ModbusTCP regeln/steuern
« Antwort #2 am: 25 September 2017, 18:15:30 »
 8) Super!

Online hugomckinley

  • Jr. Member
  • **
  • Beiträge: 78
Antw:Helios KWL per ModbusTCP regeln/steuern
« Antwort #3 am: 14 Oktober 2017, 19:35:23 »
V0.95 ist online

Hier ist jetzt auch die Zeitsteuerung außerhalb des Kühlbetriebs implementiert. Derzeit macht das Ding schon genau das, was ich möchte und somit werde ich in nächster Zeit nicht aktiv daran weiter arbeiten. Sollte jemand eine Funktion benötigen, einfach kurz melden, vielleicht kann ich das dann kurzfristig einbauen.
----------------------------------------------------
OW-SERVER-ENET-2
div. 1-wire Sensoren
HMLAN + HM-Komponenten

Online hugomckinley

  • Jr. Member
  • **
  • Beiträge: 78
Antw:Helios KWL per ModbusTCP regeln/steuern
« Antwort #4 am: 02 März 2018, 13:51:41 »
V0.96 ist online

- Jetzt gibt es eine Readingsgroup mit der man die Automatik ein-/ausschalten kann, den Pollenfilter aktivieren/deaktivieren kann (Kennlinie wechseln, einbauen muss man selber;-), max. erlaubte Lüftungsstufe und manuelles Ausführen eines long_poll
- Diverse Fehlerkorrekturen

Kurzanleitung für Update:
  • Anlage mit gleichem Namen anlegen --> führt zu einem Update
  • helios_define_rg("Raumname") legt die Readingsgroup an.
  • Attribut level_G4_F7 passend ändern (wenn ein Pollenfilter verwendet wird)(siehe Anleitung ganz vorne)
« Letzte Änderung: 17 April 2018, 11:37:30 von hugomckinley »
----------------------------------------------------
OW-SERVER-ENET-2
div. 1-wire Sensoren
HMLAN + HM-Komponenten

Online hugomckinley

  • Jr. Member
  • **
  • Beiträge: 78
Antw:Helios KWL per ModbusTCP regeln/steuern
« Antwort #5 am: 11 März 2018, 10:55:21 »
V0.97 ist online

- Das Bestätigen des Filterwechsels kann jetzt per FHEM gemacht werden. (startet die Laufzeit neu)

Hinweis für Update: readingsgroup Update ist erforderlich. (Neuanlegen mit gleichem Namen)
« Letzte Änderung: 17 April 2018, 11:37:57 von hugomckinley »
----------------------------------------------------
OW-SERVER-ENET-2
div. 1-wire Sensoren
HMLAN + HM-Komponenten

Offline masterkey

  • New Member
  • *
  • Beiträge: 17
Antw:Helios KWL per ModbusTCP regeln/steuern
« Antwort #6 am: 11 Juni 2018, 22:31:37 »
Hallo Leute,

habe es jetzt hinbekommen die PM-Datein einzubinden.

Wenn ich allerdings jetzt wie in der Anleitung
{helios_define_kwl("KWL_EG_KG","192.168.0.20","Technik")}     (in meinem Fall anderer Name und andere IP)

eingebe kommt die Meldung:

"Unknown command helios_define_kwl("KWL_EG_KG","192.168.0.20","Technik")}, try help. "

Was mache ich falsch? Muss ich erst noch etwas anderes machen?

Online hugomckinley

  • Jr. Member
  • **
  • Beiträge: 78
Antw:Helios KWL per ModbusTCP regeln/steuern
« Antwort #7 am: 11 Juni 2018, 22:47:09 »
Guten Abend,

ich nehme an, dass die geschwungene Klammer vor dem helios_define_kwl auch dabei war, oder?
Hast du fhem nach dem Reinkopieren der Datei neu gestartet?
Versuch mal unter "Edit Files", ob du die 99_heliosUtils.pm öffnen und speichern kannst -> führt auch zum neu Laden dieser Datei.

Hugo
----------------------------------------------------
OW-SERVER-ENET-2
div. 1-wire Sensoren
HMLAN + HM-Komponenten

Offline masterkey

  • New Member
  • *
  • Beiträge: 17
Antw:Helios KWL per ModbusTCP regeln/steuern
« Antwort #8 am: 11 Juni 2018, 22:58:51 »
Guten Abend,

vielen Dank für die fixe Antwort! Geschwungene Klammern waren dabei. Neu gestartet hab ich.

Beim speichern der 99_heliosUtils.pm bekomme ich die Meldung:

./FHEM/99_heliosUtils.pm: Permission denied




Online hugomckinley

  • Jr. Member
  • **
  • Beiträge: 78
Antw:Helios KWL per ModbusTCP regeln/steuern
« Antwort #9 am: 11 Juni 2018, 23:12:14 »
Dann stimmen die Rechte im Filesystem nicht. Setz die selben Rechte wie für die andern pm Dateien in diesem Verzeichnis. Neu starten und fhem sollte die datei lesen und schreiben können. Wie sind denn die Rechte jetzt gesetzt? Lesen geht ja jetzt auch schon. Ganz klar ist mir das jetzt nicht, warum es die funktion nicht gibt.

Hugo
----------------------------------------------------
OW-SERVER-ENET-2
div. 1-wire Sensoren
HMLAN + HM-Komponenten

Offline masterkey

  • New Member
  • *
  • Beiträge: 17
Antw:Helios KWL per ModbusTCP regeln/steuern
« Antwort #10 am: 12 Juni 2018, 18:29:04 »
also die Rechte der 99_heliosUtils.pm waren wie bei allen anderen PM-Dateien in dem Ordner rw-r--r--. Allerdings war der Besitzer bei dieser "root" und nicht wie bei den anderen "fhem". Ich habe deshalb den Besitzer ebenfalls auf "fhem" geändert.

Nach Neustart und Eingabe von:
{helios_define_kwl("KWL_EG_KG","192.168.0.20","Technik")}bekomme ich jetzt die Meldung:
Zitat
Undefined subroutine &main::helios_define_kwl called at (eval 59) line 1.
Wenn ich in Edit files die 99_heliosUtils.pm speichern will bekomme ich folgende Meldung:
Zitat
Can't locate Data/UUID.pm in @INC (you may need to install the Data::UUID module) (@INC contains: . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/arm-linux-gnueabihf/perl5/5.24 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base ./FHEM) at ./FHEM/99_heliosUtils.pm line 47. BEGIN failed--compilation aborted at ./FHEM/99_heliosUtils.pm line 47.


Online hugomckinley

  • Jr. Member
  • **
  • Beiträge: 78
Antw:Helios KWL per ModbusTCP regeln/steuern
« Antwort #11 am: 12 Juni 2018, 22:37:14 »
Wie in der Fehlermeldung (und in meiner Anleitung angegeben) fehlt das Modul UUID

Zitat
you may need to install the Data::UUID module

Ich nehme an, dass die Fehlermeldung auch irgendwie daher kommt.

Grüße
Hugo
----------------------------------------------------
OW-SERVER-ENET-2
div. 1-wire Sensoren
HMLAN + HM-Komponenten

Offline masterkey

  • New Member
  • *
  • Beiträge: 17
Antw:Helios KWL per ModbusTCP regeln/steuern
« Antwort #12 am: 13 Juni 2018, 22:04:53 »
Ups...sorry. Hab ich wohl überlesen. Bzw. konnte ich micht nicht mehr dran erinnern, dass das Vorraussetzung war. Ich habs dann doch hin bekommen obwohl ich von Perl noch keine Ahnung hab.

Hab etwas gesucht und gefunden wie man Module nachläd. Für alle die das auch nicht wissen:

In der Raspi-Console eingeben
Zitat
cpan
und dann
Zitat
install Data::UUID

Wenn alles installiert ist kommt man mit
Zitat
exit
wieder aus der cpan Konsole

Bei mir hat es komischerweise beim ersten mal nicht geklappt. Ich hab die Installation dann noch ein zweites mal durchgeführt und jetzt funktionierts. Jetzt muss ich mich nur noch etwas damit beschäftigen, damit ich es verstehe und es so läuft wie ich es brauche.

Hab übrigens eine Helios KWL EC 370 WR. Aktuell mit Pollenfilter. Und mich nervt, dass die Bypassklappe tagsüber bei hohen Temperaturen nicht mehr zu geht und die warme Luft ins Haus strömt.

Online hugomckinley

  • Jr. Member
  • **
  • Beiträge: 78
Antw:Helios KWL per ModbusTCP regeln/steuern
« Antwort #13 am: 14 Juni 2018, 08:15:53 »
Hast du die "passive Aussenluftkühlung" aktiviert? (Im Webfrontend der Anlage, wo man die schwierige Rechenaufgabe lösen muss? ;-)
Erst durch diese wird die Bypassklappe freigegeben, da in diesem Fall unbedingt der kleine Plastikstöpsel im Boden entfernt werden muss, da in diesem Fall das Kondenswasser auf der anderen Seite des Wärmetauschers entsteht und sonst nicht abfließen kann --> Elektronik säuft ab.

Grüße
Hugo
----------------------------------------------------
OW-SERVER-ENET-2
div. 1-wire Sensoren
HMLAN + HM-Komponenten

Offline masterkey

  • New Member
  • *
  • Beiträge: 17
Antw:Helios KWL per ModbusTCP regeln/steuern
« Antwort #14 am: 14 Juni 2018, 11:30:59 »
Die passive Außenluftkühlung lässt sich bei mir nicht aktivieren. In der Bedienungsanleitung steht zwar, dass es geht und auch die Vorgehensweise mit dem Stopfen steht in der Bedienungsanleitung; aber die Funktion wurde wohl irgendwann von Helios herausgenommen.
In einem Forum hab ich gelesen, dass es bei Lüftungen im südlichen Euroraum, wo Klimaanlagen verwendet werden, wohl zu zu viel Kondensat kam und die Funktion deshalb deaktiviert wurde.
Bei meiner Anlage ist der, auch in der Bedienungsanleitung beschriebene Stöpsel, standardmäßig gar nicht vorhanden. Ich weiß auch nicht wo genau das Kondenswasser da abfließt. Es fällt nämlich so oder so immer etwas Kondenswasser auf der anderen Seite an. Ein Auslass für einen zweiten Siphon ist zwar im Boden der Anlage ausgestanzt, allerdings ist keiner montiert. Fließt das Wasser dann da raus???
Die Bypassklappe lässt sich aber dennoch öffnen. Allerdings ist die Funktion, ohne passive Außenluftkühlung, nicht so ganz sinnvoll. Die Bypassklappe geht nämlich auf wenn die Außentemperatur kühler ist als die Raumtemperatur (und noch ein paar weitere Bedingungen), allerdings nicht mehr zu wenn die Außenluft wieder wärmer ist als die Raumtemperatur. Hier ist es gut beschrieben:

https://www.easycontrols.net/de/service/faq/225-faq-h%C3%A4ufig-gestellte-fragen/564-bypass-funktion

Ich behelfe mir aktuelle damit, die Temperaturgrenze für die Bypassklappe manuell in der früh und am Abend anzupassen damit die Klappe in der Nacht offen und am Tag geschlossen ist. Bisher hab ich noch kein Kondensat-Problem. Scheint in unseren Breitengraden und ohne Klimaanlage wohl kein Problem zu sein.
Ich werde mich beim Helios-Kundendienst nochmal erkundigen warum ich keinen Stöpsel habe und wo das Kondenswasser hin fließt wenn zu viel Kondensat anfällt. Die Elektronik wird ja wohl hoffentlich nicht unten am Boden liegen.

Wie ist das bei deiner Regelung hugomckinley? Wird da die Bypassklappe geöffnet und geschlossen? Oder geht deine Kühlung nur über mehr Luftdurchsatz?

Kann ich die passive Außenluftkühlung eigentlich auch über Modbus aktivieren obwohl sie nicht in der Helios Software aktivierbar ist? Die Helios Software v2.26 ist ja anscheinend bei allen Lüftungsanlagen gleich. Nur die Funktion ist bei einigen Anlagen nicht auswählbar.

 

decade-submarginal