Ein herzerfrischendes "MoinMoin vom hintern Deich" vorweg
Ich habe mal eine Frage:
Wenn ich einen Kalendar mit
ical url https://www.ferienwiki.de/exports/ferien/2018/de/niedersachsen.ics 86400
aufrufe, klappt alles ganz vorzüglich :)
Da ich aber keine Lust habe jedes Jahr die Jahreszahl zu ändern, habe ich mir eine Subfunktion GetHolidayCalURL() in der 99_myUtils.pm geschrieben.
sub GetHolidayCalURL() {
my ($Seconds, $Minutes, $Hours, $DayOfMonth, $Month, $Year, $WeekDay, $DayOfYear, $Summertime) = localtime(time);
$Year+=1900;
return "https://www.ferienwiki.de/exports/ferien/" . $Year . "/de/niedersachsen.ics";
}
Wenn ich diese in die Kommandozeile eigebe:
{GetHolidayCalURL()}
kommt auch ganz brav folgendes Ergebnis raus:
https://www.ferienwiki.de/exports/ferien/2018/de/niedersachsen.ics
Warum klappt also nicht der folgende Aufruf? :o
ical url {GetHolidayCalURL()} 86400
bzw.
ical url GetHolidayCalURL() 86400
Ich bin für Hinweise jeglicher Art dankbar.
Gruss
Sailor
Moin,
was kommt denn für ein Fehler?
Zitat von: Sailor am 06 September 2018, 13:51:03
Warum klappt also nicht der folgende Aufruf?
Weil im define keine perl Auswertung solcher Parameter stattfindet. Und es steht auch nirgends, dass das geht.
Noch ein Zwischenruf:
Das mit dem regelmäßigen Abruf von Kalendern, die sich eigentlich nicht ändern, taucht immer mal wieder auf. Um die Geduld des Providers nicht überzustrapazieren, sollte man das unterlassen.
Für sich ändernde Kalender kann man das mit einem at iVm wget lösen - Kalender nur holen, wenn zwischenzeitlich geändert und dann mit file zugreifen; ginge natürlich auch jährlich oder man importiert eben gleich mehrere Ferienjahre in den Kalender:
define Kalender_holen at *23:50:00 {system ('wget -qN --user <maxmuster@wasauchimmer.fantasie> --password <wirdnichtverraten> http://<link zur .ics> -O /opt/fhem/meinkalender.ics &')}
Gruß, Beta-User