Neues Modul - Heating_Control, WeekdayTimer

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

Vorheriges Thema - Nächstes Thema

Dietmar63

Hallo FHEMler,,

ich nutze FHEM seit Mitte 2012 für meine Haussteuerung auf einer fritzbox 7270 und bin begeistert was man damit so alles machen kann - klasse!

Ich habe soeben auf die neue Version gewechselt, ein bißchen herumprobiert und auf Basis des Modules Twilight ein neues Modul erstellt, das meine Version einer Heizungsteuerung realisiert.

Eintrag in fhem.cfg:
define <name> Heating_Control <device> <switching times> <condition>
Bspiel für Wohnzimmer:
define HCW Heating_Control HeizungWohnen 12:00:25_12:30:22_17:00:22.5 $we && !isVerreist()

in diesem Fall würde das Gerät HeizungWohnen um
um 12:00 Uhr auf 25°,
um 12:30 Uhr auf 22°,
um 17:00 Uhr auf 22.5°
gestellt. HeizungWohnen muss als FHT definiert sein.

Die Schaltzeit-punkte und Temperaturen werden einfach im Format HH:MM:temp und durch Underscore getrennt aufgezählt.
Als letztes folgt eine Bedingung, die für alle Schaltvorgänge erfüllt sein muss. Im obigen Beispiel sollen die drei Schaltungen am Wochenende erfolgen, wenn ich nicht verreist(99_Utils) bin.

Mit diesem Modul ist es bei mir möglich die endlosen at-Einträge durch einen Eintrag abzulösen!

Wenn Interesse daran besteht, stelle ich das Modul der Allgemeinheit zur Verfügung. Ich muss mir nur noch eine Sourceforge-Id besorgen.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Tobias

Kleine Designanmerkung: anstatt underscore würde ich Pipe "|" nehmen. Macht alles ein wenig lesbarer und intuitiver
Ansonsten find ich es erstmal nicht schlecht.....
Die condition kann man auch in {} setzen?

Und warum nimmst du überhaupt Underscore und kein Leerzeichen, und liest einfach bis zum letzten Param -1 aus?

Zumindest in contrib sollte es rein, besser aber in Absprache mit Rudi in den FHEM-Ordner, Vorausetzung: Supportwille und Dokumentation am Ende des Moduls
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

dlehmann69

Hallo Zusammen,

ich habe großes Interesse an diesem Modul. Ich plane zur Zeit den Umstieg auf FHEM (von Contronics), da jetzt alle PC mit Linux laufen. Ich habe einige FHT und andere FS20 Komponenten im Einsatz. Aktuell läuft FHEM bereits und lauscht schon mal mit. Und ich belese mich erst einmal hier, besonders da Perl für mich neu ist. Und da kommt dieses Modul gerade recht.

Beste Grüße
Dirk
FHEM 6.0 Development auf Ubuntu 20.04 GIGABYTE GB-BACE mit Intel(R) Celeron(R) CPU N3150
CUL 3.4 FW 1.53 868 MHz für FS20, FHT
CUL 3.4 FW 1.66 868 MHz für HM
configDB; DbLog
FHT80, FS20, HMS, EM1000WZ, FHTTF, HM-LC-Sw1-DR; Lightify; HM-CC-RT-DN; HM-TC-IT-WM-W-EU; HM-SEC-SCO

Dietmar63

ZitatKleine Designanmerkung: anstatt underscore würde ich Pipe "|" nehmen. Macht alles ein wenig lesbarer und intuitiver
Und warum nimmst du überhaupt Underscore und kein Leerzeichen, und liest einfach bis zum letzten Param -1 aus?

Ich hatte ursprünglich natürlich Leerzeichen vorgesehen - intuitiver ja - leider stellte sich aber aber nach der Definition von Steuerungen in der fhem.cfg heraus, dass im Modul die Parameter nur bis zum ersten Leerzeichen ankamen. Direkt in die Oberfläche eingegeben funktionierte alles. Den Grund dafür habe ich nicht weiter analysiert, weil es mir zunächst nur darauf ankam, dass Modul zum Funktinieren zu bringen.

ZitatDie condition kann man auch in {} setzen?

in einer älteren Version hatte ich einen kompletten <Command>(Command bei at> angehängt. Das habe ich später wieder gegen die <condition> condition - damit eine Zeile in fhem.cfg nicht zu lang wird. {} habe ich noch nicht ausprobiert - im Moment muss man sie fortlassen. Die komplette Codezeile inclusive der {} werden im Modul ergänzt. Wie auch immer die fertige Version aussieht - ich bin für Vorschläge offen.

ZitatZumindest in contrib sollte es rein, besser aber in Absprache mit Rudi in den FHEM-Ordner, Vorausetzung: Supportwille und Dokumentation am Ende des Moduls

Ich hatte Rudi schon eine Mail geschickt. Neue Module seien Willkommen. Er meinte ich solle mir nur eine Sourceforge-id besorgen, er würde mich für SVN zulassn, dann könnte ich das Modul einchecken. Was ist contib? Dokumentation und Support sind jedenfalls kein Problem. Es ist ja nicht kompliziert zu benutzen.

Freut mich, wenn ich etwas beisteuern kann.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Puschel74

Hallo

nicht schwer zu verstehen - wenn man Modulschreiber ist ;-)
Du hast noch keine Ahnung was an "Arbeit" auf dich noch zukommt - zukommen wird.
Aber anyway -
danke erstmal für dein Engagement und für deine Erweiterung (Modul)

Grüsse
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.

UliM

Hi,
ist das an das Modul HCS angelehnt oder etwas ganz anderes?
Was ist der Unterscied?
Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Dietmar63

Hallo,

nein - Heating_Control funktioniert nicht gleich!

HCS verändert mit Verzögeruungslogiken und abhängig von der Stellung der Ventilantriebe den An- Auszustand der Zentralheizung. Dazu muss ein Schaltaktor an der Heizung angebracht werden - Arbeit für einen ausgebildeten Elektriker.

Ich überlasse diese Aufgabe meiner Zentralheizung selbst. Sie merkt meiner Meinung nach selbst, ob das Wasser im Kreislauf zusätzliche Wärme benötigt.

Mein Modul ist aus der Tatsache heraus entstanden, dass ich im Verlaufe eines Tages unterschiedliche Temperaturen in den jeweiligen Räumen benötige.

Beispiel:

Morgens um 6:20 Uhr soll es in der Küche schön warm sein. FHT-Kueche bekommt den Befehl um 5:40 auf 23° zu heizen.

Um 8:00 ist die ganze Familie aus dem Haus. Dann stellt Heating_Control die Temperatur für FHT-Küche wieder auf 18°. Die Temperatur bleibt dann den ganzen Morgen angenehm warm. Es wird aber kein zusätzliche Wärme von den Heizkörpern der Küche abgegeben.
 
Um 13:00 Uhr kommen die Familienmitglieder langsam nach Hause, so dass um 12:30 wieder 23° von Heating_Control an FHT-Kueche gesendet wird.

Nach dem Mittagessen so gegen 14:00 verlagert sich das Geschehen von der Küche in andere Räume, wo dann eine ähnliche Steuerung existiert. In der Küche wird von FHT-Kueche wieder 18° eingestellt, was dann abends zum Abendbrot nochmals auf 23° verändert wird.

HCS geht ganz andere Wege.
Ich gehe einfach davon aus, dass wenn meine Heizkörper keine Wärme anfordern, die Heizung von selbst bemerkt, dass sie nicht heizen muss. Ich hoffe ich liege nicht ganz falsch.

Gruß 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

Puschel74

Hallo,

Frage am Rande:
Wie schaltet deine Heizung die Heizwasserpumpe ein und aus?
Bei mir läuft das auch über fhem - als einen gelernten Elektriker voraussetzt da ich
einen Schaltaktor für die Wasserpumpe angebracht habe.
Oder hast du eine Diff.Druck Pumpe die erkennt das ein Heizventil geöffnet ist?

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.

Dietmar63

Hallo,

ZitatWie schaltet deine Heizung die Heizwasserpumpe ein und aus?
 Bei mir läuft das auch über fhem - als einen gelernten Elektriker voraussetzt da ich
 einen Schaltaktor für die Wasserpumpe angebracht habe.
 Oder hast du eine Diff.Druck Pumpe die erkennt das ein Heizventil geöffnet ist?

Die Heizwasserpumpe wird bei mir gar nicht geschaltet. Ob meine Heizung selbst an- oder abschaltet, kann ich nicht sagen. Vielleicht rüste ich diese Funktion nach, gehört nicht zu meinen vorrangigen Projekten, zumal ich kein Elektriker bin.

Ich will nur abhängig von der Tageszeit automatisch unterschiedliche Temperaturen in den Räumen einstellen können.

Gruß 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

MarkusN

Interessante Geschichte. Könnte man das auch mit geringem Aufwand auf max portieren?

Dietmar63

mit MAX kenne ich mich nicht aus.

Gruß 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

Martin Fischer

Zitat von: orti-otto schrieb am Sa, 05 Januar 2013 16:21HCS verändert mit Verzögeruungslogiken und abhängig von der Stellung der Ventilantriebe den An- Auszustand der Zentralheizung. Dazu muss ein Schaltaktor an der Heizung angebracht werden - Arbeit für einen ausgebildeten Elektriker.

mal ein vergleich aus sicht des autors von HCS:

beide module verfolgen einen anderen zweck, können aber (ohne es getestet zu haben) zusammen wirken.

mit HCS verfolge ich den weg der energieeinsparung bei gleichzeitigem erhalt des komforts (= "wohlfühltemperatur"). dazu greife ich direkt in die steuerung der heizungsanlage ein. siehe dazu: FHEM Modul zur (erweiterten) Heizungssteuerung. dabei bin ich weder "heizungsbauer" noch "ausgebildeter elektriker". nach studium der betriebsanleitung oder besser der installationsanleitung meiner vaillant therme bin ich auf die brücke für einen raumthermostat gestossen. und genau hier setze ich an: ist der raumthermostat offen, dann geht die heizungsanlage davon aus, das kein heizbedarf anliegt. und das hat auch einfluss auf die pumpe, die dann ebenfalls ausgeschaltet wird. lediglich der warmwasserkreis bleibt davon unberührt. HCS richtet sich dabei nicht ausschliesslich nach ventilstellungen, sondern bei bedarf an temperaturen. man kann also entweder nach temperatur oder ventilstellung regeln. das ganze dann auch noch mit weiteren funktionen wie overdrive, eco-mode, etc. unter- bzw. übersteuern. HCS berücksichtigt dabei die sog. hysterese. weitere funktionen, wie burst-mode, gäste oder partymodus sind schon in der queue. durch die vorbereitungen für den aufbau des forums, sowie andere projekte (fhem update, fhem statistics, fheminfo,...) musste ich aber eine pause in der weiterentwicklung von HCS einschieben. ich hoffe, dass ich die weiterentwicklung in den nächsten wochen wieder aufnehmen kann.

das modul heating_control verfolgt einen anderen weg: hier geht es aus meinem verständnis nach um frei definierbare zeiträume, wann welche temperatur vorgehalten wird. die steuerung der heizungsanlage bleibt dabei sich selber überlassen.

aus meiner gesammelten erfahrung führt dies jedoch nur bedingt zu einsparpotentialen, da ja die heizungsanlage (je nach betriebsart) weiterhin "ihr" programm fährt.

beispiel aus meiner anlage:
die vaillant therme läuft bei mir zeitgesteuert. d.h. das direkt an der anlage zeiten eingestellt werden, wann sie auf leistung gehen soll oder in welcher zeit eine absenktemperatur gilt. ich weiss es im moment nicht genau und bin auch gerade zu faul zum nachsehen aber man kann davon ausgehen, das ich meine therme so programmiert habe, das sie von mo-fr 06:30 bis 22:30 und sa-so von 07:30 bis 23:30 auf heizbetrieb gehen soll. in allen anderen zeiten, geht sie auf die absenktemperatur von 17°.

da ich seit jahren mittels 1-wire (die ursprüngliche 1-wire anbindung an FHEM stammt von mir) das verhalten meiner heizungsanlage studieren konnte (siehe Heiz- und Warmwasserkreis überwachen, haben diese werte mir viele rückschlüsse liefern können.

so z.b. das (m)eine heizung bei nicht vorhandenem wärmebedarf (also kein ventil offen) in regelmässigen abständen (ich glaub so alle 10-20 min.) temperatur auf den vorlauf gibt um am rücklauf zu erkennen ob irgendwo wärme angefordert wird. und genau hier kann man mit HCS gegenwirken: "wenn kein wärmebedarf anliegt, dann schalte das "virtuelle raumthermostat" in form eines HM-aktors einfach auf aus!".

daher ist das modul heating_control eine gute ergänzung zu HCS oder umgekehrt. je nachdem aus welcher sicht man es sehen will ;-)

bei mir sieht das im moment z.b. so aus:

im folgenden graph sieht man sehr gut, wann die heizung in betrieb ist und den anliegenden wärmebedarf über vor- / rücklauf in bezug auf die aussentemperatur regelt. hier ist die heizungsanlage also seiner eigenen steuerung überlassen, die man dann zusätzlich mit dem modul von dietmar regeln kann. die orangen / gelben blöcke zeigen, wann HCS über den HM-aktor "eingegriffen hat", also wann die heizungsanlage auf heizbetrieb geschaltet wurde.


(siehe Anhang / see attachement)


dazu der abhängige stromverbrauch der heizungsanlage. durch die schaltung des simulierten raumthermostats wird eben auch die heizkreispumpe ausgeschaltet:


(siehe Anhang / see attachement)


und dazu der gasverbauch:


(siehe Anhang / see attachement)


anhand der graphen sieht man sehr schön das zusammenspiel und die auswirkungen von HCS.

irgendwo habe ich auch noch einen graph von "vor HCS" zeiten bzgl. des gasverbrauchs, wo man sehr schön sehen kann, wie die heizungsanlage ihre messung des anliegenden wärmebedarfs über die vor- / rücklauftemperatur ermittelt, was letztlich wieder zu einem höherem verbrauch führt.

wie man an dieser (vielleicht sehr ausführlichen) darstellung sieht, verfolgen beide module einen anderen weg bzw. haben einen anderen zweck. ich glaube uli fragte u.a. danach.

wer es noch ausführlicher haben will, der besuche die zwei obigen links. dort habe ich den aufbau und die steuerung über HCS mit einem HM-aktor näher beschrieben.

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

Dietmar63

Hallo,

vielen Dank für die ausführliche Erklärung.
Hast du eine Vorstellung davon, was Du an Gas mit der Steuerung sparst?

Ich besitze auch eine Vailant. Ich glaube sie funktioniert ähnlich.
Vielleicht ergänze ich HCS. Nächste Woche kommt der Heizungsbauer - ich werde ihn fragen.

Gruß 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

Martin Fischer

hiya dietmar,

werte habe ich leider noch nicht, da ich HCS erst im 4. quartal 2012 veröffentlicht habe. ich gehe aber mal vorsichtig mit einer schätzung von bis zu 10% (vielleicht sogar mehr) aus (ich werde wahrscheinlich auch keine genaueren werte bekommen, da ich im vorjahr noch im haus eine wohnung vermietet hatte und da das gesamte heizverhalten ja noch ganz anders war).

es entfallen ja a) die ganzen intervalle die die heizung von sich aus auf den heizkreislauf gibt und b) ist es ja nicht nur so, wie in den graphen zuvor zu sehen, dass die heizung von 07 - 22 uhr durchläuft. sobald es draussen wieder etwas wärmer wird, greift HCS auch tagsüber häufiger ein:


(siehe Anhang / see attachement)


hier sieht man z.b. das zwischen ca. 0:00 bis 06:00 uhr heizbedarf anlag (wahrscheinlich weil ich da mal wieder eine nacht programmiert habe ;-)), dann aber bis ca. 15:15 uhr alle räume so warm waren, das die heizung halt auch ausbleiben konnte und erst wieder ab ca. 15:15 bis 20:00 uhr laufen musste. und wie bereits geschrieben: man hat ja nicht nur die einsparung am gasverbrauch sondern in meinem aufbau auch am stromverbrauch, da eben dann auch die pumpe nicht läuft.

wenn du tatsächlich eine gleiche oder ähnliche therme einsetzt, dann solltest du dir mal meinen aufbau näher ansehen. da brauch man wirklich kein elektriker sein: heizung vom stromkreis trennen, kabel an "Klemme 3-4-5" und mit z.b. HM-LC-Sw1-SM verbinden. der muss natürlich mit 230v eingespeisst werden. aber dafür gibts ja sicherungen. ;-)

ABER:
man hantiert hier dennoch mit 230 volt und sollte sich im klaren sein, was man tut!

daher lieber einen "fachmann" dran lassen, wenn man sich das nicht zutraut. auch sollte man darauf achten, das die schaltzeiten nicht zu kurz gewählt werden. deshalb habe ich in HCS auch die "idleperiod" eingebaut. siehe auch: FHEM Modul HCS überarbeitet
.

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

gagga

Mein Heizungsbauer hat mir empfohlen für meine Gas-Brennwerttherme zur täglichen Regelung nicht permanent den ganzen Heizkessel in Standby zu schicken und wieder zu starten, da der Regelkreis versucht diese Pausen mitauszugleichen und damit in den Zeiten, in denen er heizt, zuviel heizt (d.h. zu hohe Schwankungen nach oben). Er meinte, daß eine moderne Pumpe der entscheidende Faktor ist: extrem wenig Stromverbrauch und eine recht intelligente Regelung mit Daten vom Vorlauf (Druck, Temperatur), Rücklauf, Außen und Heizkesseltemperatur und hat empfohlen lieber die Heizkörperthermostate mit Intelligenz auszustatten. Daher habe ich mir für den Alltag etwas ähnliches wie Heating_Control mit MAX Thermostaten gebastelt (d.h. nur bei Anwesenheit abhängig vom jeweiligen Tagesplan werden die jeweiligen Heizkörpertemperaturen erhöht, z.B. "Flieger um 6 Uhr morgens -> Temperatur im Bad unten auf 20 Grad ab 4.30 Uhr"). Für die Ausnahmesituationen wie Urlaub habe ich dann zusätzlich mit einem FS20 WS1 Aktor (muß dringend durch HM ersetzt werden) eine Möglichkeit dennoch den Heizkessel komplett in Standby (Standby = nur Frostschutz) zu schalten. Empfehlung hier vom Heizungsbauer ist übrigens den Heizkessel trotzdem jede Woche mal kurz für 1 Stunde anzuschalten, damit die Pumpe nicht festrostet (mache ich mit einem "at").

Ciao,
gagga
fhem tagesaktuell aus SVN auf QNAP TS-419PII - 1 x CUL mit culfw1.49 - 1 x MAX! Cube - 3 x MAX! Thermostate - 2 x MAX! Fensterkontakt - 3 x HM Rauchmelder - 1 x HM Bewegungsmelder - 1 x HM Temperaturfühler - 3 x Elro-IT Steckdosen (Schrott) - 1 x FS20 WS1