Hallo,
ich würde gerne über Presence meine Thermostate schalten, wenn ich nicht zu hause bin. Dafür habe ich mir in myUtils folgendes angelegt
sub
SetAbsent() {
{fhem ("set Presence absent")};
{fhem ("set CUL_HM_HM_CC_RT_DN_22C119_Clima controlManu 17.0")};
}
Das schaltet nun aber auch, wenn das Fenster noch offen ist. Nun brauche ich Hilfe beim erweitern des Codes
sub
SetAbsent() {
{fhem ("set Presence absent")};
do {
if (CUL_HM_HM_SEC_SC_2_24CAA6 eq "closed") {
{fhem ("set CUL_HM_HM_CC_RT_DN_22C119_Clima controlManu 17.0")};
}
} until (Presence ne "absent");
}
nun habe ich noch zwei Probleme:
1. weiß ich nicht wie ich in der PERL Abfrage FHEM Ereignisse abfrage
2. möchte ich eine Wartezeit vor Wiederholung der Schleife einbauen ohne FHEM dadurch für die Zeit unbrauchbar zu machen
Vielen Dank für eure Hilfe
Igami
Sie dir vielleicht mal Heating_Control an.
Es kann Fensterkontakte berücksichtigen. Wenn du mehrere Profile anlegst, musst du nur noch eine Funktion erstellen, die den Anwesenheitsstatus berücksichtigt.
Wenn niemand zu Hause ist oder jemand kommt, kannst du alle HC mit Heating_Control_SetAllTemps() gezielt aktualisieren.
Dazu musst du dann notify auf Instanzen von Presence einrichten.
Muss mich glaube mal mit dem Heating_Control mehr beschäftigen, steige da noch nicht ganz durch.
Habe mein Problem nun erst mal folgendermaßen gelöst
sub dAbsent {
{fhem ("set dPresence absent")};
&aAbsent; }
sub aAbsent {
{fhem ("define daWindow at +00:05:00 {aAbsent}")};
if (Value("dPresence") eq "absent") {
if (Value("dWindow") eq "closed") {
{fhem ("set dThermostat 17.0")};
{fhem ("delete daWindow")};
}
} else {
{fhem ("delete daWindow")};
}
}