Liebes Viessmann Team,
ich habe seit Freitag 01.12.2023, 2x ViCare Fußboden-Thermostat ZK03838, 2x ViCare Repeater ZK03839, 1x Heizkörper-Thermostat ZK03840 und 12x ViCare Klimasensoren ZK03839 im Betrieb.
Seit dem erhalte ich in meinem iobroker API Adapter:
viessmannapi.0 | 2023-12-04 18:53:21.690 | error | {"viErrorId":"req-112fab3454a04fda96e615a312255b69","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 \"af6f9501-adeb-4294-b224-e94777a47cfa\" daily limit","requestCountLimit":1450,"clientId":"d0b8f5f2f016b3f9306661d8af1fbd1b","userId":"af6f9501-adeb-4294-b224-e94777a47cfa","limitReset":1701734404292}} |
viessmannapi.0 | 2023-12-04 18:53:21.689 | error | Error: Request failed with status code 429 |
viessmannapi.0 | 2023-12-04 18:53:21.689 | error | https://api.viessmann.com/iot/v1/equipment/installations/$installation/gateways/$gateway/devices/$id... |
viessmannapi.0 | 2023-12-04 18:53:21.689 | info | Rate limit reached. Will be reseted next day 02:00 |
Am 29. November waren es noch 2844 API calls, wie auch die ganzen Tage zuvor:
Am 01. Dezember wares es 2922 API calls nach erster ViCare Fußboden-Thermostat installation:
Heute 04. Dezember waren es nur 1466 API calls:
Trotzdem erhalte ich heute wieder ein RATE_LIMIT_EXCEEDED 🙄
In der 12 Monatsübersicht scheine ich auch seit dem September auf einmal viel mehr API requests zu stellen. Obwohl sich die Anzahl der abzufragenden Objekte auf meiner Seite eigentlich nicht geändert hat?
Allerdings habe ich seit 17. August 2023 die neue Vitoconnect OPTO2 in Betrieb und dabei hat sich meine InstallationID von 145943 auf 2295384 und dann nochmal auf letzten endes 2317299 geändert. (Bei 2295384 war die OPTO2 defekt)
Kann es sein, das entweder viel mehr Datapoints hinzugekommen sind oder er immer noch die alten Installations IDs abfragen will, obwohl diese gar nicht mehr existieren?
Vielleicht sollte ich die mal aus meinem iobroker löschen:
ID: 145943 = 8581 Objekte
ID: 2295384 = 2932 Objekte
Kann dies zudem mit der Installation der ViCare Fußboden-Thermostat + Repeater + Klimasensoren zusammenhängen, da ich erst seit dieser Installation das Problem habe und im iobroker eher nichts verändert habe?
Löst jetzt jeder Klimasensor aller 5 Minuten einen API call für Temp & Luftfeuchte aus, was bei mir mit 12x Klimasensoren x2 = 6.912 API calls entspräche?
+ Diverser weiterer Parameter rund um die Einzelraumsteuerung
Meine
Viessmannapi Client ID: d0b8f5f2f016b3f9306661d8af1fbd1b
Kommunikationsmodul ID: 7637415033638231
Update device status in minutes: 5
Update gateway events in minute: 300
Vielen Dank im Vorraus.
Gelöst! Gehe zu Lösung.
Wurde mit Einführung von einer allowlist in der GitHub version jetzt limitert und damit kommt man aktuell nicht mehr über das RATE LIMIT. 👍
Ein Grund für den Ansteig könnten auch die RAW device error messages sein, welche ja täglich bei jeder EVU Sperre (Hinweis C5) reinlaufen und einen neuen Datenpunkt erzeugen, welcher dann sicher immer wieder abgefragt wird.
viessmannapi.0.2317299.0.features.device.messages.errors.raw.properties.entries
...
Könnte man das nicht wie früher in die viessmannapi.0.xxxxxx.events > data 01 - 50 Datenpunkte loggen und dann irgendwann überschreiben:
Mit dem jetzigen Verfahren sammeln sich mit der Zeit unzählige Logeinträge an, welche bei jeder API Abfrage sicher immer auf Aktualität geprüft werden und so einen API Request auslösen.
Zudem, wenn schon ein Request Limit, dann sollte man wenigstens entscheiden können, welche Datenpunkte man Abfragen will welche dann in das Limit Rating einfließen.
Ich glaube ich weiß jetzt warum das API RATE_LIMIT_EXCEEDED zuschlägt.
Durch die Einzelraumsteuerung wurden jetzt diverse Zigbee Devices angelegt mit mehrere Datenpunkten, welche über den iobroker API Adapter immer mit Abgefragt werden
Zum einen unter viessmannapi.0.xxxxxxx.gateways01
Und viessmannapi.0.xxxxxxx.zigbee...
Und Räume bringt auch nochmal eine ganze Latte an Objekten
viessmannapi.0.xxxxxx.RoomControl-1.features.rooms
Wie werde ich das RATE LIMIT jetzt los?
Und nein, ich möchte keine 20€ pro Monat für die Advanced API mit 3000 API calls / Tag zahlen oder auf die Einzelraumsteuerung verzichten, welche mich 1000€ gekostet hat. 🙈
Die 3000 API calls / Tag reichen wahrscheinlich auch nicht. 😁
Wenn man über die Struktur wenigstens die Einzelraumsteuerungsparameter auslesen könnte, wie z.B.:
Aber nein, es muss ja ein Advanced Feature sein 😥
@Customer_Care Immernoch die Frage,
wann wird dieses sinnlose RATE LIMIT entfernt? 🙃
Seit dem in das ViCare Smart Climatic in 09/2023 aktiviert habe (mit einem Themostat angefangen), habe ich einen extremen Anstieg an API transactions gehabt:
Und nun komme ich immer über das 1450 API calls per day Limit 👎
Hi @koeber , vielen Dank für die ausführliche Beschreibung deines Falles!
Ohne das Script zu kennen, das du für das Aufrufen der API verwendest, ist es relativ schwer zu sagen, weshalb du nun das Rate Limit erreichst. Daher solltest du definitiv in Betracht ziehen, diesen Fall auch an die Entwickler des Scripts zu richten.
Unabhängig davon könnte ich mir als einen Grund vorstellen, dass sich mit den Einzelraumkomponenten nun eine ganze Anzahl neuer Devices über die API feststellen lassen. Du kannst gerne einmal folgendes tun: Ruf den API Befehl https://api.viessmann.com/iot/v1/equipment/installations?includeGateways=true auf und schaue, wie viele Devices dort aufgelistet sind. Du kannst für den Aufruf der API gerne unsere Postman Collection nutzen (dort ist es der Befehl "IoT > Equipment > Installations"). Einen Access Token, den du für den Aufruf benötigst, kannst du dir testweise auch im App-Bereich des Developer Portals erstellen.
Warum ist die Anzahl der Devices für die API Calls relevant? Wie gesagt, ich kenne das Script nicht, das du verwendest. Es ist aber möglich, dass das Script über alle Devices iteriert, um dessen Funktionen (Datenpunkte) aufzurufen. Man benötigt nämlich für die Abfrage der Funktionen pro Device einen Aufruf. Dadurch kann es dann sein, dass aufgrund der Anzahl der neuen Devices der Einzelraumkomponenten die Anzahl der Aufrufe deutlich gestiegen ist.
Leider kann ich dir in meinem Beitrag keine Lösung anbieten. Aber vielleicht helfen die Nachforschungen, das Thema mit den Entwicklern des Scripts zu besprechen. Ich hoffe daher trotzdem, dass dir meine Antwort etwas weiter hilft.
Gruß,
Michael
@MichaelHanna,
vielen Dank für deine Antwort.
Anbei der output von installations Abruf.
Ich zähle 35 Gateway Einträge und da kommen demnächst noch 4 weitere Klimasensoren, also zigbee Devices dazu. (In Bestellung 😀 )
Den Entwickler habe ich informiert den ioBroker.viessmannapi Adapter ggf. mit einer Filterfunktion auszustatten, dass er nicht alle Gateways zieht. Siehe dazu Issue: https://github.com/TA2k/ioBroker.viessmannapi/issues/48
Früher ohne aktivierten ViCare Smart Komponenten, hatte ich noch unter 600 API transactions pro Tag:
In aktueller Konstellation sind es knapp 3000 API transactions pro Tag:
Da ist dann aktuell nach 4h Schluss mit Aufzeichnung für den Tag und man erhält eine horizontale Linie 😕
Die Lösung ist recht simple, entfernt das Abfragelimit (RATE LIMIT)!
Sofern ich ohne Advanced API Abo eh keine brauchbaren Informationen aus den Smart climate (Single Room Control) Komponenten bekomme. ☹️
Und selbt ein Advanced API Abo mit 3000 API Calls pro Tag würde wahrscheinlich in meiner aktuellen Installation 8h Aufzeichnung bedeuten, da es nur doppelt so viele API transactions pro Tag sind gegenüber der Basic Free API Variante.
Dieses Limit macht mit steigender Smarter Heizungstechnik keinen Sinn und verursacht nur Probleme.
Steht euch also bitte nicht selber im Weg und entfernt dieses bitte, wenn Ihr schon freundlicherweise eine API anbietet. 🙏
Beste Grüße!
Wurde mit Einführung von einer allowlist in der GitHub version jetzt limitert und damit kommt man aktuell nicht mehr über das RATE LIMIT. 👍