[Modul] iCal Calender in IP Symcon lesen und verarbeiten

Mit Zertifikaten kenne ich mich leider nicht aus:(

Der curl Aufruf sieht bislang so aus:

        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); // yes, easy but lazy
        curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 2);
        curl_setopt($curl, CURLOPT_TIMEOUT, 10);
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($curl, CURLOPT_MAXREDIRS, 5); // educated guess
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        if ($username !== '') {
            curl_setopt($curl, CURLOPT_USERPWD, $username . ':' . $password);
        }
        $curl_result    = curl_exec($curl);

Kann da jemand etwas zu sagen, ob da noch etwas fehlt?

Gruß

Burkhard

Ich habe eine neue Version 2.00 (build 24) im Store abgestellt:

korrgiert:

  • Events mit einem nicht interpretierbaren Startdatum werden ignoriert
  • Regeltermine mit einem Endedatum wurden nicht verarbeitet
  • Fehler beim Einlesen von Zeitzonen

Gruß

Burkhard

Das Problem ist, dass IP-Symcon das Zertifikat nicht kennt. Wenn du folgendes machst, hebelst du die ganze Prüfung aus:


        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

Besser ist, wenn HarmonyFan die cacert.pem Datei von IP-Symcon patched und dort sein eigenes Zertifikat hinzufügt.

paresy

@bumaas:

Ein 2 wöchentlicher Termin der auf „Ende nach Endedatum“ eingestellt wird, funktioniert NICHT

Habe eben getestet: Ist mit der heutigen 2.0 build 24 behoben.
Klasse, bedanke mich für die mehr als prompte Bedienung :slight_smile:

Eine Kleinigkeit habe ich eben noch gefunden:
Wenn ich im Objektbaum den Namen einer Meldevariablen verändere und dann in der Instanzkonfiguration nachschaue steht dort noch der vorherige Name:eek:
Ändern kann ich ihn dort auch nicht mehr…

LG
lueralba

Hallo.

Ich wollte das Modul aus dem Modul-Store installieren, aber nachdem ich meine Google Kalender Daten eingegeben habe kann ich die Daten nicht abrufen.
Soviele Termine habe ich doch gar nicht, dass es eine OutOfMemory Exception geben müsste :D.

Gruß
Thorsten

Hallo Thorsten,

was hast du als „Cache Größe Vergangenheit“ und „Cache Größe Zukunft“ eingestellt? Kommt die Meldung auch, wenn du die Größen verringerst?

Gruß

Burkhard

Hi paresy,

das mit FALSE hatte ich erfolglos versucht. Wo finde ich im Docker-IPS cacert.pem?

Ralf

Ja, ich hatte testweise 2 Tage vor und 2 Tage zurück eingestellt.

Gruß
Thorsten

Seltsam. Könntest du mir die Debugzeile mit curl_result… einmal per Mail zukommmen lassen?
Das möchte ich mir gerne einmal ansehen.

Gruß Burkhard

Gibt es das Modul schon im Store? Ich konnte es eben auf die schnelle nicht finden…

Hallo,
steht unter Komfort.

Prima, danke. ich musste erst wieder die Browser Sprache auf Deutsch setzen. In Englisch ist das Modul nicht angezeigt.

@bumaas:

Es funktioniert, ich bekomme aber bei jedem „Kalender laden“ folgenden Fehler angezeigt:

06.07.2019, 22:28:55 | TimerPool | iCal Calendar Reader IPS Meldungen (UpdateCalendar): <br />
<b>Warning</b>: Invalid argument supplied for foreach() in <b>/var/lib/symcon/modules/.store/de.bumaas.ical/iCalCalendarReader/iCalImporter.php</b> on line <b>351</b><br />
<br />
<b>Warning</b>: Invalid argument supplied for foreach() in <b>/var/lib/symcon/modules/.store/de.bumaas.ical/iCalCalendarReader/iCalImporter.php</b> on line <b>351</b><br />

:confused:

Gruss
lueralba

Probiere bitte mal die Beta Version. Da sollte die Warnung weg sein.

Beta:

Fehlermeldung ist weg.
Aber es werden auch keine Einträge mehr gefunden!

lueralba

Kannst du mir von der Testfunktion ‚Kalender laden‘ einmal die Debug Ausgaben zukommen lassen? Ich kann es noch nicht nachvollziehen.

Gruß

Burkhard

Das Modul ist spitze! Ich verwende es mit meiner Synology NAS. Vielen Dank für das tolle Modul!
Eine Frage zur RegEx hätte ich, da ich da kein Spezialist bin.

Ich möchte gerne eine Abwesenheitskalender darüber steuern mit 2 Variablen. Anwesend und Abwesend.
Anwesend heißt, ich verbringe meinen Urlaub daheim und daher soll einiges anders funktioneren als in der Arbeitswoche.
Hierfür trage ich dann „Anwesend“ in den Kalender ein.
Für Abwesenheit trage ich z.B. ein „Dienstreise XY“, „Urlaub XY“ oder ähnliches.
Gibt es eine Möglichkeit mit RegEx die Termine rauszufischen, die nicht „Anwesend/anwesend“ lauten?

Hallo bumaas,

habe das Modul auf Beta umgestellt. Jetzt bekomme ich meine Daten.
Bei Aktualisierung sind die Termine zwar da, bekomme aber eine Fehlermeldung.

07.07.2019, 11:01:59 | iCal Calendar Reader | Event '': DTSTART can't be processed, ignoring

Gruß

Mit RegEx ist (fast) alles möglich. Ich bin aber leider auch kein RegEx Profi. Vielleicht stellst du deine Frage einmal im Bereich „Skripte, PHP, SQL“. Da kann dir bestimmt jemand helfen.

Leider komme ich an die Daten noch nicht ran, wenn im Termin eine Zeitzone eingetragen ist, die von PHP als nicht gültig erkannt wird. Bin aber an dem Thema noch dran. Die angemeckerten Termine haben bei dir scheinbar keine Bezeichnung, daher die leere Zeichenkette (’’).