NEWS
Test Adapter Calendar v1.2.x
-
@exv2 habe ich mir fast schon gedacht. Ich werde mal schauen wie und ob ich das implementiere.
-
@J-A-R-V-I-S Wäre super von dir.
Hier mal eine Seite die .ics Links für Ferien und Feiertage nach Bundesländer zur verfügung stellt. Habe es getestet und geht.
https://www.schulferien.org/deutschland/ical/ -
@J-A-R-V-I-S Genau, habe jede einzelne URL angegeben, ging aber nichts.
-
@J-A-R-V-I-S sagte in Test Adapter Calendar v1.1.x:
das sind aber vermutlich auch verschiedene Kalender, die du alle hättest alleine einfügen müssen, mit ihrer jeweiligen URL
Ja. Für jeden Kalender eines Google-Accounts benötigst Du eine eigene ics-Datei und somit einen eigenen Eintrag im iCal-Adapter. Das ist halt eines der "schönen" Aspekte der Google API, dass dort die gesamte "Kalender-Gemeinde" eines Google Accounts gemeinsam ansprechbar ist.
Alle bei mir im iCal-Adapter konfigurierten Kalender waren für mich "ansprechbar". Wegen anderer funktionaler Schwächen habe ich mich jedoch wieder von ihm verabschiedet.
-
Hallo Kalender-Freunde,
ich habe mittlerweile meine Entwicklungsaktivitäten auf Basis des Calendar-Adapters erfolgreich abgeschlossen. Folgende meiner ioBroker-Projekte nutzen nun den Calendar-Adapter:
- Einschalten der Musikanlage und der Beleuchtung im Schlafzimmer als Wecker
- geplantes Starten und evtl. Stoppen des Saugroboters
- geplantes Starten und evtl. Stoppen des Mähroboters
- Erinnerung an Müllabfuhrtermine inkl. Angabe der Müllart
- Ankündigung von Geburtstagen, Namenstagen, Hochzeitstagen
- Hinweise auf anstehende Konzertbesuche
Serientermine spielen hier eine zentrale Rolle. Die vom Calendar-Adapter zur Verfügung gestellten Termin-Datenpunkte werden nach bestimmten Stichworten durchsucht ("Wecker", "Mähen", "gelbe Tonne", ...) und als Anlass genommen, Aktionen über weitere Adapter anzustoßen. Zum Einsatz kommen hier u.a.:
- SqueezeboxRPC
- Shelly
- iRobot Roomba
- Worx Landroid Cloud
- Telegram
Die Realisation erfolgte in Javascripts.
Obwohl ich schon recht früh zu Beginn meiner "ioBroker-Karriere" die o.g. Projekte ins Auge gefasst hatte, schob sich die Umsetzung doch etwas raus. Die Krux bestand darin, einen geeigneten Kalender-Adapter zu finden. Meine ersten Gehversuche machte ich mit dem iCal-Adapter. Die Filterung nach Stichworten erfolgt bereits im Adapter selbst. Dabei habe ich natülich nicht die "feinen" Filtermöglichkeiten wie in eigenen Javascripts. Der gelieferte Informationsumfang ist gering: Von den selektierten Terminen erfahre ich nur, dass sie an einem vorgegebenen Tag stattfinden. Details wie Start-/Endezeiten sowie das vollständige Thema des Termins werden mir vorenthalten. Als ich dann noch feststellen musste, dass Serientermine oftmals fehlerhaft dargestellt wurden, war der Zeitpunkt gekommen, den iCal Adapter zu deinstallieren.
Zum damaligen Zeitpunkt war meines Wissens nach kein anderer Kalender-Adapter für ioBroker auf dem Markt. Also musste ich mir frei nach dem Motto "durch die Brust ins Auge" eine entsprechende Krücke bauen. Ein lokaler Outlook-Client ist mit meinem Google Account verlinkt. Ein Microsoft Access Programm stößt periodisch die Synchronisation zwischen Outlook und Google an, liest die Termine aus Outlook aus und stellt sie über das Simple Restful API in ioBroker-Datenpunkten ab. Wie gesagt: "durch die Brust ins Auge" - aber Not macht nun mal erfinderisch.
Ich wurde gleich hellhörig, als @J.A.R.V.I.S. nach ersten zum Ende des Vorjahres erfolgten Vor-Diskussionen im Januar 2020 seine Entwicklungsaktivitäten am Calendar-Adapter vorstellte. Nach dem ich anfängliche Schwierigkeiten mit dem Google API Geraffel über eine vollständige Neu-Installation des Adapters überwinden konnte und insbesondere nachdem @J.A.R.V.I.S. die Serientermin-Thematik "rund" gemacht hatte, war es möglich, meine o.g. Projekte auf den Calendar-Adapter zu migrieren.
Meine Erfahrungen mit dem Calendar-Adapter:
- eine umfangreiche und ausreichende Funktionalität
- eine sehr gute Stabilität - trotz Noch-Test-Stadium
- ein Entwickler, der sich schnell und bereitwillig um Fehlermeldungen und Wünsche der Anwender kümmert und die Anwender mit großer Hilfsbereitschaft und mit vielen Ratschlägen bei auftretenden Schwierigkeiten unterstützt.
@J.A.R.V.I.S. möchte ich an dieser Stelle ganz herzlich Dank sagen für die Bereitstellung des Calendar-Adapters. In diesen Dank schließe ich auch all die Anwender mit ein, die mit Bug Reports, Anregungen und mit Erweiterungswünschen ihn zu dieser tollen Leistung "getrieben" haben.
-
@J-A-R-V-I-S ich hoffe, ich habe es nicht überlesen
ich habe einen monitor mit raspi an die wand gehängt, der zeigt mir die vis - auch das calendar widget - ist es möglich die schriftgröße der kalendereinträge zu ändern? bei CSS Font und Text wird nur der Tag (oben drüber) geändert
ist sonst zu klein bei etwas mehr entfernung
-
-
@liv-in-sky danke für die Rückmeldung. Ich habe ein Issue dazu eröffnet, um es in die Widget Settings mit aufzunehmen.
-
@J-A-R-V-I-S danke - habe momentan folgendes im css code
.calendar-entry-today { border-color: #4df61e; background-color: #000000 !important; } .calendar-event { font-size: 22px; }
damit kann man den hintergrund von heute ändern und den rahmen von heute
leider werden dabei die feldergröße (der hintergrund, in der der eintrag steht) bei zu größer schrift zu klein und schneiden die buchstaben ein klein wenig ab - z.b Karfreig hat kein "g" mehr
-
Vielen Dank für den Adapter, endlich ein Caldav Adapter! Danke! Danke! Danke!
Funktioniert super. Auch mit Tine2.0, falls das jemand verwendet.
-
Gibt ne Möglichkeit sich alle Termine via Liste anzeigen zu lassen?
Im Calendar Widget nutz ich das Main Objekt - calendar.0Fände es auch noch cool, wenn man ics Dateien hinterlegen könnte.
-
@gravidi freut mich zu hören. Könntest du mir vielleicht die Base URL mitteilen, dann kann ich die mit in die Doku aufnehmen, falls es noch andere gibt, die das nutzen.
@Stephan-Schleich du meinst ein Listen Widget, richtig? Dazu gibt es schon ein Issue, komme aber derzeit noch nicht dazu, das umzusetzen.
Bezüglich der ics Dateien: Du kannst diese im Admin hinterlegen, oder verstehe ich da etwas falsch?
-
@J-A-R-V-I-S Ja genau ein Listenwidget meinte ich - Supi
Wo im Admin? Im ical Adapter seh ich einen Punkt zum hinterlegen im Calendar Adapter nicht -
@Stephan-Schleich du kannst im Abschnitt CalDAV auch die Adresse der iCal Datei einfügen.
-
@J-A-R-V-I-S Achso, okay danke
-
@gravidi sagte in Test Adapter Calendar v1.1.x:
Vielen Dank für den Adapter, endlich ein Caldav Adapter!
iCal Adapter kann auch CalDav.
-
1.2.0 (2020-04-11)
- Neue iCal-Bibliothek zum besseren Lesen von Kalendern und zur Unterstützung zukünftiger Funktionen zum Schreiben von Ereignissen
- Google-Autorisierung geändert*
- iCal Ereignisse mit Wiederholung werden jetzt behandelt
- Regelmäßige Anfrage nach neuen Kalendern hinzugefügt**
- Es wurde ein Fehler behoben, der eine "TypeError"-Nachricht in iCal-Kalendern verursachte
*Die derzeit eingerichteten Kalender werden auch immer noch unterstützt. Sollte jedoch zukünftig ein neuer Kalender hinzugefügt werden, so müssen alle Accounts auf den neuen Client umgezogen werden.
**Wird aktuell nur für neueingerichtete Kalender angewendet.
@hsteinme die Zeitzonen fehler sollten nun behoben sein. Ich habe es ausgiebig getestet. Alle Termine werden in die lokale Zeit umgerechnet, falls sie nicht schon in der Zeit sind.
Ebenso werden Termine mit Wiederholungen nun korrekt importiert.
@hsteinme @RandyAndy das Problem mit den überlappenden Tagen habe ich noch nicht behoben, werde ich aber noch angehen.
Sollte die Version 1.2.0 bzw. wenn ich die tagübergreifenden Termine gefixte habe (1.2.x), bei allen soweit stabil laufen, dann würde ich diese Version gerne ins Stable bringen.
Ich möchte euch also gerne nochmal bitten, die Änderungen bzw. noch vorhandene oder auftretende Fehler zu melden.
Die nächste Version soll sich dann Richtung Termine schreiben bewegen.
Vielen Dank
@hsteinme hier noch deinen offenen Punkte, ich hoffe ich habe keinen vergessen:
https://github.com/WLAN-Kabel/ioBroker.calendar/issues/31
https://github.com/WLAN-Kabel/ioBroker.calendar/issues/32
https://github.com/WLAN-Kabel/ioBroker.calendar/issues/33 -
@J-A-R-V-I-S sagte in Test Adapter Calendar v1.2.x:
1.2.0 (2020-04-11)
Danke schön!
Google-Autorisierung geändert*
*Die derzeit eingerichteten Kalender werden auch immer noch unterstützt. Sollte jedoch zukünftig ein neuer Kalender hinzugefügt werden, so müssen alle Accounts auf den neuen Client umgezogen werden.Was muss ich in diesem Fall als User tun? Wie ziehe ich Accounts auf den neuen Client um?
Regelmäßige Anfrage nach neuen Kalendern hinzugefügt**
**Wird aktuell nur für neueingerichtete Kalender angewendet.Was heißt regelmäßg? Integriert in die Anfrage nach Termin-Updates im 10-Minuten-Takt?
@hsteinme die Zeitzonen fehler sollten nun behoben sein.
Beim Versuch eines Nachtests habe ich festgestellt, dass ich über die CalDav/iCal Schnittstelle nun keine ics-Dateien mehr einlesen kann, weder von der lokalen Platte noch aus dem Web heraus. Es werden keine Datenpunkte gefüllt, weder neu angelegte Termine noch bereits vorher bestehende Termine.
Es werden zugehörige Fehlermeldungen im Log vermerkt:
calendar.1 2020-04-13 18:45:39.379 debug (18275) Schedules started calendar.1 2020-04-13 18:45:39.368 info (18275) Updated calendar "ioBroker Test" calendar.1 2020-04-13 18:45:39.367 error (18275) VCalendarError: <constructor> <parse> this.dtend.getDate is not a function at new VCalendar (/opt/iobroker/node_modules/iobroker.calendar/lib/vcalendar.js:54:19) at Calendar.getCaldavC calendar.1 2020-04-13 18:45:38.955 debug (18275) Read events of 'ioBroker Test' calendar.1 2020-04-13 18:45:38.903 info (18275) starting. Version 1.2.0 in /opt/iobroker/node_modules/iobroker.calendar, node: v10.16.3
Was läuft in meiner Installation falsch?
-
@hsteinme sagte in Test Adapter Calendar v1.2.x:
Was muss ich in diesem Fall als User tun? Wie ziehe ich Accounts auf den neuen Client um?
Zunächst legst du dir einen neuen Client an, wie nachfolgend Beschrieben.
@J-A-R-V-I-S sagte in Test Adapter Calendar v1.2.x:
Öffne den Tab"Anmeldedaten" und klicke auf "Anmeldedaten erstellen".
Wähle "OAuth-Client-ID" und im nächsten Fenster "Sonstige".
Trage dort einen Namen ein z.B. "ioBroker" oder "Client".
Speichere diese Seite und kopiere dir die darauf angezeigte Client ID sowie das Client Secret.
Füge beide in die Adapterconfig ein und starte den Adapter.Dann musst du einmal den neuen Client Key sowie das Secret in den Einstellungen hinterlegen, alle vorhandenen Kalender löschen und auf den Authenticate Button klicken.
Du wirst dann auf eine Anmeldeseite weitergeleitet. Nachdem Du dort den Client berechtigt hast, erscheint ein Code.
Kopiere den Code und füge einen neuen Eintrag IM Kalender hinzu. Füge nun den Code in die Code Spalte ein und speichere die Konfig. Danach wird der Adapter deinen Account wieder auslesen.
@hsteinme sagte in Test Adapter Calendar v1.2.x:
Was heißt regelmäßg? Integriert in die Anfrage nach Termin-Updates im 10-Minuten-Takt?
Aktuell alle 10 Minuten, werde ich aber vermutlich auf 12 oder 24 Stunden hochsetzen.
Die Fehlermeldung werde ich mir morgen einmal anschauen.
Danke für die Rückmeldung.
Die Implementierung bezüglich der tagübergreifenden Termine habe ich auch schon fertig, wird mit dem nächsten Release kommen.
-
@J-A-R-V-I-S sagte in Test Adapter Calendar v1.2.x:
Zunächst legst du dir einen neuen Client an, wie nachfolgend Beschrieben.
Okay, jetzt habe ich verstanden, was gemeint war. Danke!
Wenn ich nun also in einigen Wochen, Monaten, Jahren, Jahrzehnten, ... meinem Account einen weiteren Kalender hinzufüge, dann wird sich der Calendar-Adapter nicht mehr korrekt benehmen. Dann werde ich mich jedoch wohl nicht mehr an Deinen Hinweis im Change Log zur Version 1.2.0 erinnern. Daher meine Frage: Spricht etwas dagegen, schon jetzt (also ohne einen neuen Kalender) auf die neue Google Autorisierung umzustellen?
Aktuell alle 10 Minuten, werde ich aber vermutlich auf 12 oder 24 Stunden hochsetzen.
Auch bei einem Restart der Instanz?
Die Fehlermeldung werde ich mir morgen einmal anschauen.
Okay.
Die Implementierung bezüglich der tagübergreifenden Termine habe ich auch schon fertig, wird mit dem nächsten Release kommen.