Ich habe ein Problem beim Verbinden meines Nextcloud-Kalenders.
Ich erhalte folgenden Fehler, wenn ich versuche, meinen Kalender zu verbinden
Hier sind die Gladys-Logs
2025-04-16T19:48:56+0200 <error> index.js:43 (CalDAVHandler.config) Error: Bad status: 0
at exports.XMLHttpRequest.request.onreadystatechange (/src/server/services/caldav/node_modules/dav-request/dav.js:3424:27)
at exports.XMLHttpRequest.dispatchEvent (/src/server/services/caldav/node_modules/xmlhttprequest/lib/XMLHttpRequest.js:591:25)
at setState (/src/server/services/caldav/node_modules/xmlhttprequest/lib/XMLHttpRequest.js:610:14)
at exports.XMLHttpRequest.handleError (/src/server/services/caldav/node_modules/xmlhttprequest/lib/XMLHttpRequest.js:532:5)
at ClientRequest.errorHandler (/src/server/services/caldav/node_modules/xmlhttprequest/lib/XMLHttpRequest.js:459:14)
at ClientRequest.emit (node:events:518:28)
at emitErrorEvent (node:_http_client:104:11)
at TLSSocket.socketErrorListener (node:_http_client:518:5)
at TLSSocket.emit (node:events:518:28)
at emitErrorNT (node:internal/streams/destroy:170:8)
at emitErrorCloseNT (node:internal/streams/destroy:129:3)
at processTicksAndRejections (node:internal/process/task_queues:90:21)
Ich habe die URL mehrmals überprüft und ein Anwendungs-Passwort in Nextcloud erstellt.
Hallo, ohne die Domain zu nennen, könntest du mir die URL-Struktur zeigen, die du verwendest?
Normalerweise ist das so etwas wie https://DOMAINE/remote.php/dav
Normalerweise findest du die URL unten links in der App Kalender unter „Agenda-Einstellungen“. Ich habe den Eindruck, dass das Dialogfenster, von dem ihr beide sprecht, nur für einen bestimmten Kalender gilt.
Es sollte so ähnlich aussehen, du musst auf Haupt-CalDAV-Adresse kopieren klicken. Damit kannst du alle Kalender deiner Agenda auflisten, anschließend kannst du in Gladys die auswählen, die du synchronisieren möchtest.
@bertrandda Ich habe gerade den Test gemacht, mit derselben URL synchronisiert mein NextCloud-Kalender problemlos mit dem Kalender meines Telefons. Also kein Problem mit der URL, das funktioniert.
Und du hast auch keine weiteren Logs in Gladys oder in Nextcloud. Ich habe morgen Zeit, wir können das gerne zusammen versuchen, wenn du möchtest. Wärst du verfügbar?
Hallo, Entschuldigung, ich hatte keine Zeit, früher zu antworten.
Ich habe keine weiteren Logs als die, die ich in meinem ersten Beitrag gepostet habe.
Auf der Nextcloud-Seite habe ich diesen Fehler, den ich bisher nicht lösen konnte:
Wenn ich die CalDav-URL direkt in einen Browser eingebe, erhalte ich diese Rückmeldung
Kann man daraus schließen, dass es funktioniert?
Ich habe auch mein Telefon synchronisiert und kürzlich habe ich es in Home Assistant versucht und es funktioniert.
Ja, das muss wirklich ein Problem aufseiten von Gladys sein. Läuft Home Assistant auf demselben Rechner wie Gladys? Ich frage mich, ob die Anfrage überhaupt rausgeht oder ob dein Rechner überhaupt auf den Domainnamen zugreifen kann, denn der Status 0 sagt mir wirklich gar nichts
Ich denke, ich habe das Problem verstanden.
Auf der Seite von Home Assistant gibt es eine Option zur Überprüfung des SSL-Zertifikats, die auf „false“ steht.
Wenn die Option auf „true“ steht, kann sich Home Assistant nicht verbinden.
Mein Nextcloud-Server läuft lokal ohne Domainnamen und ich verwende ein selbstsigniertes Zertifikat.
Wenn ich Nextcloud von außen benötige, nutze ich ein VPN, um auf alle meine Dienste zuzugreifen.
Ich habe SSL bei Nextcloud daher zum Test deaktiviert und jetzt kann sich Gladys mit dem Kalender verbinden.
Das ist komplizierter als erwartet. Es scheint, dass es auf globaler Ebene von Node.js einfach ist, die Zertifikatsprüfung zu deaktivieren, aber nur bei den CalDAV-Anfragen habe ich es noch nicht geschafft. Ich halte dich auf dem Laufenden.
@bertrandda Ich habe gesehen, dass du ein NPM-Paket verwendest, das du geforkt hast dav-request, das das native Objekt XMLHttpRequest verwendet
Ich habe herausgefunden, dass es einen Fork dieses Anfragemoduls gibt:
Dieser Fork scheint recht weit verbreitet zu sein (4,7 Millionen Downloads pro Woche!), und unterstützt den Attribut « rejectUnauthorized », um meiner Meinung nach die SSL-Prüfung zu deaktivieren
Ich habe es nicht getestet, aber das könnte den Job erledigen!