Calendar - Error 500 bei URL Abruf, wget funktioniert teilweise

Begonnen von Migul47, 26 August 2025, 09:52:50

Vorheriges Thema - Nächstes Thema

Migul47

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.

betateilchen

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

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

passibe

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");

tobi925

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.




Dr. Boris Neubert

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

Migul47


Dr. Boris Neubert

Danke, @tobi925, eine schön gemachte Ergänzung. Habe es so eingecheckt.

Kann morgen früh per Update geholt werden!
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!