Neues Modul - Heating_Control, WeekdayTimer

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

Vorheriges Thema - Nächstes Thema

Damian

Wenn man an dieser Stelle, wo $we steht, eine beliebige globale Variable einsetzen könnte, dann gebe ich dir gerne Recht - im anderen Fall könnte es eher verwirrend sein, einen Pseudo-Variablennamen zu verwenden.

Gruß

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

DerMexikaner

Hallo zusammen,

Heating_Control ändert die Temperatur wie programmiert - aber auch, wenn ein Fenster geöffnet ist. Kann man Heating_Control so parametrieren, dass die Temperatur erst geändert wird, nachdem das Fenster wieder geschlossen ist?

Saludos,
Lutz
Saludos,
Lutz

Smartes Badezimmer, Heizungssteuerung, Bewässerungssteuerung, RPI3, Arduinos, NodeMCUs, Homematic

Dietmar63

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

DerMexikaner

Hallo Dietmar,

Zitatdas kannst du doch den fht beibringen

Ich habe die HM-CC-RT-DN verbaut und finde dort in den Readings u.a.

ZitatR-winOpnTemp 12 C

Ich hätte nun erwartet, dass der Thermostat nun auf 12° bleibt bis das Fenster geschlossen ist und nicht vorher auf die neue Temperatur von Heating-Control geht.
Leider reicht meine kurze Erfahrung mit FHEM nicht, es meinen Thermostaten selber beizubringen - falls dies bei den RTs überhaupt möglich ist?
Saludos,
Lutz

Smartes Badezimmer, Heizungssteuerung, Bewässerungssteuerung, RPI3, Arduinos, NodeMCUs, Homematic

John

Hallo Lutz
ZitatIch hätte nun erwartet, dass der Thermostat nun auf 12° bleibt bis das Fenster geschlossen ist und nicht vorher auf die neue Temperatur von Heating-Control geht.
Leider reicht meine kurze Erfahrung mit FHEM nicht, es meinen Thermostaten selber beizubringen - falls dies bei den RTs überhaupt möglich ist?

Ich habe dieselbe Erfahrung bei den Max-Thermostaten gemacht. Man kann bei "OpenWindow" tatsächlich den aktuellen Sollwert von "Open Window Temperature" mit einem neuen Sollwert überschreiben.
Da das HeatingControl nichts von Fensterkontakten weiss, macht es genau das, wenn die Sollwertänderung in den Zeitraum des offenen Fensters fällt.

Ich habe in den TemperaturScanner für MaxThermostate folgende Lösung implementiert:


  • HeatingControl setzt niemals direkt einen Sollwert, sondern indirekt über eine spezielles Perl-Skript
  • Das Skript entscheidet, ob der Wert sofort ausgegeben werden kann oder bei offenen Fenster gemerkt werden muss
  • Ist letzteres der Fall, wartet es, bis das Fenster wieder geschlossen ist und führt dann den gemerkten Sollwert aus


@Dietmar
Ich nutze dein Modul sehr intensiv und läuft absolut zufriedenstellend. Besten Dank nochmal dafür.
HeatingControl wird vermutlich sehr häufig mit Heizungsthermostaten eingesetzt. (bei mir ist das so)
Fensterkontakte sind mittlerweile integraler Bestandteil der Systeme.
Für die einfache Anwendung wäre eine allgemeingültige Lösung (wie skizziert)  integriert in HeatingControl von großem Nutzen.


John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

volschin

Hallo John,
bzgl. der Fensterkontakte kann ich Dir nur zustimmen. Ich beobachte Heating Control jetzt auch seit Kurzem, konnte mich aber u.a. aus diesem Grund bisher nicht für einen Einsatz entscheiden. Meine Thermostate laufen deshalb noch auf AUTO mit nur manuellem Eingriff. Ich bin aber dran hier noch zu optimieren, bevor die Heizperiode richtig anfängt. Das wird wohl nicht mehr lange auf sich warten lassen.

Gruß
Veit
Intel NUC+Ubuntu 24.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7690, Echo Dots+Show8, HomeBridge

Dietmar63

Ich habe keine Fensterkontakte im Einsatz, deshalb ist dieses Problem auch bisher nicht auf meinem Radarschirm gewesen.
Meinen FS20-FHT  kann ich einen Fensterkontakt bekannt machen, dann berücksichtigt dieser selbständig den Zustand des Fensters.

Viel Energie kann man meiner Meinung nach nicht damit sparen, deshalb habe ich auch nicht einmal die Ambitionen gehabt meine zwei Fensterkontakte überhaupt anzuschließen. Wenn das Fenster offen ist, geht der größte Verlust an Energie mit dem Austausch der Luft einher - das kann man nicht verhindern, indem man den Heizkörper herunterfährt, meist ist er zwar heiß,er verliert aber sicherlich sehr langsam die Energie - Es sei denn ihr lüftet stundenlang.

Ich mag daneben liegen mit meiner Einschätzung, aber so sehe ich es nun einmal.

Was passiert bei Eurer Lösung wenn während einer längeren Heizperiode (6:30|21° 18:30|17°) das Fenster geöffnet wird? Wer schaltet dann? Ich habe es so verstanden, dass der Heizwert von HC nur dann nicht durchgereicht wird, wenn HC schalten soll und  HC oder das Script feststellt, dass das Fenster geöffnet ist.

Ich würde folgendes machen - große Lösung:
Dein Script könnte man in ein Modul verwandeln, dass wie mein FHT(FS20) funktioniert. Es ist für die Kommunikation mit den HeizkörperThermostaten zuständig. Es müsste wie die FHT regelmäßig nachsehen, ob ein Fenster offen ist, und die Fensteroffentemperatur einstellen. HC kommuniziert dann nicht mehr direkt mit den HeizkörperThermostaten, sondern mit den virtuellen FHT.

Das Modul PID macht meiner Meinung nach so etwas ähnliches.
Threshold ist auch ein Kandidat für diese Aufgabe.

Diese Module könnten als Vorlage für das neue Modul dienen, wenn sie nicht sogar direkt verwendet werden können.

kleine Lösung:
Eine andere Möglichkeit könnte darin zu bestehen das Problem mit zwei notify zu lösen.

Mehrere notify lauschen auf Fenster offen:

define notify FensterKüche:offen            { set HeizungKüche desired-temp 15 }
define notify FensterWohnen:offen           { set HeizungWohnen desired-temp 15 }



ein notify schaltet wieder über HC die Solltemperatur ein:
define notify Fenster.*:geschlossen { {Heating_Control_SetAllTemps()} }
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

Ich habe diese zwei notify angelegt:

define f1               notify FensterWohnen:offen      set HeizungWohnen desired-temp 15
define fa               notify Fenster.*:geschlossen    {Heating_Control_SetAllTemps()}


und mit trigger ... getestet, ob es funktioniert - und siehe da es klappt!
Ich müßt also nur die genaue Definition Eurer Fensterkontakte erfassen und hoffen, dass die Readings feuern.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

John

Hallo Dietmar,
das wird so bei den modernen Thermostaten nicht funktionieren:

Festerkontakt
Der ist direkt gepaart mit dem Thermostat. Das Thermostat wird ohne Zutun von FHEM auf die WindowOpen-Temperature gehen
und reagiert also direkt auf das Signal vom Fensterkontakt.

Wir haben nur dann ein Problem, wenn in dieser Phase das HeatingControl einen neuen Sollwert setzt.
Dann macht das Thermostat auf und wir blasen die Wärme zum Fenster raus.
Aufgabe wäre: den neuen Sollwert zum Setzen vormerken aber nicht wirklich setzen.

Temperatur wiederherstellen
{Heating_Control_SetAllTemps()
Das machen die modernen Thermostate auch selber, in Abhängigkeit vom Fensterkontakt.

Ausserdem würden wir damit alle Credits verbraten bei 8+x Thermostaten dauert das ewig.

Aufgabe wäre: den gemerkten Sollwert, nach Schliessen des Fensters nun verzögert ausführen und nur für das betroffene Thermostat.

ZitatDas Modul PID macht meiner Meinung nach so etwas ähnliches.
Der Regler ist ja schon komplett in den modernen Thermostaten integriert.
Ausserdem ist der PID derzeit eine Baustelle wie der "Berliner Flughafen". Er ist einfach noch nicht zu gebrauchen.


John

CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

Dietmar63

ZitatFesterkontakt
Der ist direkt gepaart mit dem Thermostat. Das Thermostat wird ohne Zutun von FHEM auf die WindowOpen-Temperature gehen
und reagiert also direkt auf das Signal vom Fensterkontakt.

Vielleicht hatte ich es noch nicht ganz verstanden. Wenn ich das lesen, dann funktioniert  Fensterkontak + Thermostat  eigentlich problemlos.

Wenn HC jetzt ins Spiel kommt, raffen die Thermostate nicht, dass sie eigentlich noch im Modus FensterOffen verharren müssten und schalten die von HC gelieferte Temperatur. HC soll dieses Fehlverhalten berücksichtigen?

{Heating_Control_SetAllTemps()
ZitatAusserdem würden wir damit alle Credits verbraten bei 8+x Thermostaten dauert das ewig.

Das würde nicht passieren, weil HC nur dann eine neue Temperatur setzt, wenn desired-temp noch nicht mit dem Sollwert übereinstimmt.  Und es wird bestimmt nicht in allen Räumen gleichzeitig gelüftet.

Lange Rede, kurzer Sinn. Habe ich es jetzt richtig wiedergegeben?

Wenn du Code oder ein Script hast, schick ihn mir mal, dann prüfe ich, ob ee leicht integrierbar ist.

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

DerMexikaner

Hallo Dietmar,

ZitatWenn HC jetzt ins Spiel kommt, raffen die Thermostate nicht, dass sie eigentlich noch im Modus FensterOffen verharren müssten und schalten die von HC gelieferte Temperatur. HC soll dieses Fehlverhalten berücksichtigen?

Ja, wäre aus meiner Sicht super, wenn Heating_Control genau dieses Verhalten berücksichtigen würde. Vielleicht durch einen zusätzlichen Parameter.

Off-Topic: Ich bin total begeistert, von FHEM und vor allem von dem Support und Einsatz all der ehrenamtlich Mitwirkenden. Mit welcher Geschwindigkeit auf "Kundenwünsche" eingegangen wird, ist für mich faszinierend. Würde mir wünschen, wenn dies im Alltag auch so selbstverständlich wäre. Ich beschäftige mich erst seit wenigen Wochen mit dem Thema Hausautomatisierung und habe Dank der Hilfe aus dem Forum schon verschiedene "Projekte" umgesetzt oder in Planung.  Ich kann mir nicht vorstellen, dass ich OEM-Software nur annähernd auf meine persönlichen Anforderungen anpassen könnte. Deshalb möchte ich als Anwender an dieser Stelle allen Admins, Moderatoren, Entwicklern und Testern meinen Dank aussprechen.

Saludos,

Lutz
Saludos,
Lutz

Smartes Badezimmer, Heizungssteuerung, Bewässerungssteuerung, RPI3, Arduinos, NodeMCUs, Homematic

John

Hallo Dietmar,

ZitatWenn HC jetzt ins Spiel kommt, raffen die Thermostate nicht, dass sie eigentlich noch im Modus FensterOffen verharren müssten und schalten die von HC gelieferte Temperatur. HC soll dieses Fehlverhalten berücksichtigen?
Das kann man natürlich so sehen, oder aus Sicht vom Thermostat: "der da draussen wird schon wissen was er tut, er ist der Chef,
wenn ich bei offenem Fenster den Sollwert erhöhen soll, so mach ich das" und genauso ticken die Dinger.

Ich habe leider kein Skript für dich aber ein Rezept:

<device>:<reading>:<regexp> je für WindowIsOpen und WindowIsClosed

In das Notify via $hash->{NotifyFn} einklinken und die Ereignisse nach WindowIsOpen bzw. WindowIsClosed filtern.
Damit bekommst du allgemeingültig die Ereignisse der Kontakte mit und kannst entsprechen wie zuvor beschrieben reagieren.

ZitatDas würde nicht passieren, weil HC nur dann eine neue Temperatur setzt, wenn desired-temp noch nicht mit dem Sollwert übereinstimmt.  Und es wird bestimmt nicht in allen Räumen gleichzeitig gelüftet.
Folgende Szene:
3 Fenster zum Lüften öffnen:
1. Fenster wird geschlossen, das Telefon klingelt
15 Minuten Gespräch
Die Ventile der Heizkörper mit offenen Fenster machen jedoch auf und blasen Wärme raus.


John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

AHA1805

Hallo

Ich verwende gerade das Kalender Modul so, dass ich darin Devices eintragen kann.
Mit Beginn des Termins schaltet  sie ein und mit Ende aus.
Nun habe ich mir gedacht, ich mache das gleiche mit meinen Heizkörper.
Ich Trage z.B. wz_Heizung|21.5 ku_Heizung|21.5 als Termin ein und dann werden zu Beginn des Termins alle eingetragen Ventile auf den festgelegten Sollwert eingestellt. Und wenn der Termin vorbei ist wieder auf Default Temp z.B. 18C eingestellt.

Hätte den Vorteil, dass meine Frau über den Google Kalender selber die Sollwerte verändern könnte bzw wenn ich unterwegs bin das auch ganz einfach ohne VPN etc machen könnte.

Was haltet ihr von der Idee?

Gruß
Hannes

Gesendet von Unterwegs mit Tapatalk 4

AHA 1805 RIP 29.08.2016 --> RUHE IN FRIEDEN
In Gedanken Bei dir HANNES
Dein Bruder Gerd (Inputsammler) Vermisst dich Hannes (AHA1805)

Dietmar63

Die Idee mit dem Google Calendar kannst du jetzt schon umsetzen. Einfach ein notify auf die Ereignisse des Calendars und wenn das richtige kommt, dann in ein Set desired-temp xx verwandeln.

Gesendet von meinem HTC Desire S mit Tapatalk

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

AnonymousHolger

Auch ich hadere noch mit dem Kalender.

Zumindest kann ich Ihn schon einmal ohne Fehlermeldung einbinden.


define HeizungsKalender Calendar ical url https://www.google.com/calendar/ical/"SNIP"/basic.ics 14400
attr HeizungsKalender room 7_CALENDAR

Das funktioniert gut, und wird auch in meinem "RAum" 7_CALENDAR als Initialized angezeigt.

Allerdings hab ich mit mehreren CodeSnippets, die ich hier im Forum gefunden habe immer noch nicht geschafft die Einträge auszuwerten :-( ... liegt wohl  mal wieder an mir.

Dietmar hast du ein kurzes Stück Code für die Auswertung in deiner CFG und auch wie dein Termin (Betreff oder Inhalt - was ist entscheidend ?) aufgebaut ist ?

Gruss

Holger