Heizungsthermostatscript
Moderator: Co-Administratoren
-
- Beiträge: 776
- Registriert: 31.10.2007, 13:32
- Hat sich bedankt: 6 Mal
- Danksagung erhalten: 6 Mal
Re: Heizungsthermostatscript
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
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
Re: Heizungsthermostatscript
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
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
-
- Beiträge: 776
- Registriert: 31.10.2007, 13:32
- Hat sich bedankt: 6 Mal
- Danksagung erhalten: 6 Mal
Re: Heizungsthermostatscript
Hi Rainer,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
cool, das es wieder geht, auch wenn ich hoffe, das langsam, die Heizperiode endlich um ist, die nächste kommt bestimmt...
Grüße aus Kölle
Erik
Re: Heizungsthermostatscript
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?
Danke und Gruß
Michi
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
Michi
-
- Beiträge: 54
- Registriert: 09.11.2009, 14:44
- Wohnort: Wien / AT
Re: Heizungsthermostatscript
Hallo,
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
das bezieht sich auf die Sollwert-Einstellung weiter unten: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
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";
Grüße
Michael
Re: Heizungsthermostatscript
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
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
- 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
Hallo,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.
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.
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.
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.
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;}}
}
(...)
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
Re: Heizungsthermostatscript
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
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
Re: Heizungsthermostatscript
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
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