Gladys 4 - CalDAV-Service

Hallo zusammen,

Auf Anfrage von Pierre-Gilles und um Verwirrung mit dem CalDAV-Modul der alten Gladys-Version zu vermeiden, wird ein neues Thema gestartet.

Für Neueinsteiger: Dieser Dienst ermöglicht es Ihnen, den Kalender Ihrer Gladys-Instanz mit einem CalDAV-kompatiblen Kalenderdienst (Google Calendar, iCloud, Nextcloud…) zu synchronisieren.

In der Gladys-Dokumentation finden Sie Hilfe zur Konfiguration dieses Dienstes:

Zur Info: Zum Zeitpunkt der Erstellung dieser Nachricht sind 3 Themen in Arbeit:

Hallo zusammen, nur zur Info, ich habe gerade einen PR für die Auswahl der zu synchronisierenden Kalender vorgeschlagen.

Das wird in einem neuen Tab auf der Dienstkonfigurationsseite sein

Hallo @bertrandda! Super, das sieht toll aus :slight_smile:

Ein anderes Thema bezüglich des Caldav-Dienstes. Darüber haben wir hier gesprochen => Point stabilité, mise à jour des dépendance & qualité de code, es wäre cool, wenn wir die Abhängigkeit „moment“ aus dem Frontend des Caldav-Dienstes entfernen könnten. Diese Abhängigkeit ist veraltet und ziemlich schwergewichtig.

Das ist ein Thema, das unabhängig von diesem PR ist, aber wir sollten uns irgendwann damit beschäftigen :slight_smile:

10/10 für den Wortwitz :stuck_out_tongue_winking_eye:

das hatte ich ja gar nicht gesehen aha ^^

Ja, ich habe es gesehen. Ich werde eine Lösung untersuchen, aber wie Vincent damals sagte, habe ich es für einen Moment liegen gelassen, weil die Bibliothek react-big-calendar nicht mit dayjs kompatibel war.

Hallo, ich versuche, meinen iCloud-Kalender zu verbinden, aber ich erhalte folgenden Fehler:

{
    "status": 409,
    "code": "CONFLICT",
    "error": {
        "message": "selector muss eindeutig sein",
        "attribute": "selector",
        "value": "films-series-",
        "type": "unique violation"
    }
}

dies ist verursacht durch:

2021-05-17T09:41:06+0200 <info> calendar.syncUserCalendars.js:38 (CalDAVHandler.syncUserCalendars) CalDAV : 10 Kalender gefunden.
2021-05-17T09:41:06+0200 <error> index.js:48 (Timeout.syncAllUsers [as _onTimeout]) UniqueConstraintError [SequelizeUniqueConstraintError]: Validierungsfehler
    bei Query.formatError (/src/server/node_modules/sequelize/lib/dialects/sqlite/query.js:409:16)
    bei Query._handleQueryResponse (/src/server/node_modules/sequelize/lib/dialects/sqlite/query.js:72:18)
    bei Statement.afterExecute (/src/server/node_modules/sequelize/lib/dialects/sqlite/query.js:246:27) {
  errors: [
    ValidationErrorItem {
      message: 'selector muss eindeutig sein',
      type: 'unique violation',
      path: 'selector',
      value: 'films-series-',
      origin: 'DB',
      instance: [t_calendar],
      validatorKey: 'not_unique',
      validatorName: null,
      validatorArgs: []
    }
  ],
  fields: [ 'selector' ],
  parent: [Error: SQLITE_CONSTRAINT: UNIQUE constraint failed: t_calendar.selector] {
    errno: 19,
    code: 'SQLITE_CONSTRAINT',
    sql: 'INSERT INTO `t_calendar` (`id`,`user_id`,`service_id`,`name`,`selector`,`external_id`,`description`,`sync`,`notify`,`ctag`,`sync_token`,`color`,`created_at`,`updated_at`) VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14);'
  },
  original: [Error: SQLITE_CONSTRAINT: UNIQUE constraint failed: t_calendar.selector] {
    errno: 19,
    code: 'SQLITE_CONSTRAINT',
    sql: 'INSERT INTO `t_calendar` (`id`,`user_id`,`service_id`,`name`,`selector`,`external_id`,`description`,`sync`,`notify`,`ctag`,`sync_token`,`color`,`created_at`,`updated_at`) VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14);'
  },
  sql: 'INSERT INTO `t_calendar` (`id`,`user_id`,`service_id`,`name`,`selector`,`external_id`,`description`,`sync`,`notify`,`ctag`,`sync_token`,`color`,`created_at`,`updated_at`) VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14);'
}

Hallo @Thomas_Parquier, es scheint, dass du mehrere Kalender mit dem gleichen Namen hast. Ich werde schauen, wie ich das durch die Änderung der Kalender-Slug-Generierung beheben kann. Bis dahin könntest du versuchen, einen der beiden Kalender, die mit „Films séries“ beginnen, in iCloud umzubenennen?

ja, genau das habe ich den Moderatoren in einem anderen Kanal gesagt…

Das Problem liegt beim Kalender von Erinnerungen… Ich hatte mehrere Erinnerungslisten mit demselben Slug…

Ich habe die Listen umbenannt, aber ohne Erfolg. Aber es könnte ein Caching-Problem sein (denn ich habe auch eine Liste gelöscht, und trotzdem wird sie weiterhin von der iCloud-API zurückgegeben).

Hallo,
ich habe eine kleine Frage zum CalDAV-Dienst … wie oft wird synchronisiert?
Ich konnte meine Kalender ohne Probleme hinzufügen, aber es scheint, dass sie sich nicht aktualisieren.
Die vorgenommenen Änderungen werden auf meinen anderen Geräten synchronisiert, aber nicht in Gladys. Kann ich irgendwo sehen, ob es ein Kommunikationsproblem oder etwas anderes gibt?
Vielen Dank im Voraus.

Ich habe eine Reihe von Tests wiederholt und trete nicht systematisch auf das Problem … Ich werde also auf meiner Seite tiefer graben, um anzufangen …

CalDAV-Kalender werden alle 30 Minuten synchronisiert. Du kannst den Vorgang auch manuell starten, um ihn zu testen, indem du auf die grüne Schaltfläche am unteren Rand der Integrationsseite klickst image.

Falls du Zugriff auf die Protokolle hast, kann ich dir möglicherweise helfen, das Problem zu finden.

Hallo,
Ich habe einen Reset + Sync durchgeführt, und alles ist in Ordnung.
Bleibt abzuwarten :slight_smile:

Aber ich habe eine zusätzliche Frage: Wenn ich auf ein Ereignis im Kalender klicke, passiert nichts. Ist das normal?

Ja, das ist normal, wir haben keine Aktion zugeordnet. Vielleicht sollte man darüber nachdenken, aber im Grunde ist das Ziel der Kalenderereignissynchronisierung, sie mit Szenen zu verknüpfen (die gerade in Entwicklung zu sein scheinen). Wir möchten nicht, dass unsere Ereignisse in Gladys geändert werden, das erledigst du über deine Mobile App oder einen dedizierten Service.
Hast du Ideen für Aktionen beim Klicken auf ein Ereignis?

Eigentlich habe ich mich gefragt, weil wenn man mit der Maus über ein Ereignis fährt, der Cursor sich in eine Hand verwandelt, wie bei einem Link. Also klicke ich reflexartig, aber es passiert nichts.
In meinem persönlichen Fall gibt es Tage, an denen eine ganze Menge von Dingen im Kalender eingetragen sind, sodass einige Ereignisse teilweise oder fast vollständig hinter anderen versteckt sind. Daher dachte ich, dass es zumindest ermöglichen würde, das Ereignis, auf das man klickt, in den Vordergrund zu bringen oder es besser anzuzeigen.
Aber natürlich, wenn der Zweck des Kalenders nur darin besteht, Szenen zu planen, entferne ich mich davon. In meiner Vorstellung hätte die Anzeige des Kalenders auf einem Bildschirm mir ermöglichen können, die Zeitpläne, die am Kühlschrank kleben, zu entfernen :sweat_smile:

calendrier

Hallo,

Ich habe einen geteilten Kalender (von einem anderen Konto) in meinem Google-Konto, aber dieser wird nicht in der Liste der verfügbaren Kalender angezeigt. Allerdings gibt es keine Probleme mit dem externen Kalender „Feiertage“. Hat jemand dieses Problem und eine Lösung? Ich weiß nicht, ob der Google-Dienst „cal“ dies zulässt. Da dieser Dienst veraltet ist, gibt es eine andere Möglichkeit, sich mit dem Google-Kalender zu verbinden?

Vielen Dank im Voraus,

Hallo @Romuald_Pochet,

Nur zur Info, wir haben hier etwas über Kalenderfreigabe diskutiert [Caldav] Configuration multicomptes, aber das ist eher für die interne Freigabe.
Was dein Problem betrifft, ist das CalDAV-Protokoll recht komplex, daher ist möglicherweise noch nicht alles perfekt umgesetzt.
Ich werde versuchen, deinen Fall nachzustellen, um zu sehen, ob ein Fix möglich ist. Es handelt sich also um ein Google-Konto, das einen Kalender mit einem anderen Google-Konto teilt? Wenn du auf „Synchronisieren“ auf der Konfigurationsseite der CalDAV-Integration klickst, erhältst du dann einen Fehler?

Hallo,

Ja, es handelt sich um einen Kalender eines anderen Kontos, der mit meinem Konto geteilt wurde. Er befindet sich unter ‹ Weitere Kalender › (wie die Feiertagskalender). Im CalDav-Dienst gibt die Methode ‹ requestCalendars (const listCalendars = await xhr.send(req, homeUrl);) › diesen Kalender nicht zurück.

Aber es gibt keinen Fehler.

Es scheint, dass Google die Synchronisation von geteilten Kalendern nicht standardmäßig aktiviert. Könntest du bitte hier Google Kalender Syncselect gehen und den Kalender auswählen, den du synchronisieren möchtest? Sobald ausgewählt, starte die Synchronisation neu und lass uns wissen, ob sich etwas ändert.