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!