NEWS
Test Adapter BMW/Mini v4.x.x
-
@lessthanmore soviel muss BMW ja gar nicht geändert haben. "Rate limit is exceeded" klingt ja danach, dass das Limit an Datenabfragen gesenkt worden ist. Eventuell zieht der Adapter auch zu viele Daten. Aber dazu kann ich gar nichts sagen, da ich von Adapterentwicklung keine Ahnung habe.
Es gibt bei einer BMW API ein Limit von 100 request/min, wobei ich nicht weiß ob es die API ist, die wir hier verwenden oder es eine weitere gibt für die man Geld bezahlt:"*3.4 Restrictions
To support intended usage and avoid misusage, the number of calls to BMW CarData is limited to 100 requests per minute and 3rd Party. Please take this into account when developing your 3rd Party application.Whenever this limit is reached, BMW CarData responds with http status 429 – „too many requests“. If you receive this http status, throttle your 3rd Party application.*"
https://bmw-cardata.bmwgroup.com/thirdparty/public/car-data/technical-configuration/api-documentation@JB_Sullivan BMW scheint da eine Möglichkeit zu haben herauszubekommen ob die Abfrage über App oder 3rd party gemacht wird.
Hab gerade die 2.7.0 installiert und kurz danach auch wieder evcc gestartet.
5 minuten lief es bis die API wieder dicht gemacht hat,
Jetzt kommt wieder diese Meldungen, dass das Rate limit erreicht ist.
Das liegt an der Api, dass diese zu macht.Also entweder bekommt man BMW dazu ihre Rate zu erhöhen oder man muss die Adapter und was noch so alles auf die BMW Api zugreift (z.b. evcc) sparsamer machen, was die Requests angeht.
Ich weiß jetzt nicht wie der Adapter programmiert ist. Ob er nur einen Request macht oder mehrere. Da aber die Rate von scheinbar 100/min geknackt wird, scheint da irgendwo das Problem zu sein.bmw.0 2023-12-05 11:21:31.616 info Rate limit is exceeded. Try again in 1 seconds. Retry in 5 seconds bmw.0 2023-12-05 11:21:26.541 info Rate limit is exceeded. Try again in 1 seconds. Retry in 5 seconds bmw.0 2023-12-05 11:17:43.364 warn Out of call volume quota. Quota will be replenished in 00:42:17. bmw.0 2023-12-05 11:17:38.278 info Rate limit is exceeded. Try again in 1 seconds. Retry in 5 seconds bmw.0 2023-12-05 11:17:22.604 info Rate limit is exceeded. Try again in 1 seconds. Retry in 5 seconds bmw.0 2023-12-05 11:16:52.008 warn Out of call volume quota. Quota will be replenished in 00:43:09. bmw.0 2023-12-05 11:16:46.953 info Rate limit is exceeded. Try again in 1 seconds. Retry in 5 seconds bmw.0 2023-12-05 11:16:41.866 info Rate limit is exceeded. Try again in 1 seconds. Retry in 5 seconds bmw.0 2023-12-05 11:16:26.011 info Rate limit is exceeded. Try again in 1 seconds. Retry in 5 seconds -
Bei mir auch.
Meldung kam sofort nach dem restart:bmw.0 2023-12-05 11:31:59.185 error {"statusCode":429,"message":"Rate limit is exceeded. Try again in 1 seconds."} bmw.0 2023-12-05 11:31:59.185 error AxiosError: Request failed with status code 429 bmw.0 2023-12-05 11:31:59.185 error getvehicles v2 failed bmw.0 2023-12-05 11:31:59.051 info Start getting bmw vehicles bmw.0 2023-12-05 11:31:58.412 info starting. Version 2.7.0 (non-npm: TA2k/ioBroker.bmw) in /opt/iobroker/node_modules/iobroker.bmw, node: v18.18.2, js-controller: 5.0.16 -
Bei mir auch.
Meldung kam sofort nach dem restart:bmw.0 2023-12-05 11:31:59.185 error {"statusCode":429,"message":"Rate limit is exceeded. Try again in 1 seconds."} bmw.0 2023-12-05 11:31:59.185 error AxiosError: Request failed with status code 429 bmw.0 2023-12-05 11:31:59.185 error getvehicles v2 failed bmw.0 2023-12-05 11:31:59.051 info Start getting bmw vehicles bmw.0 2023-12-05 11:31:58.412 info starting. Version 2.7.0 (non-npm: TA2k/ioBroker.bmw) in /opt/iobroker/node_modules/iobroker.bmw, node: v18.18.2, js-controller: 5.0.16Bei mir kommt die Fehlermeldung auch schon seit einiger Zeit. Update heute gemacht.
Log vom Start:
starting. Version 2.7.0 (non-npm: TA2k/ioBroker.bmw) in /opt/iobroker/node_modules/iobroker.bmw, node: v18.18.2, js-controller: 5.0.12Leider kommt die Fehlermeldung erneut. Was mir auffällt, dass sie v.a. am Tag kommt, während der Nacht habe ich fast keine solche Meldungen. Da frage ich mich eher ob BMW ihr API resp. Infrastruktur im Griff hat?
-
Bei mir kommt die Fehlermeldung auch schon seit einiger Zeit. Update heute gemacht.
Log vom Start:
starting. Version 2.7.0 (non-npm: TA2k/ioBroker.bmw) in /opt/iobroker/node_modules/iobroker.bmw, node: v18.18.2, js-controller: 5.0.12Leider kommt die Fehlermeldung erneut. Was mir auffällt, dass sie v.a. am Tag kommt, während der Nacht habe ich fast keine solche Meldungen. Da frage ich mich eher ob BMW ihr API resp. Infrastruktur im Griff hat?
-
@tops4u Rate limit is exceeded habe ich jetzt als info. damit man nachvollziehen kann ob der 5sek retry funktioniert wenn ja könnte man es ausblenden.
Für mich ist noch nicht ganz ersichtlich warum es 5s später funktioniertAlso mein Log ist nach wie vor sauber (Intervall=10min). Dabei habe ich gerade einige Kilometer mit meinem F31 zurückgelegt. Und mir fiel dabei ein, dass ich stets nebenbei die App AAIDrive laufen habe, welche ebenfalls über die API zugreift.
Wenn man die Posts hier liest, kann man eigentlich von der Logik her ausschliessen, dass BMW die Zugriffe beschränkt.
Denke die haben zur Zeit tatsächlich Probleme mit der Infrastruktur oder den Ressourcen allgemein. -
@tops4u Rate limit is exceeded habe ich jetzt als info. damit man nachvollziehen kann ob der 5sek retry funktioniert wenn ja könnte man es ausblenden.
Für mich ist noch nicht ganz ersichtlich warum es 5s später funktioniert@tombox als eben nach 2 Std. keine Werte geupdatet wurden, habe ich den Adapter neugestartet. Da hat er wohl drei Versuche unternommen bis es geklappt hat. Werte wurde nun geholt. Ja, komisch warum es dann plötzlich doch geht.
bmw.0 2023-12-05 13:31:22.866 info Rate limit is exceeded. Try again in 1 seconds. Retry in 5 seconds bmw.0 2023-12-05 13:31:17.816 info Rate limit is exceeded. Try again in 1 seconds. Retry in 5 seconds bmw.0 2023-12-05 13:31:12.763 info Rate limit is exceeded. Try again in 1 seconds. Retry in 5 secondsEdit.: log zeigt sich seit einigen Stunden unauffällig. Auto wird geladen und Akku % aktualisiert.
-
@tombox als eben nach 2 Std. keine Werte geupdatet wurden, habe ich den Adapter neugestartet. Da hat er wohl drei Versuche unternommen bis es geklappt hat. Werte wurde nun geholt. Ja, komisch warum es dann plötzlich doch geht.
bmw.0 2023-12-05 13:31:22.866 info Rate limit is exceeded. Try again in 1 seconds. Retry in 5 seconds bmw.0 2023-12-05 13:31:17.816 info Rate limit is exceeded. Try again in 1 seconds. Retry in 5 seconds bmw.0 2023-12-05 13:31:12.763 info Rate limit is exceeded. Try again in 1 seconds. Retry in 5 secondsEdit.: log zeigt sich seit einigen Stunden unauffällig. Auto wird geladen und Akku % aktualisiert.
-
Instanz neu starten, dann ist der Fehler wieder da.
bmw.0 2023-12-06 08:20:52.126 error {"statusCode":429,"message":"Rate limit is exceeded. Try again in 1 seconds."} bmw.0 2023-12-06 08:20:52.126 error AxiosError: Request failed with status code 429 bmw.0 2023-12-06 08:20:52.125 error getvehicles v2 failedbin aktuell auf git 2.7.0.
und Intervall 15 Minuten. -
Instanz neu starten, dann ist der Fehler wieder da.
bmw.0 2023-12-06 08:20:52.126 error {"statusCode":429,"message":"Rate limit is exceeded. Try again in 1 seconds."} bmw.0 2023-12-06 08:20:52.126 error AxiosError: Request failed with status code 429 bmw.0 2023-12-06 08:20:52.125 error getvehicles v2 failedbin aktuell auf git 2.7.0.
und Intervall 15 Minuten.@bahnuhr
Merkwürdig, bei mir funktioniert alles normal, Daten werden zufriedenstellend aktualisiert. Wie viele Lücken es gibt, versuche ich mal zu protokollieren.
Was mir in der MyBMW App auffiel und was auf generelle Probleme schließen lässt, ist, dass man mehrmals auf "Status prüfen" klicken muss, bis der Status dann tatsächlich angezeigt wird. Meldung: Sie sind offline!Edit: Habe mal bissel Protokoll geführt. Sieht recht gut aus, kleine Aussetzer sind kein Problem.
Intervall immer noch 10 min. Version: 2.7.2

-
@bahnuhr
Merkwürdig, bei mir funktioniert alles normal, Daten werden zufriedenstellend aktualisiert. Wie viele Lücken es gibt, versuche ich mal zu protokollieren.
Was mir in der MyBMW App auffiel und was auf generelle Probleme schließen lässt, ist, dass man mehrmals auf "Status prüfen" klicken muss, bis der Status dann tatsächlich angezeigt wird. Meldung: Sie sind offline!Edit: Habe mal bissel Protokoll geführt. Sieht recht gut aus, kleine Aussetzer sind kein Problem.
Intervall immer noch 10 min. Version: 2.7.2

-
@tombox sagte in Test Adapter BMW/Mini v2.0.0:
auch mit der aktuellen GitHub version
Ja. Ich habe mal die Datenpunkte "costsGroupedByCurrency" für Oktober und November gelöscht. Für Oktober wurden keine neuen DP angelegt, aber für November:

bmw.0 2023-11-15 11:27:55.782 warn State "bmw.0.WMW11DJ0102U95141.chargingSessions.2023-11.costsGroupedByCurrency.~ 4,54 EUR" has no existing object, this might lead to an error in future versions bmw.0 2023-11-15 11:27:55.777 warn Used invalid characters: bmw.0.WMW11DJ0102U95141.chargingSessions.2023-11.costsGroupedByCurrency.~ 4,54 EUR changed to bmw.0.WMW11DJ0102U95141.chargingSessions.2023-11.costsGroupedByCurrency.~ 4_54 EUR
@marc-berg
Hallo. Hat jemand das Problem mit "costsGroupedByCurrency" (siehe Marc Berg 15 Nov 2023, 11:30) gelöst? Bekomme es immer wieder, und zwar seit der letzten Adapter Aktualisierung.
Danke! -
@marc-berg
Hallo. Hat jemand das Problem mit "costsGroupedByCurrency" (siehe Marc Berg 15 Nov 2023, 11:30) gelöst? Bekomme es immer wieder, und zwar seit der letzten Adapter Aktualisierung.
Danke! -
@mike1429 ein debug log via mail wäre hilfreich
tombox2020@gmail.com@tombox
Gerne. Hier z.B.:2023-12-28 11:04:35.136 - warn: host.buanet-iobroker1-Server States 127.0.0.1:47846 Error from InMemDB: Error: The pattern "bmw.0.xxxxxxxxx.chargingSessions.2023-11.costsGroupedByCurrency.~ 24,78 EUR" is not a valid ID pattern
at Object.pattern2RegEx (/opt/iobroker/node_modules/@iobroker/js-controller-common/src/lib/common/tools.ts:2470:15)
at StatesInMemoryServer.handleSubscribe (/opt/iobroker/node_modules/@iobroker/db-base/src/lib/inMemFileDB.ts:324:59)
at StatesInMemoryServer._subscribeForClient (/opt/iobroker/node_modules/@iobroker/db-states-file/src/lib/states/statesInMemFileDB.js:258:14)
at RedisHandler. (/opt/iobroker/node_modules/@iobroker/db-states-jsonl/src/lib/states/statesInMemServerRedis.js:395:26)
at RedisHandler.emit (node:events:513:28)
at RedisHandler.emit (node:domain:489:12)
at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/db-base/src/lib/redisHandler.ts:209:37)
at processImmediate (node:internal/timers:466:21)2023-12-28 11:04:35.141 - error: admin.0 (26310) Cannot subscribe "bmw.0.xxxxxxxxx.chargingSessions.2023-11.costsGroupedByCurrency.~ 24,78 EUR": Error The pattern "bmw.0.xxxxxxxxx.chargingSessions.2023-11.costsGroupedByCurrency.~ 24,78 EUR" is not a valid ID pattern

Es kam auch mal die Meldung, dass "," durch "_" ersetzt wird, also aus 24,78 wurde dann 24_78
Danke!
-
@tombox
Gerne. Hier z.B.:2023-12-28 11:04:35.136 - warn: host.buanet-iobroker1-Server States 127.0.0.1:47846 Error from InMemDB: Error: The pattern "bmw.0.xxxxxxxxx.chargingSessions.2023-11.costsGroupedByCurrency.~ 24,78 EUR" is not a valid ID pattern
at Object.pattern2RegEx (/opt/iobroker/node_modules/@iobroker/js-controller-common/src/lib/common/tools.ts:2470:15)
at StatesInMemoryServer.handleSubscribe (/opt/iobroker/node_modules/@iobroker/db-base/src/lib/inMemFileDB.ts:324:59)
at StatesInMemoryServer._subscribeForClient (/opt/iobroker/node_modules/@iobroker/db-states-file/src/lib/states/statesInMemFileDB.js:258:14)
at RedisHandler. (/opt/iobroker/node_modules/@iobroker/db-states-jsonl/src/lib/states/statesInMemServerRedis.js:395:26)
at RedisHandler.emit (node:events:513:28)
at RedisHandler.emit (node:domain:489:12)
at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/db-base/src/lib/redisHandler.ts:209:37)
at processImmediate (node:internal/timers:466:21)2023-12-28 11:04:35.141 - error: admin.0 (26310) Cannot subscribe "bmw.0.xxxxxxxxx.chargingSessions.2023-11.costsGroupedByCurrency.~ 24,78 EUR": Error The pattern "bmw.0.xxxxxxxxx.chargingSessions.2023-11.costsGroupedByCurrency.~ 24,78 EUR" is not a valid ID pattern

Es kam auch mal die Meldung, dass "," durch "_" ersetzt wird, also aus 24,78 wurde dann 24_78
Danke!
-
@mike1429 ein debug log via mail wäre hilfreich
tombox2020@gmail.com -
@tombox sagte in Test Adapter BMW/Mini v2.0.0:
bitte mal die GitHub version installieren und schauen ob die charging sessions so besser sind
mit der Version kommen jetzt diese Fehler:
2023-12-30 21:14:02.516 - error: bmw.0 (32525) updateChargingSessionv2 failed 2023-12-30 21:14:02.518 - error: bmw.0 (32525) https://cocoapi.bmwgroup.com/eadrax-chs/v1/charging-sessions?vin=Wxxxx&next_token&date=2023-12-01T00%3A00%3A00.000Z&maxResults=40&include_date_picker=true 2023-12-30 21:14:02.518 - error: bmw.0 (32525) TypeError: data.costsGroupedByCurrency.replace is not a function -
@tombox sagte in Test Adapter BMW/Mini v2.0.0:
bitte mal die GitHub version installieren und schauen ob die charging sessions so besser sind
mit der Version kommen jetzt diese Fehler:
2023-12-30 21:14:02.516 - error: bmw.0 (32525) updateChargingSessionv2 failed 2023-12-30 21:14:02.518 - error: bmw.0 (32525) https://cocoapi.bmwgroup.com/eadrax-chs/v1/charging-sessions?vin=Wxxxx&next_token&date=2023-12-01T00%3A00%3A00.000Z&maxResults=40&include_date_picker=true 2023-12-30 21:14:02.518 - error: bmw.0 (32525) TypeError: data.costsGroupedByCurrency.replace is not a function -
@tombox sagte in Test Adapter BMW/Mini v2.0.0:
nochmal
Eine Fehlermeldung wird nun nicht mehr angezeigt, es wird ein Objekt mit der ID
"_id": "bmw.0.Wxxx.chargingSessions.2023-12.costsGroupedByCurrency.~ 20_65 EUR",angelegt.
