Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS19000935 - Husqvarna Automower Connect API

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

    #76
    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 ~]#
    Gruß Hartwig

    Kommentar


      #77
      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.

      Kommentar


        #78
        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 ?



        Gruß Hartwig

        Kommentar


          #79
          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)

          Kommentar


            #80
            Ein Input von mir...
            Ich erhalte mit den beiden Codes lediglich

            "data":[]

            Kommentar


              #81
              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...

              Kommentar


                #82
                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":[]

                Kommentar


                  #83
                  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...

                  Kommentar


                    #84
                    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.
                    Gruß
                    Stefan

                    Kommentar


                      #85
                      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
                      Gruß Hartwig

                      Kommentar


                        #86
                        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.

                        Kommentar


                          #87
                          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

                          Gruß
                          Stefan

                          Kommentar


                            #88
                            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...

                            Kommentar


                              #89
                              Hab gerade die LBS V3.2 eingespielt und läuft....

                              Kommentar


                                #90
                                Zitat von panzaeron Beitrag anzeigen
                                Limit exceeded bedeutet Du hast die maximal mögliche Anzahl an Abfragen (pro Monat) überschritten. Im Montat sind es nur 10 000 und bedeutet ein geringeres Intervall als 4-5 Minuten ohne Überschreitung des API-Limits ist nicht möglich. Lösung: Zykluszeit erhöhen oder du legst bei Husqvarna noch weitere Apps an und nutzt z. B. einen API-Key pro Woche.
                                Wird es hier noch eine andere Lösung geben? Also auch mit V3.2 hab ich nun das Limit erreicht bei Cycletime 60 sek. Ich finde halt wenn man 4-5 min. nehmen muss oder mehrere API Keys ist das ja totaler Quark mit dem LBS.....
                                Wie ist das bei euch anderen?

                                Kommentar

                                Lädt...
                                X