Heizung steuern über Anwesenheit / Ferien / WE

Begonnen von mfeske, 14 Februar 2015, 13:33:59

Vorheriges Thema - Nächstes Thema

mfeske

Hallo zusammen,

ich hoffe ich bin im richtigen Bereich des Forums gelandet :-) Ich würde die Heizung gerne so steuern, das diese in Abhängigkeit zur Anwesenheit und Ferien steht.
Als Vorarbeit habe ich schon in der 99_myUtils.pm verschiedende Heizungsprogramme zu mindest erstmal für einen Raum angelegt. Das mauelle Umschalten über {SetTempList_Janic_Heizung_off} etc. funktioniert auch schon.
Baue ich jetzt die Prüfung ob Ferien sind oder nicht schon dort ein? Ein Modul Calendar mit dem Namen SchulferienBerlin habe ich schon, allerdings steht dies jetzt auch ohne Ferien auf Active :-(.
Über PRESENCE Janic present / absent werte ich aus, ob Janic da ist oder nicht. Sendet man jetzt einen komplettes Wochenprogramm für present / absent und wo nehme ich die Unterscheidung zwischen Ferien und nicht Ferien vor?

Über Starthilfe zu dem Thema würde ich mich freuen.

#### Heizungssteuerung
package main;
use strict;
use warnings;
use POSIX;
sub
myUtils_Initialize($$)
{
my ($hash) = @_;
}
######## Temperatur setzen Janic ########
#Nach dem Speichern das Thermostat aktualisieren mit dem Kommandozeilenbefehl {SetTempList_Janic_Heizung_xxx}
sub
SetTempList_Janic_Heizung_normal()
{
{ fhem ("set Heizung_Janic weekProfile Mon 18,6:00,21,7:00,18,15:00,21.5,17:00,18,23:59,18")};
{ fhem ("set Heizung_Janic weekProfile Tue 18,6:00,21,7:00,18,15:00,21.5,17:00,18,23:59,18")};
{ fhem ("set Heizung_Janic weekProfile Wed 18,6:00,21,7:00,18,15:00,21.5,17:00,18,23:59,18")};
{ fhem ("set Heizung_Janic weekProfile Thu 18,6:00,21,7:00,18,15:00,21.5,17:00,18,23:59,18")};
{ fhem ("set Heizung_Janic weekProfile Fri 18,6:00,21,7:00,18,14:00,21.5,19:00,18,23:59,18")};
{ fhem ("set Heizung_Janic weekProfile Sat 18,6:00,21,7:00,20.5,14:00,20,19:00,18,23:59,18")};
{ fhem ("set Heizung_Janic weekProfile Sun 18,6:00,21,7:00,20.5,14:00,20,18:15,18,23:59,18")};
{ fhem ("set Heizung_Janic boostDuration 5")};
{ fhem ("set Heizung_Janic boostValveposition 99")};
}
sub
SetTempList_Janic_Heizung_off()
{
{ fhem ("set Heizung_Janic weekProfile Mon 18,6:00,18,7:00,18,15:00,18,17:00,18,23:59,18")};
{ fhem ("set Heizung_Janic weekProfile Tue 18,6:00,18,7:00,18,15:00,18,17:00,18,23:59,18")};
{ fhem ("set Heizung_Janic weekProfile Wed 18,6:00,18,7:00,18,15:00,18,17:00,18,23:59,18")};
{ fhem ("set Heizung_Janic weekProfile Thu 18,6:00,18,7:00,18,15:00,18,17:00,18,23:59,18")};
{ fhem ("set Heizung_Janic weekProfile Fri 18,6:00,18,7:00,18,14:00,18,19:00,18,23:59,18")};
{ fhem ("set Heizung_Janic weekProfile Sat 18,6:00,18,7:00,18,14:00,18,19:00,18,23:59,18")};
{ fhem ("set Heizung_Janic weekProfile Sun 18,6:00,18,7:00,18,14:00,18,18:15,18,23:59,18")};
{ fhem ("set Heizung_Janic boostDuration 5")};
{ fhem ("set Heizung_Janic boostValveposition 99")};
}
sub
SetTempList_Janic_Heizung_Ferien()
{
{ fhem ("set Heizung_Janic weekProfile Mon 18,6:00,20,8:00,20.5,15:00,20.5,17:00,18.5,19:00,18,23:59,18")};
{ fhem ("set Heizung_Janic weekProfile Tue 18,6:00,20,8:00,20.5,15:00,20.5,17:00,18.5,19:00,18,23:59,18")};
{ fhem ("set Heizung_Janic weekProfile Wed 18,6:00,20,8:00,20.5,15:00,20.5,17:00,18.5,19:00,18,23:59,18")};
{ fhem ("set Heizung_Janic weekProfile Thu 18,6:00,20,8:00,20.5,15:00,20.5,17:00,18.5,19:00,18,23:59,18")};
{ fhem ("set Heizung_Janic weekProfile Fri 18,6:00,20,8:00,20.5,14:00,20.5,17:00,18.5,19:00,18,23:59,18")};
{ fhem ("set Heizung_Janic weekProfile Sat 18,6:00,20,8:00,20.5,14:00,20.5,17:00,18.5,19:00,18,23:59,18")};
{ fhem ("set Heizung_Janic weekProfile Sun 18,6:00,20,8:00,20.5,14:00,20.5,17:00,18.5,19:00,18,23:59,18")};
{ fhem ("set Heizung_Janic boostDuration 5")};
{ fhem ("set Heizung_Janic boostValveposition 99")};
}

Dank dem Wiki habe ich schon herausgefunden wie ich für die Ferien eine 0 / 1 erhalte, wobei ein ja / nein natürlich schöner wäre.

# Kalender Beginn
define SchulferienBerlin Calendar ical url http://www.schulferien.org/iCal/Ferien/icals/Ferien_Berlin_2015.ics 46400
attr SchulferienBerlin room Kalender
define Ferientag_Berlin dummy
attr Ferientag_Berlin room Kalender
define SchulferienBerlin.notify notify SchulferienBerlin { \  fhem "set Ferientag_Berlin " . (ReadingsVal("SchulferienBerlin", "modeStart", "") =~ "schulferien" ? 1: 0) }
attr SchulferienBerlin.notify room Kalender
# Kalender Ende
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)