Calendar URL aus Subfunktion

Begonnen von Sailor, 06 September 2018, 13:51:03

Vorheriges Thema - Nächstes Thema

Sailor

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
******************************
Man wird immer besser...

Shojo

Moin,

was kommt denn für ein Fehler?
FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Beta-User

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
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files