[Modul] iCal Calender in IP Symcon lesen und verarbeiten

Moin,

nach etwas Urlaub konnte ich mal wieder etwas mit IPS arbeiten und mich in das 4.x-SDK einlesen. Herausgekommen sind zwei Modul-Bibliotheken, die zweite ist diese hier:

iCal Calender in IP Symcon lesen und verarbeiten

Diese Bibliothek beinhaltet zwei Module zur Einbindung von Kalenderdateien/-feeds im iCal-Format in IP Symcon:

[ul]
[li]iCal Calendar Reader
[/li][li]iCal Calendar Notifier
[/li][/ul]

Funktionsumfang

Mit dem Modul iCal Calendar Reader werden Kalenderdaten eingelesen (getestet mit Google Calendar, ownCloud Calendar und Synology Calendar), das Modul iCal Calendar Notifier reagiert mit einstellbaren Vor- und Nachlaufzeiten mit einer Statusvariable auf Kalenderereignisse. Zum aktuellen Status kann ein Skript weitere Kalenderdaten des/der auslösende(n) Ereigniss(e) abfragen. Es sind beliebig viele iCal Calendar Notifier-Instanzen mit unterschiedlichen Einstellungen an eine iCal Calendar Reader-Instanz koppelbar.

Damit ist es z.B. sehr einfach möglich einen zentralen Anwesenheitskalender im Internet zu pflegen, IP Symcon steuert damit automatisch Heizung, Alarmanlage und Anwesenheitssimulation. Mit der Auswertung von zusätzlichen Informationen im Kalendereintrag durch ein Skript können z.B. bestimmte Transponder für den Zugang gesperrt bzw. freigeschaltet werden.

Auch die Visualisierung von Einträgen in öffentlichen Kalendern (z.B. Müllabfuhrtermine, Kinoprogramm, …) im Webfront können mit mehreren iCal Calendar Notifier-Instanzen ohne viel Skript-Programmierung gesteuert werden. Z.B. können Abfuhrtermine immer bereits 1 Tag vorher angezeigt werden, das Kinoprogramm zeigt prominent den Spielplan des aktuellen Tages, weiter unten folgt die restliche Woche.

Kalender werden beim Laden unter Berücksichtigung ihrer jeweiligen Zeitzone in die lokale Zeitzone umgerechnet, sich wiederholende Termine als mehrere Einzeltermine abgespeichert.

Voraussetzungen

[ul]
[li]IP-Symcon ab Version 4.x
[/li][li]Kalender im iCal-Format
[/li][/ul]

Software-Installation

Über das Modul-Control folgende URL hinzufügen.

git://github.com/skyslasher/iCal-Calendar

Alles weitere im dortigen readme.md.

Fragen, Kritik, Anregungen, Lob etc. bitte in diesen Thread :slight_smile:

Hallo Slash,

ich wollte heute dein Modul Testen. Bekomme leider keine Verbindung :frowning:
cal.PNG
Ich benutze den Kalender von Synology NAS.

Muss ich irgendwas beachten?
Würde mich über Hilfe freuen :o

Gruß

Hallo,

ich wollte auch gerade dein Modul testen, leider bekomme ich die gleiche Meldung wie Sewo.
Getestet mit nextcloud.

Hallo,

da ist mir beim Refactoring der Methodenaufruf im Konfigurationsformular entgangen. Ist korrigiert.

Ciao,
Andreas

Kalender im Webfront anzeigen

In diesem Beispiel wird gezeigt, wie Kalenderdaten aus mehrerern iCalCalendarReader-Instanzen in einer Calendar-Control im Webfront angezeigt werden können. Die Kalendereinträge haben für jeden Kalender eine unterschiedliche Farbe.

Grundlage für die Visualisierung ist die Calendar-Control Full Calendar

Download hier: iCal-Calendar/Examples at master · skyslasher/iCal-Calendar · GitHub

Alles weitere im dortigen readme.md.

Ciao,
Andreas

Hallo Andreas,

habe Update gemacht. Bekomme aber die selbe Fehlermeldung :frowning:

Welche Link muss ich nehmen?

https://IP:5001/caldav/User

oder WebDAV?

Gruß

Hi Sewo,

sicher, dass das Update durchgegangen ist? Ich habe in keiner Source-Datei mehr den Funktionsaufruf finden können.

Ciao,
Andreas

Hallo,

auf folgendes Link-Format ist bei den unterschiedlichen iCal-Servern zu achten:

OwnCloud:
http[s]://[server-name]/remote.php/dav/calendars/[user-name]/[calendar-name]?export
Zu finden in der Kalender-App, links in der Liste der Kalender auf „…“ klicken, dann auf „Link“. Den erscheinenden Link kopieren und das Suffix „?export“ anhängen.

Synology:
https://[server-name]/caldav/[user-name]/[calendar.name]–[suffix]
Zu finden in der Calendar-App, rechts in der Liste der Kalender das nach unten zeigende Dreieck neben dem Kalendernamen anklicken, „CalDAV-Konto“ auswählen, in dem PopUp die Adresse für Thunderbird kopieren.

Ciao,
Andreas

Hi,

habe das Modul gelöscht und neu Hinzugefügt. Leider keine Besserung. Immer die selbe Fehlermeldung.
Was mache ich Falsch?

IPS Läuft auf einem Raspi 3
Habe ein Test IPS auf Ubuntu mit dem selben Problem.

Gruß

gnarf habe den Fehler gefunden. Update ist raus.

Hallo Andreas,

Vielen Dank für die Hilfe! dein Modul ist Spitze :D:D:D Genau was ich schon bei IPS immer habe wollte.
Funktioniert 1a

Gruß

Hallo,

habe mal alles nach Anleitung installiert, und dann versucht von Google meinen Kalender zu lesen, ich sehe aber nirgends meine Termine. Gibt es eine Anleitung für Google, welche URL ? Und wo ich empfangende Daten sehen kann ?

Hallo UH368,

im Google Kalender rechts oben auf das Zahnrad klicken, dort „Einstellungen“ auswählen. Im folgenden Bildschirm den Tab „Kalender“ auswählen, dann in der Kalenderliste links auf den zu importierenden Kalendernamen klicken. Es folgt ein neuer Bildschirm „Kalenderdetails“, dort in der Zeile „Privatadresse“ mit der rechten Maustaste auf das „ICAL“-Icon klicken und den dahinter liegenden Link kopieren. Diese URL in die Modulkonfiguration eintragen, ohne Benutzername und Passwort.

Ciao,
Andreas

Danke jetzt geht es. Jetzt muß ich nur noch sehen wie ich das in IPS-View bekomme.

Vielen herzlichen Dank erstmal für das Modul ich werde das am Wochenende mal testen. Eine erste Anregung hätte ich gleich für zukünftige Versionen, ich fände es sehr praktisch wenn es nicht notwendig wäre eine Seite im Userverzeichnis abgelegt werden müste, sondern stattdessen die wenigen Anpassungen direkt im Konfigurationsformular des Moduls eingestellt werden können und die fertig konfigurierte Seite dann gleich vom Modul über einen Webhook in einer HTMLbox angeboten wird.

1 „Gefällt mir“

Eine selber Gestaltung der Seite sollte aber bleiben, es gibt ja soviel was man da machen könnt.

Man kann ja diese Dateien im Objektbaum von IPS unterbringen (als Script getarnte .CSS z.b.)
Fonzo spielt eher in die Richtung das der User-Ordner nicht mehr zeitgemäß ist.
Michael

So was wie das Theming kann man ja auch aus dem Modul einstellen, da wird ja auch sonst nur der Theme Name per Hand angepasst, das kann man ja auch gleich aus dem Konfigform übernehmen von dem Theme das der User dort eingestellt hat. Wenn man vollkommen individuelle eigene CSS verwenden will, ist es wie Nall-chan schon sagt aus meiner persönlichen Sicht immer noch einfacher dies im Objektbaum selber als Skript abzulegen, dann kann das nämlich auch direkt dort bearbeitet werden, anstatt jedes mal mit einem Editor im User Ordner herum editieren zu müssen. Ist ja aber wie gesagt nur ein Vorschlag.

Der Examples Ordner muss unter docs sonst meckert er bei mir das module.json fehlt.

Hallo,

Danke für das Feedback! Ich habe den Examples-Ordner ins docs-Verzeichnis verschoben, damit die Installation nicht meckert.

Ich habe den Ansatz über den user-Ordner gewählt, da ich den Kalender in einer HTML-Box nicht zum Laufen bekommen habe - es gab ständig jQuery-Fehler. Wenn jemand rausbekommt was ich da ändern muss, nur zu! Dann kann ich das ganze modularisieren und direkt im Objektbaum unterbringen.

Wie kann ich denn WebFront-Module selber schreiben? Das wäre ja für die Kalenderanzeige der beste Ansatz.

Ciao,
Andreas