Heizungsthermostatscript V2.0

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

Heizungsthermostatscript V2.0

Beitrag von erik » 28.12.2012, 19:13

Hallo,

hier nun das Heizungsthermostatscript V2.0.
Nach über 250 Posts und 34 Seiten, habe ich mich entschlossen, einen neuen Thread zu eröffnen, so daß die Übersicht verbessert wird.
Bei Problemen bitte ich, trotzdem auch in den alten Thread zu schauen: http://homematic-forum.de/forum/viewtop ... =31&t=3480

Ich habe in der Vergangenheit extrem viele persönliche Nachrichten bekommen, worin um Hilfe gebeten wird, da das Script auf der persönlichen CCU nicht funktioniert.
Ich möchte mich an dieser Stelle für das Vertrauen bedanken, möchte mich aber auch zugleich entschuldigen, das ich nicht auf alle diese Anfragen Antworten kann und verweise hier auf diesen Thread.
Viele Fragen wurden dort bereits beantwortet und teilweise waren es auch grundlegende Fragen zur CCU, die ich alle aus zeitlichen Gründen nicht beantworten kann.
Hier im Forum sind extrem viele fähige Leute, die helfen, stellt bitte die Fragen hier. Danke.

So nun zum neuen Script:

Was ist neu in Version 2.0?
Die neue Version hat einen Punkt in der Konfiguration, in der man manuell das Thermostat und gegebenenfalls die Luken eines Raumes definieren kann, so dass das Script nicht nach den entsprechenden Komponenten suchen muss.
Bei wenigen Geräten spielt dies keine Rolle, in meiner Konfig benötigt ein Scriptlauf für einen Raum ca. 10 Sekunden (in der die CCU nichts anderes macht). Bei 8 Thermostaten und 8 Scripten ist die CCU alle 30 Minuten für 80 Sekunden komplett ausgelastet.

Dies liegt leider daran, das die CCU alle Geräte in den entsprechenden Räumen und dem Gewerk "Verschluss" durchsuchen muss.
Hier muß man sich nun entscheiden, ob man eine schnelle und intelligente Scriptimplementation haben möchte oder doch lieber Performance.
Hier kommt dann die neue manuelle Konfiguration ins Spiel. (Dank an Goersch für den Denkanstoß, Input und Script Schnipsel)
Die Tuneoption, ist konfigurierbar, so dass man mit der Variablen kconfig [1 oder 0] das alte (Komfort Version) oder neue Verhalten (Performante Version) des Scriptes einstellen kann. Die Temperatur Einstellungen sind für beide Varianten identisch.

Was kann das Script

Features:
[*] Partyfunktion - setzen einer Temperatur auf alle Thermostate (z.B. für Lüften und Absenken aller Thermostate)
[*] Urlaubsfunktion - im Urlaub wird eine eingestellte Temperatur gesetzt
[*] Gäste im Haus - Für Gäste soll es mollig warm sein
[*] Offene Verschlüsse senkt Temperatur auf definierten Wert ein - können automatisch aus Raum und Gewerk ermittelt werden
[*] 10 verschiedene Temperaturen können alle 30 Minuten auf Woche verteilt werden
[*] Temperatur wenn man außer Haus ist
[*] Woche kann als 7 / 5 oder 1 Tag, sowie in 5+1+1 definiert werden
[*] manuell eingestellte Temperatur wird bestimmte Zeit lang nicht durch Script verändert, Wert als hh:mm
[*] mit -1 oder 0 können Blöcke deaktiviert werden, siehe Kommentare im Script
[*] an Feiertagen gilt die Sonntagszeitleiste - dazu passt das Script http://homematic-forum.de/forum/viewtop ... =31&t=4058 das automatisch diese ermittelt.

Folgende Systemvariable werden benötigt:
[*] Heizperiode (boolean) 0 Zentralheizung an, 1 = aus. Thermostate werden bei abgeschalteter Zentralheizung geöffnet (die umgekehrte Logik ist bewusst gewählt)
[*] Gaeste (boolean) 1= Gäste im Haus, 0 keine Gäste
[*] Urlaub (boolean) 1= Im Urlaub, 0 zu Hause
[*] Anwesenheit (boolean) 1=zu Hause, 0 weg
[*] Partytemperatur,(zahl) default -1, Ansonsten Temperatur, Wertebereich: -1 bis 100
[*] Feiertag (boolean) 1=Feiertag, 0 kein Feiertag

Sofern Ihr kconfig = 1 gesetzt habt, müssen Fenster, Dachluken, usw. müssen alle im Gewerk Verschluss (mit doppelt ss) gesetzt sein und auch im entsprechenden Raum sein. Durch diese Schnittmenge ermittelt das Script automatisch die entsprechenden Geräte.

Generell gilt, das Raumnamen, wie auch Gerwerke oder Geräte keine Umlaute haben, also nicht Büro, sondern Buero, oder Gästezimmer => Gaestezimmer, sonst funktioniert das Script nicht! (gilt übrigens für alle Scripte auf der CCU).

Für jeden Raum, der ein Thermostat enthält muss das Script einmal benutzt werden. In der ersten Zeile dann bitte den Raumnamen definieren. Alle Thermostatscripte können in ein CCU Programm zusammen gefasst werden.

Script ist ansonsten kommentiert und die meisten Punkte sollten daher klar sein.


Die Thermostate laufen bei mir übrigens im Modus "Manu", wobei ich für einen möglichen CUU Ausfall die Thermostate auch für Auto programmiert habe. Sollte mal die CCU defekt sein, kann schnell das Thermostat auf Auto umgestellt werden und Frau muss nicht frieren... :-)
Mit einem kleinen Script aus dem Forum, stelle ich nachts einmal alle Thermostate auf "MANU", so daß ein eventueller versehentlicher Moduswechsel wieder berichtigt ist.

Tips / Ideen:
- Lüften von Räumen ohne Lukenerkennung: Neues Programm setzt Partytemperatur auf 6 Grad und sofort verzögert um eine Lüftdauer (z.B. 30 Minuten) dann wieder auf -1. So kann für x MInuten gelüftet werden, ohne das die Thermostate die Ventile öffnet.
- Mittels eines Timers kann die Urlaubsvariable, oder Abwesenheit getimed wieder deaktiviert werden, so daß vor zurückkommen die Bude wieder geheizt ist.


Neu in Version 2.0:

Code: Alles auswählen

! Komfort_Config
! kconfig = 0 - Variable sRegler muß das Thermostat im Raum enthalten, sTuerenUndFenster koennen Verschluesse (Datenpunkt) definiert werden - Performance sehr gut, manuelles definieren der Geraete
! kconfig = 1 - Variablen sRegler und sTuerenUndFenster muessen nicht angegeben werden. Geraete werden ueber den Raum und Gewerk "Verschluss" automatisch gesucht - Performance schlecht, komfortables und intelligentes Script

integer kconfig = 1;
string sRegler = "HEQ0XXX612";   ! Definition des Thermostates
string sTuerenUndFenster = "BidCos-RF.GEQ01XXX92:1.LEVEL"; ! hier können 0 bis n-Geräte rein - mit ";" trennen oder "" fuer kein Geraet (ohne Leerzeichen) 

Variable sRegler enthält die ID des Heizungsthermostates.
Variable sTuerenUndFenster enthält die Luken, die überwacht werden sollen und die das Thermostat beeinflussen sollen.
Variable kconfig definiert das alte oder neue Verhalten des Scriptes.

Wer mit der Performance des alten Scriptes zufrieden ist, benötigt Version 2.0 nicht und braucht nicht upzudaten.
Wer sein Script tunen möchte, sollte das Script 2.0 nutzen, ein Mischbetrieb und späterer Umstieg ist möglich.

Die Werte für sRegler und sTuerenUndFenster können am leichtesten per Copy and Past aus der "Alternativen WebUI" (HQ WebUI) http://homematic-forum.de/forum/viewtop ... 31&t=10559 entnommen werden. Dort sind auch die genauen Datenpunkte der Luken direkt zu entnehmen. Habe mich aus Performancegründen dazu entschieden, das der gesamte Pfad des Datenpunktes angegeben werden muß und die Hirnschmalz vom User einmalig aufzubringen ist. Dadurch wird das Script schneller.
Auch können so Funk und Wired Komponenten gemischt angegeben werden. Habe Ihr keine Luken, die Ihr berücksichtigen wollt, so setzt die Variable einfach auf "", mehrere werden ohne Leerzeichen direkt mit ";" Semikolon getrennt.


Wie teste ich das Script?
Heizungsthermostate und Regler müssen als erstes in der CCU beide angelernt sein und über die CCU konfigurierbar sein. Die Regelwerte der Heizungsköpfe können dabei in der CCU angezeigt werden. Die ist die Grundvoraussetzung, das nun das Script arbeiten kann.
Am einfachsten ist es, das Script im erweiterten Script Parser (http://homematic-forum.de/forum/viewtop ... =31&t=7014) laufen zu lassen. Hier können direkt die Werte der Variablen eingesehen werden. Wer diesen nicht hat, kann auch die Variable "debug" im Script auf 1 setzen und das Script wie gewollt starten.
Setzt die Variable „Heizperiode“ auf „Zentralheizung an“ (Wert auf 0), öffnet dann bitte im entsprechenden Raum alle zu berücksichtigten Fenster und Türen und Startet das Script. Im Systemlog der CCU sollte dann ein Eintrag erscheinen. Sind die Datenpunkte alle richtig eingestellt, wird im log die aktuelle Solltemperatur vermerkt, wie auch die Anzahl der offenen Luken (Variable „offen“). Diese sollte entsprechend hoch sein ( offen =0 bedeutet keine Luke offen, usw.) Ist diese abweichend, so stimmt bei der Definition dieser in der Variable sTuerenUndFenster etwas nicht, sofern ihr die Variable kconfig = 0 gesetzt habt.
Bei kconfig=1 werde die Luken automatisch ermittelt. Stimmt der Wert offen nicht, so einfach bitte die entsprechende Zuordnung überprüfen. Folgende Geräte werden aktuell automatisch berücksichtigt:
- Türfensterkontakte (HM-Sec-SC)
- Jalousienaktor / Dachluken Funk (HM-LC-Bl1-FM)
- Jalousienaktor / Dachluken Wired (HMW-LC-Bl1-DR)
- Schließerkontakt-Sensor Hutschienenmontage (HMW-Sen-SC-12-DR)
- Fenster-Drehgriffsensoren (HM-Sec-RHS)
- Funk-Rollladenaktor für Markenschalter (HM-LC-Bl1PBU-FM)

Die debug Variable sollte immer auf 0 sein, da bei Nutzung system.exec Befehle genutzt werden, die zu bekannten Stabilitätsproblemen auf der CCU führen können. Daher nur bei Problemen (Fehlersuche) auf 1 setzen.

Bekannte Probleme:
- Funkwandthermostat zeigte mir aber immer nur "on" an => Variable Heizperiode ist vertauscht gesetzt oder nicht definiert. Ich gehe davon aus, das im Sommer die Zentralheizung aus ist. Damit das kalte Wasser im Heizkreislauf zirkulieren kann, öffne ich alle Ventile. Da bei einen Restart der CCU die Variable automatisch auf 0 gesetzt wird, werden so alle Ventile auf Winterbetrieb gesetzt und funktionieren entsprechend. Wäre dies der Logik entsprechend, würden dann alle Ventile geöffnet und wir hätten im Haus eine Saune, die entsprechend Geld kostet…

So, nun viel Spaß - hoffe, habe alles bedacht und beschrieben.

Besonderen Dank an Zauberlehrling, Petrus und Goersch, die aktiv am Script mit gearbeitet haben und alle im Forum, die bei der Umsetzung durch Tipps, Anmerkungen und Kommentaren die Erstellung unterstützt haben.

Grüße

Erik

PS: Vor dem Updaten bitte Eure bestehende Scripte sichern - Bugs sind nicht ausgeschlossen, obwohl ich bei mir schon getestet habe!
Dateianhänge
Heizung20.txt
(17.9 KiB) 5252-mal heruntergeladen

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

Re: Heizungsthermostatscript V2.0

Beitrag von mchennsy » 30.12.2012, 18:00

Hallo Eric,

danke für das verbesserte Heizungsthermostatscript. :)

Ich habe jetzt ein Zimmer auf diese Version umgestellt und habe ein ganz seltsames Verhalten bei der Heizung.

Erst jedoch bin ich etwas verwirrt bezüglich der Luken die jetzt direkt im Script eingebaut werden.
Du schreibst bei den Datenpunkten etwas von "BidCos-RF.GEQ01XXX92:1.LEVEL". Ich kann jedoch bei meinen Datenpunkten nur "STATE" und "ERROR" finden.

Vielleicht hängt ja das folgende seltsame Verhalten der Heizung ja mit diesen Datenpunkten zusammen.

Wenn ich die Luke geschlossen habe, dann wird die Luken-Offen-Temperatur von 6°C eingestellt. Wenn ich die Luke öffne, dann wird der Wert 21°C den ich im Script nirgendwo gesetzt habe eingestellt.
Irgendwo ist da der Wurm drin.


EDIT: Das Veralten ist jetzt nach längerer Beobachtung doch etwas anders aber nicht weniger eigenartig.
1. Bei Luke auf geht der Sollwert auf 10°C (Ist bei der direkten Verbindung "Fenster-Heizung" als Absenktemperatur definiert) müsste aber laut Script 6°C sein.
2. Bei Luke zu geht der Sollwert auf 21°C (hier weiß ich auch nicht woher er sich den Wert zieht) sollte aber 17°C sein, dann ein paar Minuten später wieder auf 6°C und dann beim nächsten planmäßigen Scriptlauf (zur vollen und halben Stunde) dann auf den richtigen Wert von 17°C.

LÖSUNG: Ich habe nun die Direkte Geräteverbindung zwischen Fenster und RT gelöscht und siehe da, es funktioniert! :)

Zusatzinfo:
Bevor ich das Script bei mir in die Homematic einfügen konnte musste ich erst alle Umlaute (auch aus den auskommentieren Bereichen) entfernen. Auf meinem Mac werden diese Umlaute nicht "ä,ü,ö,ß" dargestellt, sondern sehen im Editor so "‰,ˆ,fl,¸" aus. Vielleicht könntest Du die Umlaute bzw. das "ß" aus Deinem Script entfernen. Ich könnte mir vorstellen, dass da einige andere (Mac) User das gleiche Problem haben.

Gruß
Michi
Zuletzt geändert von mchennsy am 30.12.2012, 19:56, insgesamt 1-mal geändert.

ChrisL
Beiträge: 344
Registriert: 25.05.2011, 08:31

Re: Heizungsthermostatscript V2.0

Beitrag von ChrisL » 30.12.2012, 18:55

Sodelle.

Ich habe das neue Script nun auch mal in einem Raum getestet. Mit dem neuen Script komme ich auf eine Laufzeit von ca. 2 Minuten. Nicht auf der Konsole gemessen, sondern nur im WebUI nachgeschaut, wann das Fenster geschlossen wurde und die Temperatur wieder hochgesetzt wurde.
(Wer mir einen besseren Weg zum messen der Zeit zeigen kann, bitte her damit)

Mit dem alten Script komme ich ebenfalls auf eine Laufzeit von ca. 2 Minuten. Auch wieder über die WebUI.

Ich habe das Script in einem Raum getestet mit 3 Fenstern. Der RT steht auf Manu und die Fenster und der RT sind nicht direkt verknüpft.

Gruß
Chris

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

Re: Heizungsthermostatscript V2.0

Beitrag von mchennsy » 30.12.2012, 19:59

ChrisL hat geschrieben:.... Ich habe das neue Script nun auch mal in einem Raum getestet. Mit dem neuen Script komme ich auf eine Laufzeit von ca. 2 Minuten. Nicht auf der Konsole gemessen, sondern nur im WebUI nachgeschaut, wann das Fenster geschlossen wurde und die Temperatur wieder hochgesetzt wurde.....
Hallo Chris,

ich glaube die zwei Minuten Verzögerung haben nichts mit der Scriptlaufzeit an sich zu tun, sonder nur am Datenaustausch zwischen RT und CCU. Dieser ist "leider" immer etwas zeitlich verzögert.

Gruß
Michi

stefanp
Beiträge: 38
Registriert: 18.12.2012, 22:15

Re: Heizungsthermostatscript V2.0

Beitrag von stefanp » 31.12.2012, 16:11

mchennsy hat geschrieben:Hallo Eric,
EDIT: Das Veralten ist jetzt nach längerer Beobachtung doch etwas anders aber nicht weniger eigenartig.
1. Bei Luke auf geht der Sollwert auf 10°C (Ist bei der direkten Verbindung "Fenster-Heizung" als Absenktemperatur definiert) müsste aber laut Script 6°C sein.
2. Bei Luke zu geht der Sollwert auf 21°C (hier weiß ich auch nicht woher er sich den Wert zieht) sollte aber 17°C sein, dann ein paar Minuten später wieder auf 6°C und dann beim nächsten planmäßigen Scriptlauf (zur vollen und halben Stunde) dann auf den richtigen Wert von 17°C.

LÖSUNG: Ich habe nun die Direkte Geräteverbindung zwischen Fenster und RT gelöscht und siehe da, es funktioniert! :)
Das kann ich so nur bestätigen. Werde auch mal die Direktverknüpfung partiel entfernen und weiterforschen.

Rainer
Beiträge: 14
Registriert: 21.09.2012, 17:53
Danksagung erhalten: 2 Mal

Re: Heizungsthermostatscript V2.0

Beitrag von Rainer » 01.01.2013, 20:10

Hallo Erik,

ich hab die V2-Scripte nun auch seit letztem Jahr im Einsatz :-)

Wie auch schon bei den Vorgängerscripten ist es mir sehr schnell gelungen, die Programmierung an meine Anlage anzupassen und entsprechend einzustellen.

Ich hab 5 Wohnraumregler mit 6 Heizkörperstellern und 3Fensterdrehgriffsensoren im Einsatz.

Die Vorgänger hatte ich schon eine Weile in Betrieb und sie funktionierten ausgezeichnet. An dieser Stelle nochmal vielen Dank für Deine Arbeit!

Über die Möglichkeit, die Zeitleiste über eine Systemvariable auszuwählen, konnte ich wechselnde morgendliche Startzeiten z.B. für das Bad bequem auswählen. Die Fenstersensoren lösen ausserdem bei Betätigung das betreffende Heizungsscript direkt aus, sodass Fenster öffnen und schließen sich sofort auf die Heizung auswirkt.

Ein Problem hab ich aber trotzdem nicht in den Griff bekommen. Die Funktion, eine manuell am Regler eingestellte Temperatur für eine bestimmte Zeit nicht zu überschreiben, blockiert mir die Regelung. Setzte ich diese Zeit auf etwas anderes als 00:00, bleiben die Regler bei letztem Wert einfach stehen. Es scheint so, als würde jede Temperaturvorgabe vom Programm oder eine Absenkung durch die Lüftungsfunktion ebenfalls als manuelle Eingabe gewertet werden und somit die Annahme einer neuen Temperatur vom Programm ausgesetzt zu werden.

Das ist bei den neuen Scripten genauso. Setze ich den Wert auf 00:00, funtioniert alles reibungslos. Leider lässt sich die Temperatur im Raum nun aber nur durch direkten Eingriff ins Script ändern - das ist unschön.

Was läuft da falsch?

Rainer

dps
Beiträge: 8
Registriert: 26.09.2011, 11:48

Re: Heizungsthermostatscript V2.0

Beitrag von dps » 02.01.2013, 11:32

Hallo Rainer,
ich hoffe, Deine Problemstellung richtig verstanden zu haben.
Ich hatte auch mal erhebliche Probleme mit der richtigen Umsetzung einer manu Eingabe am Thermostat. Bei mir wurde planmässig alle halbe Stunde der manuell eingestellte TempWert nach Tabelle überschrieben, egal welche Zeitdauervorgabe (zB 02:30) im Script eingestellt war.

Bei mir hing es an der VAR ANWESENHEIT, die ich nicht nur manuell, sondern per Bewegungsmelder auf WAHR setzen lasse.
Wenn Du dies ebenso machst kann ich Dir ggf. helfen.

Gruß
dps

Rainer
Beiträge: 14
Registriert: 21.09.2012, 17:53
Danksagung erhalten: 2 Mal

Re: Heizungsthermostatscript V2.0

Beitrag von Rainer » 02.01.2013, 14:10

Hallo dps,

danke für Dein Feedback. Aber nein, die Anwesenheitsvariable ist nicht das Problem. Ich nutze die Variable (noch) nirgendwo anders, aber manuelles Umsetzen dieser Variablen führt zum gewünschten Ergebnis: Die Temperatur fährt in allen Räumen auf den für Abwesenheit eingestellten Wert.

Natürlich auch nur, wenn ich die "Überschreibsperre-Zeit" nicht gesetzt habe. Wenn doch, wird das Ergebnis irgendiwe unkalkulierbar.

Ich denke eher daran, ich hab eine Variable vergessen oder etwas ähnliches. Woher nimmt das Script die Information, wann das nächste Mal überschrieben werden darf? Kann das SCript unterschieden, ob die eingestellte Temperatur vom Programm oder vom Reglerrad stammt?

Grüße
Rainer

macklcat
Beiträge: 19
Registriert: 07.05.2012, 09:11

Re: Heizungsthermostatscript V2.0

Beitrag von macklcat » 03.01.2013, 07:12

Bei der Version 1 hat mal Don ein HSE - ein HeizungsSkriptEditor für das Heizungsthermostatskript geschrieben. Kann Don sagen ober er dieses Tool für die Version 2 adaptieren kann. Danke wäre super!

Lueghi
Beiträge: 630
Registriert: 01.11.2007, 21:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Siebengebirge (bei Bonn)
Hat sich bedankt: 18 Mal
Danksagung erhalten: 2 Mal

Re: Heizungsthermostatscript V2.0

Beitrag von Lueghi » 03.01.2013, 18:20

Soweit ich das HSE damals verstanden habe, wird neben ein paar Steuerung-Variablen nur die Zeittabelle ausgelesen. Der Rest des Scriptes wird gar nicht angefasst. Daher sollte HSE IMHO auch mit der neuen Version arbeiten .... ich habe es aber nicht getestet, da ich noch die Vorgängerversion nutze.
Gruß Stefan

Antworten

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