Ankündigung
Einklappen
Keine Ankündigung bisher.
LBS19000935 - Husqvarna Automower Connect API
Einklappen
X
-
OK, verstehe, so ist das gedacht. Man könnte bei den Status-Werten auch immer den ersten Ausgeben, wenn keine ID vorhanden ist. Aber das der json-String alle Mäher enthält ist schon sinnvoll, so kann man ggf. mehrer Mäher auswerten ohne eine neue Abfrage...
-
Zitat von panzaeron Beitrag anzeigenDer LBS funktioniert bei mir auch ohne Angabe der Mower ID, danke für die Implementierung, allerdings werden bei mir außer den JSON-Daten, keine Werte ausgegeben
die Felder werden nur befüllt, wenn eine ID angegeben ist. Zugegeben: Man könnte die Mäher zählen und wenn es nur einer ist (was ja die Regel sein sollte) einfach diesen Mäher ausgeben
Einen Kommentar schreiben:
-
hartwigm freut mich, dass es jetzt funktioniert
MrIcemanLE Der LBS funktioniert bei mir auch ohne Angabe der Mower ID, danke für die Implementierung, allerdings werden bei mir außer den JSON-Daten, keine Werte ausgegeben
Der Status-LBS LBS 19002170 konnte seit kurzem die JSON-Werte nicht mehr richtig dekodieren, dies ist in der neuen Version gefixt.
Einen Kommentar schreiben:
-
mit dem 0.3.2 hat es bei mir sofort funktioniert. Zuvor habe ich auf der Gardena Seite die Anwendung aber gelöscht und nochmals eingerichtet.
Keine Ahnung welches der beiden Aktionen, die Lösung gebracht hat. Aber nun haben ich meinen 435 Awd mal am System.
Danke für Eure Hilfe und den LBS
Einen Kommentar schreiben:
-
Ich muss nochmal nachfragen, warum ihr den Weg über die Kommandozeile geht?
Der LBS sollte eigentlich bei jedem Lauf genau diese Abfragen selber machen. Mit dem Access-Token kann man so direkt nicht viel anfangen.
PHP-Code:function login($username, $password) {
$daten = array();
$daten['client_id'] = $this->xApiKey;
$daten['grant_type'] = 'password';
$daten['username'] = $username;
$daten['password'] = $password;
unset($this->headers);
$this->headers[] = 'Content-Type: application/x-www-form-urlencoded';
array_map('urlencode', $daten);
$result = $this->executeRESTCall('POST', 'https://api.authentication.husqvarnagroup.dev/v1/oauth2/token', $this->headers, $daten);
$json = json_decode($result);
if ($json === null && json_last_error() !== JSON_ERROR_NONE) {
return "Decode failed: ".json_last_error_msg();
}
if (!property_exists($json, 'access_token')) {
return $result;
}
$this->token = $json->access_token;
unset($this->headers);
$this->headers[] = 'Authorization: Bearer ' . $json->access_token;
$this->headers[] = 'Authorization-Provider: husqvarna';
$this->headers[] = 'X-Api-Key: ' . $this->xApiKey;
return true;
}
p.s. Man muss auf der Husqvarna-Seite beide APIs aktivieren, damit sich der LBS den Token holen kann.
Einen Kommentar schreiben:
-
Zitat von nemooo Beitrag anzeigenpanzaeron Habe mich vielleicht nicht richtig ausgedrückt. Habe für beide Abfragen meine Daten verwendet. Das Ergebnis der 2. Abfrage ist allerdings lediglich "data":[]
Einen Kommentar schreiben:
-
Zitat von nemooo Beitrag anzeigenIch erhalte mit den beiden Codes lediglich
"data":[]
Einen Kommentar schreiben:
-
Ein Input von mir...
Ich erhalte mit den beiden Codes lediglich
"data":[]
Einen Kommentar schreiben:
-
Ja der Token ist sehr lang. Leider ich habe keine Idee mehr warum es nicht funktioniert. Ich habe es auch selbst nochmal getestet und es hat mit dieser Abfrage funktioniert:Code:curl -X GET \ https://api.amc.husqvarna.dev/v1/mowers \ -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Iah1c3 F2YXJuYSJ9.eyJqdGkiOiI1Y2ZiMjBjMS02MTBkLTRlMzMtYWV jZi1mYWI1NmQ3MGYxNWIiLCJpc3MiOiJodXNxdmFybmEiLCJyb 2xlcyI6W10sImdyb3VwcyI6WyJhbWMiLCJkZXZlbG9wZXItcG9 ydGFsIl0sInNjb3BlcyI6WyJpYW06cmVhZCIsImFtYzphcGkiX SwiY2xpZW50X2lkIjoiMjI3NWJmMDYtOWZjNi00YWIyLThmMGU tZDE1OTE5OGJjNGUyIiwidXNlciI6eyJmaXJzdF9uYW1lIjoiQ XhlbCIsImxhc3EfbmFtZSI6Ik90dGVyc3TDpHR0ZXIiLCJjdXN 0b21fYXR0cmlidXRlcyI6e30sImN1c3RvbWVyX2lkIjoiIn0sI mlhdCI6MTY1MTQyOTgxNiwiZXhwIjoxNjUxNTE2MjE2LCJzdWI iOiIxNGMwNTAxYi0wY2Q3LTQ0OGEtYWNkMC02OTk4MTZkMzE3N jAifQ.g8mcKHruGECLIa1HmsA9zQRFKPktVNhtUxW3O4Ggqfj1 eOLKoFsy1ooXWGkRAysdJQ3YgkQE2fFJP18E3ntYstMNIdQKz5 ZxTtZoB37AvZZPKuuzfKOo9rH9_DkzIa7K4iXkg8R7chL1EQ5G N2hBISlH6ASTjHj_NVZLe3WUxOibC4Db1N4xNk6rqUCau-kk9RMAL8mIblgnhhWUZXvCgZbo6lSGrKHC9xxycY8h07uqQDuf 61gX6Mpm7qQP7klkneozQENx5pBLlJUI2HXIioVO83-vrKk087LPgDbM-8Lnkw6SPoUHkAf8QLHv6RuAPeukaUQ6puqUeS3Chq1-dQ' \ -H 'Authorization-Provider: husqvarna' \ -H 'Content-Type: application/vnd.api+json' \ -H 'X-Api-Key: cec1ea22-625e-4511-b204-503d9c81b16f'
Einen Kommentar schreiben:
-
Hatte ich auch schon ohne probiert und eben zur Sicherheit nochmals.
Gleicher Fehler ob der key in "" ist oder ohne.
Dass der Token 2589 Zeichen ist OK ?
Einen Kommentar schreiben:
-
Zitat von hartwigm Beitrag anzeigenDer nächste Aufruf sieht somit so aus:
Code:curl -X GET \ https://api.amc.husqvarna.dev/v1/mowers \ -H 'Authorization: Bearer eyJ...............ijz2Dzg' \ -H 'Authorization-Provider: husqvarna' \ -H 'Content-Type: application/vnd.api+json' \ -H 'X-Api-Key: 55xxx..................ed'
Einen Kommentar schreiben:
-
Ich habe da zwischenzeitlich auch so meine Zweifel , wenn es bei allen Anderen geht.!
Daher mal mein Vorgehen im Detail, manchmal sieht mal ja vor lauter Bäume den Wald nicht.
Vermutlich ein trivialer Fehler!
1.) bei Husquara eine Applikation anlegen - Name: in meinem Fall DualWheel
Die Redirect URI lasse ich leer bzw. steht auf http://localhost:8080
Ich bekomme dann dort einen
Applicatication Key 55xxx..................ed und einen
Application secret: fae.......................43
2.)
curl -X POST -d "grant_type=password&client_id=55xxx.......ed&user name=xxxxx.com&password=Gxxxxxxx" https://api.authentication.husqvarna...1/oauth2/token
Hier bekomme ich Antwort
Code:{"access_token":"eyJ...............ijz2Dzg","scope":"iam:read","expires_in":86399,"refresh_token":"f6634250-....70a61ccff7c8","provider":"husqvarna","user_id":"cda4b1fc-......7c6f","token_type":"Bearer"}[root@edomi ~]#
Der nächste Aufruf sieht somit so aus:
Code:curl -X GET \ https://api.amc.husqvarna.dev/v1/mowers \ -H 'Authorization: Bearer "eyJ...............ijz2Dzg"' \ -H 'Authorization-Provider: husqvarna' \ -H 'Content-Type: application/vnd.api+json' \ -H 'X-Api-Key: 55xxx..................ed'
Als Ergebnis erhalte ich:
Code:{"message":"Forbidden"}[root@edomi ~]#
Einen Kommentar schreiben:
-
Zitat von hartwigm Beitrag anzeigenDie 2te Abfrage nach der ID des Mowers klappt nicht
Denn die Fehlermeldung sagt ja schon aus, dass der Zugriff nicht erlaubt ist und die Autorisierung hierfür ist der Access Token.
Zitat von hartwigm Beitrag anzeigenBzw. wenn ich man manuell eine MowerID setzte
Einen Kommentar schreiben:
-
Ich komme leider bei Einrichten auch nicht weiter.
Wann ich de Linuxsystem die Abfrage nach dem Access Token mache, klappt das noch.
Die 2te Abfrage nach der ID des Mowers klappt nicht
Hier bekomme ich immer
{"message":"Forbidden"}
Das Logfile des LBS liefert:
2022-04-30 08:56:23 417716 58032 debug EXE19000935 [v0.3.1]: Husqvarna Automower Connect Cycle started 2022-04-30 08:56:23 419312 58032 debug EXE19000935 [v0.3.1]: new husqvarna_api 2022-04-30 08:56:23 788639 58032 debug EXE19000935 [v0.3.1]: login husqvarna_api 2022-04-30 08:56:24 097064 58032 debug EXE19000935 [v0.3.1]: list robots 2022-04-30 08:56:24 100158 58032 debug EXE19000935 [v0.3.1]: Husqvarna Automower Connect Cycle exit 2022-04-30 08:56:44 201787 58032 debug EXE19000935 [v0.3.1]: Husqvarna Automower Connect Cycle started 2022-04-30 08:56:44 202975 58032 debug EXE19000935 [v0.3.1]: new husqvarna_api 2022-04-30 08:56:44 651288 58032 debug EXE19000935 [v0.3.1]: login husqvarna_api 2022-04-30 08:56:44 917110 58032 debug EXE19000935 [v0.3.1]: list robots 2022-04-30 08:56:44 920289 58032 debug EXE19000935 [v0.3.1]: Husqvarna Automower Connect Cycle exit
2022-04-30 10:10:29 712580 58032 debug EXE19000935 [v0.3.1]: ================ ARRAY/OBJECT START ================ 2022-04-30 10:10:29 712654 58032 debug EXE19000935 [v0.3.1]: stdClass::__set_state(array([LF] 'message' => 'Forbidden',[LF])) 2022-04-30 10:10:29 712707 58032 debug EXE19000935 [v0.3.1]: ================ ARRAY/OBJECT END ================ 2022-04-30 10:10:29 713609 58032 debug EXE19000935 [v0.3.1]: Husqvarna Automower Connect Cycle exit 2022-04-30 10:12:00 116353 58032 debug EXE19000935 [v0.3.1]: Husqvarna Automower Connect Cycle started 2022-04-30 10:12:00 118531 58032 debug EXE19000935 [v0.3.1]: new husqvarna_api 2022-04-30 10:12:00 509632 58032 debug EXE19000935 [v0.3.1]: login husqvarna_api 2022-04-30 10:12:00 774369 58032 debug EXE19000935 [v0.3.1]: query robot 2022-04-30 10:12:00 778311 58032 debug EXE19000935 [v0.3.1]: Fehlerhafter Inhalt 2022-04-30 10:12:00 778456 58032 debug EXE19000935 [v0.3.1]: ================ ARRAY/OBJECT START ================ 2022-04-30 10:12:00 778584 58032 debug EXE19000935 [v0.3.1]: stdClass::__set_state(array([LF] 'message' => 'Forbidden',[LF])) 2022-04-30 10:12:00 778698 58032 debug EXE19000935 [v0.3.1]: ================ ARRAY/OBJECT END ================ 2022-04-30 10:12:00 780838 58032 debug EXE19000935 [v0.3.1]: Husqvarna Automower Connect Cycle exit
Einen Kommentar schreiben:
Einen Kommentar schreiben: