Heizungsthermostatscript

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

erik
Beiträge: 776
Registriert: 31.10.2007, 13:32
Hat sich bedankt: 6 Mal
Danksagung erhalten: 6 Mal

Re: Heizungsthermostatscript

Beitrag von erik » 17.05.2010, 19:38

Hi Rainer,

vielen Dank für Deine Lorbeeren, aber habe nicht alles alleine geschrieben, vielen Tipps, Optimierungen und Hilfe kam aus dem Forum, daher möchte ich den Dank natürlich weiter geben.

Zu der Variable Heizperiode ist zu sagen, das diese extra Umgekehrt definiert wurde. Das hat den Grund, das default Wert einer Variable beim anlegen oder resetten dieser "0" ist. Das würde dann automatisch dazu führen, das alle Ventile Deiner Heizung geöffnet werden, was zu einer Sauna führt und Geld kostet. Im Sommer ist dies ok, im Winter ärgerlich.

Um Dein Problem genauer zu lokalisieren, mußt Du Das Script mal im Script Debugger ausführen und schauen, was dort so an Variablen definiert wird und wie der Wert ist.
Hast Du den Raum richtig benannt im Script, sind eventuelle Fensterkontakte, oder ähnliche Objekte dem Raum zugeordnet, die dazu führen, das die Thermostate immer geschlossen werden?

Grüße

Erik

ErZett

Re: Heizungsthermostatscript

Beitrag von ErZett » 18.05.2010, 19:09

Hallo Erik,

vielen Dank für Deine Antwort.
Der Tipp mit dem Debugger hat mir weitergeholfen. Meine Zentrale hat sich mit den Systemvariablen verschluckt. Erst nachdem ich alle gelöscht hatte, die Zentrale neu gestartet und alle Variablen neu angelegt hatte, funktioniert Dein Skript wieder perfekt.

Grüße aus den Bergen

Rainer

erik
Beiträge: 776
Registriert: 31.10.2007, 13:32
Hat sich bedankt: 6 Mal
Danksagung erhalten: 6 Mal

Re: Heizungsthermostatscript

Beitrag von erik » 18.05.2010, 21:20

ErZett hat geschrieben:Hallo Erik,

vielen Dank für Deine Antwort.
Der Tipp mit dem Debugger hat mir weitergeholfen
Grüße aus den Bergen

Rainer
Hi Rainer,

cool, das es wieder geht, auch wenn ich hoffe, das langsam, die Heizperiode endlich um ist, die nächste kommt bestimmt... :wink:

Grüße aus Kölle

Erik

mchennsy
Beiträge: 66
Registriert: 19.06.2010, 16:48

Re: Heizungsthermostatscript

Beitrag von mchennsy » 06.09.2010, 15:43

Hallo,

erst einmal vielen herzlichen Dank an alle Mitwirkenden für dieses wunderbare Skript.
Funktioniert von Anfang an einwandfrei und zuverlässig. :)

Eine klitzekleine Funktion würde ich mir aber noch wünschen.
Da ich 4 kleine Kinder habe würde mir eine Ferienfunktion (ähnlich der Urlaubsfunktion) sehr gut gefallen.
Jedoch sollte in den Ferien nicht die Temperatur auf einen Fixwert eingestellt werden, sonder auf eine zweite Zeitleiste verweisen.

In den Ferien benötige ich zu anderen Zeiten andere Temperaturen als an einem normalen Schultag.
Da z.B. die Kinderzimmer in den Ferien auch vormittags zum Spielen benutzt werden will ich es für die Kleinen dann wärmer haben. An einem normalen Schultag kann vormittags die Temperatur hingegen abgesenkt werden.

Die Idee hier die zweite Zeitleiste ins Spiel zu bringen fände ich wirklich genial.

Hat da schon jemand etwas in diese Richtung entwickelt oder Lust so etwas umzusetzen? Würde mich freuen wenn es hier eine Lösung geben würde. :)


Eine Frage hätte ich jedoch noch zum Script:
Was bewirkt die Zeile?

Code: Alles auswählen

integer woche = 0;             ! 0=7 Tage Woche, 1=Montag=Wochentags & Samstag=Wochenende, 2= Montag=Woche, 3=Montag=Wochentags & Samstag=Samstag & Sonntag=Sonntag
Danke und Gruß
Michi

Dirty Coyote
Beiträge: 54
Registriert: 09.11.2009, 14:44
Wohnort: Wien / AT

Re: Heizungsthermostatscript

Beitrag von Dirty Coyote » 06.09.2010, 21:31

Hallo,
mchennsy hat geschrieben: Eine Frage hätte ich jedoch noch zum Script:
Was bewirkt die Zeile?

Code: Alles auswählen

integer woche = 0;             ! 0=7 Tage Woche, 1=Montag=Wochentags & Samstag=Wochenende, 2= Montag=Woche, 3=Montag=Wochentags & Samstag=Samstag & Sonntag=Sonntag
das bezieht sich auf die Sollwert-Einstellung weiter unten:

Code: Alles auswählen

string zeitleiste_mon = "332200000000002244443200000000002233445555555544";
string zeitleiste_die = "000000000000002244443200000000002233445555555554";
string zeitleiste_mit = "000000000000002244443200000000002233445555555554";
string zeitleiste_don = "000000000000002244443200000000002233445555555554";
string zeitleiste_fre = "000000000000002244443200000000002233445555555554";
string zeitleiste_sam = "443300000000000022444433333333333344445555555554";
string zeitleiste_son = "443300000000000022444433333333333344445555555554";
Wenn Du woche = 0 aktiv hast, kannst Du für jeden Tag einen eigenen Ablauf programmieren, während bei z.B. woche = 1 die Einstellung für Montag für alle Tage von Montag bis Freitag und die Einstellung von Samstag für sowohl Samstag als auch Sonntag gilt, usw... Kurzum: es erspart Tipparbeit wenn Du an mehreren Tagen der Woche den selben Rhythmus hast.

Grüße
Michael

mchennsy
Beiträge: 66
Registriert: 19.06.2010, 16:48

Re: Heizungsthermostatscript

Beitrag von mchennsy » 06.09.2010, 21:43

Hallo Michael,

super, vielen Dank für die Erklärung. :)

Gruß
Michi

Darklord
Beiträge: 54
Registriert: 24.07.2010, 20:01
Hat sich bedankt: 1 Mal

Re: Heizungsthermostatscript

Beitrag von Darklord » 10.09.2010, 18:42

Hallo,

ich habe seit einigen Tagen das Script auf der CCU.

Soweit funktioniert es auch recht gut.
Wenn ich jedoch die Heizperiode abschalte läuft das Script weiter, d.h. es werden weiterhin Werte in den RT geschrieben.
Stelle ich nun manuell über WebUI auf aus (6°) bleibt dieser Wert erhalten.
Ändere ich nun aber die Variable "Anwesenheit" wird wieder ein Temperaturwert in Den Thermostat geschrieben, obwohl die Heizperiode weiterhin auf "aus" steht.

Ist dies richtig so oder habe ich irgendeinen Fehler drin?

Vielen Dank für Eure Hilfe.


Gruß

Michael

Benutzeravatar
JPS
Beiträge: 1093
Registriert: 07.08.2010, 22:51
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 8 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Re: Heizungsthermostatscript

Beitrag von JPS » 10.09.2010, 20:45

mchennsy hat geschrieben: Eine klitzekleine Funktion würde ich mir aber noch wünschen.
Da ich 4 kleine Kinder habe würde mir eine Ferienfunktion (ähnlich der Urlaubsfunktion) sehr gut gefallen.
Jedoch sollte in den Ferien nicht die Temperatur auf einen Fixwert eingestellt werden, sonder auf eine zweite Zeitleiste verweisen.

In den Ferien benötige ich zu anderen Zeiten andere Temperaturen als an einem normalen Schultag.
Da z.B. die Kinderzimmer in den Ferien auch vormittags zum Spielen benutzt werden will ich es für die Kleinen dann wärmer haben. An einem normalen Schultag kann vormittags die Temperatur hingegen abgesenkt werden.
Hallo,
dem Dank an die Mitwirkenden des Scriptes kann ich mich nur anschließen. Auch ich nutze es seit einiger Zeit und es funktioniert problemlos.

Ich habe eine "Ferien-Funktion" wie folgt implementiert, wobei die Grundidee dieser Vorgehensweise ist, dass an Ferientagen die gleichen Heizungsparameter gelten sollen, wie am Wochenende, sofern das Kind nicht länger abwesend ist.

1. Mit einem Programm setze ich per Zeitsteuerung eine Systemvariable namens "Ferien" auf wahr. Hier habe ich in die Zeitsteuerung einfach manuell die Ferienzeiten für das laufende Schuljahr, einschließlich der beweglichen Ferientage eingetragen. Ein kopiertes zweites Programm ist für das nächste Schuljahr, so kann man überschlägig immer zwei Jahre im Voraus planen. Den Trigger habe ich auf alle 6 Stunden gesetzt.

Bild

Es ist natürlich möglich, mehrere Variablen (Ferien Kind1, Ferien Kind2 etc.) zu verwenden, wenn die Ferienzeiten zu sehr voneinander abweichen.

2. In je einem weiteren Programm steuere ich eine Systemvariable für die längere Abwesenheit (Ferienfreizeit etc.) individuell für jedes Kind "Kind1 länger Abwesend". Der Trigger ist auf einige Minuten gesetzt.

Bild

3. Analog steuern weitere Programme die Systemvariablen für die außerplanmäßige Anwesenheit (Krankheit, schulfrei etc.) individuell für jedes Kind "Kind1 zuhause keine Schule". Der Trigger ist auf zwei Minuten gesetzt, damit das Programm schnell reagieren kann. Die erste Zeile " Täglich ganztägig beginnend am 05.08.2010" setzt die Variable an Sams- und Sonntagen auf wahr, das ist für das Heizungsscript nicht zwingend erforderlich, brauche ich aber für andere Zwecke.

Bild

Ergänzend kann man die Variable per weiterer Zeitsteuerung oder natürlich z.B. auch mit einem Schalter auf wahr setzen, damit bei plötzlichem Auftauchen des Kindes schnell reagiert werden kann (WAF).

4. Das Heizungsscript habe ich (natürlich auch wieder für jedes Kind individuell) an zwei Stellen wie folgt angepasst:

Code: Alles auswählen

(...)
            ! Prüfen ob Timestamp "AW Kind1 länger abwesend" jünger ist als "Partytemperatur" => Wenn ja, merken
                time settime = dom.GetObject('AW Kind1 länger abwesend').Timestamp();
                if (settime > sv_timestamp) {sv_timestamp = settime;}
		
            ! AW Kind1 länger abwesend testen und einstellen, -1 = deaktiviert
            if ((dom.GetObject('AW Kind1 länger abwesend').State()) && (grad_urlaub > -1)) { !Wenn im Urlaub und grad_urlaub nicht -1 (deaktiviert)
            	  soll_neu = grad_urlaub;
            } else {

                ! Prüfen ob Timestamp "Gaeste" jünger ist als "AW Kind1 länger abwesend" => Wenn ja, merken
                settime = dom.GetObject('Gaeste').Timestamp();
                if (settime > sv_timestamp) {sv_timestamp = settime;}

(...)

! An Feiertagen und in den Ferien gilt die Temperatur von Samstag bzw. Sonntag
                        if ((dom.GetObject('Feiertag').State() || dom.GetObject('AW Kind1 zuhause keine Schule').State()) && 

((woche == 0) || (woche == 3))) {zeitleiste_heute = zeitleiste_son;} else {
                        if ((dom.GetObject('Feiertag').State() || dom.GetObject('AW Kind1 zuhause keine Schule').State()) && 

(woche == 1)) {zeitleiste_heute = zeitleiste_sam;}}
                   
}
(...)
Theoretisch bräuchte man auch nur 'Feiertag' durch 'AW Kind1 zuhause keine Schule' zu ersetzten, da mit der Variablen 'AW Kind1 zuhause keine Schule' ja auch die Feiertage abgedeckt werden.

Im Testbetrieb läuft das Ganze so zuverlässig, wobei mir noch der "scharfe Test" fehlt, aber die nächste Heizperiode steht ja bereits vor der Tür :)
Verwendung meiner Hinweise und Skripte auf eigenes Risiko | Ich übernehme hierfür keinerlei Gewährleistung bzw. Haftung

inspire
Beiträge: 120
Registriert: 16.09.2009, 07:41

Re: Heizungsthermostatscript

Beitrag von inspire » 12.09.2010, 13:17

Hallo Zusammen,

habe das bekannte Heizungsskript für eine Unterstützung von Fussbodenheizungen angepasst. (Eine Elektro-Heizung würde sich damit genau so steuern lassen).
Die Besonderheit ist ja hier, dass (meistens) nicht mit den normalen Stellantrieben gearbeitet wird sondern dass Stellantriebe im Einsatz sind. Der überwiegende Teil dieser Antriebe macht bei anliegendem Strom die Heizung auf, ist ser Strom weg wird wieder zu gefahren. Rein theoretisch sind hier auch Zwischenzustände möglich (z.B. Ventil halb auf, Signal alle 20 Sekunden senden um den Zustand zu behalten), hies hat sich bei mir in der Praxis jedoch nicht bewehrt. Man muss dann genau wissen, wie lange das Ventil zum Anfahren einer bestimmten Position braucht, habe das bislang nicht zuverlässig realisiert bekommen. Von daher arbeite ich mit den beiden Zuständen "auf" und "zu", und lasse das Heizungsskript alle 5 Minuten darüber laufen. Durch die Trägheit der Fußbodenheizung funktioniert das ganz gut.
Das Skript beinhaltet noch eine maximale Einschaltzeit für die Stellantriebe. Wer eine niedrige Vorlauftemperatur hat, weil er per Erdwärme einspeist, braucht das nicht unbedingt. Wer jedoch mit Gas heizt und entsprechend Hitze auf die Fußbodenheizung bekommen kann, wenn er denn will, hat das Risiko von Schäden (z.B. an Fliesen die ab einer gewissen Hitze springen), wenn er die Fußbodenheizung zu heiss dreht. Hier empfiehlt es sich schon, eine maximale Einschaltzeit für die Stellantriebe zu setzen. (==> Schutz vor Ausfall der CCU bei eingeschaltetem Stellantrieb)

Ich freue mich auf Feedback, besonders wenn euch Fehler auffallen sollten ... ;-)

Gruss,
Boris aka inspire
Dateianhänge
Wandthermostat_V1.7.2mh.txt
(19.5 KiB) 520-mal heruntergeladen

Darklord
Beiträge: 54
Registriert: 24.07.2010, 20:01
Hat sich bedankt: 1 Mal

Re: Heizungsthermostatscript

Beitrag von Darklord » 12.09.2010, 14:43

Hi,

zwischenzeitlich habe ich auf Version 1.503 upgedated und weiterhin nach einer Fehlerquelle gesucht, jedoch ohne Erfolg. :(

Es bleibt beim alten:
Das Ausschalten der Variable "Heizperiode" setzt den Wert des Thermostates nicht auf ON (100%).
Der zuletzt übermittelte Wert wird beibehalten und das Ventil wird nicht geöffnet. :?:
Manuelles ändern via WebUI wird beibehalten bis die Variable "Anwesenheit" geändert wird.
Darauf wird der im Script hinterlegte Wert für den definierten Zustand (anwesend/abwesend) an den Thermostat gesendet.
Erst eine erneute Abschaltung über WebUI bleibt erhalten bis die Systemvariable Anwesenheit wieder geändert wird.

Selbstveständlich habe ich den vergangen Tagen im Forum gesucht und auch einiges ausprobiert, jedoch ohne Erfolg.

Kann mir jemand auf die Sprünge helfen wo hier der Fehler liegt?


Vielen Dank für Eure Bemühungen.


Gruß

Michael

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“