FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: jostmario am 21 Februar 2020, 09:22:27

Titel: Notify teilweise nur zu bestimmter Zeit ausführen
Beitrag von: jostmario am 21 Februar 2020, 09:22:27
Hallo,

Möchte gerne das die Soundausgabe im Notify nicht zwischen morgends 05:25:00 bis 07:30:00 aqusgeführt wird da die kinder da alle zur schule gehen und ich zur arbeit und es da nervt.
Tagsüber sollte die Soundausgabe aber kommen.
Aktuell scheint die Soundausgabe gar nicht zu funktionieren.
Was mache ich falsch ?



Ausentuersensor_Haustuere:open.* { if (sunrise_abs(5000) gt sprintf("%02d:%02d", $hour, $min)) { fhem "set Flutlicht_Front on-for-timer 180;set BriefkastenLicht on-for-timer 180;set Flutlicht_Garten on-for-timer 50;define checkFlutlichtFrontSunrise at +*{3}00:03:20 set Flutlicht_Front statusRequest";
};;
{ if ( ($hms gt "07:30:00") && ($hms lt "05:25:00") )  {fhem "set myMPD volume 60"; fhem "set myMPD playfile haustuereWirdGeoeffnet.mp3" ;  fhem "set dimmerFlurlicht on-for-timer 180"; }};;
}




Danke Gruß Josty
Titel: Antw:Notify teilweise nur zu bestimmter Zeit ausführen
Beitrag von: Otto123 am 21 Februar 2020, 09:26:29
Hi,

ganz andere Ansatz:
attr disabledForIntervals ?
Edit: Aber ich sehe gerade das passt sicher nicht zum ersten Ausführungsteil. Da habe ich Deine Frage zu schnell gelesen  ::) ;)

Der Ausdruck ( ($hms gt "07:30:00") && ($hms lt "05:25:00") ) ist doch nie war? :o
Die erste Hälfte ist wahr zwischen 7:30 und 00:00
Die zweite Hälfte ist wahr zwischen 00:00 und 5:25
Mit einem OR würdest Du erreichen dass beides in der Zeit zwischen 5:25 und 7:30 unwahr ist.
( ($hms gt "07:30:00") or ($hms lt "05:25:00") )
Gruß Otto
Titel: Antw:Notify teilweise nur zu bestimmter Zeit ausführen
Beitrag von: rabehd am 21 Februar 2020, 09:34:51
Ich würde ein DOIF nehmen.
Titel: Antw:Notify teilweise nur zu bestimmter Zeit ausführen
Beitrag von: jostmario am 21 Februar 2020, 10:01:20
Hab es jetzt mal so umgebaut:

Ausentuersensor_Haustuere:open.* { if (sunrise_abs(5000) gt sprintf("%02d:%02d", $hour, $min)) { fhem "set Flutlicht_Front on-for-timer 180;set BriefkastenLicht on-for-timer 180;set Flutlicht_Garten on-for-timer 50;define checkFlutlichtFrontSunrise at +*{3}00:03:20 set Flutlicht_Front statusRequest";
};;

{ if ( ($hms gt "07:30:00") or ($hms lt "05:25:00") )  {fhem "set myMPD volume 60"; fhem "set myMPD playfile haustuereWirdGeoeffnet.mp3" ;  fhem "set dimmerFlurlicht on-for-timer 180"; }};;

}


werd berichten ob es geht.......
Titel: Antw:Notify teilweise nur zu bestimmter Zeit ausführen
Beitrag von: Otto123 am 21 Februar 2020, 10:19:19
Wenn das funktioniert hat, kannst Du die DEF noch etwas von unnötigem befreien. Habe da mal was vorbereitet:
{
  if (sunrise_abs(5000) gt sprintf("%02d:%02d", $hour, $min)) { fhem "
     set Flutlicht_Front on-for-timer 180;
     set BriefkastenLicht on-for-timer 180;
     set Flutlicht_Garten on-for-timer 50;
     define checkFlutlichtFrontSunrise at +*{3}00:03:20 set Flutlicht_Front statusRequest
     "}
  if ($hms gt "07:30:00" or $hms lt "05:25:00")  {fhem "
     set myMPD volume 60;
     set myMPD playfile haustuereWirdGeoeffnet.mp3;
     set dimmerFlurlicht on-for-timer 180
     "}
}

Die Strukturierung ist natürlich Geschmacksache, aber einige Klammern, ";" und die vielen fhem "" Aufrufe sind unnötig. Zumal der erste Teil ja auch ohne extra fhem ""  aufgebaut ist.

Gruß Otto
Titel: Antw:Notify teilweise nur zu bestimmter Zeit ausführen
Beitrag von: Wernieman am 21 Februar 2020, 10:32:57
Das würde ich nur etwas besser Strukturieren, so das man die "Blöcke" besser erkennt:
{
  if (sunrise_abs(5000) gt sprintf("%02d:%02d", $hour, $min))
     { fhem "
         set Flutlicht_Front on-for-timer 180;
         set BriefkastenLicht on-for-timer 180;
        set Flutlicht_Garten on-for-timer 50;
        define checkFlutlichtFrontSunrise at +*{3}00:03:20 set Flutlicht_Front statusRequest
     "}
  if ($hms gt "07:30:00" or $hms lt "05:25:00") 
    {fhem "
         set myMPD volume 60;
         set myMPD playfile haustuereWirdGeoeffnet.mp3;
         set dimmerFlurlicht on-for-timer 180
     "}
}