Heizungs-Script mit Fenster-Auf Erkennung

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
dworok
Beiträge: 12
Registriert: 23.06.2012, 14:17

Heizungs-Script mit Fenster-Auf Erkennung

Beitrag von dworok » 10.06.2013, 23:21

Hallo,

ich hatte immer wieder folgendes Problem mit den Wand-Thermostaten:

Wenn ein Fenster geöffnet ist, gilt die "Window-Open-Temperatur" von 6°.
Ändert sich nun jedoch die Soll-Temperatur (z.B. weil zeitgesteuert über die Zentrale oder im Auto-Modus eine neue Temperatur eingestellt wird), so wird die Window-Open-Temperatur damit überschrieben und die Heizung heizt zum offenen Fenster heraus...

Ich habe nun ein Script geschrieben, das diesen Fall abfängt und das Thermostat wieder auf 6° zurück stellt.

Dazu reagiert das Script auf die Änderung des Soll-Wertes. Sollte dieser nicht 6° entsprechen, dann prüft das Script, welche Fenster mit dem Thermostat verknüpft sind. Ist eines dieser Fenster offen, wird wieder auf 6° zurück geregelt.

Zur Abfrage, welche Fenster verknüpft sind, wird ein einfaches TCL-Script benötigt, das man mittels ftp auf die CCU kopieren muss. Der Rest ist natives Homematic-Script.

Hier das TCL-Script "getlinkpeers.tcl":

Code: Alles auswählen

#
# Zeigt die LinkPeers von getLinkPeers
# =================================================
# (C) Sebastian Dworok
# auf Basis von setparam.tcl von Oliver Wagner <owagner@vapor.com>
#
# tclsh getlinkpeers <addresse> 
# z.B.
# tclsh getlinkpeers IEQ0123456:3
#
# Diese Version ist fuer Funk. Fuer Wired muss unten der Port von 2001 auf 2000 geaendert werden.
#
load tclrpc.so
set ausgabe [xmlrpc http://127.0.0.1:2001/ getLinkPeers [list string [lindex $argv 0]] ]
puts $ausgabe
Das Script muss mittels FTP in folgenden Ordner auf der CCU kopiert werden:
/usr/local/addons/tcl

Dann erstellt man folgendes Programm, in das man alle im Haus vorhandenen Thermostate einfügt:
Programm Heizung - Thermostat änderung.png
Und fügt folgendes Script ein:

Code: Alles auswählen

! Thermostat-WOT-Script
! Prüft bei Änderung der Temperatur, ob die Temperatur der WOT-Temperatur entspricht. 
! Wenn nicht, wird geprüft, ob doch noch Fenster offen sind.
! Wenn ja, wird wieder die WOT eingestellt.
! (C) Sebastian Dworok

! Konstanten (WOT = Window_Open_Temperature; WCT = Window_Close_Temperature)
var WOT = "6";

! Auslösenden Heizungsregler ermitteln
var channelid =  dom.GetObject("$src$").Channel();
var deviceid = dom.GetObject(channelid).Device();
var address = dom.GetObject(deviceid).Address();
var setpoint = "$val$";


if (setpoint.ToFloat() != WOT.ToFloat()) {
  ! Temperatur entspricht nicht der WOT

  !Verknüpfte Fensterkontakte ermitteln und prüfen, ob eines davon offen steht (WindowOpen = true)
  var stdout;
  var stderr;
  system.Exec("tclsh /usr/local/addons/tcl/getlinkpeers.tcl "+address+":3",&stdout,&stderr);
  string Link;
  boolean WindowOpen = false;
  foreach (Link, stdout.Substr(0, stdout.Length()-1).Split(" ")){
    var channel=dom.GetObject("BidCos-RF." # Link # ".STATE");
    if (channel.Value() == true) {WindowOpen = true;}
  }

  if (WindowOpen) {
    ! Ein Fenster ist auf
    ! Setpoint manuell auf WOT setzen
    dom.GetObject("BidCos-RF." # address # ":2.SETPOINT").State(WOT);
  }
}
Damit ist der oben beschriebene Fehler abgefangen. Sobald eine neue Temperatur eingestellt wird, läuft das Script an und stellt die Temperatur wieder auf 6° zurück. Die Übertragung dauert allerdings technisch bedingt bis zu zwei Minuten.

Der Vorteil gegenüber der Lösung im hier im Forum bereits vorhandenen Heizungs-Script ist, dass die Direktverknüpfungen der Fenster mit dem Thermostat erhalten bleiben können und damit auch das "Fenster offen"-Symbol im Display angezeigt wird.

Folgende Verbessungen könnte man noch einfügen:
Es wird generell angenommen, dass die WOT 6° beträgt. Man könnte hier (dazu wird wieder ein TCL-Script benötigt) noch die tatsächlich am Thermostat programmierte WOT auslesen. Da ich aber an allen Thermostaten 6° eingestellt habe, benötige ich diese Funktion aktuell nicht.

Vielleicht nutzt es dem einen oder anderen ja etwas.

Viele Grüße,
Sebastian

PeacePirate
Beiträge: 170
Registriert: 19.10.2011, 23:26
Wohnort: Köln
Hat sich bedankt: 12 Mal

Re: Heizungs-Script mit Fenster-Auf Erkennung

Beitrag von PeacePirate » 25.10.2013, 15:14

Hi.
Versuche, das umzusetzen.

Welche Parameter muss ich denn ändern?
Im ersten Skript habe ich es so:

load tclrpc.so
set ausgabe [xmlrpc http://127.0.0.1:2001/ getLinkPeers HEQ0367645:3 [list string [lindex $argv 0]] ]
puts $ausgabe


Dabei ist HEQ0367645:3 das Wandthermostat.
Muss "http://127.0.0.1:2001/" geändert werden?

Beim zweiten Skript weiss ich jetzt gar nicht, was alles geändert werden soll.

Dort steht:

! Auslösenden Heizungsregler ermitteln
var channelid = dom.GetObject("$src$").Channel();
var deviceid = dom.GetObject(channelid).Device();
var address = dom.GetObject(deviceid).Address();
var setpoint = "$val$";

Soll ich die selber einfügen?

Würde mich freuen, wenn du das etwas erläutern könntest.
Gruß
Cäsar

dworok
Beiträge: 12
Registriert: 23.06.2012, 14:17

Re: Heizungs-Script mit Fenster-Auf Erkennung

Beitrag von dworok » 25.10.2013, 17:09

Hallo,

Beide Scripte können 1:1 übernommen werden. Es muss nichts geändert werden.

Lediglich in dem zu erstellenden Programm (siehe Screenshot) müssen alle deine Heizungsregler eingefügt werden, für die das Skript laufen soll. Im Skript selbst wird dann mit "src" gearbeitet, d.h. der Heizungsregler, der das Skript anstößt, wird automatisch ermittelt.

Viele Grüße, Sebastian

PeacePirate
Beiträge: 170
Registriert: 19.10.2011, 23:26
Wohnort: Köln
Hat sich bedankt: 12 Mal

Re: Heizungs-Script mit Fenster-Auf Erkennung

Beitrag von PeacePirate » 25.10.2013, 17:38

Ah okay.
Vielen Dank:)

Goglo
Beiträge: 610
Registriert: 14.04.2012, 18:34
Danksagung erhalten: 1 Mal

Re: Heizungs-Script mit Fenster-Auf Erkennung

Beitrag von Goglo » 26.10.2013, 11:49

Das Ganze geht auch im webUI. Dafür muss je Regler eine Systemvariable (zu diesem Regler) angelegt werden, die bei "Fenster auf" mit der aktuellen Solltemperatur beschrieben wird. Und im zweiten Schritt senkt dieses Programm dann auch zeitverzögert die Solltemperatur bzw. schließt das Ventil. Dann gibt es noch ein Programm, welches bei "Fenster zu" den geretteten Sollwert wieder als Solltemperatur übernimmt.
83 Kanäle in 50 Geräten:
3x HM-LC-Sw1-Pl, 1x HM-WDS10-TH-O, 5x HM-PB-4-WM, 3x HM-PB-2-WM, 3x HM-LC-Dim1T-FM, 2x HM-Sec-SC, 4x HM-Sec-RHS, 5x HM-CC-VD, 4x HM-CC-TC, 5x HM-LC-Sw1-FM, 2x HM-Sec-MDIR, 1x HM-WDS30-T-O, 1x HM-LC-Sw1-Pl-2, 2x HM-PB-2-WM55, 1x HM-LC-Dim1L-CV, 1x HM-CCU-1, 1x HM-PBI-4-FM, 1x HM-LC-Dim1L-Pl-2, 1x HM-LC-Dim1T-CV, 1x HM-LC-Dim1L-Pl, 1x HM-LC-Sw2-FM, 1x HM-LC-Sw1-SM, 1x HM-Sec-WDS

82 Kanäle in 43 Geräten:
1x HM-PB-2-WM, 2x HM-LC-Bl1-FM, 3x HM-LC-Bl1PBU-FM, 3x HM-PB-2-WM55, 2x HM-PB-4-WM, 9x HM-CC-VD, 8x HM-CC-TC, 2x HM-LC-Sw2-FM, 1x HM-WDS10-TH-O, 1x HM-CCU-1, 1x HM-Sen-MDIR-O, 4x HM-LC-Sw1-FM, 2x HM-SwI-3-FM, 1x HM-LC-Sw4-SM, 1x HM-LC-Sw1-Pl-2, 1x HM-PBI-4-FM, 1x HM-WDS30-T-O

PeacePirate
Beiträge: 170
Registriert: 19.10.2011, 23:26
Wohnort: Köln
Hat sich bedankt: 12 Mal

Re: Heizungs-Script mit Fenster-Auf Erkennung

Beitrag von PeacePirate » 26.10.2013, 14:02

Hallo,

anfangs hat das Skript irgendwas getan, weil die Absenktemperatur in den settings des Wandthermostats standardmäßig auf 12°C eingestellt war und ich dort plötzlich 6°C sah, wenn der TFK offen war.

Plötzlich klappt es nicht mehr. Firmware ist noch 1.509, also ohne den Wochenprogramm-Bug der 1.510.

Wenn ich mich richtig erinnere, hatte ich bis vor kurzem gar nicht das Problem, dass zu einem Schaltzeitpunkt (15:00 Uhr: 17°C -> 23°C) die Absenktemperatur von 12°C bei geöffnetem TFK überschrieben und auf 23°C gesetzt wurde, so dass die Heizung bei geöffnetem Fenster und trotz eindeutigem Fenster-auf-Symbol plötzlich "volle Pulle" anfing zu heizen.

Ich glaube jetzt zu wissen, dass es an PocketControl lag. In PC habe ich vor kurzem festgestellt, dass man in der App selber ebenfalls unter den Geräteeinstellungen des Wandthermostats Heizzeitpunkte einstellen kann. Dort hatte ich 2 Schaltzeiten eingestellt und diese Schaltbefehle haben alle TFK Absenktemperaturen überschrieben. Nach dem Löschen dieser PocketControl Schaltzeiten wird die Absenktempertur durch das normale RT-Wochenprogramm anscheinend nicht mehr überschrieben und alles ist okay. Die in Pocket Control eingetragenen Schaltpunkte finde ich aber ganz praktisch und würde sie gerne wieder nutzen.

1. Kann mir jemand sagen, wo ich die Pocket Control Schaltzeiten eigentlich auf der CCU wiederfinden kann? Ich finde nichts unter "Zentralen-Programme". Wie werden diese ausgeführt? Als Skripte?

2. Die Logik des RT in Verbindung mit der CCU1 verstehe ich bis heute immer noch nicht ganz, obwohl ich so ziemlich jeden thread hier im Forum dazu gelesen habe.
Hierbei meine ich vor allem die Priorität der Einstellungen.

Unterschied zwischen AUTO, MAN und CENT im RT sind eigentlich klar.
Ich dachte bisher, dass wenn ich auf der CCU unter "Einstellungen->Geräte->RT->einstellen" die Parameter des RT öffne und das Wochenprogramm dort ändere, dass ich damit nur das Wochenprogramm, dass auf dem RT ohnehin gespeichert ist, nur ändere (Konfigurationsdaten werden ja auf das RT übertragen, ich muss auf dem RT den Anlernvorgang starten).

Auf der CCU habe ich bei den Parametern des RT "Zeit u. Temperatur vorgeben" und dort ist ein Wochenprogramm aufgelistet. Im RT sehe ich ebenfalls ein Wochenprogramm und es steht auf AUTO. Habe jetzt festgestellt, dass sich das Wochenprogramm auf der CCU von dem Wochenprogramm des RT unterscheidet...

Welches Programm hat jetzt Priorität?
Falls ich zwei Wochenprogramme (eins auf der CCU unter den Paramtern und eins auf dem RT) habe und dann auf dem RT das Wochenprogramm ändere, werden dann die Konfigurationsdaten des RT auch an die Zentrale geschickt? Oder geht das nur in eine Richtung und die Zentrale kriegt von den Änderungen nichts mit?

3. Ich lese immer, dass CENT auf dem RT eingestellt werden soll, wenn die Temperatur über Zentralenprogramme gesteuert werden soll. Verstehe ich das richtig, dass unter "Zentralenprogramme" nur die Programme (und Skripte) zu verstehen sind, die in der CCU unter "Programmerstellung und Zentralenverknüpfung" erstellt worden sind und eben nicht das Wochenprogramm unter den Geräteparametern? Oder muss ich auch auf CENT stellen, wenn ich nur das CCU-Wochenprogramm bei den Geräte Paramtern nutzen möchte.

Gruß
Cäsar

Goglo
Beiträge: 610
Registriert: 14.04.2012, 18:34
Danksagung erhalten: 1 Mal

Re: Heizungs-Script mit Fenster-Auf Erkennung

Beitrag von Goglo » 26.10.2013, 15:19

Das ist ganz klassisches Thread-Jacking was Du hier betreibst ;-)
Das Wochenprogramm, was Du im webUI bei den Geräteeinstellungen erstellst, wird auf das Raumthermostat übertragen und steuert von da aus die Temperatur, so es sich im Modus Auto befindet. Wird die Temperatur am Regler oder per webUI oder sonst wie verstellt, wird beim nächsten Schaltzeitpunkt des Programms die Temperatur mit der Programmtemperatur überschrieben. Das passiert nicht im Modus Manu oder Cent.
83 Kanäle in 50 Geräten:
3x HM-LC-Sw1-Pl, 1x HM-WDS10-TH-O, 5x HM-PB-4-WM, 3x HM-PB-2-WM, 3x HM-LC-Dim1T-FM, 2x HM-Sec-SC, 4x HM-Sec-RHS, 5x HM-CC-VD, 4x HM-CC-TC, 5x HM-LC-Sw1-FM, 2x HM-Sec-MDIR, 1x HM-WDS30-T-O, 1x HM-LC-Sw1-Pl-2, 2x HM-PB-2-WM55, 1x HM-LC-Dim1L-CV, 1x HM-CCU-1, 1x HM-PBI-4-FM, 1x HM-LC-Dim1L-Pl-2, 1x HM-LC-Dim1T-CV, 1x HM-LC-Dim1L-Pl, 1x HM-LC-Sw2-FM, 1x HM-LC-Sw1-SM, 1x HM-Sec-WDS

82 Kanäle in 43 Geräten:
1x HM-PB-2-WM, 2x HM-LC-Bl1-FM, 3x HM-LC-Bl1PBU-FM, 3x HM-PB-2-WM55, 2x HM-PB-4-WM, 9x HM-CC-VD, 8x HM-CC-TC, 2x HM-LC-Sw2-FM, 1x HM-WDS10-TH-O, 1x HM-CCU-1, 1x HM-Sen-MDIR-O, 4x HM-LC-Sw1-FM, 2x HM-SwI-3-FM, 1x HM-LC-Sw4-SM, 1x HM-LC-Sw1-Pl-2, 1x HM-PBI-4-FM, 1x HM-WDS30-T-O

Benutzeravatar
Herbert_Testmann
Beiträge: 11062
Registriert: 17.01.2009, 11:30
Danksagung erhalten: 7 Mal

Re: Heizungs-Script mit Fenster-Auf Erkennung

Beitrag von Herbert_Testmann » 26.10.2013, 15:48

Hallo

so weit ich mich erinnere legt Pocket Control im WebUi Programme an, die als "system intern" gekennzeichnet sind. Du musst in der Ansicht der Programme den Haken "system interne Programme anzeigen" setzen, um alles zu sehen.
---
Dieses Schreiben wurde maschinell erstellt und ist ohne Unterschrift gültig

Faxe
Beiträge: 1
Registriert: 01.05.2018, 19:12

Re: Heizungs-Script mit Fenster-Auf Erkennung

Beitrag von Faxe » 01.05.2018, 19:36

Hallo, hat jemand in den letzten Jahren dieses Thema umgesetzt bekommen? bei mir zeigt sich keine Reaktion auf die beiden unveränderten !! Skripte.

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“