ical URL mit Variable

Begonnen von mfeske, 22 April 2025, 17:19:49

Vorheriges Thema - Nächstes Thema

mfeske

Hallo zusammen,

ich habe mich an dem Beispiel aus dem Wiki versucht. Dazu eine praktische Frage. Wäre es nicht möglich die Jahreszahl in der URL durch die aktuelle Jahreszahl als Variable zu ersetzen ? das würde ja das jährliche ändern der URL ersetzen.

Ich habe folgendes probiert:
define BE_Ferien_schulferien_online Calendar ical url https://www.schulferien-online.de/wp-content/uploads/2025/01/schulferien-berlin-25.ics
setuuid BE_Ferien_schulferien_online 6807acce-f33f-be1a-2915-774515acd185e193
define BE_Ferien_ferienwiki Calendar ical url https://www.ferienwiki.de/exports/ferien/2025/de/berlin
setuuid BE_Ferien_ferienwiki 6807add2-f33f-be1a-d8ae-ca539606ec939034
define Ferientag_ferienwiki dummy
setuuid Ferientag_ferienwiki 6807af32-f33f-be1a-f1ac-4583a43301b239fd
define n_Ferien_ferienwiki notify BE_Ferien_ferienwiki:changed:.*start|BE_Ferien_ferienwiki:changed:.*end {\
   my $stat=($EVTPART2 eq "start")?1:0;;\
   fhem("set Ferientag_ferienwiki $stat") if defined fhem('get '.$NAME.' events filter:uid=="'.\
         $EVTPART1.'",field(summary)=~"(?i)ferien" limit:count=1',1)\
}
setuuid n_Ferien_ferienwiki 6807af33-f33f-be1a-07f5-0238c8c47c07e1a4
define Ferientag_schulferien_online dummy
setuuid Ferientag_schulferien_online 6807af66-f33f-be1a-a193-3043c69651192643
define n_Ferien_schulferien_online notify BE_Ferien_schulferien_online:changed:.*start|BE_Ferien_schulferien_online:changed:.*end {\
   my $stat=($EVTPART2 eq "start")?1:0;;\
   fhem("set Ferientag_schulferien_online $stat") if defined fhem('get '.$NAME.' events filter:uid=="'.\
         $EVTPART1.'",field(summary)=~"(?i)ferien" limit:count=1',1)\
}
setuuid n_Ferien_schulferien_online 6807af66-f33f-be1a-1a75-daa964941adabd38

Für die Calendar erhalte ich ein triggered und für die notify active, aber die dummys bleiben bei ???

Gruß
Micha
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)

Otto123

Hi,

du musst immer zuerst in die commandref gucken:  ;)  https://fhem.de/commandref_DE.html#Calendar
ZitatDie <URL> kann %-wildcards der POSIX strftime-Funktion des darunterliegenden OS enthalten (siehe auch strftime Beschreibung). Allgemein gebräuchliche Wildcards sind:
%d Tag des Monats (01..31)
%m Monat (01..12)
%Y Jahr (1970...)
%w Wochentag (0..6); beginnend mit Sonntag (0)
%j Tag des Jahres (001..366)
%U Wochennummer des Jahres, wobei Wochenbeginn = Sonntag (00..53)
%W Wochennummer des Jahres, wobei Wochenbeginn = Montag (00..53)

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

betateilchen

#2
Die commandref zu einem Modul gelesen zu haben (und nicht nur das Wiki oder andere Drittquellen), bevor man hier im Forum einen Thread aufmacht, ist doch wohl nicht zuviel verlangt...  ::)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

mfeske

Hallo zusammen,

danke für Eure Hinweise. Ja @betateilchen Du hast Recht ich habe die commandref vernachlässigt. Sorry, tatsächlich suche ich in der Regel im Wiki und im Forum nach den Lösungen.

Ich habe es jetzt mit dem %Y umgesetzt und ein get Ferien_BE_wiki events zeigt mir auch entsprechende Termine an, das scheint also korrekt zu funktionieren. Für Ferien_BE_wiki erhalte ich auch ein triggered und für n_Ferien_BE_wiki ein active, aber für Ferientag_BE_wiki bleibt es bei ??? ich habe also nichts auswertbares ob es sich um einen Ferientag handelt oder nicht; es liegt doch nicht daran, das jetzt gerade Ferien sind ?!

Gruß
Micha

define Ferien_BE_wiki Calendar ical url https://www.ferienwiki.de/exports/ferien/%Y/de/berlin 86400
attr Ferien_BE_wiki room Kalender
define Ferientag_BE_wiki dummy
attr Ferientag_BE_wiki room Kalender
define n_Ferien_BE_wiki notify Ferien_BE_wiki:changed:.*start|Ferien_BE_wiki:changed:.*end {\
   my $stat=($EVTPART2 eq "start")?1:0;;\
   fhem("set Ferientag_BE_wiki $stat") if defined fhem('get '.$NAME.' events filter:uid=="'.\
         $EVTPART1.'",field(summary)=~"(?i)ferien" limit:count=1',1)\
}
attr n_Ferien_BE_wiki room Kalender
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)

betateilchen

#4
Dein notify triggert auf einen Event am Anfang (start) oder Ende (end) eines Kalendereintrags.

Während eines bereits begonnen Ereignisses wird kein event ausgelöst, also kann das notify nicht aufgerufen werden.

Works as designed.



Und auch wenn das Wiki irgendwas anderes behauptet (warum auch immer...), braucht man das dummy-device prinzipiell überhaupt nicht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!