Zum Ende der Metadaten springen
Zum Anfang der Metadaten
Autor
Logo

Status

STABLE

Version1.0.0
Kompatibilität

LB 0.2.3LB 1.0

Download

https://github.com/svethi/LoxBerry-CalDAV4Lox/archive/caldav4lox-0.9.7.zip (letzte Version für LB 0.2.3)

https://github.com/svethi/LoxBerry-CalDAV4Lox/archive/caldav4lox-1.0.0.zip (aktuelles Release)

ZweckDas CalDAV Plugin bietet die Möglichkeit, Kalendereinträge in CalDAV oder Google Kalendern für Funktionen aller Art im Loxone MiniServer zu verwenden.
 Version History...

Version: 0.9.1

  • kleine Fehlerbehebungen in den dargestellten Befehlserkennungen

Version: 0.9.2

  • weitere Fehlerkorrekturen in den dargestellten Hilfsangaben
  • in der Befehlserkennung zu verwendende Zeichenfolgen werden jetzt farblich hinterlegt
  • Anpassungen an spezielle Kalenderausgaben
  • es wird nur noch die URL überprüft, da bei bestimmten Googlekalenderlinks kein Username/Passwort benötigt wird

Version: 0.9.3

  • Fehlerbehebung in der Googlekalenderverarbeitung

Version: 0.9.4

  • komplette Überarbeitung und Austausch der RRULE-Engine für wiederkehrende Termine
  • Support für RDATE (verschobene oder zusätzliche Termine in Serienterminen)
  • Fehlermeldungen während des Verbindungsaufbaus werden nun angezeigt

Version: 0.9.5

  • Bugfixing

Version: 0.9.6

  • Bugfixing

Version: 0.9.7

  • Performance Optimierung

Version: 1.0.0

  • Update für LoxBerry 1.x
  • Bugfixing für das Zeitzonenhandling
  • Nutzung des neuen Formvalidating → URL mit Portangabe werden akzeptiert
  • Autoupdatefeature hinzugefügt
  • LoxBerry Logfeature hinzugefügt
  • diese Version ist nicht auf einem LB 0.2.3 lauffähig

Inhalt


Konfigurationsoptionen

 

  • Depth: Als einzige Einstellung lässt sich das Plugin mit dieser Option an den verwendeten CalDAV-Server anpassen. Einige Server erwarten für die Abfrage eine Abfragetiefe von 0, andere eine 1. Da neuere Server meistens Depth 1 verwenden ist dies als Standard hier eingestellt. Sollte trotz korrekter URL zum Kalender kein Termin gefunden werden, kann die Einstellung 0 hier zum Erfolg führen.

Einrichtungshilfe

Mit der Einrichtungshilfe steht optional ein Tool zur Verfügung, mit dem man sich die URL für den virtuellen HTTP-Eingang zusammenbasteln lassen kann. Wer Schwierigkeiten damit hat sich die URL aus den einzelnen Komponenten zusammenzusetzen, gibt hier einfach die entsprechenden Daten ein und klickt auf "Angaben testen". Es erscheint daraufhin die benötigte URL. Des Weiteren wird der erzeugte Link auch gleich getestet und die Rückgabe unformatiert ausgegeben. Hier können Teile heraus kopiert und in der Befehlserkennung verwendet werden. Noch weiter unten werden einige gängige Befehlserkennungen zum direkten Verwenden für die angegebenen Suchbegriffe aufgelistet. Die in der Befehlserkennung erforderlichen Zeichenfolgen sind farblich hinterlegt.

Die Bedeutung der einzelnen Parameter wird im Bereich "Funktion des Plugin" beschrieben

Download

Funktion des Plugin

Das Plugin ist aus den bereits verfügbaren Scripts für die CalDAV Anbindung aus dem Loxforum entstanden. Erwähnt sei hier auch noch einmal Christian Fenzl, der die Kalenderabfrage windowstauglich gemacht hat sowie das Caching des Google Kalenders beigesteuert hat.

Wie funktioniert nun das Ganze?

Das Plugin so konzipiert, dass im Plugin selbst keine Einstellungen vorgenommen werden müssen. Alle Daten, die zum Abfragen des Kalenders benötigt werden, werden in der URL des HTTP-Einganges als Parameter angegeben. So ist es auch möglich verschiedene Kalender auf unterschiedlichen Servern abzufragen.

Solch eine URL sieht in etwas so aus: http://loxberry/plugins/caldav4lox/caldav.php?calURL=http%3A//localhost/remote.php/caldav/calendars/USER/defaultcalendar&user=USER&pass=PASSWORT&fwdays=5&events=abfuhr

Die einzelnen Angaben bedeuten folgendes:

  • http://loxberry/plugins/caldav4lox/caldav.php? - ist die Adresse des Plugin auf dem LoxBerry. Dieser ist unter Umständen anzupassen.
  • calURL - ist die URL des entsprechenden Kalenders so wie sie z.B. im Thunderbird/Lightning anzugeben ist. Bei den meisten Kalendern kann man diese URL in den Eigenschaften des Kalenders in Erfahrung bringen. Bei OwnCloud z.B. ist neben dem Kalendernamen auch ein Linksymbol mit dem Hilfetext "CalDAV-Link". Klickt man dieses Symbol an, erscheint unter den Kalendern ein Textfeld mit dem benötigten Link. Es ist aber darauf zu achten, dass hier der Doppelpunkt hinter http(s) in %3A geändert werden muss.
  • user - Euer Benutzername für den Kalender
  • pass - Euer Passwort für den Kalender
  • fwdays - da man keine Möglichkeit hat eine flexible Zeitspanne in die URL einzufügen, habe ich diese Variante gewählt. hier wird die Anzahl der Tage angegeben, für die im Voraus im Kalender nachgesehen werden soll. Vom aktuellen Datum der Anfrage an. Null für nur den aktuellen Tag. Wird der Parameter nicht angegeben, wird 0 angenommen.
  • delay (im Beispiel nicht benutzt) - ist die Anzahl der Minuten, die vor und nach der aktuellen Zeit nachgesehen wird. Wird der Parameter nicht angegeben, wird 60 bentzt. (Beispiel: ein Termin 14:30 - 15:00 Uhr im Kalender, wird zwischen 13:30Uhr und 16:00Uhr angezeigt wenn delay nicht angegeben wurde.
  • events - eine Liste der Terminnamen im Kalender, nach denen gesucht werden soll mit Pipe/senkrechter Strich getrennt (ich habe keine Leerzeichen/Sonderzeichen getestet, doch ich denke mal, man sollte darauf verzichten). Es wird auch nicht Wortteilen gesucht. Ein Termin "Muellabfuhr" wird also auch durch Angabe von "llabf" gefunden.
  • cache (im Beispiel nicht benutzt) - ist die Anzahl der Minuten, die eine Google Kalenderabfrage auf dem LoxBerry zwischengespeichert und benutzt wird bis der Google Kalender erneut "befragt" wird.

Hier noch ein paar Infos für die Google Jünger.
So wie ich recherchiert habe, ist eine richtige CalDAV Abfrage gegen den Google Kalender nicht so einfach. Daher habe ich 1 andere Möglichkeit ausfindig gemacht.
Diese ist die Privatadresse des Kalenders, die unter den Kalendereinstellungen zu finden ist. hier ist kein user und pass notwendig.

Als Rückgabe erhält der virtuelle HTTP-Eingang Daten wie folgende:

{
"Muellabfuhr": {
"Start": 194832000,
"End": 194918400,
"Description": "gelbe Tonne=1",
"fwDay": 1,
"wkDay": 5
}
"MSTest": {
"Start": 194802300,
"End": 194804100,
"Description": "",
"fwDay": 0,
"wkDay": 4
}
"now": 194801634
}

 

Das Ergebnis ist dann im JSON Format. Für jeden Suchbegriff gibt es ein Objekt. Gibt es zu dem Suchbegriff keine aktuellen Termin, so sind die Werte -1 und Description "". Die zurückgegebenen Zeitwerte sind Loxone Zeitwerte und können über <v.u> humanreadable angezeigt werden. Description sind die Notizen zum Termin ... hier kann man weitere Infos eingeben. Hier unterscheide ich z.B. welche Tonne abgeholt wird. fwDay ist der Tag in der Zukunft, an dem der Termin stattfindet. Rufst Du Montags ab und hast fwdays=5 angegeben und der Termin, der gefunden wurde ist am Mittwoch, so ist der Wert 2. wkDay ist der Wochentag des Termins 1=Mo - 7=So. Im vorigen Beispiel wäre das also 3. now ist die aktuelle Zeit zur Antwortzeit. Diese kann für Vergleiche/Berechnungen im Programm verwendet werden.

Einrichtung in der Loxone Configsoftware

Das Plugin wurde für die Verwendung mit dem virtuellen HTTP-Eingang entwickelt. Detailierte Informationen hierzu gibt es in der Loxone Dokumentation.

Fehler melden

Fehlerberichte bitte direkt im Loxforum melden.

9 Kommentare

  1. Hallo,

     

    ich bekomme es leider nicht hin, die Termin aus einem Kalender anzuzeigen.

    Ich habe Googlekalender und iCloud-Kalender getestet.

    Kann mir jemand ein Beispiel zur Konfiguration geben?

     

    Danke im Voraus

    Lars

  2. Danke, hat geklappt

  3. Hallo zusammen.

    Hat es schon jemand hinbekommen eine Apple Kalender einzubinden?

     

    Gruß Lars

  4. Hallo,


    muss ich meinen google Kalender öffentlich freigeben? Dann wäre ja alles für jeden sichtbar richtig?


    Gruß Marco

  5. Hallo zusammen, habe das nun endlich mit dem Apple Kalender geschafft....allerdings habe ich folgendes Problem, vielleicht hat jemand eine Lösung bzw wie macht Ihr das?

    Wenn ich in meinem Kalendereintrag das Wort "putztag=1" in zb. das Notizfeld schreibe bekomme ich den virtuellen Wert in der Konfig von "1".

    Soweit so gut...aber: wie bekomme ich den Wert 1 wieder weg? So wie ich das sehe fragt der virtuelle Befehl im Miniserver über den Loxberry die Kalenderdatenbank von meinem Apple Account ab.

    Ist irgendwo der Wortlaut "putztag" vorhanden gibt er den Wert ab - aber nach Ablauf des Eintrages ist ja nichts, also kein Wert mehr vorhanden - d.H. der Wert: zB: 2 bleibt bis zur nächsten Änderung bestehen...

    Gruß Michi

    1. Hallo Michael,

      kannst du mir eventuell kurz erklären wie du die Caldav Url aus deinem iCloud calendar bekommen hast.

      ich hab schon mehrere Varianten versucht w.z.B. die von der "Community.openHAB.org". komme aber mit cUrl da auch nicht weiter. Wenn du auf einen anderen Weg zur Lösung gekommen bist, dann wäre es super wenn du es mir erläutern könntest, da ich meinen Schicht-Dienstplan nur für den iCal nutzen kann, dieser aber keine DAV url nutzt, und somit kann ich meinen Miniserver damit nicht füttern um entsprechende Betriebsmodi zu starten.

      Danke im Voraus und Gruß Stefan

      1. Hallo Stefan, ich habe das eigentlich nur wie in der Beschreibung gemacht - funktioniert eigentlich so!

  6. Hallo Michi, wie es oben schon steht, bitte im Forum melden.