Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS19000935 - Husqvarna Automower Connect API

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • panzaeron
    antwortet
    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...

    Einen Kommentar schreiben:


  • MrIcemanLE
    antwortet
    Zitat von panzaeron Beitrag anzeigen
    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
    Das ist genau so gewollt. Ohne ID bekommt man alle Mäher ausgegeben um die richtige ID ermitteln zu können.

    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:


  • panzaeron
    antwortet
    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:


  • hartwigm
    antwortet
    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:


  • MrIcemanLE
    antwortet
    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;

    Ich habe aktuell die 0.3.2 des LBS im Testlauf. Hier wird der User nicht bei jedem Abruf eingeloggt, sondern nur bei start des LBS oder bei Bedarf. Der Baustein Läuft jetzt schon ein paar Tage sauber. Ich werde euch die neue Version mal zur Verfügung stellen. Vielleicht läuft es damit besser.

    p.s. Man muss auf der Husqvarna-Seite beide APIs aktivieren, damit sich der LBS den Token holen kann.

    Einen Kommentar schreiben:


  • panzaeron
    antwortet
    Zitat von nemooo Beitrag anzeigen
    panzaeron Habe mich vielleicht nicht richtig ausgedrückt. Habe für beide Abfragen meine Daten verwendet. Das Ergebnis der 2. Abfrage ist allerdings lediglich "data":[]
    Dabei kann ich leider nicht helfen nur "data": [] konnte ich bei mir nicht provozieren...

    Einen Kommentar schreiben:


  • nemooo
    antwortet
    panzaeron 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:


  • panzaeron
    antwortet
    Zitat von nemooo Beitrag anzeigen
    Ich erhalte mit den beiden Codes lediglich
    "data":[]
    Welche beiden Codes meinst du? Die vom vorherigen Post sind natürlich nicht echt, mir ging es nur um ein Beispiel wie es aussehen könnte. Was kommt bei der ersten CURL-Abfrage raus? Wenn die nicht klappt, kann die zweite auch nicht funktionieren...

    Einen Kommentar schreiben:


  • nemooo
    antwortet
    Ein Input von mir...
    Ich erhalte mit den beiden Codes lediglich

    "data":[]

    Einen Kommentar schreiben:


  • panzaeron
    antwortet
    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'
    (Die Keys habe ich natürlich geändert, aber nicht die Länge)

    Einen Kommentar schreiben:


  • hartwigm
    antwortet
    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:


  • panzaeron
    antwortet
    Zitat von hartwigm Beitrag anzeigen
    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'
    Ich habe es nicht ausprobiert, aber ich vermute die Anführungszeichen beim Authorization-Token müssen weggelassen werden.

    Einen Kommentar schreiben:


  • hartwigm
    antwortet
    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 Access Token ist somit : :"eyJ...............ijz2Dzg"

    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:


  • panzaeron
    antwortet
    Zitat von hartwigm Beitrag anzeigen
    Die 2te Abfrage nach der ID des Mowers klappt nicht
    Hast du die beiden Schritte aus meinem Post 54 ausgeführt und auch wirklich den Access Token für die zweite Abfrage verwendet?
    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 anzeigen
    Bzw. wenn ich man manuell eine MowerID setzte
    Woher hast du die MowerID wenn die Abfrage nicht klappt? Die MowerID muss so ähnlich aussehen: 230aa5b6-f211-435a-ad2b-b01e1910ef98

    Einen Kommentar schreiben:


  • hartwigm
    antwortet
    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
    Bzw. wenn ich man manuell eine MowerID setzte

    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:

Lädt...
X