[73_GardenaSmartBridge, 74_GardenaSmartDevice] - Module für Gardena Smart System

Begonnen von CoolTux, 05 August 2017, 23:17:06

Vorheriges Thema - Nächstes Thema

Robert1963

Hallo,
bei sieht es ähnlich aus. Fehler 429, get token.
Sieht so aus als ob die Umstellung auf "   
https://developer.husqvarnagroup.cloud/" (Siehe Wiki)
erfolgt ist. Hab jedenfalls auch kein Token mehr. Und seit der neuen Abfrage auf der myGardenaBridge Fehler 403 und beim Rasenmäher "send command to gardena cloud",
Das System lief vorher ohne Probleme.
Aber vielleicht ist das auch alles Quatsch und des kommt von ganz woanders ;-).
Wollt nur mitteilen, das ihr nicht allein seit mit dem Problem.
Viel Erfolg.
Rob
Nuc 7i7, Ubuntu 20.04.2 LTS, FS20, Homematic, EnOcean, Hue, Conbee, Fritzbox 6490kd,

Tomk

Habe heute ein Update gemacht und habe das gleiche Problem: kein Token mehr und nun ist Fhem überhaupt nicht mehr erreichbar  :'(

SweetHome54

Gleiches Problem und stundenlang nach dem Übeltäter gesucht, da ich zuerst ein anderes Modul in Verdacht hatte. Freezemon gab Aufschluss. Die Gardenabridge mit disable deaktiviert und alles läuft wieder wie gewohnt. Eine Umstellung auf due neue API url brachte leider auch keinen Erfolg.

BOFH

Hey
Schau mir das am Dienstag mal an.
Auf die husqvana api umschwenken wäre mal eine Idee für ein GardenaModul 2.0 ^^
Den plant Anteil find ich auch interessant bin aus Zeit gründen da leider auch noch nicht groß weiter außer skel Code.

Also vl schaff ich das morgen aber tendiere eher auf den Dienstag für ein fix gehts dann via extra source erst mal bis es ins offizielle fhem eingespielt wird. Meld mich dann gern :)
RasPi 4
ZWave.me ZME_UZB (Fibaro Auge Gen.2)/ HM-USB2 (Thermostat | Hutschienen Relais | 1-/2fach Schalter) / Enigma2 / PhilipsTV / Philips HUE (GO|Bulb|Stripe (plus)) / Somfy IO Rollos / BOSCH HSG636XS6 / SONOS (P1, P3, P5 2.Gen, SUB, Bar)

UliM

Moin allerseits,
auch ich bin von dem Problem betroffen.

Am 18.05. um 12:08 hat die Anmeldung noch funktioniert:
2024.05.18 12:09:35.242 3: GardenaSmartBridge (ga_GardenaSmartBridge) - send credentials to fetch Token and locationId
2024.05.18 12:09:38.890 3: GardenaSmartBridge (ga_GardenaSmartBridge) - fetch locations id
2024.05.18 12:09:39.884 3: GardenaSmartBridge (ga_GardenaSmartBridge) - processed locations id.

Am 18.05. 13:50 dann nicht mehr:
2024.05.18 13:50:21.006 3: GardenaSmartBridge (ga_GardenaSmartBridge) - defined GardenaSmartBridge
2024.05.18 13:50:29.224 3: GardenaSmartBridge (ga_GardenaSmartBridge) - send credentials to fetch Token and locationId
2024.05.18 13:50:37.514 3: GardenaSmartBridge (ga_GardenaSmartBridge) - send credentials to fetch Token and locationId
2024.05.18 13:50:42.697 3: GardenaSmartBridge (ga_GardenaSmartBridge) - send credentials to fetch Token and locationId
2024.05.18 13:50:47.881 3: GardenaSmartBridge (ga_GardenaSmartBridge) - send credentials to fetch Token and locationId
2024.05.18 13:50:53.798 3: GardenaSmartBridge (ga_GardenaSmartBridge) - send credentials to fetch Token and locationId
2024.05.18 13:50:58.970 3: GardenaSmartBridge (ga_GardenaSmartBridge) - send credentials to fetch Token and locationId
2024.05.18 13:51:04.152 3: GardenaSmartBridge (ga_GardenaSmartBridge) - send credentials to fetch Token and locationId
2024.05.18 13:51:09.334 3: GardenaSmartBridge (ga_GardenaSmartBridge) - send credentials to fetch Token and locationId
2024.05.18 13:51:14.517 3: GardenaSmartBridge (ga_GardenaSmartBridge) - send credentials to fetch Token and locationId
2024.05.18 13:51:19.642 3: GardenaSmartBridge (ga_GardenaSmartBridge) - send credentials to fetch Token and locationId
2024.05.18 13:51:24.817 3: GardenaSmartBridge (ga_GardenaSmartBridge) - send credentials to fetch Token and locationId
2024.05.18 13:51:29.938 3: GardenaSmartBridge (ga_GardenaSmartBridge) - send credentials to fetch Token and locationId

Bis ich's bemerkt hab, hat das gute Stück wohl über 30000 mal versucht sich anzumelden.

disable und hochsetzen des Intervalls haben die Flut der Anmeldeversuche nicht eindämmen können:
2024.05.18 16:27:44.172 3: GardenaSmartBridge (ga_GardenaSmartBridge) - send credentials to fetch Token and locationId
2024.05.18 16:27:44.579 3: GardenaSmartBridge (ga_GardenaSmartBridge) - send credentials to fetch Token and locationId
2024.05.18 16:29:02.788 3: GardenaSmartBridge (ga_GardenaSmartBridge) - send credentials to fetch Token and locationId
2024.05.18 16:29:02.804 3: GardenaSmartBridge (ga_GardenaSmartBridge) - send credentials to fetch Token and locationId
2024.05.18 16:29:03.384 3: GardenaSmartBridge (ga_GardenaSmartBridge) - disabled
2024.05.18 16:29:03.484 3: GardenaSmartBridge (ga_GardenaSmartBridge) - send credentials to fetch Token and locationId
2024.05.18 16:29:03.501 3: GardenaSmartBridge (ga_GardenaSmartBridge) - send credentials to fetch Token and locationId
2024.05.18 16:31:00.255 3: GardenaSmartBridge (ga_GardenaSmartBridge) - send credentials to fetch Token and locationId

2024.05.18 20:28:05.543 3: GardenaSmartBridge (ga_GardenaSmartBridge) - send credentials to fetch Token and locationId
2024.05.18 20:28:05.588 3: GardenaSmartBridge (ga_GardenaSmartBridge) - send credentials to fetch Token and locationId
2024.05.18 20:28:41.736 3: GardenaSmartBridge (ga_GardenaSmartBridge) - send credentials to fetch Token and locationId
2024.05.18 20:28:43.429 3: GardenaSmartBridge (ga_GardenaSmartBridge) - set interval: 1000000
2024.05.18 20:28:46.847 3: GardenaSmartBridge (ga_GardenaSmartBridge) - send credentials to fetch Token and locationId
2024.05.18 20:30:25.227 3: GardenaSmartBridge (ga_GardenaSmartBridge) - send credentials to fetch Token and locationId
2024.05.18 20:30:25.259 3: GardenaSmartBridge (ga_GardenaSmartBridge) - send credentials to fetch Token and locationId
Hab letztendlich das GardenaSmartBridge-Device gelöscht.

An BOFH hätte ich daher zwei höfliche Bitten:
- könntest Du das Attribut "disabled" bitte auch für die Account-Anmeldung berücksichtigen, so dass -wenn ich es bemerke- nach Setzen des Attributs disabled 1 keine weiteren Anmeldeversuche mehr unternommen werden
- Aus Rücksicht auf Gardena vielleicht nen Mechanismus einbauen, dass nach mehr als 5 Anmeldeversuchen innerhalb 2 Minuten das Attribut disabled automatisch gesetzt wird, mit ne Fehlermeldung dass wohl etwas mit dem Gardena-Server oder den Benutzer-Anmeldedaten nicht stimmt.


Zugang per App funktioniert noch, aus der App heraus lassen sich auch alle an der Bridge hängenden Geräte weiterhin steuern.

Hab nachgeschaut in meinem account unter https://smart.gardena.com, dort erscheint unter "Einstellungen" die Info, dass der (API)-Zugang gesperrt ist.
Du darfst diesen Dateianhang nicht ansehen.

Hatte ne ähnliche Situation schonmal, damals war der Zugang nach ner guten Stunde wieder freigeschaltet. Diesmal nicht.


Bin gespannt wie's nun weitergeht - zumal ich ja offenbar nicht der einzige Betroffene bin  :o

Mir fehlen meine Garten-logs  ;D

Viele Grüße und schon vorab herzlichen Dank für's Kümmern,
Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

BOFH

Also das disable problem sehe ich auch tatsächlich als "eingeschlichen" ... das ging mal , hilft jetzt akut auch nicht weiter.
Nach setzen des Attributes und neustart von fhem ist das modul dann auch aus. der Interne Timer scheint nicht gelöscht zu werden, so dass das abfragen dann ein einem loop endet.

Ansonsten schauen ich wie gesagt am Dienstag nach. eher schaff ich das nicht. vom post request für den token und das absetzen/-speichern des token ist die procuedure noch intakt. der Post Request an die Gardena Server vom Modul selbst ist für den Token zumindest ok.

Müsst euch leider gedulden.

RasPi 4
ZWave.me ZME_UZB (Fibaro Auge Gen.2)/ HM-USB2 (Thermostat | Hutschienen Relais | 1-/2fach Schalter) / Enigma2 / PhilipsTV / Philips HUE (GO|Bulb|Stripe (plus)) / Somfy IO Rollos / BOSCH HSG636XS6 / SONOS (P1, P3, P5 2.Gen, SUB, Bar)

BOFH

So kleines patch fix

- disable bridge sobald meldung von ratelimit erreicht wurde. meldung sollte unter lastrequesterror stehen
- api "fix".

 update add https://git.cooltux.net/FHEM/mod-GardenaSmart/raw/branch/patch_login_autodisable_api/controls_GardenaSmartDevice.txt

achtet bitte daruf, dass ihr keine anderen controls_GardenaSmartDevice.txt in eurem update pfad habt.

natürlich TESTING !! weiß noch nicht ob das disable eventuell falsch gesetzt wird, oder gar den fhem restart auslöst.
RasPi 4
ZWave.me ZME_UZB (Fibaro Auge Gen.2)/ HM-USB2 (Thermostat | Hutschienen Relais | 1-/2fach Schalter) / Enigma2 / PhilipsTV / Philips HUE (GO|Bulb|Stripe (plus)) / Somfy IO Rollos / BOSCH HSG636XS6 / SONOS (P1, P3, P5 2.Gen, SUB, Bar)

marboj

Nachdem ich die Bridge disabled hatte und nach dem Neustart enabled, erfolgt ein connected und das Log bleibt ruhig.

Komisch
meine FHEM-Konfiguration: Raspberry Pi4, BT-Dongle, CUL868, CeeBee II

tobiwan

Super, vielen Dank !
Patch eingespielt und funktioniert nun bei mir wieder bei zwei verschiedenen Gardena-Devices :-)

Wobei ich nicht ausprobiert hatte, ob es auch ohne Patch wie bei marboj funktioniert. Könnte alles also auch an Gardena gelegen haben !?

m8ichael

Hi,

Zitat von: BOFH am 21 Mai 2024, 10:33:34So kleines patch fix

- disable bridge sobald meldung von ratelimit erreicht wurde. meldung sollte unter lastrequesterror stehen
- api "fix".

update add https://git.cooltux.net/FHEM/mod-GardenaSmart/raw/branch/patch_login_autodisable_api/controls_GardenaSmartDevice.txt
achtet bitte daruf, dass ihr keine anderen controls_GardenaSmartDevice.txt in eurem update pfad habt.

natürlich TESTING !! weiß noch nicht ob das disable eventuell falsch gesetzt wird, oder gar den fhem restart auslöst.

Nachdem ich den Fix eingespielt habe, erscheint bei mir in der Bridge der Status "get token" und nichts weiter passiert. Einzig im Log erscheint eine einzelne Zeile:

GardenaSmartBridge (GardenaBridge) - no Match for processing data
Da passt irgendetwas noch nicht.

Gruß
Michael

marcel_mueller

Bei GARDENA - wo ich als Software Entwickler arbeite - haben wir festgestellt, dass FHEM Integrationen seit gut zwei Tagen eine sehr hohe Last auf unseren API Servern erzeugt. Das heisst, wir sehen pro IP Adresse (!) zwischen 1'000 - 3'000 Anfragen pro Minute. Dies hat dazu geführt, dass generell Anfragen von so einer IP Adresse nicht mehr beantwortet wurden, das heisst, auch die offizielle GARDENA App hat vom selben Standort aus dann nicht mehr funktioniert.

Damit die App wieder läuft, mussten wir den FHEM Verkehr blockieren.

Somit gibt es einige Probleme mit der aktuellen FHEM Integration
- Verwendet nicht die offizielle Integration API: https://developer.husqvarnagroup.cloud. Uns ist bewusst, dass diese aktuell eingeschränkt ist im Vergleich zur internen API.
- Verwendet ein Polling Ansatz um nachzufragen, ob sich irgendwas verändert hat. Dies ist sehr Ressourcen intensiv und darf nicht verwendet werden. Die Integration API unterstützt WebSockets, damit einfach Änderungen gepusht werden können. Die interne API hat nur SSE Support, und dieser ist nicht für das Integration Scenario ausgelegt.
- Bei einem 429 (too many requests) wird kein Backoff ausgelöst, sondern konstant neu versucht. Dies ist allenfalls mit dem veröffentlichten Patch adressiert.

Das Verwenden der Integration API würde zwar die Funktionalität einschränken, dafür aber einen stabilen Betrieb garantieren, welcher nicht exzessiv Ressourcen verbraucht.

Mit besten Grüssen
Marcel

BOFH

Zitat von: m8ichael am 21 Mai 2024, 16:00:18Hi,

Zitat von: BOFH am 21 Mai 2024, 10:33:34So kleines patch fix

- disable bridge sobald meldung von ratelimit erreicht wurde. meldung sollte unter lastrequesterror stehen
- api "fix".

update add https://git.cooltux.net/FHEM/mod-GardenaSmart/raw/branch/patch_login_autodisable_api/controls_GardenaSmartDevice.txt
achtet bitte daruf, dass ihr keine anderen controls_GardenaSmartDevice.txt in eurem update pfad habt.

natürlich TESTING !! weiß noch nicht ob das disable eventuell falsch gesetzt wird, oder gar den fhem restart auslöst.

Nachdem ich den Fix eingespielt habe, erscheint bei mir in der Bridge der Status "get token" und nichts weiter passiert. Einzig im Log erscheint eine einzelne Zeile:

GardenaSmartBridge (GardenaBridge) - no Match for processing data
Da passt irgendetwas noch nicht.

Gruß
Michael


in der tat.   

Request: {"message": "You are not authorized to perform requests on that resource"}
wie marcal_mueller schreibt. Möchte Gardena das abruf der Daten wie es aktuell passieren nicht. Danke für die Info.

Ich weiß nicht bo di 1000 - 3000 anfragen pro Minute ein altlasten Problem ist; lief ja jahre lang so :o ; oder aus der Änderung entstanden ist.

Mal schauen ob der WebSocket sich nicht blockierend in perl umsetzen lässt. grundlegend ist der push hierüber natürlich charmant, da er auch weniger traffic produziert.


erst mal ist das obige patch-branch hinfällig. sorry

 
RasPi 4
ZWave.me ZME_UZB (Fibaro Auge Gen.2)/ HM-USB2 (Thermostat | Hutschienen Relais | 1-/2fach Schalter) / Enigma2 / PhilipsTV / Philips HUE (GO|Bulb|Stripe (plus)) / Somfy IO Rollos / BOSCH HSG636XS6 / SONOS (P1, P3, P5 2.Gen, SUB, Bar)

marcel_mueller

Um dies zu konkretisieren: die 1'000 - 3'000 Requests pro Minuten und IP haben wir als Reaktion auf die 429 Antworten gesehen. Was diese initial ausgelöst haben, müssen wir noch im Detail verstehen, die Flut der Zusatz Anfragen haben aber nicht geholfen, aus dem Zustand rauszukommen ;)

Bei regulärem Betrieb waren die Anfragen pro Minute massiv tiefer - aber immer noch substantiell.

Beste Grüsse
Marcel

BOFH

Zitat von: marcel_mueller am 21 Mai 2024, 16:27:46Um dies zu konkretisieren: die 1'000 - 3'000 Requests pro Minuten und IP haben wir als Reaktion auf die 429 Antworten gesehen. Was diese initial ausgelöst haben, müssen wir noch im Detail verstehen, die Flut der Zusatz Anfragen haben aber nicht geholfen, aus dem Zustand rauszukommen ;)

Bei regulärem Betrieb waren die Anfragen pro Minute massiv tiefer - aber immer noch substantiell.

Beste Grüsse
Marcel

Hey Marcel,

also das fluten wird sich sicher bis zum Modul deaktivieren nicht reduzieren.

Außer die User stellen um auf den Patch Brunch.
Alternativ den eventuell ins fhem Update einfließen lassen.
Die Anzahl der Anfragen könnte man reduzieren indem wir den pull >=180sek stellen. Aktuell ist der default 60.

Vielleicht wird man sich da ja einig?!

"Ausgelöst" wurde es durch die privacy Einstellungen vom Webserver, die Gardena geändert hat. Im obigen patch branch wird diese dem header hinzugefügt.
Nun landet es allerdings erneut wie oben geschrieben im "You are not authorized to perform requests on that resource".

Also wird nun sukzessiv das fhem modul ausgebremst, da die abrufe wie du schreibst ja nicht gewollt sind. Ein "Katz und Maus Spiel" ist hier ja auch nicht zielführend.
Wenn mal Zeit ist stellen wir das modul um. Muss gänzlich dann ja komplett überarbeitet bzw neu geschrieben werden.

Fan bin ich in der Tat von der husqvana api auch nicht; die "Nachteile" hast du ja auch erwähnt.

 
 
RasPi 4
ZWave.me ZME_UZB (Fibaro Auge Gen.2)/ HM-USB2 (Thermostat | Hutschienen Relais | 1-/2fach Schalter) / Enigma2 / PhilipsTV / Philips HUE (GO|Bulb|Stripe (plus)) / Somfy IO Rollos / BOSCH HSG636XS6 / SONOS (P1, P3, P5 2.Gen, SUB, Bar)

Prostetnik

Kurze Rückmeldung: Bei mir tut's mit dem Patch auch wieder...  :)