Erledigt : Radicale

Begonnen von Wolfgang Hochweller, 31 Juli 2018, 18:55:28

Vorheriges Thema - Nächstes Thema

Wolfgang Hochweller

Wenn ich bei dem Calendar-Modul einen Radicale-Kalendar angebe, bekomme ich das hier :



2018.07.31 18:51:06 2: Calendar HomeKalendar: error (data not in ICal format; even not gzip data)



Was kann ich tun ?


betateilchen

Einen Kalender verwenden, der dem ical Format entspricht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Wolfgang Hochweller

Guter Versuch, aber keine gute Antwort  :).

Das Problem war nur die fehlende Authentifizierung;
die Fehlermeldung koennte durchaus besser sein.

Dr. Boris Neubert

Die Qualität der Antwort von Udo ist ein Spiegelbild der Qualität der Frage.

Und das Kalendermodul versucht nicht zu verstehen, was zurückkommt, wenn es nicht im ical-Format ist. Daher gibt es auch die beste Fehlermeldung, die möglich ist.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

betateilchen

Zitat von: Dr. Boris Neubert am 31 Juli 2018, 20:32:18
ein Spiegelbild der Qualität der Frage.

schöner hätte ich es nicht formulieren können  8)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Wolfgang Hochweller

Tut mir leid, das kann ich so nicht stehen lassen.
Fakt ist, das gar nichts zurueckkommt.
Da kommt kein falsches oder fehlerhaftes Format zurueck, sondern Radicale lehnt die Anfrage wegen fehlender Rechte ab.
Die Fehlermeldung ist daher die schlechtest moegliche, weil sie, obwohl das Modul das besser weiss, dem User etwas suggeriert, was einfach falsch ist.
Ich wuerde vorschlagen, den Fehlertext anzupassen.

Dr. Boris Neubert

Zitat von: howi42 am 01 August 2018, 21:01:58
Ich wuerde vorschlagen, den Fehlertext anzupassen.

So ein kleines bisschen Log mit Verbose 5 würde dem Entwickler die Spur einer Chance geben, Deinen Vorschlag berücksichtigen zu können.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

betateilchen

Wenn ich einen Kalender mit fehlender/ungültiger Autorisierung einbinde, steht im FHEM Log eine unmissverständliche Fehlermeldung:


2018.08.01 22:03:44 4: Calendar oc_test: Updating...
2018.08.01 22:03:44 4: Calendar oc_test: Getting data from URL <hidden>
2018.08.01 22:03:44 1: Calendar oc_test: retrieval failed with error message <hidden>: wrong authentication
2018.08.01 22:03:44 1: Calendar oc_test: retrieved no or empty data
2018.08.01 22:03:44 4: Calendar oc_test: Checking times...


Was will man denn noch mehr? Dazu braucht es nichtmal ein verbose 5.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

nils_

Zitat von: betateilchen am 01 August 2018, 22:06:08
Wenn ich einen Kalender mit fehlender/ungültiger Autorisierung einbinde, steht im FHEM Log eine unmissverständliche Fehlermeldung:


2018.08.01 22:03:44 4: Calendar oc_test: Updating...
2018.08.01 22:03:44 4: Calendar oc_test: Getting data from URL <hidden>
2018.08.01 22:03:44 1: Calendar oc_test: retrieval failed with error message <hidden>: wrong authentication
2018.08.01 22:03:44 1: Calendar oc_test: retrieved no or empty data
2018.08.01 22:03:44 4: Calendar oc_test: Checking times...


Was will man denn noch mehr? Dazu braucht es nichtmal ein verbose 5.

stimmt, da passt das soweit....

nur mal zum vergleichen:
rufst du eine URL ab oder eine Datei?? :) -> Betateilchen: URL, howi: ??


ich weiß bei einer Datei macht Autorisierung keinen sinn, aber keine Ahnung wie der Server da was auch immer ausliefert.  ::)
viele Wege in FHEM es gibt!

Wolfgang Hochweller

Bei Verboselevel 3 kommt nur obige Fehlermeldung, nichts von fehlenden Rechten, scheint wohl abhaengig vom Server zu sein.

Ich vergesse zu oft, dass man auch mal den Verboselevel aendern kann, aber dann passiert das :


2018.08.02 09:02:18 4: WEB_10.0.0.5_56817 POST /fhem?detail=Kalender&dev.getKalender=Kalender&cmd.getKalender=get&arg.getKalender=events&val.getKalender=format%3Afull&XHR=1&addLinks=1&fw_id=329; BUFLEN:0
2018.08.02 09:02:18 5: Cmd: >get Kalender events format:full<
2018.08.02 09:02:18 4: WEB: /fhem?detail=Kalender&dev.getKalender=Kalender&cmd.getKalender=get&arg.getKalender=events&val.getKalender=format%3Afull&XHR=1&addLinks=1&fw_id=329 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/



Ich finde, das macht es nicht besser, eher noch verwirrender.

Dr. Boris Neubert

@howi42

Bitte setze nur den Loglevel des Calendar-Device und führe dann bitte ein

get Kalender update

aus, um das Log entsprechend zu füllen (natürlich ohne Authentisierung, damit man die Fehlermeldung bei Dir sieht).

Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Wolfgang Hochweller

#11
Ja, das ergibt folgende Eintraege :


2018.08.02 22:18:33 4: Calendar Kalender: Wakeup
2018.08.02 22:18:33 4: Calendar Kalender: Updating...
2018.08.02 22:18:33 4: Calendar Kalender: Getting data from URL <hidden>
2018.08.02 22:18:33 4: Calendar Kalender: parsing data synchronously
2018.08.02 22:18:33 1: PERL WARNING: Use of uninitialized value $ics in split at ./FHEM/57_Calendar.pm line 991.
2018.08.02 22:18:33 2: Calendar Kalender: error (data not in ICal format; even not gzip data)
2018.08.02 22:18:33 4: Calendar Kalender: Checking times...
2018.08.02 22:18:33 4: Calendar Kalender: process ended.
2018.08.02 22:18:49 4: Calendar Kalender: Updating...
2018.08.02 22:18:49 4: Calendar Kalender: Getting data from URL <hidden>
2018.08.02 22:18:49 4: Calendar Kalender: parsing data synchronously
2018.08.02 22:18:49 2: Calendar Kalender: error (data not in ICal format; even not gzip data)
2018.08.02 22:18:49 4: Calendar Kalender: Checking times...
2018.08.02 22:18:49 4: Calendar Kalender: process ended.


Falls es weiterhilft, koennte ich auch einen Kalendar bereitstellen, auf den zugegriffen werden kann.

Dr. Boris Neubert

Hallo,

mich interessiert, was in diesem Fall genau in $ics steht. Es werden nämlich alle bisher denkbaren Fehler bereits abgefangen.

Bitte füge vor Zeile 2547 in 57_Calendar.pm die Zeile

main::Debug ">$ics<";

ein und sende mir den Output erneut. Dort sollte dann eine Zeile DEBUG enthalten sein.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Wolfgang Hochweller

Danke fuer die Muehe !

Ergebnis : 


2018.08.04 12:27:22 4: Calendar Kalender: Updating...
2018.08.04 12:27:22 4: Calendar Kalender: Getting data from URL <hidden>
2018.08.04 12:27:22 1: DEBUG>>Access to the requested resource forbidden.<
2018.08.04 12:27:22 4: Calendar Kalender: parsing data synchronously
2018.08.04 12:27:22 2: Calendar Kalender: error (data not in ICal format; even not gzip data)
2018.08.04 12:27:22 4: Calendar Kalender: Checking times...
2018.08.04 12:27:22 4: Calendar Kalender: process ended.

betateilchen

hab mir grade mal so einen radicale Server aufgesetzt... ist ja ein lustiges Teil  8)

Aber ich bleibe trotzdem lieber bei meiner ownCloud.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: Dr. Boris Neubert am 04 August 2018, 09:44:26
Es werden nämlich alle bisher denkbaren Fehler bereits abgefangen.

Fast alle - bis auf die Möglichkeit, dass die HttpUtils bereits einen Fehler 401 und zusätzlich noch einen Content zurückbekommen und die Fehlermeldung offenbar nicht im Calendar-Modul ankommt.


2018.08.04 13:13:10 5: Cmd: >set ra_test reload<
2018.08.04 13:13:10 4: Calendar ra_test: Updating...
2018.08.04 13:13:10 5: HttpUtils url=<hidden>
2018.08.04 13:13:10 4: Calendar ra_test: Getting data from URL <hidden>
2018.08.04 13:13:10 5: HttpUtils request header:
GET /udo/77ea9cbf-6fe4-86d7-5936-f36e2bfb0673/ HTTP/1.0
Host: xx.xx.xx.xx:5232
User-Agent: fhem

2018.08.04 13:13:10 4: <hidden>: HTTP response code 401
2018.08.04 13:13:10 5: HttpUtils <hidden>: Got data, length: 43
2018.08.04 13:13:10 5: HttpUtils response header:
HTTP/1.0 401 Unauthorized
Date: Sat, 04 Aug 2018 11:13:09 GMT
Server: WSGIServer/0.2 CPython/3.4.2
Content-Type: text/plain; charset=utf-8
WWW-Authenticate: Basic realm="Radicale - Password Required"
Content-Length: 43
2018.08.04 13:13:10 1: DEBUG>>Access to the requested resource forbidden.<
2018.08.04 13:13:10 4: Calendar ra_test: parsing data synchronously
2018.08.04 13:13:10 2: Calendar ra_test: error (data not in ICal format; even not gzip data)
2018.08.04 13:13:10 4: Calendar ra_test: Checking times...
2018.08.04 13:13:10 4: Calendar ra_test: process ended.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Im korrekten Fall sieht das Ganze so aus:


2018.08.04 13:22:35 4: Calendar ra_test: Updating...
2018.08.04 13:22:35 4: Calendar ra_test: Getting data from URL <hidden>
2018.08.04 13:22:35 1: DEBUG>>BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//PYVOBJECT//NONSGML Version 1//EN
X-WR-CALDESC;VALUE=TEXT:Kalender_1
X-WR-CALNAME;VALUE=TEXT:raCal01
END:VCALENDAR
<
2018.08.04 13:22:35 4: Calendar ra_test: parsing data synchronously
2018.08.04 13:22:35 4: Calendar ra_test: merging data
2018.08.04 13:22:35 4: Calendar ra_test: 0 records processed, 0 new, 0 known, 0 modified, 0 changed.
2018.08.04 13:22:35 4: Calendar ra_test: creating calendar events
2018.08.04 13:22:35 4: Calendar ra_test: Checking times...
2018.08.04 13:22:35 4: Calendar ra_test: process ended.


Vielleicht kann man $ics darauf regexen, dass es nur gültig ist, wenn es VCALENDER und/oder VEVENT enthält?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Wolfgang Hochweller

Die Fehlermeldung sieht doch eindeutig aus : Zugriff nicht erlaubt.
Oder habe ich da was uebersehen ?

Was Radicale angeht,  es laeuft eben sehr stabil unter Windows.
OC habe ich schon auf meinem Linuxserver mehrfach probiert, aber nur fuer Kalender und Adressen ist es overkill ( und die Stabilitaet der Community Version ist nicht gerade ueberzeugend ), wobei es mir sehr gut gefallen hat, dass ein Klient schon eingebaut ist.
Baikal funktioniert ebenfalls unter Windows, aber nicht immer fehlerfrei.
Fuer ein Adressbuch ist es der Supergau, wenn mal ein Kontakt weg ist, mal ein Geburtstag verschwindet.

Dr. Boris Neubert

Zitat von: betateilchen am 04 August 2018, 13:19:57
Fast alle - bis auf die Möglichkeit, dass die HttpUtils bereits einen Fehler 401 und zusätzlich noch einen Content zurückbekommen und die Fehlermeldung offenbar nicht im Calendar-Modul ankommt.

Nice.

Ich habe einen Test eingebaut, der außer 200 jeden anderen HTTP Response Code als Fehlerzustand betrachtet. Anbei eine Version zum Testen. im Fehlerfall wird der Fehler mit Level 1 protokolliert und der Header mit Level 5. Außerdem gibt es nach wie vor ein Event "error ..." auf Reading state.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

betateilchen


2018.08.04 20:07:10 1: Calendar ra_test: retrieval failed with HTTP response code 401
2018.08.04 20:07:10 1: Calendar ra_test: retrieved no or empty data


Sieht schonmal gut aus :)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

n8ing4le

Gibt es in diesem Zusammenhang eigentlich die Möglichkeit, Credentials zu übergeben? Ohne Anmeldung gibts bei mir keine Kekse  ;)

hecky456

@howi42: Auch wenn der Thread schon etwas älter ist, welchen Link hast du für deinen radicale Server angegeben? Kannst du mir da etwas auf die Sprünge helfen? Finde leider keine funktionierende Config. Die Links die im Webinterface von radicale angezeigt werden weisen ja nicht direkt auf eine ics-Datei...

Vielen Dank und viele Grüße

fstefan1960

Hallo,
da hänge ich mich gerne mal an: Weiß jemand, wie man mit dem Calendar-Modul auf einen passwortgeschützten radicale-Server zugreifen kann?

Mit einem http://user:passwort@radicale-server.de/.... geht es nicht und auch nicht mit
angehängtem ?user=user&passwd=passwort

:(

Oder welchen eigen gehosteten iCal-Server könnt ihr empfehlen? Habe Owncloud 10 probeinstalliert. Da gibt es nicht mal mehr ein Kalender - Plugin, oder?
FHEM auf PC: CUL868, CUL 443, HM_LAN, JeeLink
FHEM auf Raspi: CUL868
div. LaCrosse Temp/Hum-Sensoren, HM-Heizkörperventile, Schaltaktoren, etc.

Wolfgang Hochweller

#23
Der Zugriff sieht bei mir so aus :



ical url https://user:pass@howi42.loginto.me:5232/howi/bc9e5425-ba8d-66aa-762e-cd13c150a9be/ 3600



Das entspricht dem, was Radicale als Link angibt.

betateilchen

Zitat von: fstefan1960 am 21 Januar 2019, 20:40:21
Habe Owncloud 10 probeinstalliert. Da gibt es nicht mal mehr ein Kalender - Plugin, oder?

Natürlich gibt es das. Du musst den Kalender nur als Admin aus dem "Market" hinzufügen. Danach ist die Funktionalität für alle User verfügbar.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!