FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Slanesh am 20 Juli 2014, 22:13:49

Titel: Watchdog und Prüfung mehrerer Bedingungen
Beitrag von: Slanesh am 20 Juli 2014, 22:13:49
Hallo zusammen,

ich möchte Nachts gerne meine PC Peripherie (2x NAS, Drucker, USB-Hubs, etc.) abschalten, damit die vielen bunten Lichter meiner Freundin nicht den Schlaf rauben. Hierzu habe ich mir folgendes Szenario für das Triggern der Abschaltung überlegt:
Bisher habe ich eine Überwachung des PCs per Presence LAN-Ping eingerichtet und die beiden NAS als Dummy Devices angelegt, die bereits per On/Off-eventMap per Script über Telnet heruntergefahren werden können.

Ich würde jetzt einen Watchdog auf die Presence des PC setzen und in der Zeit zwischen 0:00 und 7:00 Uhr die oben genannte Abschaltsequenz starten. Kann/muss ich die Prüfung der Uhrzeit im Watchdog realisieren, oder setze ich den Watchdog nur auf das Presence(absent) Event und prüfe die Uhrzeit in dem auszulösenden Notify?

Gruß Slanesh
Titel: Antw:Watchdog und Prüfung mehrerer Bedingungen
Beitrag von: justme1968 am 20 Juli 2014, 22:49:57
schau dir mal disabledForIntervals an.

gruss
  andre
Titel: Antw:Watchdog und Prüfung mehrerer Bedingungen
Beitrag von: Slanesh am 24 Juli 2014, 23:39:46
Hallo Andre,

vielen Dank für den Tipp. Ich habe es jetzt wie folgt gelöst:
define Desktop PRESENCE lan-ping 192.168.0.5 60
attr Desktop event-on-change-reading state
attr Desktop icon it_pc

define Schlafmodus watchdog Desktop:absent 00:10 Desktop:present set NAS off;; set NAS2 off;; set Peripherie on-for-timer 180;; set Beamer off;; setstate Schlafmodus defined
attr Schlafmodus disabledForIntervals 07:00-23:00
attr Schlafmodus icon scene_sleeping_alternat
attr Schlafmodus regexp1WontReactivate 1


Gruß Slanesh
Titel: Antw:Watchdog und Prüfung mehrerer Bedingungen
Beitrag von: Slanesh am 27 Juli 2014, 10:20:53
Da ich festgestellt habe, dass der Watchdog nicht aktiviert wird, wenn mein PC bereits vor dem definierten Zeitfenster ausgeschaltet wird habe ich noch eine kleine Ergänzung mittels at umgesetzt.

define SchlafmodusEinDurchUhrzeit at *23:15:00 {\
  my $pc=(Value("Desktop"));;\
  if ($pc eq "absent") {\
    fhem ("set NAS off;; set NAS2 off");;\
    fhem ("set Peripherie on-for-timer 180");;\
    fhem ("set Beamer off");;\
  }\
}


Um die Peripheriegeräte am nächsten Morgen wieder zu reaktivieren (wenn ich auch Zuhause bin => Structure Anwesenheit), habe ich mir noch folgendes einfallen lassen. Die NAS fahren automatisch hoch, sobald sie Strom bekommen, daher keine explizite Reaktivierung. Den Beamer schalte ich nur bei Bedarf an.

Unter der Woche:
define SchlafmodusAusWoche at *07:00:00 {\
  my $anw=(Value("Anwesenheit"));;\
  if ($we == 0) {\
    if ($anw eq "present") {\
      fhem ("set Peripherie on");;\
    }\
  }\
}


Am Wochenende:
define SchlafmodusAusWochenende at *08:30:00 {\
  my $anw=(Value("Anwesenheit"));;\
  if ($we == 1) {\
    if ($anw eq "present") {\
      fhem ("set Peripherie on");;\
    }\
  }\
}


Hoffe das hilft mal jemandem weitert.

Gruß Slanesh