Neues Modul - Heating_Control, WeekdayTimer

Begonnen von Dietmar63, 04 Januar 2013, 19:42:26

Vorheriges Thema - Nächstes Thema

Martin Fischer

hiya gagga,

so ist das mit den heizungsbauern. der eine so, der andere so. ich möchte hier auf keinen fall eine berufsgruppe verunglimpfen aber ich habe da so meine erfahrungen gesammelt und komme zu dem schluss: viele heizen auch nur mit wasser ;-)

wie ich zu dieser meinung komme?

ich habe vor 2-3 jahren einen hydraulischen abgleich meiner anlage durchführen wollen. dazu habe ich ca. 15 fachbetriebe angerufen, ihnen mein vorhaben geschildert. einige hatten überhaupt kein interesse, andere waren der meinung das es sich für mich nicht richtig lohnen würde und andere kamen mir vor, als ob sie das wort noch nie gehört haben. bei enigen hatte ich als laie das gefühl mehr darüber zu wissen als die gesprächspartner (und nein, es waren keine azubis, sondern zum grösstenteil die inhaber).

nach vielen, vielen telefonaten wurde ich letztlich fündig. ein heizungsbauer (vater, sohn) die total engagiert waren, sich auch nach einem langen telefonat wo ich alle meine fragen beantwortet bekam auch noch die mühe machten, meine anlage gut eine woche vor weihnachten komplett(!) zu vermessen und berechnet haben und dann auch noch rechtzeitig vor weihnachten das ganze umzusetzen.

ich habe ein mehrere seiten langes protokoll mit allen werte und berechnungen erhalten, viele, viele gute tips und ratschläge, besonders auch zu meiner temperaturerfassung mittels 1-wire. ich glaube in einem artikel auf meiner homepage habe ich das auch erwähnt.

so konnte ich in meinem fall den gasverbrauch um ca. 900 m^3 senken (vorher ~2900 - 3100 m^3). nach dem hydraulischem abgleich ~2000 m^3. das was andere heizungsbauer als uninteressant oder für mich "nicht lohnend" abgetan hatten, ist für mich schon eine "hausnummer". nächste abrechnung (11/2013) wird für mich interessant, denn dann kann habe ich den vergleich, was mir HCS tatsächlich an einsparung gebracht hat (unter berücksichtigung des momentan sehr warmen winters).

das entscheidene bei meiner umsetzung ist jedoch, das ich die anlage nicht auf irgendeine weise manipuliere, sondern genau den weg gehe, den der hersteller vorgesehen hat: über einen raumthermostat. nur das dieser bei mir halt keiner ist, sondern ein HM-aktor. d.h. es kommt im ergebnis das gleiche heraus. ob ich nun die anlage über den vorgesehen raumthermostat regele oder über den "virtuellen thermostat" ala HM-aktor. entscheidend dabei ist aus meiner sicht die hysterese zu berücksichtigen. also ein ständiges schalten zu vermeiden.

da ich seit mehr als 4 jahren (vielleicht auch mehr) meine temperaturen (vorlauf, rücklauf, etc.) erfasse, habe ich auch den vergleich, das es bei mir eben nicht zu dem verhalten geführt hat (also höherer verbrauch).

ich zitiere meinen bezirksschornsteinfegermeister (gutes wort für z.b. galgenraten ;-)), der mal sagte: "die meisten kennen nur: mach das es warm wird. und sie machen es dann.". sicherlich ändern sich die zeiten und gesetze und das kann man bestimmt auch nicht verallgemeinern, zumal da auch einiges an weiterbildung gefordert und geboten wird.

bitte nicht falsch verstehen:
a) will ich hier keinesfalls der berufsgruppe unfähigkeit unterstellen, noch
b) den "besserwisser" geben.

das sind lediglich erfahrungswerte, die ich in mehreren jahren gesammelt habe und damit bisher sehr gut gefahren bin. letzlich muss aber jeder für sich entscheiden welchen weg er geht. DAS genau ist ja das geniale an der umsetzung mit FHEM. getreu dem eigentlichem perl-gedanken: timtowtdi - there is more than one way to do it.

ich könnte fast wetten:

dietmar schrieb, das nächste woche sein heizungsbauer kommt. wenn dietmar ihn nun mal vollkommen unvoreingenommen und ohne das hier diskutierte befragen würde, dann würden wir eine weitere meinung erhalten.

in diesem sinne...

gruss martin
--
Admin, Developer, Gründungsmitglied des FHEM e.V.

Dietmar63

Hallo,

auf Wunsch per PM stelle ich den aktuellen Stand des  Moduls Heating_Control zum Testen für alle bereit.
Ich würde sagen, dass es den gefühlten Versionsstand 0.9 hat.

Eintrag in fhem.cfg:
define <name> Heating_Control <device> <switchingtimes> (<condition>)|commmand>

Ich habe noch einige Erweiterungen vorgenommen:
Die Parameter werden jetzt formal mit regulären Ausdrücken geprüft.
Bei den <switchingtimes> gibt es keine Begrenzung der Anzahl bei der times. Sie müssen nicht sortiert sein(ist aber besser). Zu einem Zeipunkt ist nur ein Schaltbefehl möglich. Es kann nach den <switchingtimes>  entweder eine Bedigung(muss in Klammern gesetzt werden) oder ein <command> folgen. Der <command> entspricht vollständig dem, was nach einem "at" als <command> folgen kann. Die Sonderzeichen @ und % werden durch das <device> und die Temperatur ersetzt. Es sind deshalb die folgenden Varianten möglich:

Beispiel für Wohnzimmer:

#condition
define HCW1 Heating_Control HeizungWohnen 12:00:25_12:30:22_17:00:22.5     ($we && !isVerreist())                  

# Aufzählung
define HCW2 Heating_Control HeizungWohnen 12:00:25_12:30:22_17:00:22.5     set @ desired-temp %;; set Licht an      

# perl-call
define HCW3 Heating_Control HeizungWohnen 12:00:25_12:30:22_17:00:22.5     { schalteHeizung(@,%) }                  

# perl
define HCW4 Heating_Control HeizungWohnen 12:00:25_12:30:22_17:00:22.5     { fhem("set @ desired-temp %") if($we) }

# shell(so nicht sinnvoll)
define HCW5 Heating_Control HeizungWohnen 12:00:25_12:30:22_17:00:22.5     "/bin/echo "Teatime" > /dev/console      


Das sollte jeden Bedarf abdecken.
Ich hoffe der Rest ist selbsterklärend.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Damian

Hallo,

ich bin gerade dabei meine gewöhnlichen Wandthermostate, die pro Zimmer die entsprechenden 230V Stellantriebe einer Fußbodenheizung bisher bedienen, auszutauschen.

Dazu entnehme ich Zimmertemperaturen mit 1-wire-DS18B20 und möchte über ein HM-SW1PBU-FM-Schalter anstelle der Wandthermostate die Stellantriebe schalten. Der Schalter hat den Vorteil im Gegensatz zu einem 230V Zwischenschaltaktor, dass man ihn bis zum nächsten Schaltvorgang manuell schalten kann und damit das aktuelle Programm übersteuern kann.

Nun möchte ich ein Wochenprogramme definierten, dass den Schalter über die entnommene Temperatur über den DS18B20 ansteuert.

Da hier keine gewöhnlichen Thermostate FHT bzw. HM zum Einsatz kommen, stelle ich mir die Frage, ob ich mit euren Modulen hier weiter komme, oder doch selbst etwas programmieren muss.

Auf die Frage, warum ich nicht FHT- oder HM-Thermostate genommen habe - es ist einfach eine Preisfrage bei 22-Stellventilen und nur 6 Thermostaten (ein Thermostat schaltet mehrere Stellantriebe pro Zimmer), vor allem, wenn man schon so viele 230V Stellantriebe im Einsatz hat.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Tobias

ich habe das Modul in meinen FHEM Ordner kopiert und bekomme beim "reload 98_Heating_Control.pm" folgende Fehlermeldung:
Type of arg 1 to keys must be hash (not hash element) at ./FHEM/98_Heating_Control.pm line 118, near "})"
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Dietmar63

@ Damian:

ich denke, du mußt Dir so etwas wie ein Software-FHT selbst bauen:

So nach dem Motto: wenn die Temperatur zu niedrig ist, dann öffne die Stellantriebe eines Raumes auf 50%.
Wenn die Temperatur erreicht ist, dann schließe  die Ventiele des Raumes usw.

Ohne FHT mußt du hat selbst steuern. Ein solches Modul gibt es wohl noch nicht. Mir ist jedenfalls keines bekannt.

Diese SoftwareFHT kannst Du dann durch HCS oder Heating_Control steuern.

Dietmar
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Dietmar63

Hallo,

nutzt Du vielleicht eine ältere Perlversion?
Bei mir funktioniert folgender Code:


  foreach my $st (sort (keys $hash->{SWITCHINGTIME}))
...

Ich habe die FM im Netz gefunden. Das Problem tritt wohl mit älteren Perlversionen auf.
Im Anhang eine Version bei der ich folgendes geändert habe. Ich hoffe die Änderung löst das Problem. Bei mir läuft jedenfalls alles:

  foreach my $st (sort (keys %{$hash->{SWITCHINGTIME}}))
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Damian

Zitat von: orti-otto schrieb am Mo, 14 Januar 2013 19:25@ Damian:

ich denke, du mußt Dir so etwas wie ein Software-FHT selbst bauen:

So nach dem Motto: wenn die Temperatur zu niedrig ist, dann öffne die Stellantriebe eines Raumes auf 50%.
Wenn die Temperatur erreicht ist, dann schließe  die Ventiele des Raumes usw.

Ohne FHT mußt du hat selbst steuern. Ein solches Modul gibt es wohl noch nicht. Mir ist jedenfalls keines bekannt.

Diese SoftwareFHT kannst Du dann durch HCS oder Heating_Control steuern.

Dietmar

Ja, habe ich mir schon gedacht.

Werde aber erstmal meine HM-Schalter mit Notifys abhängig von den Zimmertemparaturen schalten und damit die vorhandenen 230V Stellantriebe steuern. Das bekomme ich schneller hin;)

Gruß

Damian

PS: Es soll laut elv dieses Jahr ein MAX-System für Fußbodenheizung rauskommen. FHT, HM, MAX sind bisher alle nicht fußbodenheizungtauglich.

 



Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Puschel74

[quote title=Damian schrieb am Mo, 14 Januar 2013 19:40]
Zitat von: orti-otto schrieb am Mo, 14 Januar 2013 19:25@ Damian:

Gruß

Damian

PS: Es soll laut elv dieses Jahr ein MAX-System für Fußbodenheizung rauskommen. FHT, HM, MAX sind bisher alle nicht fußbodenheizungtauglich.


Sorry aber ich verwende unsere FHT80B in Verbindung mit den zugehörigen Stellantrieben für die Regelung von 3 Fussbodenheizkreisen im Dachgeschoss und es funktioniert, bei uns,
einwandfrei.
Warum sollen die FHT nicht für Fussbodenheizung tauglich sein?
Nur weil Fussbodenheizungen i.d.R. mit einem Rücklauftemperaturbegrenzer betrieben werden?
Ich hab bei uns die Vorlauftemperatur so weit gedrosselt das dem Estrich und den Fliesen nichts passieren kann und das Dachgeschoss wird wunderbar warm.
Als Raumtemperatur habe ich 19 °C vorgegeben und das ist, für uns, perfekt.
Und auch das Wohnzimmer wird über den Heizkörper noch angenehm auf 22 °C temperiert.

Also nicht gleich alles so pauschal abtun ;-)

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Damian

Zitat von: orti-otto schrieb am Mo, 14 Januar 2013 19:25@ Damian:

Also nicht gleich alles so pauschal abtun ;-)

Grüße

Ich denke allein wegen der Größe, wird das bei den meisten konventionellen Fußbodenheizung-Verteilern (bei uns sind es 5 cm Abstand nebeneinander) nicht funktionieren. Zumindest sind die laut Doku alle für konventionelle Heizkörper ausgelegt. Dass es mal funktionieren kann, habe ich nicht ausgeschlossen.

Und zum Thema Kennlinie gibt´s hier etwas von elv:

http://www.elv.de/topic/max-thermostat-fuer-fussbodenheizung.html

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Dietmar63

Ich habe jetzt auch noch dazugelernt.

Du bist nicht der Einzige der Stellantriebe direkt ansprechen will
Für FS20 gibt es mit PID wohl so etwas wie ein Software-FHT.
Vielleicht kann man PID für HM anpassen. Die Schaltcodes sind sicherlich etwas anders.
Aber eine Möglichkeit ist bestimmt vorhanden.

http://www.fhemwiki.de/wiki/FHT_8v_direkt_ansprechen

PID ist genau das was ich mit Software-FHT gemeint habe. Ich kannte das Modul bisher nicht.

Und das Beste, Heating_Control lässt sich meiner Meinung nach damit sogar einfach verbinden.
Ich habe die attr-Zeilen alle fort gelassen, damit Du das Wesentliche erkennst:



   define stellantrieb.01         FHT8V 1234
   define heizung.01              PID CUL_WS_1 stellantrieb.01

   define Heating_Control 15:00:25_15:30:21_17:30:22.5       set heizung.01 desired %

oder

   define Heating_Control 15:00:25_15:30:21_17:30:22.5       { fhem ("set heizung.01 desired %") }



% wird dann jeweils durch die Temperatur ersetzt.

Heating_Control ist im Grude nur ein Iterator, der zu den angegebenen Zeitpunkten den Code ausführt.
Ich habe ein veränderte Version von Heating_Control eingestellt, weil es ein kleines Problem mit dem Laden gab.

Viel Glück!
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Damian

Zitat von: orti-otto schrieb am Mo, 14 Januar 2013 20:16Ich habe jetzt auch noch dazugelernt.

Du bist nicht der Einzige der Stellantriebe direkt ansprechen will
Für FS20 gibt es mit PID wohl so etwas wie ein Software-FHT.

Hallo Dietmar,

das ist tatsächlich ein interessanter Ansatz, vor allem in Kombination mit deinem Modul - kannte ich auch noch nicht.
Ich werde es mir genauer anschauen.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Dietmar63

ich war vorhin etwas zu schnell

richtig ist:

   define stellantrieb.01         FHT8V           1234
   define heizung.01              PID             CUL_WS_1 stellantrieb.01

   define HC1                     Heating_Control heizung.01     15:00:25_15:30:21_17:30:22.5       set @ desired %

oder

   define HC1                     Heating_Control heizung.01     15:00:25_15:30:21_17:30:22.5       { fhem ("set @ desired %") }


% wird dann jeweils durch die Temperatur ersetzt.
@ wird durch das <device> ersetzt.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Dietmar63

ein Problem könnten die Codes sein, die in Homematic verwendet werden.
Ich meine mal gelesen zu haben, dass HM sich mit der Offenlegung der Protokolle sehr zurückhält.

Dietmar
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Damian

Zitat von: orti-otto schrieb am Mo, 14 Januar 2013 20:48ein Problem könnten die Codes sein, die in Homematic verwendet werden.
Ich meine mal gelesen zu haben, dass HM sich mit der Offenlegung der Protokolle sehr zurückhält.

Dietmar

wieso, es geht doch hier um einen einfachen an/aus Schalter, der in FHEM über CUL gepairt wird oder habe ich hier etwas nicht verstanden?

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Tobias

Ich habe mir mal erlaubt das Modul zu verändern.
Folgende Änderungen:

  • Liste der Schaltzeiten mit Leerzeichen getrennt
  • Die Temperatur ist von der Uhrzeit mit Pipe (|) getrennt. Dieses erhöht IMHO mit dem vorherigen Punkt die Lesbarkeit immens
  • Als STATE Initialzustand wird die aktuelle Temperatur des Thermostates ausgelesen
  • Es werden nun auch MAX Thermostate unterstützt
  • neues Reading: nextValue, zeigt die nächste zu wechselnde Temperatur an
  • an den aktuellen Entwicklungsstand von
fhem.pl angepasst, insbesondere ReadingsBulkUpdate
  • Codeoptimierung: einige interne Variablen in den {helper} Bereich verlagert
  • kleinere Codeoptimierungen[/list]

    Bitte um Tests und Rückmeldungen

    Wenn der Author nicht dagegen hat würde ich auch die Doku schreiben (gibt es da ggf schon etwas??) und nach ausführlichen Tests und Rückmeldungen bei Buggy-free ins FHEM-svn schieben. ggf kann ich auch dem author anbieten ihm bei support unter die arme zu greifen
    Maintainer: Text2Speech, TrashCal, MediaList

    Meine Projekte: https://github.com/tobiasfaust
    * PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
    * Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter