FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Kalendermodule => Thema gestartet von: Migul47 am 26 August 2025, 09:52:50

Titel: Calendar - Error 500 bei URL Abruf, wget funktioniert teilweise
Beitrag von: Migul47 am 26 August 2025, 09:52:50
Hallo,

der Kalenderabruf funktioniert nicht mehr von Microsoft. Aber nicht bei allen URL's. Die Antwort sieht so aus

2025.08.25 07:46:51 4: Calendar Kal_test: Wakeup
2025.08.25 07:46:51 4: Calendar Kal_test: Updating...
2025.08.25 07:46:51 4: Calendar Kal_test: Getting data from URL <hidden>
2025.08.25 07:46:51 1: Calendar Kal_test: retrieval failed with HTTP response code 500
2025.08.25 07:46:51 5: Calendar Kal_test: HTTP response header:
HTTP/1.1 500 Internal Server Error
Cache-Control: no-cache, no-store
Pragma: no-cache
Content-Length: 14677
Content-Type: text/html; charset=utf-8
Expires: -1
Server: Microsoft-IIS/10.0
request-id: 966b5bbe-0c87-4e94-6457-7cef6a12c1bd
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
X-OWA-Error: Microsoft.Exchange.Clients.Owa2.Server.Core.OwaBasicUnsupportedException
X-OWA-Version: 15.20.9052.13
X-FEServer: FR4P281CA0310
X-BEServer: FRWPR07MB10786
X-Content-Type-Options: nosniff
X-Request-URL: https://outlook.live.com/owa/auth/errorfe.aspx?httpCode=500&msg=3673577647&owaError=Microsoft.Exchange.Clients.Owa2.Server.Core.OwaBasicUnsupportedException&owaVer=15.20.9052.13&be=FRWPR07MB10786&ts=134005744114204139&fe=FR4P281CA0310&reqid=&creqid=&cid=&hmac=ZEiIwccpz_Epjr8DvO7WXQftABEbs4NMaZgHRN2g68o.
X-AspNet-Version: 4.0.30319
Alt-Svc: ":443";ma=2592000,h3-29=":443";ma=2592000
X-FEProxyInfo: FR5P281CA0015.DEUP281.PROD.OUTLOOK.COM
X-FEEFZInfo: HHN
X-Powered-By: ASP.NET
Date: Mon, 25 Aug 2025 05:46:51 GMT
Connection: close
2025.08.25 07:46:51 1: Calendar Kal_test: retrieved no or empty data
2025.08.25 07:46:51 4: Calendar Kal_test: Checking times...

Stellen die da etwas um?

wget funktioniert auch nur mit dem Zusatz --user-agent='Mozilla/5.0 (X11; Linux x86_64; rv:86.0) Gecko/20100101 Firefox/86.0'.

Hab's jetzt so gelöst.

sub getCalendar($$){
   my $ret;
   my ($url, $path) = @_; # device and reading to be used
   $ret = system("wget --user-agent='Mozilla/5.0 (X11; Linux x86_64; rv:86.0) Gecko/20100101 Firefox/86.0' --output-document='$path' $url");
return $ret;
}

Bekomme da leider immer einen Eintrag im Logfile. Kann ich das unterbinden?

Danke schon mal für die Hilfe.
Titel: Aw: Calendar - Error 500 bei URL Abruf, wget funktioniert teilweise
Beitrag von: betateilchen am 26 August 2025, 10:31:33
Zu dem Microsoft Problem kann ich nichts sagen, aber den externen Abruf des Kalenders kannst Du grundsätzlich auch mit FHEM Bordmitteln und ohne Systemaufruf von wget bauen.

https://wiki.fhem.de/wiki/HttpUtils

Titel: Aw: Calendar - Error 500 bei URL Abruf, wget funktioniert teilweise
Beitrag von: passibe am 26 August 2025, 11:21:20
Zitat von: Migul47 am 26 August 2025, 09:52:50Bekomme da leider immer einen Eintrag im Logfile. Kann ich das unterbinden?

man wget
[...]
-q
--quiet
Turn off Wget's output.

Falls du nur loggen willst, wenn ein Fehler auftritt, dann lieber cURL nutzen, damit geht das problemlos (bin mir nicht sicher, ob das auch mit wget geht, cURL ist aber sowieso > wget):$ret = system("curl --fail --silent --show-error --user-agent 'Mozilla/5.0 (X11; Linux x86_64; rv:86.0) Gecko/20100101 Firefox/86.0' --output '$path' $url");bzw. kürzer$ret = system("curl -fsS -A 'Mozilla/5.0 (X11; Linux x86_64; rv:86.0) Gecko/20100101 Firefox/86.0' -o '$path' $url");
Titel: Aw: Calendar - Error 500 bei URL Abruf, wget funktioniert teilweise
Beitrag von: tobi925 am 26 August 2025, 15:22:04
Hallo Kollegen,
office.com akzeptiert seit einigen Wochen keine Anfragen ohne oder mit falschem UserAgent im Header mehr.
Ich habe deshalb ein Attribut userAgent eingebaut:

userAgent
Set User-Agent in HTML request header. Needed for example with shared calendars on outlook.office365.com (error 503).
Set to same value as an browser does which can download ics. Example: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0".
You may get an error 500 if string is invalid.
Außerdem gibt es ein neues Reading, in dem der letzte Fehler stehen bleibt. State wird sofort wieder überschrieben.

Vielleicht mag Boris das ja so oder ähnlich übernehmen.



Titel: Aw: Calendar - Error 500 bei URL Abruf, wget funktioniert teilweise
Beitrag von: Dr. Boris Neubert am 28 August 2025, 21:59:00
Boris guckt sich das an.
Titel: Aw: Calendar - Error 500 bei URL Abruf, wget funktioniert teilweise
Beitrag von: Migul47 am 29 August 2025, 20:40:08
Danke für die Hilfe.
Titel: Aw: Calendar - Error 500 bei URL Abruf, wget funktioniert teilweise
Beitrag von: Dr. Boris Neubert am 30 August 2025, 16:41:32
Danke, @tobi925, eine schön gemachte Ergänzung. Habe es so eingecheckt.

Kann morgen früh per Update geholt werden!