Hallo,
ich würde gerne einen ownCloud Kalender einbinden. Es gibt dafür allerdings keine öffentliche Adresse, sondern der Benutzer muss sich authentifizieren. Per curl funktioniert das auch wunderbar mit der typischen URL für sowas: "curl https://username:passwort@cloud.server.de/remote.php/caldav/calendars/readonly/bereitschaften"
Im Kalendermodul sehe ich damit allerdings nur diese Fehlermeldung: "Not an ical file at URL".
Gibts eine alternative Möglichkeit dafür? Hab ich was übersehen?
Hast Du mal testweise manuell ein caldav per curl geholt und dann getestet, ob das Calendar-Modul die Datei an sich verarbeiten kann?
Ansonsten wäre ein ausführliches Log (verbose 5) bei Deinen Versuchen sehr hilfreich.
sorry, logs fehlten:
2014.11.04 12:52:16 5: Cmd: >set Bereitschaftskalender update<
2014.11.04 12:52:16 4: Calendar Bereitschaftskalender: Wakeup
2014.11.04 12:52:16 4: Calendar Bereitschaftskalender: Updating...
2014.11.04 12:52:16 4: HttpUtils url=<hidden>
2014.11.04 12:52:16 4: <hidden>: HTTP response code 200
2014.11.04 12:52:16 4: HttpUtils <hidden>: Got data, length: 1624
2014.11.04 12:52:16 1: Calendar Bereitschaftskalender: Not an ical file at URL
2014.11.04 12:52:16 4: Calendar Bereitschaftskalender: Checking times...
2014.11.04 12:52:16 5: Triggering Bereitschaftskalender (10 changes)
2014.11.04 12:52:16 5: Notify loop for Bereitschaftskalender lastCheck: 2014-11-04 12:52:16
...
Laut dem Serverlogfile der owncloud wird die URL korrekt aufgerufen, auch die Authentifizierung klappt.
So sieht der Inhalt der URL aus, die mir von ownCloud als CalDAV-URL angezeigt wird:
<html>
<head>
<title>Index for calendars/readonly/bereitschaft/ - SabreDAV 1.8.10-stable</title>
<style type="text/css">
body { Font-family: arial}
h1 { font-size: 150% }
</style>
<link rel="shortcut icon" href="/remote.php/caldav/?sabreAction=asset&assetName=favicon.ico" type="image/vnd.microsoft.icon" /></head>
<body>
<h1>Index for calendars/readonly/bereitschaft/</h1>
<table>
<tr><th width="24"></th><th>Name</th><th>Type</th><th>Size</th><th>Last modified</th></tr>
<tr><td colspan="5"><hr /></td></tr><tr>
<td><a href="/remote.php/caldav/calendars/readonly"><img src="/remote.php/caldav/?sabreAction=asset&assetName=icons%2Fparent.png" width="24" alt="Parent" /></a></td>
<td><a href="/remote.php/caldav/calendars/readonly">..</a></td>
<td>[parent]</td>
<td></td>
<td></td>
</tr><tr>
<td><a href="/remote.php/caldav/calendars/readonly/bereitschaft/owncloud-aa670fa4363d67d3b14cc3609bb7c751.ics"><img src="/remote.php/caldav/?sabreAction=asset&assetName=icons%2Ffile.png" alt="" width="24" /></a></td>
<td><a href="/remote.php/caldav/calendars/readonly/bereitschaft/owncloud-aa670fa4363d67d3b14cc3609bb7c751.ics">owncloud-aa670fa4363d67d3b14cc3609bb7c751.ics</a></td>
<td>text/calendar; charset=utf-8</td>
<td>337</td>
<td>2014-11-04T11:34:40+00:00</td>
</tr><tr><td colspan="5"><hr /></td></tr></table>
<address>Generated by SabreDAV 1.8.10-stable (c)2007-2014 <a href="http://sabre.io/">http://sabre.io/</a></address>
</body>
</html>
Diese URL funktioniert in Thunderbird Lightning und mit einem CalDAV-Client auf dem Handy ohne Probleme.
Bei mir zieht wget den Kalender vom ownCloud Server:
wget --quiet --output-document="$Zielverzeichnis" --auth-no-challenge --no-check-certificate --http-user=$Benutzer --http-password="$Passwort" "$Kalender-URL"
- --quiet: damit beim Automatischen Runterladen des Kalenders nicht immer der ganze Output kommt
- --output-document: Der Pfad und Dateiname, für den Kalender, Z.B.: /opt/fhem/contrib/myCalender/kalender.ics
- --auth-no-challenge: Soweit ich weiß sendet ownCloud nämlich keine Athentication-challenge (but may prove my wrong)
- --no-check-certificate: Wenn Du mit dem Server per https kommunizierst, das Zertifikat aber selbst generiert oder die CA nicht "unterstützt" wird
- --http-user: der Username zum Einloggen; ich habe dafür einen Dummy-User in ownCloud eingerichtet, an den ich den Kalender freigegeben habe. Damit hatte ich dann auch kein Problem, Usernamen und Passwort in ein Shell-Script zu schreiben
- --http-password: ist ja klar, denke ich
- "$Kalender-URL: Einfach den CalDAV-Link aus der Kalender-App von ownCloud benutzen
Und dem Kalender-Modul gebe ich nur den Pfad zu der Datei im Dateisystem. Mittels at wird der Kalender dann regelmäßig runtergeladen. Das Kalender-Modul updatet sich ja auch einmal die Stunde. Mit curl habe ich das nämlich auch nie hinbekommen.
Vielleicht geht es ja so?
Gruß
Zephyr
Zephyr, wie sieht bei dir das heruntergeladene File aus? Wenn du mein Beispiel oben anschaust, sieht das eher nach HTML aus, in dem dann nochmal die einzelnen Termine verlinkt sind. Und die werden dann nicht runtergeladen.
Versuch es doch einfach mal mit dem wget. Damit bekommst Du dann eine ics-Datei. Mit curl bekam ich auch immer nur eine HTML-Datei. Daher ja auch mein Gegenbeispiel, stattdessen wget zu benutzen.
Wenn nicht, dann häng an die CalDAV-URL mal ein "?export" an. Natürlich ohne die Anführungsstriche.
wget hatte das gleiche Problem. Aber super Hinweis mit dem ?export, damit funktioniert es. Auch direkt im fhem, ohne Umwege über curl + wget. Danke!
Ohne Umwege in FHEM? DAS finde ich nun wieder interessant. Denn so habe ich das nicht gelöst.
Für mich und andere wäre es sicher interessant zu sehen, wie Du nun genau die Einstellungen gemacht hast.
der define sieht jetzt so aus:
define Bereitschaftskalender Calendar ical url https://user:passwort@cloud.ovtec.de/remote.php/caldav/calendars/readonly/bereitschaft/?export
get Bereitschaftskalender full all
9c530d8f14 new upcoming 10.11.2014 00:00:00-17.11.2014 00:00:00 primäre Bereitschaft
und in der Übersicht sehe ich ein:
STATE Active
Ich schätze, das muss ich mal ausprobieren. War der Meinung, dass das bei mir nicht funzte mit ownCloud 7.
Danke sehr.
Ach so: ist "readonly" der Benutzer?
Zitat von: magenbrot am 04 November 2014, 12:59:43
So sieht der Inhalt der URL aus, die mir von ownCloud als CalDAV-URL angezeigt wird:
<html>
<head>
<title>Index for calendars/readonly/bereitschaft/ - SabreDAV 1.8.10-stable</title>
<style type="text/css">
body { Font-family: arial}
h1 { font-size: 150% }
</style>
<link rel="shortcut icon" href="/remote.php/caldav/?sabreAction=asset&assetName=favicon.ico" type="image/vnd.microsoft.icon" /></head>
<body>
<h1>Index for calendars/readonly/bereitschaft/</h1>
<table>
<tr><th width="24"></th><th>Name</th><th>Type</th><th>Size</th><th>Last modified</th></tr>
<tr><td colspan="5"><hr /></td></tr><tr>
<td><a href="/remote.php/caldav/calendars/readonly"><img src="/remote.php/caldav/?sabreAction=asset&assetName=icons%2Fparent.png" width="24" alt="Parent" /></a></td>
<td><a href="/remote.php/caldav/calendars/readonly">..</a></td>
<td>[parent]</td>
<td></td>
<td></td>
</tr><tr>
<td><a href="/remote.php/caldav/calendars/readonly/bereitschaft/owncloud-aa670fa4363d67d3b14cc3609bb7c751.ics"><img src="/remote.php/caldav/?sabreAction=asset&assetName=icons%2Ffile.png" alt="" width="24" /></a></td>
<td><a href="/remote.php/caldav/calendars/readonly/bereitschaft/owncloud-aa670fa4363d67d3b14cc3609bb7c751.ics">owncloud-aa670fa4363d67d3b14cc3609bb7c751.ics</a></td>
<td>text/calendar; charset=utf-8</td>
<td>337</td>
<td>2014-11-04T11:34:40+00:00</td>
</tr><tr><td colspan="5"><hr /></td></tr></table>
<address>Generated by SabreDAV 1.8.10-stable (c)2007-2014 <a href="http://sabre.io/">http://sabre.io/</a></address>
</body>
</html>
Ich denke, dass Du die Datei herunterladen musst, die hinter dem Link owncloud-aa670fa4363d67d3b14cc3609bb7c751.ics liegt (siehe HTML-Code oben) und zwar inklusive der Angabe der Credentials in der vollen(!) URL.
Grüße
Boris
Zitat von: Dr. Boris Neubert am 04 November 2014, 19:45:52
Ich denke, dass Du die Datei herunterladen musst, die hinter dem Link owncloud-aa670fa4363d67d3b14cc3609bb7c751.ics liegt (siehe HTML-Code oben) und zwar inklusive der Angabe der Credentials in der vollen(!) URL.
Nochmal zusammengefaßt (vielleicht in die commandref einbauen?):
- Die URL verwenden, die in ownCloud unter "CalDAV-Link" angeboten wird (Vorsicht bei Umlauten im Kalendernamen!)
- Das Suffix ?export an die URL hängen
- User und Passwort in die URL einbauen: https://user:passwort@<calDav-Link>
- Die zusammengebastelte URL lässt sich dann im Calendar-Define verwenden
Internals:
CFGFN
DEF ical url https://user:passwort@mycloud.betateilchen.local/remote.php/caldav/calendars/udo/persönlich?export
NAME owncloud
NR 45
STATE Active
TYPE Calendar
Readings:
2014-11-04 20:18:22 all 15edbbdec6
2014-11-04 20:18:22 lastCheck 2014-11-04 20:18:21
2014-11-04 20:18:22 lastUpdate 2014-11-04 20:18:21
2014-11-04 20:18:22 modeAlarm
2014-11-04 20:18:22 modeAlarmOrStart
2014-11-04 20:18:22 modeAlarmed
2014-11-04 20:18:22 modeChanged 15edbbdec6
2014-11-04 20:18:22 modeEnd
2014-11-04 20:18:22 modeEnded
2014-11-04 20:18:22 modeStart
2014-11-04 20:18:22 modeStarted
2014-11-04 20:18:22 modeUpcoming 15edbbdec6
2014-11-04 20:18:22 stateChanged 15edbbdec6
2014-11-04 20:18:22 stateDeleted
2014-11-04 20:18:22 stateNew 15edbbdec6
2014-11-04 20:18:22 stateUpdated
Hallo Udo,
das geht so bei mir nicht:
Zitatdefine myCalendar Calendar ical url http://user:passwort@nas-kvo/owncloud/remote.php/caldav/calendars/ocadmin/klaus?export
hier ist dann STATE no Data
Welche Version von ownCloud läuft bei dir ? Ich bin noch bei oc5 ! vielleicht liegt es daran.
Wenn ich das , wie in einem anderen Thread beschrieben , mit wget .... in eine Datei schreibe und diese dann lese
define myCalendar Calendar ical file /home/pi/calendar.ics 300
dann geht das !
Würde das schon gern ohne diesen Umweg hinbekommen ! Hast du noch einen Tipp?
Danke und Gruß
Klaus
Das Problem habe ich auch immer mal wieder im oc7. Mach mal ein
set calendername update
auf den Kalender. Dann hat er wieder die Daten.
Weiß nicht was besser ist: ein at für ein regelmäßiges update oder ein at für ein Script...
Zitat von: kvo1 am 03 Dezember 2014, 08:07:48
Welche Version von ownCloud läuft bei dir ? Ich bin noch bei oc5 ! vielleicht liegt es daran.
ownCloud 7.0.2 (stable)
Es liegt vermutlich tatsächlich an Deiner uralten Version 5.
Zitat von: betateilchen am 03 Dezember 2014, 12:11:35
Es liegt vermutlich tatsächlich an Deiner uralten Version 5.
Ich habe das Problem mit oc7 ebenfalls. Es muss nicht zwingend an der Version 5 liegen.
Zitat von: Zephyr am 03 Dezember 2014, 12:09:44
Das Problem habe ich auch immer mal wieder im oc7. Mach mal ein
set calendername update
auf den Kalender. Dann hat er wieder die Daten.
Weiß nicht was besser ist: ein at für ein regelmäßiges update oder ein at für ein Script...
Hallo Zephyr,
das hat leider keine Änderung gebracht !........STATE no Data
Gruss
kvo1
Dann zeig doch mal Deine Definition für das Calendar Modul. Oder habe ich die übersehen?
Hallo Zephyr!
Hatte ichin Antwort #13 schon gepostet ! Oder was meinst Du?
Gruß kvo1
Zitat von: kvo1 am 05 Dezember 2014, 21:57:18
Hallo Zephyr!
Hatte ichin Antwort #13 schon gepostet ! Oder was meinst Du?
Gruß kvo1
Ich habe Tomaten auf den Augen. :)
Könntest Du versuchen per wget von genau dem Rechner, auf dem FHEM läuft, das iCal-File zu bekommen?
Also mal auf dem FHEM-Rechner in der Kommandozeile folgendes eintippen:
wget http://user:passwort@nas-kvo/owncloud/remote.php/caldav/calendars/ocadmin/klaus?export
Du solltest im Verzeichnis in dem Du Dich befindest dann das iCal-File haben. Bitte schau mit einem Texteditor Deiner Wahl, ob es sich wirklich um ein iCal-File handelt.
Ich will ausschließen, dass es sich um ein Problem mit der Namensauflösung oder vielleicht der URL handelt.
Viele Grüße
Zephyr
Hallo Zephyr,
bin unterwegs , versuche ich heute abend.
kvo1
Hallo Zephyr,
ja im Verzeichnis des RPi (hier läuft auch fhem) entsteht eine Datei namens klaus?export !
Sieht auch wie ein iCal-File aus. Namensauflösung klappt also auch !
wie nun weiter ?
gruss kvo1
Puuuuh, jetzt wird es schwierig.
Gibt es Einträge im Log, wenn Du den Calender per set myCalendar update
aktualisierst? Irgendeine Fehlermeldung, überhaupt irgendwas?
Hallo,
ich habe genau das gleiche Problem mit meinem OC7.0.4. Ich bin alles bis hier durchgegangen. Leider erfolglos. Ich bekomme folgendes im Log:
Zitat
2014.12.15 21:39:50 4: Calendar ownCloudFhem: Wakeup
2014.12.15 21:39:50 4: Calendar ownCloudFhem: Updating...
2014.12.15 21:39:50 4: HttpUtils url=<hidden>
2014.12.15 21:39:50 1: Calendar ownCloudFhem: Could not retrieve file at URL. <hidden>: malformed or unsupported URL
2014.12.15 21:39:50 4: Calendar ownCloudFhem: Checking times...
Ich habe die Datei/den Link sowohl per wget geholt als auch im Browser geöffnet. Sieht nach einer iCal Datei aus.
Hallo,
ich habe mich jetzt auch einmal an dieser Methode hier versucht - und bei dem beschriebenen Verfahren/Link bekomme ich ebenfalls die genannten Meldungen statt Kalenderdaten.
Meine OC-Version ist 7.0.4.
Ich habe jetzt einmal den ical-Download-Link in OC mir angeschaut, den ich bei dem Download-Link (Pfeil-unten) angezeigt bekomme, und haben den dann entsprechend in der Definition angelegt:
define fhem_Kalender Calendar ical url https://username:user-pw@OC-Server/index.php/apps/calendar/export.php?calid=6
Damit bekomme ich unter OC7 problemlos gültige Daten... Die muß ich jetzt nur noch weiter verarbeiten ;)
Gruß, Christoph
Hallo
bei mir geht das mittlerweile auch (OC 8) , ich habe das so ...
define Kalender1 Calendar ical url http://username:user-pw@OC-Server/owncloud/remote.php/caldav/calendars/ocadmin/kalender1?export 300
... für genau einen Kalender (hier Kalender1) !
Hallo,
Bei mir wird auch genau ein Kalender mit der geposteten Zeile eingebunden - bei mir ist es der Kalender mit der ID6
Gruß, Christoph
Hallo Christoph,
mir ist aufgefallen, das ab und an immer wieder mal alte (vergangene) Termine angezeigt bekomme.
Ist das bei Dir auch so , oder machst Du hier immer ein set myCalendar update
?
klaus
Ich muß gestehen, ich habe die Einbindung bzw. detailierte Nutzung zur Zeit zurück gestellt zu Gunsten anderer Projekt ...
Gesendet von meinem SM-G900F mit Tapatalk
Hallo Zusammen,
mein Problem mit den alten / vergangenen Terminen wird hier weiter verfolgt:
http://forum.fhem.de/index.php/topic,38658.msg311490.html#msg311490 (http://forum.fhem.de/index.php/topic,38658.msg311490.html#msg311490)
kvo1
Hallo allerseits,
hat die Kalenderabfrage schon jemand mit Owncloud 8 erfolgreich genutzt?
Ich habe gerade mit meiner 8.04 leider auch nur ein STATE = no data.
Gruß
Wolfgang
Zitat von: Kruemel am 03 September 2015, 11:22:52
Hallo allerseits,
hat die Kalenderabfrage schon jemand mit Owncloud 8 erfolgreich genutzt?
Ich habe gerade mit meiner 8.04 leider auch nur ein STATE = no data.
Gruß
Wolfgang
Ja, läuft schon ne ganze Weile mit oc8 .
Kvo1
ok, danke. Dann muss ich mal mein System untersuchen. Ich vermute im Moment ein Thema mit der Namensauflösung auf der OC-Seite. Ggf. mit SSL.
Gruß
Wolfgang
Hallo, ich habe jetzmal ssl disabled um das als Fehlerquelle erstmal auszuschliessen. Jetzt kann ich auf meinem pi in der Konsole den oben beschriebenen get absetzen, und bekomme eine Datei mit Kalenderdaten.
In FHEM stehtder STATE leder noch auf "no data".
Im Logfile bekomme ich folgende Meldung: Calendar Bereitschaftskalender: Could not retrieve file at URL. <hidden>: Select timeout/error:
Kann mir hier jemand weiterhelfen.
Vielen Dank.
Gruß
Wolfgang
wie sehen den Deine DEF´s aus !?
define Bereitschaftskalender Calendar ical url http://<user>:<pw>@<ip>/remote.php/caldav/calendars/<user>/defaultcalendar?export
ich habe die beiden Versionen im Einsatz
define Kvo1 Calendar ical url http://<user>:<pw>@<ip>/owncloud/remote.php/caldav/calendars/<user>/<kalendername>?export 3600
define Familie Calendar ical url http://<user>:<pw>@<ip>/owncloud/index.php/apps/calendar/export.php?calid=9 3600
Die calid (den ganzen Pfad) bekommtst Du wenn Du auf dem Kalender auf "herunterladen" gehts (mouseover)
Hallo,
schon mal danke. Das es hier mehrere Pfade gibt war mir noch gar nicht bekannt.
Unter Herunterladen habe ich folgendes stehen:
ical url http://<user>:<pw>@<ip>/index.php/apps/calendar/export.php?calid=1 3600
Leider liefert es auch nur ein STATE= no data
Ich schau gleich nochmal in das Log was dort steht.
Gruß
Wolfgang
Halllo,
im Log hat sich durch den neuen Pfad nichts verändert:
2015.09.07 08:27:21.103 1: Calendar Bereitschaftskalender: Could not retrieve file at URL. <hidden>: Select timeout/error:
Gruß
Wolfgang
wo läuft Dein fhem rpi oder Fritzbox ?
Versuch doch mal den Kalender aus der oc zu exportieren und dann die Datei mit dem Kalendermodul zu lesen !
Hallo,
erstmal danke dass du mir hier weiterhilfst.
OC und fhem sind auf dem gleichen rpi.
Die Datei mit dem Kalendermodul lesen. Muss ich mir dann mal ansehen wie das geht.
Gruß
Wolfgang
Zitat von: Kruemel am 07 September 2015, 16:16:44
Hallo,
erstmal danke dass du mir hier weiterhilfst.
OC und fhem sind auf dem gleichen rpi.
Die Datei mit dem Kalendermodul lesen. Muss ich mir dann mal ansehen wie das geht.
Gruß
Wolfgang
Du gehst in die oc auf den Kalender und dort auf "herunterladen" (Pfeil nach unten).
Es wir eine Datei <Name>.ics erzeugt !
Diese in Verzeichnis Deiner Wahl und dann
define muellkalender Calendar ical file /opt/fhem/<Name>.ics 7200
Hallo,
danke. So ging es schneller.
Die Datei habe ich erzeugt und in /opt/fhem gelegt.
Das define wie beschrieben angelegt.
STATE des Defs ist dann = active.
In 5 Readings wird immer die gleiche längere ASCII-Zeichenkette angezeigt.
Muss man die Anzeige noch aufbereiten?
Gruß
Wolfgang
Zitatdanke. So ging es schneller.
Das läuft zumindest das calendar-Modul schon mal ;)
schneller vielleicht, aber elegant ist das nicht, den bei jeder Änderung musst du einen neuen export machen.
ZitatIn 5 Readings wird immer die gleiche längere ASCII-Zeichenkette angezeigt.
Muss man die Anzeige noch aufbereiten?
joooo.. z.b. mit dem Modul "CALVIEW".....
http://forum.fhem.de/index.php/topic,19922.0.html (http://forum.fhem.de/index.php/topic,19922.0.html)
http://fhem.de/commandref.html#CALVIEW (http://fhem.de/commandref.html#CALVIEW)
viel Erfolg