abbrechen
Suchergebnisse werden angezeigt für 
Anzeigen  nur  | Stattdessen suchen nach 
Meintest du: 
Beantwortet! Gehe zur Lösung.

API antwortet plötzlich mit Statuscode 500 an die HomeAssistant Integration

Hallo,

 

ich habe seit vielen Monaten über die vicare Integration die Heizung in meine HomeAssistant Instanz eingebunden.

Seit dem 5. September 5:24 Uhr morgens funktioniert das aber nicht mehr.

 

In den Protokollen sehe ich eine Antwort mit StatusCode 500 "Internal Server Error".

 

Einige requestIDs der Aufrufe:

req-cbc51b3c5e0f4faf861cc4423df79f06

req-92fdca5ab1c9401ea2ca74c52deedf72

req-72454e2cb4844544a9b30a6a5d8c7ee8

 

Ich bitte um Hilfe was das Problem sein könnte. Da das Problem weder in Bugliste der vicare Integration vom HA auftaucht noch hier erwähnt wird, vermute ich ein spezifisches Problem mit meinem Account.

1 AKZEPTIERTE LÖSUNG

Akzeptierte Lösungen

Das Problem besteht wohl mit abgelaufenen Tokens und kann in HomeAssistant gelöst werden. Hier steht wie:

https://github.com/home-assistant/core/issues/77050

 

Eine sinnvolle Antwort der API in so einem Fall würde das Debuggen erleichtern.

Lösung in ursprünglichem Beitrag anzeigen

13 ANTWORTEN 13

Hallo @bruberg,

 

besteht das Problem weiterhin? Hast du mal versucht, manuell z.B. über Postman einige Befehle auszuführen um zu schauen, ob es hierüber zum gleichen Fehler kommt?

 

Prüfe bitte auch einmal, ob du nicht über die API Call Limitierung gekommen bist. Du kannst im API Dashboard die Anzahl der Calls für den Monat nachsehen.

 

Gruß,

Michael

Ja, das Problem besteht weiterhin. Ich habe mittlerweile einen neuen API Client eingerichtet.

Es handelt sich um keine API-Limitierung - das würde auch nicht mit einem 500er beantwortet.

Wenn ich die zugrundeliegende PyViCare Bibliothek direkt benutze, dann funktioniert der Zugriff problemlos.

 

Es wäre toll, wenn jemand die oben genannten Request IDs auf das zugrundeliegende Problem überprüfen könnte.

Das muss ein Problem bei Viessman sein.

Seit gestern (9.9.2022) o. vorgestern kann ich auch Heizungsdaten nicht mehr erfassen. Die Authentifizierung klappt nicht mehr ("no rout to host"). Mein PHP-Script lief bis zur Störung einwandfrei und es gab auch kein Limit-Problem. Am PHP-Code wurde nichts, aber auch rein gar nichts geändert.

Mit geling es nicht mehr, weder mit PHP-Script noch mit Postman eine Authehtifizierung durchzuführen.

Auch wenn ich mich wiederhole ...das Ganze über API zu lösen ist ein Krampf, von Anfang an.

Warum muss ich meine eigene Heizung, wenige Meter von mir entfernt, über einen Viessmann-Server abfragen/steuern ?

Warum ist dazu ein aufwändiges Verfahren mit Authentifizierung etc. pp notwendig ?


Weil Viessmann viele API-Calls beantworten muss gibt es ein Limit (verstehe ich sogar) für die Anzahl der Afragen / Tag. Wenn man das Protokoll der USB/Serial Schnittstelle offen legen würde, könnte ich meine Heizung so oft Afragen bis das USB-Kabel glüht.

Über das API lese ich Kiloweise Bytes (von der Heizung über WLAN, über Internet zu Viessmann und wieder zurück auf meinen Computer ... der absolute Irrsinn). Von den vielen Daten interessieren mich nur wenige Parameter und die Pläne (Heizung u. Warmwasser), mehr nicht.


Das Auslesen hat über ein paar Wochen halbwegs stabil funktioniert, ok ... nur seit 2  Tagen geht gar nichts mehr.

Warum mache Sie es nur so kompliziert, wenn es auch einfach geht.

Bitte liebe Viesmänner, legen Sie das USB/Serial Protokoll offen und ich werde den Viessman Server nicht mehr belasten oder überlasten. Mit einem Raspberry PI würde das wunderbar funktionieren ... wenn man das Protokoll kennt. 

 

viele Grüße

Bernhard Janssen Frankfurt

@bruberg @bjanssen danke für die Info. Ich habe die requestIDs an unseren Support weitergegeben um einen tieferen Blick zu werfen.

 

Sobld ich eine Info bekomme werde ich mich nochmal melden.

 

Gruß,

 

Michael

Mein Problem und dass von @bjanssen sind unterschiedlich. "No route to host" steht für ein Verbindungsproblem, dass überall aufgetreten sein kann. Im eigenen Netzwerk, bei der Übermittlung bis hin zum Viessmann Netzwerk.

Ich sehe stattdessen konstant den 500, was bedeutet dass die Verbindung zustande gekommen ist, aber es ein Verarbeitungsfehler auf dem Server gibt.

warum auch immer heute morgen läuft meine Erfassung/Steuerung mit meinem PHP Script wieder ...
Problem ist einfach weg ... es wurde nichts verändert , rein gar nichts ... 

 

Nun , so ist es ab und zu zwischen plus und minus.

Keine weiter Aktion notwendig  ...

 

Danke für die Unterstützung.

Mein Problem besteht weiterhin und wird im Bug-Report für die ViCare Integration auch bereits bestätigt, ist also nicht auf mich begrenzt: https://github.com/home-assistant/core/issues/78183

Da das Problem ohne ein Update oder eine Konfigurationsänderung an meiner HomeAssistant Instanz aufgetreten ist, ist es sehr wahrscheinlich ein Problem mit der Viessmann-API und es wäre schön, wenn sich das jemand anschaut um den Entwicklern dort eine Hilfestellung zu geben, was angepasst werden muss.

 

Es geht hier nicht mehr lange ohne Heizung und ohne die Temperatursteuerung und An/Abschaltung über die API verbrauche ich mehr Gas.

Das Problem besteht wohl mit abgelaufenen Tokens und kann in HomeAssistant gelöst werden. Hier steht wie:

https://github.com/home-assistant/core/issues/77050

 

Eine sinnvolle Antwort der API in so einem Fall würde das Debuggen erleichtern.

Excuse me for answering in English.

I also have the same problems since a while now.

The token is requested fine, but when using the Bearer token within a subsequent request, even with Postman or Insomnia, the first couple of times i get an error 500; afterwards, after a few minutes it works.

Screenshot from 2022-10-31 22-20-06.png

After a few minutes:

Screenshot from 2022-10-31 22-21-36.png

 I think this might be a bug...

@Psychorama could you concretize a bit, this would help us in investigating the issue further. How often (per day) does the error 500 occur? How often (in which frequency) do you call the API. Does this happen for specific API calls, e.g. calling the IoT features of your device or does it also happen when requesting an access token (and how often)?

Thanks!

Regards,

Michael

@MichaelHanna sure!

The calls to retrieve a token work. There is no problem there. I always get a Bearer Token without issues.

 

That token works for 3600 seconds, or one hour. The first few times, up to a minute or so, when using that token right after I requested it, I do a call to get all features of the device, I get an error 500.

 

After those few minutes, every call I do with that token works.

 

Calls are made every 10 minutes.. Every hour requesting the features fail, and are being retried every minute. This is because the new requested token gives an error 500 the first few times.

 

You can reproduce it every time using a just created bearer, and use it to get device features.

 

The problem seems to be present a few days. Before that, this issue did not occur.

@Psychorama Thanks for sharing the detailed explanation! I tried to recreate the behaviour with the explanation, but for my device, no 500 Error occurred when calling IoT functions (device features) the first few minutes after token creation or in general.

Did you test it today? Also, do you have a log file with the requests you did throughout one hour including the response? Also, you could share the gateway serial (via PN) in case there could be an issue for your installation.

Thanks!

Regards,

Michael

@MichaelHanna The calls started to go without issues again around 7am.

I tried to reproduce it myself a couple of times, but this issue seems to be disappeared for now.

I'll give you detailed logging when it starts doing this again.

Thank you for the fast responses!

Top-Lösungsautoren