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

RATE LIMIT EXCEED

für meine homebrewed Hausautomation nutze ich das Viessmann API. Nun ist die Dokumentation ja nicht gerade selbsterklärend. Aber nach vielem "googlen", danke an ander Nutzer die vermutlich das gleiche Problem hatte/haben, kann ich nun mit PHP meine Heizungsdaten lesen und auch meine Heizung steuern.

Was natürlich bei dieser Art Trial & Error Programmierung passiert ist, man erreicht "RATE_LIMIT_EXCEED".
eben durch öfteres trial / errro. Ist zwar nicht schön, weil man wieder warten muss bis man wieder Zugriff hat. Aber gut, das kann man akzeptieren. 

Was ich nicht verstehe ist, gestern bekam ich irgendwann Nachmittags diese Meldung

{
"viErrorId": "req-8ddd3938aefe4a4c8cbe60191659cdf6",
"statusCode": 429,
"errorType": "RATE_LIMIT_EXCEEDED",
"message": "API calls rate limit has been exceeded. Please wait until your limit will renew.",
"extendedPayload": {
"name": "development portal \"XXXXXXXXXXXXXXXXXXX\" daily limit",
"requestCountLimit": 1450,
"clientId": "XXXXXXXXXXXXXXXXXX",
"userId": "XXXXXXXXXXXXXXXXXXXX",
"limitReset": 1644537604622
}
}
Rechne ich 1644537604622 um ergibt das  Fri, 11 Feb 2022 00:00:04 GMT

In der API-Beschreibung steht, dass bei Überschreitung der Abfrage Limits der Zugang für 24 Stunden gesperrt wird. Ich verstehe limitReset als Zeitpunkt an dem die Abfrage wieder freigegeben wird.

Warum erfolgt die Freigabe nun erst am Freitga 00:00 Uhr , wenn Mittochs im Laufe des Nachmittags das Limit überschritten wird ?


Eine bessere Variante wäre, bei Limitüberschreitung immer um 00:00 Uhr des Folgetages die Abfrage wieder freizugeben.


Ich finde die Rate-Limits nicht besonders geglückt.Wieviel 100000e Heizungsbesitzer gibt es denn die 2 x pro Sekunde wissen wollen wie die Kesseltemperatur ist und damit die Viessmann Server überlasten.

Weiter bleibe ich bei meiner Meinung, das was mühsam über das API erreicht werden kann sollte lokal ablaufen. Warum man einen externen Server, um den Status meiner (ich betone meiner) Heizung abzufragen, erschließt sich mir nicht.  Trotzdem möchte ich meine Heizung lokal, ohne externe Server,  abfragen können, wenn es sein muss auch 50 x pro Sekunde, auch wenn das keinen Sinn ergibt. 

Wenn Viessmann an meine Heizungsdaten interessiert ist, eine freundlich Frage an mich und sie können sie gerne haben.

Bleibt die Frage nach der Art und Weise wie die Freigabe nach RATE_LIMIT_EXCEEDED  erfolgt ?

 

1 AKZEPTIERTE LÖSUNG

Akzeptierte Lösungen

danke erstmal für Deine  Antwort ...

 

Ich denke mein Poblem ist gelöst. 

 

So sehen die Abfragen (s.u.) aus meinem PHP script aus.

 

Zunächst wird der Token über die notwendige Autorisierung geholt. Der ist dann rund 120 Minuten gültig

Dann werden wie unten gezeigt alle 2 Minuten (20:10  20:12 20:14) die Daten abgeholt. Nach 2 Stunden ist der Token abgelaufen und es wird wieder ein neuer Token geholt (wie beim ersten Mal) und dann wieder 2 Stunden die Daten usw. usw.

 

Das funktioniert stabil, heute (von 0:00 bis 21:10 waren das rund 600 Calls (Token holen, 2 Stunden lang mit dem Token Daten holen, nach 2 Stundenr wieder neuen Token holen dann wieder Daten holen u.s.w.   u.s.w.)

Das läuft schön automatisch ab. 

 

Also alles ok so.    Trotzdem hätte ich das gerne genau so aber eben ohne Viessmann Server, einfach nur in meinem Haus ...

 

viele Grüße

 

Token holen ...

 

15.02.2022 21:10:03 https://iam.viessmann.com/idp/v2/authorize?client_id=CCCCC&code_challenge=CCCCC&scope=IoT%20User&red...
15.02.2022 21:10:03 https://iam.viessmann.com/idp/v2/token?grant_type=authorization_code&code_verifier=XXXXX&client_id=X...
15.02.2022 20:10:04 https://api.viessmann.com/iot/v1/equipment/installations
15.02.2022 20:10:04 https://api.viessmann.com/iot/v1/equipment/gateways
15.02.2022 20:10:04 https://api.viessmann.com/iot/v1/equipment/installations/XXXX/gateways/XXXX/devices

 

ab jetzt Daten abholen ... alle 2 Minuten bis der Token abläuft

15.02.2022  20.10:05 https://api.viessmann.com/iot/v1/equipment/installations/XXXX/gateways/XXXX/devices/0/features
15.02.2022 20:12:04 https://api.viessmann.com/iot/v1/equipment/installations/XXXX/gateways/XXXX/devices/0/features
15.02.2022 20:14:04 https://api.viessmann.com/iot/v1/equipment/installations/XXXX/gateways/XXXX/devices/0/features

 

u.s.w.

 

 

Lösung in ursprünglichem Beitrag anzeigen

6 ANTWORTEN 6

>>möchte ich meine Heizung lokal, ohne externe Server,  abfragen können,

 

Wenn es dir auf die erweiterte Gewährleistung nicht ankommt , ist das bei den älteren Geräten definitiv möglich.

Bei der E3 Regler Plattform müsste es theoretisch auch gehen.

 

VG 

 

 

eine erweiterte Gewährleistung benötige ich natürlich nicht  im Jahre 12 meines Vitodens 333.

Nun, wie geht der direkte Netzwerkztugriff auf meine Heizung (mit Vitoconnect 100 Opto 1) ? mehr Info erwünscht.

Mit dem Opto-Adapter via USB am Raspberry  geht's auch, aber die Dokumentation welche Daten

vorliegen und wie, ist ja so was von dürftig. Auf Nachfrage gibt es keine Dokumentation für Kunden, obwohl
es diese Dokumnet gibt.  Kein Smart-Home Enthusiast versteht warum das so ist.



Und was ist die E3 Regler Platform ?

 

VG


Hallo,

 

Die neuen Geräte mit E3 Platform haben keine Vitotronic mehr und auch keinen Optolink Anschluss.

 

Auf Git Hub gibt es doch 2 ganz gute Windows Programme mit denen man die verwendeten DP sehen kann

https://github.com/openv/openv/wiki/Windows-Software

Viessdata und vcontrol

 

und es es gibt diese große Tabelle auf Git Hub mit Regler und welche  DP zum Einsatz kommen.

https://github.com/openv/openv/wiki/Adressen

 

Ich habe meinen Raspi nach der Anleitung aufgebaut

http://blog.bubux.de/viessmann-heizung-auslesen/

 

Wenn du etwas brauchst sag Bescheid.

 

VG

 

 

 

 

 

ich schaue es es mir mal an ..... Danke und VG

Hallo @bjanssen ,

 

gerne gehe ich auf deine initialen Frage zum Rate Limit ein.

 

Generell: Wir haben ein Rate Lmit mit gleitendem Zeitfenster. Immer wenn die erste API Anfrage eintrifft, öffnen wir ein Zeitfenster und zählen alle Anfragen in diesem Fenster. Wenn die Anzahl der Anfragen die Limitierung erreicht, blockieren wir alle eingehenden Benutzeranfragen, bis das Zeitfenster endet. Anschließend wird mit der nächsten Anfrage ein neues Zeitfenster geöffnet.

 

Um deinen Fall besser zu nachzuvollziehen, könntest du mir better deinen Nutzernamen und deinen Client nennen (gerne per PN). Sobald wieder das Rate Limit erreicht wird, könntest du eine kurze Info geben, dann können wir das Verhalten auf unserer Seite nachvollziehen.

 

Die von uns angebotene API ist rein Cloud basiert. Um lokal auf die Daten zugreifen zu können, wird seitens Viessmann das Erweiterungsmodul Vitogate angeboten. Mehr Infos zum Vitogate findest du hier: http://www.vitogate.info/

 

Ich hoffe, das hilft dir weiter.

 

Beste Grüße,


Michael

 

danke erstmal für Deine  Antwort ...

 

Ich denke mein Poblem ist gelöst. 

 

So sehen die Abfragen (s.u.) aus meinem PHP script aus.

 

Zunächst wird der Token über die notwendige Autorisierung geholt. Der ist dann rund 120 Minuten gültig

Dann werden wie unten gezeigt alle 2 Minuten (20:10  20:12 20:14) die Daten abgeholt. Nach 2 Stunden ist der Token abgelaufen und es wird wieder ein neuer Token geholt (wie beim ersten Mal) und dann wieder 2 Stunden die Daten usw. usw.

 

Das funktioniert stabil, heute (von 0:00 bis 21:10 waren das rund 600 Calls (Token holen, 2 Stunden lang mit dem Token Daten holen, nach 2 Stundenr wieder neuen Token holen dann wieder Daten holen u.s.w.   u.s.w.)

Das läuft schön automatisch ab. 

 

Also alles ok so.    Trotzdem hätte ich das gerne genau so aber eben ohne Viessmann Server, einfach nur in meinem Haus ...

 

viele Grüße

 

Token holen ...

 

15.02.2022 21:10:03 https://iam.viessmann.com/idp/v2/authorize?client_id=CCCCC&code_challenge=CCCCC&scope=IoT%20User&red...
15.02.2022 21:10:03 https://iam.viessmann.com/idp/v2/token?grant_type=authorization_code&code_verifier=XXXXX&client_id=X...
15.02.2022 20:10:04 https://api.viessmann.com/iot/v1/equipment/installations
15.02.2022 20:10:04 https://api.viessmann.com/iot/v1/equipment/gateways
15.02.2022 20:10:04 https://api.viessmann.com/iot/v1/equipment/installations/XXXX/gateways/XXXX/devices

 

ab jetzt Daten abholen ... alle 2 Minuten bis der Token abläuft

15.02.2022  20.10:05 https://api.viessmann.com/iot/v1/equipment/installations/XXXX/gateways/XXXX/devices/0/features
15.02.2022 20:12:04 https://api.viessmann.com/iot/v1/equipment/installations/XXXX/gateways/XXXX/devices/0/features
15.02.2022 20:14:04 https://api.viessmann.com/iot/v1/equipment/installations/XXXX/gateways/XXXX/devices/0/features

 

u.s.w.