FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Kalendermodule => Thema gestartet von: Sailor am 06 September 2018, 13:51:03

Titel: Calendar URL aus Subfunktion
Beitrag von: Sailor am 06 September 2018, 13:51:03
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
Titel: Antw:Calendar URL aus Subfunktion
Beitrag von: Shojo am 06 September 2018, 13:54:51
Moin,

was kommt denn für ein Fehler?
Titel: Antw:Calendar URL aus Subfunktion
Beitrag von: betateilchen am 06 September 2018, 14:06:56
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.
Titel: Antw:Calendar URL aus Subfunktion
Beitrag von: Beta-User am 06 September 2018, 14:09:58
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