Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

API nach 2-3 Tage ungültig #18

Closed
diebacke opened this issue Aug 25, 2020 · 31 comments
Closed

API nach 2-3 Tage ungültig #18

diebacke opened this issue Aug 25, 2020 · 31 comments

Comments

@diebacke
Copy link

Hallo jpgorganizer,

toller Adapter. Dankeschön dafür.

Leider habe ich seit Anfang an Probleme mit der Verbindung. Die generierte API funktioniert nur für 2-3 Tage, danach findet keine Kommunikation mehr statt. Der Adapter geht auf gelb. Generiere ich nun eine eine API mit der gleichen Konfiguration, funktioniert es wieder. Das Problem wiederholt sich im beschriebenen.

Freue mich auf Hilfe.

Mein Log im Anhang.
iobroker.2020-08-25.webarchive.zip

Vielen Dank im Voraus.

Grüße,
Stefan

@jpgorganizer
Copy link
Owner

Hi,
wenn es wirklich an dem API Key liegt, dann kann ich nichts machen. Melde das doch mal bei Gardena.

Das Zipfile ist unbrauchbar.

VG jpgorganizer

@diebacke
Copy link
Author

Danke für die schnelle Antwort.

Ich vermute nicht, dass es an der API liegt. Ich hatte vorher einen anderen Gardena Adapter, da hatte ich diese Probleme nicht. Deiner gefällt mir allerdings besser. :)

Kannst Du bitte doch mal in das Log gucken? Einfach entpacken und im Browser oder Textprogramm öffnen. Alternativ habe ich das Log auch nochmal als PDF angehangen. Leider dann ohne farbliche Markierungen.

Danke und Gruß,
Stefan

iobroker.2020-08-25 2.webarchive.pdf

@StrathCole
Copy link

Ich vermute nicht, dass es an der API liegt. Ich hatte vorher einen anderen Gardena Adapter, da hatte ich diese Probleme nicht. Deiner gefällt mir allerdings besser. :)

Das war dann eine andere API, denke ich. :-) Wüsste keinen Adapter, der die neue API nutzt, außer diesem.

@jpgorganizer
Copy link
Owner

Ich vermute nicht, dass es an der API liegt.

wenn es nicht am API Key liegt, dann würde ein neuer API Key ja nicht helfen. Oder verstehe ich jetzt falsch, was du beschrieben hast?

Zipfile kann ich nicht öffnen
grafik

@StrathCole
Copy link

Übrigens habe ich das Phänomen auch manchmal. Nach einiger Zeit geht plötzlich die Steuerung des Mähers nicht mehr und ich muss einen neuen Key erstellen und eintragen. Ich vermute mal, dass dann aus irgendeinem nicht ersichtlichen Grund ein "Rate-Limit" bei Gardena greift und der Key gesperrt wird. Auch wenn ich nicht mit anderen Quellen die API nutze.

@jpgorganizer
Copy link
Owner

Übrigens habe ich das Phänomen auch manchmal. Nach einiger Zeit geht plötzlich die Steuerung des Mähers nicht mehr und ich muss einen neuen Key erstellen und eintragen. Ich vermute mal, dass dann aus irgendeinem nicht ersichtlichen Grund ein "Rate-Limit" bei Gardena greift und der Key gesperrt wird. Auch wenn ich nicht mit anderen Quellen die API nutze.

das war bei mir noch nie. Ich nutze noch den ersten Key und den habe ich im Januar oder so erzeugt ... Warum sollte das was nützen. Es gibt allerdings ein Security Feature. Da muss man mal nachsehen, ich glaube nach zu vielen Fehlversuchen wird blockiert.
Da könnte man sich ein Szenario zusammenreimen.

@jpgorganizer
Copy link
Owner

https://developer.husqvarnagroup.cloud/apis/GARDENA+smart+system+API#rate-limits

mmh ... da kann ich mir zwar aktuell keinen Reim drauf machen, wo der Adapter diese Limits reißen würde

@StrathCole
Copy link

StrathCole commented Aug 25, 2020

Ich denke bei mir liegt es an

Quota of 3'000 requests per month.

Ich steuere ja komplett mit ioBroker und ohne Gardena App, also auch Zeitpläne mit manuellem Start und Stopp. Es sollten zwar trotzdem keine 3000 requests pro Monat zusammenkommen, aber vielleicht übersehe ich irgendwas. Fehler in meinen Skripten, die zu oft etwas senden bspw.

@StrathCole
Copy link

Heute ist es übrigens wieder so weit:

2020-08-25 15:58:02.295  - info: smartgarden.0 (5894) 3/ ---> Command should be sent to device
2020-08-25 15:58:02.482  - info: smartgarden.0 (5894) 3/ Mower Command failure.
2020-08-25 15:58:02.483  - info: smartgarden.0 (5894) 3/ Mower command failure: response.statusCode/Message=401/Unauthorized

@jpgorganizer
Copy link
Owner

interessant. Gibt es davor oder auch danach eine Meldung, dass die Verbindung unterbrochen wurde?

@jpgorganizer
Copy link
Owner

@StrathCole kannst du mir den Log der letzten 2 Stunden geben?

@StrathCole
Copy link

@StrathCole kannst du mir den Log der letzten 2 Stunden geben?

Ich such dir was raus.

@StrathCole
Copy link

StrathCole commented Aug 25, 2020

Denke, ich hab es gefunden:

2020-08-25 02:14:53.477  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ ---> State change by device
2020-08-25 02:14:53.482  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ state smartgarden.0.LOCATION_xxx-xxx.DEVICE_yyy-yyy.SERVICE_COMMON_yyy-yyy.modelType_value changed: GARDENA smart Mower (ack = true)
2020-08-25 02:14:53.483  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ ---> State change by device
2020-08-25 02:14:53.486  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ state smartgarden.0.LOCATION_xxx-xxx.DEVICE_yyy-yyy.SERVICE_COMMON_yyy-yyy.rfLinkState_value changed: ONLINE (ack = true)
2020-08-25 02:14:53.486  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ ---> State change by device
2020-08-25 02:16:52.717  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 02:18:52.715  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 02:20:52.720  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 02:22:52.720  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 02:24:52.722  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 02:26:52.722  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 02:28:52.723  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 02:30:52.724  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 02:32:52.723  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 02:34:52.722  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 02:36:52.723  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 02:38:52.723  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 02:40:52.724  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 02:42:52.725  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 02:44:52.725  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 02:46:52.726  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 02:48:52.726  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 02:50:52.726  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 02:52:52.730  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 02:54:52.729  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 02:56:52.732  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 02:58:52.733  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 03:00:52.732  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 03:02:52.733  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 03:04:52.734  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 03:06:52.736  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 03:08:52.737  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 03:14:52.703  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ ++ Closing connection. Reason: Too many missed heartbeats.
2020-08-25 03:14:55.153  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ reconnectWithRefreshToken!!!!
2020-08-25 03:15:05.173  - ESC[31merrorESC[39m: smartgarden.0 (5894) Error: getaddrinfo EAI_AGAIN api.authentication.husqvarnagroup.dev api.authentication.husqvarnagroup.dev:443
2020-08-25 03:15:05.174  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ Refresh failure.
2020-08-25 03:15:05.174  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ sgSetState: info.connection value=false ack=true
2020-08-25 03:15:05.174  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ Refresh error=Error: getaddrinfo EAI_AGAIN api.authentication.husqvarnagroup.dev api.authentication.husqvarnag
roup.dev:443
2020-08-25 03:15:05.174  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ Refresh failure/no response.
2020-08-25 03:15:05.189  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ state smartgarden.0.info.connection changed: false (ack = true)
2020-08-25 03:15:05.189  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ ---> State change by device
2020-08-25 03:15:22.707  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_close: ### closed ### close.code=1006 close.reason=
2020-08-25 03:15:22.708  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ sgSetState: info.connection value=false ack=true
2020-08-25 03:15:22.709  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_close: close.code 1006: try reconnectWithRefreshToken
2020-08-25 03:15:22.709  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ reconnectWithRefreshToken!!!!
2020-08-25 03:15:22.710  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ Refresh: refreshtoken undefined
2020-08-25 03:15:22.716  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ state smartgarden.0.info.connection changed: false (ack = true)
2020-08-25 03:15:22.716  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ ---> State change by device
2020-08-25 08:04:47.509  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ state smartgarden.0.LOCATION_xxx-xxx.DEVICE_yyy-yyy.SERVICE_MOWER_yyy-yyy.activity_control_i changed: 23340 (ack = false)
2020-08-25 08:04:47.510  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ ---> Command should be sent to device
2020-08-25 08:04:48.148  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ Mower Command failure.
2020-08-25 08:04:48.148  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ Mower command failure: response.statusCode/Message=401/Unauthorized

@StrathCole
Copy link

StrathCole commented Aug 25, 2020

Anschließend versucht mein Skript dadurch übrigens 1x pro Minute den Wert neu zu setzen (Mäher starten) und dadurch wird vermutlich das Rate Limit auch nie wieder aufgehoben, denn ich hab seitdem durchgehend jede Minute das hier im Log:

2020-08-25 10:33:02.460  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ state smartgarden.0.LOCATION_xxx-xxx.DEVICE_yyy-yyy.SERVICE_MOWER_yyy-yyy.activity_control_i changed: 23340 (ack = false)
2020-08-25 10:33:02.461  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ ---> Command should be sent to device
2020-08-25 10:33:02.605  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ Mower Command failure.
2020-08-25 10:33:02.606  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ Mower command failure: response.statusCode/Message=401/Unauthorized
2020-08-25 10:34:02.475  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ state smartgarden.0.LOCATION_xxx-xxx.DEVICE_yyy-yyy.SERVICE_MOWER_yyy-yyy.activity_control_i changed: 23340 (ack = false)
2020-08-25 10:34:02.475  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ ---> Command should be sent to device
2020-08-25 10:34:02.571  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ Mower Command failure.
2020-08-25 10:34:02.572  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ Mower command failure: response.statusCode/Message=401/Unauthorized
2020-08-25 10:35:02.484  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ state smartgarden.0.LOCATION_xxx-xxx.DEVICE_yyy-yyy.SERVICE_MOWER_yyy-yyy.activity_control_i changed: 23340 (ack = false)

@StrathCole
Copy link

Ggf. ist das hier ein Problem:

2020-08-25 03:15:22.709  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ reconnectWithRefreshToken!!!!
2020-08-25 03:15:22.710  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ Refresh: refreshtoken undefined

@StrathCole
Copy link

Jetzt fährt er erstmal wieder.

@jpgorganizer
Copy link
Owner

jpgorganizer commented Aug 25, 2020

@StrathCole

2020-08-25 03:06:52.736  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 03:08:52.737  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ on_pong: ++ pong'ed ++
2020-08-25 03:14:52.703  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ ++ Closing connection. Reason: Too many missed heartbeats.
2020-08-25 03:14:55.153  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ reconnectWithRefreshToken!!!!
2020-08-25 03:15:05.173  - ESC[31merrorESC[39m: smartgarden.0 (5894) Error: getaddrinfo EAI_AGAIN api.authentication.husqvarnagroup.dev api.authentication.husqvarnagroup.dev:443
2020-08-25 03:15:05.174  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ Refresh failure.
2020-08-25 03:15:05.174  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ sgSetState: info.connection value=false ack=true
2020-08-25 03:15:05.174  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ Refresh error=Error: getaddrinfo EAI_AGAIN api.authentication.husqvarnagroup.dev api.authentication.husqvarnag
roup.dev:443
2020-08-25 03:15:05.174  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ Refresh failure/no response.

hier passiert es, dass von Gardena keine Antwort mehr kommt: too many missed heartbeats
Der Adapter muss die Verbindung aufrecht erhalten. Dazu sendet er alle X sec einen Ping und bekommt einen Pong zurück. X ist per default 150 sec, du hast, wenn ich die Timestamps richtig lese, auf 120 sec gesetzt (???). Falls ja, setz mal zurück auf 150 sec. Am Anfang meiner Adapterentwicklung war die Zeit von 150 sec empirisch ermittelt, da nirgends dokumentiert. Auf meine Anfrage von Gardena wurde diese nun mit 150 sec dokumentiert (vmtl. nehme ich das in einer neuen Version sogar als Parameter raus - mal sehen)

Alles andere sind Folgeprobleme. es bleibt die Frage des WARUM das überhaupt passiert. Aktuell kann ich mir darauf noch keinen wirklichen Reim machen.

Wenn es wirklich die Limits sind, dann stellt sich die Frage welches der beiden möglichen Limits wird gerissen? Und dann warum?
Wenn es die 3000 Requests pro Monat sind, dann sind das 100 Requests am Tag. Mir ist noch nicht klar, was da alles dazu gehört:

  • die Ping's ? - wohl nicht, denn sonst wäre das Limit mit 1 Request pro 15 min ständig und überall gerissen
  • der Connect bzw. Reconnect selbst? - kann sein, nur man muss etwa jede Stunde einen Reconnect machen. Das wären dann schon 24 Requests pro Tag, dazu die Abfrage der Locations nochmals 24 pro Tag -> das wäre schon die Hälfte der durchschnittlich verfügbaren Requests pro Tag .
  • alle anderen Requests wie Mäher starten/stoppen etc. zählen sicher dazu
  • Und wie wird Monat interpretiert? - Kalendermonat oder rollierend 30/31 Tage, ich nehme mal Kalendermonat an. Wenn es der Kalendermonat ist, dann müsste es bei dir das Problem dann eher gegen Monatsende auftauchen und nicht zu Monatsanfang (???)

Fragen über Fragen ... ich werde mal meinen Kanal bei Gardena befragen


zu

2020-08-25 03:15:22.709  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ reconnectWithRefreshToken!!!!
2020-08-25 03:15:22.710  - ESC[32minfoESC[39m: smartgarden.0 (5894) 3/ Refresh: refreshtoken undefined

das ist klar - der Adapter versucht einen Reconnect. der erste Reconnect (ein paar Zeilen davor) geht schon schief und für einen zweiten hat er dann kein refreshtoken.

@StrathCole
Copy link

Fragen über Fragen ... ich werde mal meinen Kanal bei Gardena befragen

Ich denke, es passiert wie folgt:

  • Die Verbindung kriegt einen Timeout, weil aus irgendeinem Grund der Gardena Server die Pings nicht beantwortet
  • Der Re-Connect schlägt fehl
  • Der Adapter hängt im "unconnected" Status fest, denn ein neuer automatischer Refresh nach den ersten zwei Versuchen erfolgt nicht
  • Meine Skripte setzen einen Wert
  • Der Adapter versucht den Befehl an die API zu senden, obwohl er gar nicht verbunden ist -> 401
  • Zu viele 401 -> Rate Limit

@jpgorganizer
Copy link
Owner

@StrathCole
@diebacke

Bitte schaut mal in euren Logfiles, ob ihr einen Fehler 429 darin findet. Sucht bitte einfach nach der Nummer - so häufig wird diese Zahl nicht in den Logs stehen :-)

@StrathCole
Copy link

Nein, sorry. Kein Fehler 429.

@jpgorganizer
Copy link
Owner

jpgorganizer commented Aug 30, 2020

Wenn kein Fehler 429 auftritt, dann bin ich mir nicht so sicher, dass die Limits gerissen werden. Gardena nutzt AWS und da sollte eigentlich dieser Fehler kommen.

Was man auch ausprobieren sollte: wenn tatsächlich die Limits gerissen werden, dann ist der API Key nicht dauerhaft ungültig gesperrt, sondern er wird am nächsten/übernächsten/... Tag wieder funktionieren - eben solange, bis die Limits wieder erreicht sind. Wenn einer von euch die alten Keys nicht gelöscht hat in seinem Account, dann sollten diese wieder funktionieren. Das wäre einen Versuch wert.
Falls das jetzt für alte Keys nicht mehr möglich ist, dann bitte mal beim nächsten Mal prüfen.

Und ich mach gerade ein Monitoring für die Anzahl der Requests. Ich stell euch das dann zur Verfügung. Dann sehen wir, ob ihr tatsächlich an die Limits rankommt.

@jpgorganizer
Copy link
Owner

Version 1.0.2 mit Monitoring Rate Limits ist auf github und npm

siehe auch https://forum.iobroker.net/topic/31289/neuer-adapter-smartgarden-adapter-for-gardena-smart-system/528

@StrathCole
Copy link

Was vielleicht gut wäre, ist, dass du vor Weiterleitung eines Befehls an die API prüfst, ob sie überhaupt noch verbunden ist. Wie in meinem Log gesehen, kriege ich nach dem zweimaligen Verbindungsfehler ja jede Minute durch eine Abfrage einen 401 Fehler. Ich denke, der Adapter sollte in dem Fall gar keine Abfrage mehr an die API senden oder ggf. erst einmal versuchen, die Verbindung erneut aufzubauen (nicht nur Refresh-Token).

Werde die neue Version zeitnah mal installieren.

@diebacke
Copy link
Author

diebacke commented Sep 1, 2020

Von mir auch ein Feedback zum Fehler 429. Leider ist hierzu kein Eintrag im Log vorhanden.

Grüße,
Stefan

@jpgorganizer
Copy link
Owner

Lt. AWS und Gardena sollte aber, sofern ein Limit gerissen wird, der Fehler 429 kommen. Ich bin mir auch nicht so sicher, dass es am Limit liegt, wäre nur eine Erklärung, warum der Key nicht mehr gehen sollte.
Installiert die Version 1.0.2 und beobachtet die Anzahl der Requests. Wenn Ihr Tage habt, von denen Ihr sagt, (viel) mehr habe ich wohl selten, dann kann man diesen Wert ja mal mit 30 oder auch 31 multiplzieren. Wenn man dann in die Nähe von 3000 kommt, dann könnte ich mir es vorstellen, dass die Limits gerissen werden, aber auch nur, wenn man 30 solche Tage hintereinander als realistisch ansieht.
Ich komme da nicht in die Nähe. Ich habe für meine Szenarien mal großzügig zusammengezählt und bin weit weg. Aber klar, möglich ist das schon.

Wenn Ihr meint, dass Ihr eine Aussage treffen könnt, dann bitte um Info. Und auch, wenn euch was anderes auffällt, was evtl. der Grund sein könnte.

VG jpgorganizer

@StrathCole
Copy link

Also ich hab das jetzt etwas beobachtet. Bei mir ist das Problem kein Rate Limit, sondern wirklich das Problem, dass er nach einer Weile irgendwann einen "ping pong" Timeout bekommt, der Refresh dann fehlschlägt und der Adapter danach nicht mehr versucht, sich neu zu verbinden.

Dadurch werden alle nachfolgenden Anfragen mit einem Fehler 401 - unauthorized beantwortet, bis ich ihn stoppe, etwas warte und dann neu starte.

@jpgorganizer
Copy link
Owner

@StrathCole

bis ich ihn stoppe, etwas warte und dann neu starte.

d.h. du erzeugst keinen neuen API-Key?
Dann hatte ich dich bisher falsch verstanden. Ich war der Meinung, dass du, genau wie @diebacke, immer einen neuen API-Key erzeugst/brauchst.

der Refresh dann fehlschlägt und der Adapter danach nicht mehr versucht, sich neu zu verbinden.

ja, das ist sogar absichtlich so gemacht, denn ich will mit dem Adapter nicht spammen. Wenn der Refresh nicht geht, dann hat das einen Grund. Und wenn ich/wir den nicht kennen, dann kann man zwar weiterhin einfach immer wieder einen neuen Connect machen, aber das ist Symptombehandlung und nicht die Ursache behoben.
Ich frage mal meinen Kontakt bei Gardena, ob Sie sich eine Ursache vorstellen können, warum ein Ping nicht beantwortet wird.
Kann es an der Internetverbindung liegen?
Ich habe mir extra einen Zähler für ausbleibende Antworten auf Ping's (sog. Pong) eingebaut. Der steht jetzt seit 2 Wochen auf Null bei zwei laufenden Instanzen des Adapters im Wirkbetrieb.

VG jpgorganizer

@diebacke
Copy link
Author

diebacke commented Sep 6, 2020

Aktuell hatte ich keine Probleme mehr mit der API. Seit einer Woche ist Ruhe. :)
Ich habe mein Mäher Skript neu aufgebaut, so dass so wenig Daten als Anforderung an Gardena gehen, wie möglich. Das heisst, ich habe die Trigger nun so ausgearbeitet, dass diese auch nur noch Triggern und verarbeiten, wie sie sollen. Im vorherigen Skript, konnte es passieren, dass auch während einer Fahrt, ein "fahr los" gesendet wurde.

Ob es das nun war, ... keine Ahnung. Aktuell ist aber, wie gesagt, Ruhe.

Leider hatte ich das Update des Adapters erst nach der Veränderung gemacht, so dass ich dann natürlich auch keinen Fehler 429 bekomme. Aber eventuell hilft diese Info dem ein oder anderen dennoch weiter.

Grüße,
Stefan

@stevie77
Copy link

Falls es irgendwie hilft...ich hab' wohl den Fehler 429 und das Testskript ws_test.py sagte mir, dass ich das Rate Limit gerissen habe, da bei meinem Skript alle 5 min ein Befehl gesendet wurde. Mit neuem Key können meine Skripte nun wieder erfolgreich Steuerbefehle absetzen.

`smartgarden.0 2020-10-10 21:35:00.256 info (2601) 2/ Power Socket command failure: response.statusCode/Message=429/
smartgarden.0 2020-10-10 21:30:00.274 info (2508) 2/ Power Socket command failure: response.statusCode/Message=429/
smartgarden.0 2020-10-10 21:25:00.501 info (32462) 2/ Power Socket command failure: response.statusCode/Message=429/
`

@jpgorganizer
Copy link
Owner

should be resolved with v1.0.3

@x2on
Copy link

x2on commented Jul 21, 2022

Ich habe das Problem leider mit der 2.0.0 auch :(

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants