Urlaubssteuerung

Begonnen von stefanm, 27 Februar 2016, 13:58:11

Vorheriges Thema - Nächstes Thema

stefanm

Da ich für meine Steuerung, insbesondere die Heizung eine Urlaubsschaltung haben wollte, in der ich das Datum und die Zeit der Rückkehr eingeben kann, habe ich mir folgendes Zusammengestellt.

Basis ist der datepicker von hier http://forum.fhem.de/index.php/topic,35736.0.html Danke an dieser stelle.

Die Heizung wird bis zum gewählten Datum auf eco geschaltet, danach wieder auf in den Automodus gesetzt.

Später soll darüber dann auch noch eine Anwesenheitssimulation gesteuert werden.

Das ganze wird über einen dummy Schalter "Urlaub" ein und aus geschaltet, sowie über den "Urlaub_ende" dummy, welcher den datetime picker enthält.


define Urlaub_ende dummy
attr Urlaub_ende room Urlaub
attr Urlaub_ende setList state:datetime,inline:true
attr Urlaub_ende webCmd state



define Urlaub dummy
attr Urlaub room Urlaub
attr Urlaub setList state:Nein,Ja
attr Urlaub webCmd state


Zwei notify's werten den Status aus


define not_urlaubszeit notify Urlaub_ende {Urlaubszeit  ((Value("Urlaub")), (Value("Urlaub_ende")))}



define not_urlaubsstate notify Urlaub {Urlaubszeit  ((Value("Urlaub")), (Value("Urlaub_ende")))}


und triggern eine Urlaubsroutine in 99_MyUtils :

Damit diese auch mit dem datetime richtig umgehen kann, muss  am Anfang der 99_MyUtils folgendes eingefügt werden :


use DateTime;
use DateTime::Format::Strptime;



sub
Urlaubszeit($$)
{
my ($urlaub,$udatum ) = @_;
my $dt       = DateTime->now();

my $format = DateTime::Format::Strptime->new(
   pattern   => '%d.%m.%Y %H:%M',
   time_zone => 'local',
   on_error  => 'croak',
);
my $udt = $format->parse_datetime("$udatum");
my $ldt = $udt->clone->add(minutes => 15);
  if (("$urlaub" eq "Ja") && ($udt>$dt)) {
             fhem("set str_Haus desiredTemperature eco");
fhem ("delete at_urlaub");
fhem ("define at_urlaub at $udt set str_Haus desiredTemperature auto");
fhem ("define del_urlaub at $ldt delete at_urlaub");
  }  
   else{
      fhem("set str_Haus desiredTemperature auto");
}
}



Vielleicht kann es jemand gebrauchen.

Stefan



HM-Lan       HM-CC-TC Raumthermostat HM-CC-RT-DN & HM-CC-VD Heizkörperventil Dimmer HM-LC-DIM1T-FM 3 Stück
und divrse FS20 Komponenten  FHZ1000  mit div Schalter und Wandtaster  Max Heizung, Fenster Alarmanlage