at nur an bestimmten Monaten an einem bestimmten Tag

Begonnen von juemuc, 11 Februar 2025, 21:44:01

Vorheriges Thema - Nächstes Thema

juemuc

Hallo zusammen,

ich habe ein "at" definiert, welches nur in den Monaten 2, 5, 8, 11 am 19. ausgeführt werden soll. Hier die Definition:

defmod at_DS920_19_3monatlich_on at *18:45:00 {if ($month==2 || 5 || 8 || 11 && $mday ==19){fhem("set DS920_WOL on")}}
Leider wird der Befehl aktuell täglich ausgeführt. Wer kann helfen?

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

Otto123

#1
Hallo Jürgen,

das ist wünsch Dir was Code, weil 5 8 und 11 sind immer wahr ;) :
$month==2 || 5 || 8 || 11Du musst das nicht abkürzen sondern ausformulieren. So könnte es klappen (ungetestet nur logisch nachgedacht):
$month==2 || $month==5 || $month==8 || $month==11
Außerdem musst Du die "oder" klammern (siehe):
($month==2 || $month==5 || $month==8 || $month==11) && $mday==19 sonst würde erst das "und" aufgelöst und dann der Rest damit "verodert" :)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

juemuc

Hallo Otto,

danke. So funktioniert es.

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

betateilchen

Was spricht gegen:

defmod at_DS920_19_3monatlich_on at *18:45:00 { fhem("set DS920_WOL on") if ($mday == 19 && contains_numeric($month,(2,5,8,11))) }
Warum ich die Abfrage auf $mday nach vorne gestellt habe? Weil das eine Prüfung ist, die an n-1 Tagen eines Monats ohnehin "false" ergibt und dann die vorgegebenen Monate gar nicht mehr geprüft werden müssen.
 
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

juemuc

Super.

Das ist natürlich noch besser. Vielen Dank.

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).