CalDav - Android-Sync findet statt, aber Termine tauchen nicht auf.

Status
Für weitere Antworten geschlossen.

Scylor

Benutzer
Mitglied seit
04. Apr 2012
Beiträge
407
Punkte für Reaktionen
0
Punkte
16
Moin zusammen,

hab jetzt CalDav aktiviert und versuche per Android drauf zuzugreifen. (App heißt CalDav-Sync).

Der CalDav Ordner liegt unter /public/Kalender/.DAV, darin sind 3 Dateien enthalten: .state_for_dir.dir .state_for_dir.pag und die Datei die meinen eigentlichen Kalender enthält: Kalender.ics.

Wofür sind diese state_for Dinger denn überhaupt da? Brauch ich die denn?

Als Verzeichnis in der Caldav app hab ich jetzt https://meinname.synology.me:5006/public/Kalender angegeben. Er findet das Teil auch und richtet das auch alles richtig ein. Wenn ich dann allerdings den Kalender synchronisiere, stelle ich fest, dass dieser überhaupt keine Einträge enthält oO

Wäre jemand so gut mir zu sagen wo genau da der Wurm drin sitzt?

Danke für eure Hilfe.
 

Marten

Benutzer
Mitglied seit
13. Apr 2012
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Hallo Scylor,

ich bin der Entwickler von CalDAV-Sync. Ich hab den Link hier bei Twitter gesehen und gedacht ich meld mich mal an um dir weiter zu helfen. Wozu die Dateien da sind kann ich dir nicht sagen. Aber um das Problem zu untersuchen, kannst du bitten in den Accounteinstellungen die "error reports" anschalten? Dann sollte beim Sync eine Benachrichtigung erscheinen die den Fehler ausspuckt.

Mit Synology gibt es übrigens ein bekanntes Problem, das auch einen Bug in der Syncology Firmware zurückgeht. Ich hab das hier aufgeschrieben: http://dmfs.org/wiki/index.php?title=Synology_DiscStation. Das Problem ist, dass die Synology einen Fehler zurückliefert wenn die App eine Anfrage stellt um die Termine abzufragen und in dem angefragten Zeitraum keine Termine sind. Ein ordentlicher CalDAV-Server sollte in so einem Fall einfach eine leere Liste zurückliefern und keinen Fehler. Der Workaround dafür ist momentan mit einem anderen Desktop-Client (der eine andere Anfrage zum Abfragen der Termine nutzt) einen Dummy-Termin einzutragen. Sobald die Synology einen Termin hat den sie zurück liefern kann funktioniert sie im allgemienen auch korrekt. In meinem Wiki stehen wie gesagt noch ein paar Details zu dem Problem und zu der Abfrage die meine App nutzt.

Eine Alternative wäre noch: Ich habe inzwischen von vielen Synology-Nutzern gehört die ownCloud auf ihrere Synology installiert haben. Da muss man aber auch noch etwas anpassen. Auch in ownCLoud steckt ein kleiner ander nerviger Bug (besser gesagt in dem von ownCloud verwendeten SabreDAV). Daher muss man den SabreDAV-Teil noch auf Version 1.5.8 updaten. Dann klappts aber prima.

Viele Grüße

Marten
 

Scylor

Benutzer
Mitglied seit
04. Apr 2012
Beiträge
407
Punkte für Reaktionen
0
Punkte
16
Wow, du sieht mich erstaunt, aber begeistert.

Das nenn ich mal nen schnellen Support, erst Recht da ich mich nichtmal bei dir gemeldet hab, Respekt :D

habs grad gemacht und es kommt tatsächlich ne Errormeldung.

Ups, das hätte nicht passieren dürfen :-(
org.apache.http.ClientProtocolException:calendar-query failed:

http status code: 404

org.dmfs.dav.CalDav.calendarQuery(CalDav.java:1300)
org.dmfs.dav.CalDav.
loadResourceUpdates(CalDav.java:1145)
org.dmfs.caldav.syncadapter.SyncAdapter.
sync(SyncAdapter.java:345)
org.dmfs.syncadapter.AbstractSyncAdapter.
onPerformSync(AbstractSyncAdapter.java:108)
android.content.
AbstractThreadedSyncAdapter$SyncThread.
run(AbstractThreadedSyncAdapter.java:247)

Hoffe du kannst damit was anfangen, danke für deine Hilfe ;)
 

Marten

Benutzer
Mitglied seit
13. Apr 2012
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
ja, das ist genau die Fehlermeldung, die der Server in dem beschriebenen Fall zurück liefert. Versuch mal mit einem Client wie Thunderbird/Lightning einen Termin für heute anzulegen und das Problem sollte erledigt sein.

Kurz zur Erklärung:

Meine App verwendet eine Anfrage genannt "calendar-query". Diese erlaubt es nur einen Teil der Termine (z.B. aus einem bestimmten Zeitraum) abzufragen. Das ist auf mobilen Geräten äußerst nützlich, da es Ressourcen spart wenn nicht immer die komplette Termin-Liste übertragen werden muss. Das spart Akku und Traffic.
Ein Desktop-Client hat in dieser Hinsicht normalerweise keine Einschränkungen und hat auch jede Menge RAM und CPU-Leistung zur Verfügung. Daher können die meisten Desktop-Clients einfach die komplette Liste vom Server laden (und machen es auch).
Wie schon erwähnt, antwortet die Synology aber nicht korrekt, wenn es keinen Termin zurück zu liefern gibt, weil in dem angefragten Zeitraum kein Termin liegt. Bis Synology den Fehler behoben hat (Hallo Synology Entwickler: Ihr seid gemeint!) muss man also dafür sorgen, dass mindestens ein Termin auf dem Server liegt. Du kannst dafür auch den Sync-Zeitraum in den Account Einstellungen erhöhen, dann steigt die Wahrscheinlichkeit, dass ein Termin im Sync-Fenster liegt (wenn der Kalender nicht geade komplett leer ist ;-) ).
 
Zuletzt bearbeitet:

Scylor

Benutzer
Mitglied seit
04. Apr 2012
Beiträge
407
Punkte für Reaktionen
0
Punkte
16
Hm, ich hab für heute nen Termin liegen und auch die ganze nächste Woche ist vollgepackt, Hab jetzt auch die Langzeitsync jeweils für 4 Jahre vor und zurück aktiviert und das ganze nochmal probiert, ich krieg den selben Fehler immer noch. (Ich hab alleine mindestens 15 Termine in der nächsten Woche eingetragen). Gibts noch irgendnen anderen Grund woher dieser Fehler kommen könnte?
 

Marten

Benutzer
Mitglied seit
13. Apr 2012
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Hmm, dann scheint in deinem Fall die Ursache eine andere zu sein. Was mich etwas wundert, ist dass du schreibst, dass es eine Datei Kalender.ics gibt in der alle Termine stehen. Es ist gut möglich, dass Synology das so gelöst hat, aber bei CalDAV selbst muss jeder Termin als extra Datei zurück geliefert werden (sonst ist es kein CalDAV). Ist allerdings gut möglich das Synology alle Termine in einer Datei speichert und die CalDAV-Schnittstelle die Termine als einzelne Dateien ausliefert (machen andere Server auch so, ich finds aber etwas umständlich und bei sehr vielen Terminen wird das vermutlich auch langsam).

Greifst du denn mit den anderen Clients auch explizit via CalDAV auf die Synology zu, oder direkt auf die ics-Datei? Kannst du mal versuchen den Account neu zu erstellen, aber nur https://meinname.synology.me:5006/public/ als Pfad anzugeben (als ohne Kalender)? Normalerweise sollte er dann trotzdem den richtigen Kalender finden. Nur so zur Sicherheit: Hast du die CalDAV Option in der Config angeschaltet (jaja ich weiß, blöde Frage ;-) ).

Das interessante ist, dass 404 "Not Found" bedeutet, der Server aber die Existenz des Pfades ja explizit bestätigt hat (sonst hättest du den Account nicht einrichten können, das kannst du leicht prüfen, wenn du beim Einrichten einen nicht-exisitierenden Pfad angibst).

Ich werde nochmal versuchen mit Synology in Kontakt zu kommen. Vielleicht wärs gut wenn du das gleiche machst.


viele Grüße

Marten
 

Scylor

Benutzer
Mitglied seit
04. Apr 2012
Beiträge
407
Punkte für Reaktionen
0
Punkte
16
Die Datei Kalender.ics ist meine Datei die ich von google calendar exportiert habe, die hab ich selbst in den Ordner eingefügt. (Wusste nicht wie ich sonst meine Termine da hätte reinkriegen sollen). Meine anderen Clients sind unter anderem mein Hauptrechner der im selben Wlan hängt wie die Ds, da hab ich die Ds als Laufwerk eingebunden und greife direkt auf die .ics zu. Mitm Laptop bin ich noch am rumprobieren, da hab ich per Netdrive ein Netzlaufwerk eingerichtet (auch über Webdav), da kann ich allerdings nicht direkt auf die .ics zugreifen, da mir innerhalb des "Kalender-Ordners" der .DAV-Ordner mit der Kalender.ics garnicht angezeigt wird, keine Ahnung warum.

CalDav ist angeschaltet in der Config, ja *g*

Danke für deinen späten Aufwand =)
 

Marten

Benutzer
Mitglied seit
13. Apr 2012
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Kannst du mal versuchen einen neuen Kalender zu erstellen und den versuchen zu synchronisieren (ohne die ics Datei dort hinein zu kopieren). Du musst dann nur einen Termin mit einem anderen Client erstellen (wegen des calendar-query Fehlers).
 

Scylor

Benutzer
Mitglied seit
04. Apr 2012
Beiträge
407
Punkte für Reaktionen
0
Punkte
16
Sorry ich steh etwas aufm Schlauch.

Angenommen ich erstell nen Kalender mit Thunderbird und mach mir da nen Termin -> wie krieg ich das Ding denn dann auf die DS ohne die .ics-Datei in den Ordner da reinzukopieren?
 

Marten

Benutzer
Mitglied seit
13. Apr 2012
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Du nutzt CalDAV. Versuch mal folgendes: Du richtest auf der DS einen neuen CalDAV Kalender ein. Dann erstellst du in Thunderbird/Lightning einen neuen CalDAV-Kalender und gibst als Netzwerkpfad den Pfad zu dem Kalender auf der DS an. Dann einfach einen Termin erstellen und der sollte automatisch auf der DS landen (das ist der Sinn von CalDAV). Wenn du jetzt einen neuen Account auf dem Telefon erstellst und nur diesen Kalender synchronisierst (den anderen erstmal nicht auswählen), sollte es theoretisch funktionieren.
 

Scylor

Benutzer
Mitglied seit
04. Apr 2012
Beiträge
407
Punkte für Reaktionen
0
Punkte
16
Hm okay, habs probiert, lief soweit auch ganz gut, hab den Hinweis zu Https übersprungen, er wollte dann das ich mich anmelde, auch alles gut aber nachdem ich versucht hab nen Termin einzutragen kommt folgendes von Thunderbird:

Status-Code: 405, Die Anfrage kann nicht verarbeitet werden.

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>405 Method Not Allowed</title>
</head><body>
<h1>Method Not Allowed</h1>
<p>The requested method PUT is not allowed for the URL /CloudStation/Kalender/7f455d78-1a15-422d-aa73-2e70069b2884.ics.</p>
<hr>
<address>Apache/2.2.22 (Unix) mod_ssl/2.2.22 OpenSSL/1.0.0g DAV/2 Server at meinname.synology.me Port 5006</address>
</body></html>

Ne Ahnung woran das liegen kann? Ganz schön steinig der Weg zu nem funktionierenden Caldav :D
 

petehild

Benutzer
Mitglied seit
17. Mrz 2011
Beiträge
443
Punkte für Reaktionen
0
Punkte
22
Hallo Scylor,

Genau das Problem habe ich auch gerade. Ich habe einen neuen Kalender auf der DS angelegt aber mit Thunderbird kann ich keinen neuen Termin in diesem Kalender anlegen (ich erhalte die gleiche Fehlermeldung wie du). Zusätzlich get die CPU-Last der DS auf 100% (geht erst wieder runter wenn ich CalDav deaktiviere).

Sieht irgendwie nach einem Bug der DS aus.

Versionen:
Thunderbird: 11.0.1
Lightning: 1.3

Grüße
Pete
 

Scylor

Benutzer
Mitglied seit
04. Apr 2012
Beiträge
407
Punkte für Reaktionen
0
Punkte
16
Mh Shit, aber es gibt doch Leute bei dennen das funktioniert es kann doch nicht sein dass nur manche den Bug haben???
 

petehild

Benutzer
Mitglied seit
17. Mrz 2011
Beiträge
443
Punkte für Reaktionen
0
Punkte
22
Mh Shit, aber es gibt doch Leute bei dennen das funktioniert es kann doch nicht sein dass nur manche den Bug haben???

Ich konnte das Problem bei mir lösen, ich hatte in Lightning bei der Eingabe der Adresse des Kalenders einen Fehler gemacht. Jetzt geht es bei mir. Aber das bei einer falschen Kalenderadresse die CPU der DS auf 100% geht finde ich eher nicht normal.

Ich glaube, ich werde mir jetzt auch mal CalDAV-Sync für Android anschauen :)
 
Zuletzt bearbeitet:

Scylor

Benutzer
Mitglied seit
04. Apr 2012
Beiträge
407
Punkte für Reaktionen
0
Punkte
16
Kannst du mir dann nochmal genau sagen welchen Pfad du eingegeben hast?

Ich hab bei mir https://meinname.synology.me:5006/CloudStation/Kalender

Das Verzeichnis in dem mein Kalender liegt, sieht wie folgt aus:

/home/CloudStation/Kalender drin befindet sich dann der .DAV Ordner mit den Dateien .state_for_dir.dir und .state_for_dir.pag

Danke dir für die Hilfe ;)

edit:
hab alternativ auch noch
https://meinname.synology.me:5006/home/CloudStation/Kalender

probiert aber das geht auch nicht...

kriege inzwischen je nach Adresse auch manchmal den Fehler:

Fehlercode: MODIFICATION_FAILED
Status-Code: 0x804a0304, Die Anfrage kann nicht verarbeitet werden.
 
Zuletzt bearbeitet:

petehild

Benutzer
Mitglied seit
17. Mrz 2011
Beiträge
443
Punkte für Reaktionen
0
Punkte
22
Also bei mir geht es mit:

http://ds211:5005/calender/pete/test/
(https:/ds211:5006/calender/pete/test/ geht auch)

- calender ist ein gemeinsamer Ordner, pete ein normaler Ordner und test der angelegte Kalender
- mein Nutzer hat Schreibrechte in calender und darf WebDAV nutzen :)
 
Zuletzt bearbeitet:

Marten

Benutzer
Mitglied seit
13. Apr 2012
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Kannst du mir mal mit der kostenlosen App CatLog ein Log von einem Account Setup auf dem Telefon schicken? Evtl. kann ich dir dann sagen was schief läuft. Du kannst mit CatLog das Log nach "org.dmfs" filtern, dann kommen nur Zeilen von/über meine App. Bitte sende das Log an meine Email Adresse (siehe: http://dmfs.org/caldav/?contact) . Versuch bitte zunächst nur den ersten Unterordner anzugeben (also https://meinname.synology.me:5006/CloudStation/ oder https://meinname.synology.me:5006/cal oder wie auch immer). Wenn der Server korrekt läuft, sollte die App den Rest automatisch finden.
Keine Sorge, ich bin nicht an deinem Server oder deinen Daten interessiert, sondern daran dass meine App ihren Dienst ordentlich tut (und was ich ggf. verbessern kann oder muss), da hab ich viel mehr von ;-)
 

Scylor

Benutzer
Mitglied seit
04. Apr 2012
Beiträge
407
Punkte für Reaktionen
0
Punkte
16
Hm Marten, ich fürchte bei mir liegt irgendwas im Argen was nichts mit deiner App zu tun hat, ich krieg auf Teufel komm raus auch keine Verbindung per thunderbird hin, ich versuch mal das zu klären und wenn das klappt komm ich nochmal auf dich zurück, falls es dann immer noch Probleme mit CalDav gibt. Vielen Dank erstmal :)
 

Scylor

Benutzer
Mitglied seit
04. Apr 2012
Beiträge
407
Punkte für Reaktionen
0
Punkte
16
Also Leute, ich hab keine Ahnung was sich plötzlich geändert hat aber auf einmal ging alles oO

Neuen Kalender erstellt -> Thunderbird darauf zugreifen lassen -> termine per Thunderbird hinzugefügt -> Läuft -> CalDav angeschmissen -> alles eingetragen -> Synchronisiert -> Läuft oO

Ich hab nichts anders gemacht als vorher aber plötzlich fing alles an zu funktionieren...

Danke nochmal an alle für die große Hilfe =)

Marten ich werd deiner App ne 5-Sterne Bewertung geben so hast du zumindest auch ein wenig davon :D
 

Marten

Benutzer
Mitglied seit
13. Apr 2012
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Hey, prima! Freut mich sehr das zu hören :)

Wie gesagt, du musst nur drauf achten, dass du immer wenigstens einen Termin in der Nähe des aktuellen Datums hast, sonst bockt die DS ;)
Hoffentlich fixt Synology das bald.

Vielen Dank für die Bewertung! :)

Falls doch mal irgendwas sein sollte, schreib mir bitte einfach eine Mail. Es kann gut sein, dass ich mal einen Post in einem Forum übersehe ;)
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat