Guten Abend Boris,
ich bin gerade dabei im Calendar-Modul die Plug-Ins zu nutzen. Super Sache ... vielen Dank dafür :)
Wäre es möglich die $e-Referenz um den Namen des Calendar-Moduls, also $e->{name}, zu erweitern ?
Hintergrund: Ich habe mir eine Sub in 99_myUtils geschrieben, die ich im Calendar-Modul in Attr onCreateEvent hinterlege.
onCreateEvent {main::appointToHoliday($e)}
Über diese Routine filtere ich nach dem Calendar-Reload z.B. alle Urlaubstermine heraus um sie dann automatisch im richtigen Format in eine holiday-Datei einzufügen. Dazu benötige ich eine Information wenn das Calendar-Modul die Datenverarbeitung abgeschlossen hat und keine weiteren (Urlaubs)-Daten mehr geliefert werden. Dazu benutze ich die Auswertung des state-Readings.
Bei Verwendung nur eines Calendar-Devices kann ich einfach über ein
$hash = $defs{$name};
auf den Calendar-Hash und damit auf state zugreifen. Nur wenn ich meine Routine von verschiedenen Calendars aus aufrufe, wäre es hilfreich über
$e->{name} den Namen des aufrufenden Calendars übermttelt zu bekommen und damit auf den jeweiligen Calendar-Hash (state) zugreifen zu können bzw. über $e->{done} ein Endesignal zu bekommen.
Vielleicht könntest du eine solche Erweiterung, oder ähnliche, mit vorsehen.
LG
Heiko
Hallo Heiko,
der Kode zu onCreateEvent sitzt im Package ICal::Entry. Dort habe ich weder den Namen des ICalendar noch des FHEM-Calendar-Geräts. Es wäre eine ziehmlich aufwendige Änderung, diesen Namen bis in die allertiefsten Tiefen des Kodes durchzureichen.
Da Du onCreateEvent als Attribut am Calendar hast, könntest Du doch den Namen direkt mitgeben:
onCreateEvent {main::appointToHoliday("Urlaubskalender", $e)}
Viele Grüße
Boris
Hallo Boris,
also Schande über mich ;) ... ich war so sehr auf die Verwendung des $e Hash fixiert, dass ich den Wald vor lauter Bäumen nicht sah.
Danke für den Tipp und das sehr schöne Kalendermodul !
LG,
Heiko