[Modul] iCal Calender in IP Symcon lesen und verarbeiten

Hatte auch etwa vorgestern von 6 Kalendern drei mit rotem Ausrufezeichen dran. Nach einer Weile ging es wieder.

Aber ne anderer Frage:
Gibt es einen Weg dass man den String für den iCal Kalender übergeben kann?
Zweck:
Möchte es für den Benutzer möglich machen dass der String über das zB WebFront angepasst werden kann ohne das man es in der Konsole ändern „muss“.
Bei den PHP Befehlen des Moduls gibt es keine Option.

Cheers Seppm

Du kannst das Property „CalendarServerURL“ setzen

https://www.symcon.de/service/dokumentation/befehlsreferenz/instanzenverwaltung/konfiguration/ips-setproperty/

ah - SUPER - werde ich versuchen!
Dankeschön!
EDIT: Geht super - Perfekt!

@JPaeper , @seppm , @thezepter

Was habt ihr den bei euch für einen Aktualisierungsintervall für die Kalenderabfrage, bei euch im Modul hinterlegt?

Bei mir waren es 5 Minunten, ich habe dieses jetzt bei mir mal angehoben auf 1 Stunde und werde beobachten was passiert.

Ich könnte mir vorstellen, das bei zu vielen Anfragen im Kalender in kurzer Zeit irgendwas geblockt wird, das ist aber nur eine Vermutung.

Bei mir waren alle 6 Kalender auf 15 Minuten eingestellt.
Hab nun 3 auf eine Stunde und 3 auf 5 Minuten. Bisher keine Probleme mehr.
Mir war das nur 1x aufgefallen das 3 Kalender das rote ! hatten.
Die 5 Minuten hab ich bei mir weil ich da 3 Kalender habe an denen ich sehr oft was ändere und möchte dass ich die schnell auch so im Webfront bzw. IPS sehe.

Die Auswertung nach Inhalten nutze ich nur bei einem Kalender für den Müll, der ist zB auf 1h gestellt, aber das könnte ich sicher auch auf 24h stellen oder so da der Kalender praktisch statisch ist.

Cheers Seppm

Hatte ihn auf 15 min und das Problem auch erst einmal gehabt. Hab es jetzt mal auf 30 min. gesetzt. Reicht ja locker

Hallo

Mir ist das jetzt auch schon 2x aufgefallen nach inaktiv/aktiv wieder ok.

Wo stellt ihr da die Minuten ein?

Danke
Alex

Im Modul bei Experteneinstellungen

ja bin ich blind :sweat_smile:

Da hab ich 15min stehen einen Kalender und ist schon 2x passiert in den letzten 2 Wochen zur info.
Werde auch mal auf 30min erhöhen

…selbst wenn der Grund die häufigen Anfragen sind, wäre es doch schön wenn das Modul im nächsten Intervall es wieder versuchen würde.

Joachim

2 „Gefällt mir“

hatte es heute wieder mit einem Kalender dass er nicht geladen wurde. Der Stand auf 5 Min. Und hat etwa 5 Einträge je Tag, da dauert es auch etwa 50 Sekunden bis er das lädt, wenn ich auf „Kalender laden“ im Modul drücke.

Ggf. ist da der Zusammenhang, 5 Min ist ggf. zu kurz für Kalender mit vielen Einträgen?
Hab es jetzt mal auf 20 Min gestellt. Mal sehen.

cheers Seppm

Hi,

das Phänomen habe ich schon ziemlich lange.

Immer dann, wenn ich meine nextcloud Instanz aktualisiere und während dieser Zeit das Modul eine Abfrage startet die dann ins leere läuft.

Da hilft nur Instanz de/aktivieren und alles läuft wieder sauber.

viele grüsse

Das mit 20 Min hat bei besagtem „Kund…“ Kalender auch nicht geholfen. Heute sagte die Instanz wieder das die iCal Adresse nicht stimmt. Hab ohne sonstige Änderung auf 30 Min gestellt. Mal sehen.

Der Kalender braucht allerdings schon sehr lang zum Laden wenn ich auf „Kalender laden“ drücke, sind das 45 Sekunden bis er das Fenster mit den Einträgen bringt in der ProKonsole.
Ich synce 6 Tage rückwärts und 61 Tage voraus.

Cheers Seppm

EDIT: Bisher (6 Tage) ist das Problem nicht mehr aufgetreten.

hab ein neues Problem mit dem Modul.
Vielleicht hat da jemand eine Lösung.

Frisch ical Kalender installiert, Kalender eingetragen, Daten kommen, passt.
Dann die Meldevariablen angelegt, Kalender Update auf 15 Min wie Standard.

Problem: Die Meldevariablen werden nicht automatisch angepasst. Passiert auch nach 1h nix. sollte ja jede Minute passieren laut Doku.

Erst wenn ich im Modul „Kalender laden“ und dann „Auf Termine prüfen“ drücke, wird die eine Variable die gerade WAHR sein sollte auch aktualisiert.

Hab das Modul auch auf anderen Symboxen am Laufen. Finde keine Unterschiede.
Modul gelöscht und wieder installiert, alles neu. Gleicher Effekt. Er führt das einfach nicht aus.

Wenn ich den Befehl hier zyklisch ausführe, geht es.

ICCR_TriggerNotifications(12345);

Hat da jemand eine Idee warum das Modul das nicht selbst ansteuert?

Danke und cheers Seppm

EDIT:
Da es mich so nervte da ich mir mit dem neuen Kalender einiges verbogen habe in IPSview, hab ich auf der Symbox einen restore von vor 2 Tagen eingespielt. Auch da wurden die Meldevariablen schon nicht von selbst aktualisiert. Also gleiches Thema.
ÜBERRASCHUNG, nach dem Restore kann das Modul das wieder selbst jede Minute aktualisieren. Scheint mir es brauchte einen Neustart der Symbox oder so?

die ÜBERRASCHUNG ist wieder zu Ende.
Das hat er wohl nur einmal ausgeführt die Meldevariablen zu aktualisieren.

Nun hab ich doch den ICCR_TriggerNotifications(12345); einbauen müssen und lass den alle 1h mal ausführen.

Aber das ja nicht Sinn der Sache. Was kann da „kaputt“ sein dass das Modul auch nach Neuinstallation keine minütliche Aktualisierung der Meldeveriablen macht?

Cheers Seppm

Die minütliche Aktualisierung wird nur dann ausgeschaltet, wenn der Status der Instanz nicht „aktiv“ ist.

Was passiert, wenn du die Instanz erneut speicherst indem zu kurz etwas ver- und zurückänderst?

zu allen Zeitpunkten wo er das nicht alle Minute machte, war die Instanz aktiv. Jedenfalls wurde sie im Objektbaum und im Modul als Aktiv angezeigt. Es passierte nur kein Update der Variablen. Das Speichern nach Änderung hatte keinen Effekt, jedenfalls nicht dass er mir auffiel.

Mit der 6.1 (Zufall oder nicht) passiert es wider alle Minute.
Frag mich nicht was da los ist/wahr.

cheers Seppm

Ich hätte noch eine Idee zur Erweiterung des Moduls.

@bumaas
Was hälst du davon, noch eine extra Variable zu erzeugen in der automatisch das Datum des nächsten Termins angezeigt wird? Das wäre noch ne coole Sache um auch optisch zu sehen wann der nächste Termin ansteht.

Hallo Daste,

das kannst du bei Bedarf ganz leicht nach deinen persönlichen Vorstellungen einrichten.

Die Methode ICCR_GetCachedCalendar() liefert dir ja den Kalender. Damit könntest du in einem zyklischen Skript dir die gewünschten Informationen holen.

Beispiel:

$calendar_items = json_decode(ICCR_GetCachedCalendar(23543), true);

foreach ($calendar_items as $calendar_item){
    if ($calendar_item['From'] >= time()){
        print_r($calendar_item);
        break;
    }
}

Burkhard

Hab jetzt auch mal von 15 auf 30 Minuten gestellt. Hoffe das reicht. Hatte bis jetzt auch immer folgende Fehler:

22.12.2021, 06:41:27 | iCal Calendar Reader | Error on connect - this is not a valid calendar URL: https://p13-caldav.icloud.com/published/2/XXXXXXX, Result: 
23.12.2021, 04:57:56 | iCal Calendar Reader | Error on connect - this is not a valid calendar URL: https://p13-caldav.icloud.com/published/2/YYYYYYYY, Result: