NEWS
Hilfe bei Gardena API
-
Hier noch bissl als Erklärung:
Es ist etwas umständlicher als gedacht. Damit ich überhaupt etwas ausprobieren konnte, mußte ich erstmal die Ventile provisorisch wieder an klemmen, die sind über den Winter ausgebaut. Die sind normaler Weise draußen im Garten, nun provisorisch im Keller, sonst waren die Ventile auch in der Gardena App alle aus gegraut. Noch dazu kommt, das man immer zum einschalten zwei Datenpunkte setzen muß (duration --- die Zeit und von idl auf manuell umschalten) anschließend noch über einen dritten Datenpunkt starten (ein Button). Ausschalten dann mit idl und wieder den Button betätigen. Es ist also nicht nur an/aus, sondern man muß immer eine Laufzeit mitgeben. Außerdem ist es auf 2 Ventile gleichzeitig begrenzt. Will mann, wenn schon zwei Ventile aktiv sind, ein drittes Ventil dazu schalten, dann kommt eine Fehlermeldung in der App, das nur zwei gleichzeitig gehen. Auch die Laufzeit der Bewässerung ist auf 59 Minuten begrenzt, setzt man eine größere Zahl per Blockly/Script, passiert gar nichts, nichtmal eine Fehlermeldung.
Vermutlich braucht man auch alle diese Datenpunkte im Script, was es dann auch nicht leichter macht als im Adapter, deshalb werde ich erstmal beim Adapter bleiben.
Hier mal so ein Datenpunkt vom Adapter (bis man in dem was findet....)
Mein Blockly zum schalten über iQontrol (oder auch VIS) überarbeite ich gerade und stelle es dann gern noch hier rein.
-
@J-A-R-V-I-S
@dslraser
Moin, ich habe das Thema mal aufgegriffen. Gleich vorweg.... Ich bin absolut nicht fit in Javascript. Es ist mehr so try and error . Deswegen komme ich auch nicht weiter und hoffe vielleicht etwas Hilfe zu bekommen.
Hier mein Skript um ein Token zu erhalten. Die Logs geben innerhalb des Reqest den Token aus (Token1) aber ich schaffe es nicht den Token am Ende der Var token2 zu übergeben. wie bekomme ich am besten den ganzen body aus dem request heraus?Viele Grüße
const request = require('request'); const URLSearchParams = require('url'); var temp1 = "" function login() { let params = "client_id=xxxxxx-6ffe-xxxx-87cd-7ea8xxxxxxx&grant_type=password&username=xxxxxxx%40xxx.xxx&password=xxxxxxxx" const options = { url: 'https://api.authentication.husqvarnagroup.dev/v1/oauth2/token', method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'accept': 'application/json' }, body: params } request(options, (err, response, body) => { log('body: ' + JSON.stringify(body)); const obj = JSON.parse(body); let token = obj.access_token; log('Token1: ' + obj.access_token); }); } let token2 = login(); log('token2: ' + token2)
-
@intruder7
Es gibt jetzt einen Adapter. Schon gesehen, oder soll es ein Script sein ? -
@dslraser
den hab ich schon gesehen.... nur leider ist er nicht für husqvarna -
@intruder7 sagte in Hilfe bei Gardena API:
@dslraser
den hab ich schon gesehen.... nur leider ist er nicht für husqvarnahaben die noch eine andere (eigene) api oder Anmeldung ?
-
@dslraser
die haben eine eigene api
-
@intruder7
hast Du mal versucht trotzdem den Adapter zu verwenden ? Nur eben mit den Anmelde-API Seiten von denen. Bis auf die Adressen sieht das nach der gleichen Art und Weise aus...
(also api key erstellen und verbinden und dann den Adapter) -
@dslraser jetzt mal getestet. er verbindet nicht. adapter bleibt gelb
smartgarden.0 2020-04-10 22:04:22.715 error (21406) Error: getlocations: no data smartgarden.0 2020-04-10 22:04:22.515 info (21406) get_locations ... smartgarden.0 2020-04-10 22:04:22.511 info (21406) sgSetState: info.connection true smartgarden.0 2020-04-10 22:04:22.508 info (21406) Connection: successful: response.statusCode / statusMessage=200 / OK smartgarden.0 2020-04-10 22:04:21.985 info (21406) Gardena Smart System Service hosts at: smart_host: https://api.amc.husqvarna.dev authentication_host: https://api.authentication.husqvarnagroup.dev smartgarden.0 2020-04-10 22:04:21.981 info (21406) sgSetState: info.revision Main: 2012 / API: 2010 smartgarden.0 2020-04-10 22:04:21.894 info (21406) starting. Version 0.4.2 in /opt/iobroker/node_modules/iobroker.smartgarden, node: v10.19.0
-
@intruder7 sagte in Hilfe bei Gardena API:
smartgarden.0 2020-04-10 22:04:22.511 info (21406) sgSetState: info.connection true
verbunden wird er....
smartgarden.0 2020-04-10 22:04:22.511 info (21406) sgSetState: info.connection true
aber es werden keine Geräte abgerufen.
smartgarden.0 2020-04-10 22:04:22.715 error (21406) Error: getlocations: no data
Hast Du die API im dev account auch verbunden mit Deinem Mower und den richtigen Key ?
-
@dslraser
hat er gemacht
hab aber die husqvarna api eingetragen im adapter -
@intruder7 sagte in Hilfe bei Gardena API:
@dslraser
die haben eine eigene api
@jpgorganizer
Kannst Du sagen ob es auch mit Deinem Adapter funktionieren könnte ? -
@dslraser
der Connect ist identisch, das wird gehen, der Rest läuft vmtl. anders, sonst hätte es keine separate API gegeben Ich habe mir das nie angesehen, da ich keinen Huski habe.VG
jpgorganizer -
@intruder7
Dann bin ich leider auch raus... -
@jpgorganizer
das dachte ich mir schon. aber vielleicht kannst du mir sagen wie ich aus meinem skript (siehe weiter oben) das token weiterverarbeiten kann.@dslraser danke dir
-
@intruder7 sagte in Hilfe bei Gardena API:
@jpgorganizer
das dachte ich mir schon. aber vielleicht kannst du mir sagen wie ich aus meinem skript (siehe weiter oben) das token weiterverarbeiten kann. Und du musst aufpassen, die Token haben eine begrenzte Lebenszeit, dann musst du erneuern.das Token wirst du in jedem weiteren Aufruf der API brauchen. Da hat es doch Beispiele.
https://developer.1689.cloud/apis/Automower+Connect+API#/readmeIch kann nur empfehlen, erst mal mit einem einfachen Script anzufangen. Nix mit ioBroker oder so. Nur ein Script, evtl. noch nodejs, das muss erst mal laufen, dann kannst du beginnen in ioBroker zu integrieren. Dann weist du nämlich, was geht und was nicht geht. So suchst du dich zu Tode.
VG
jpgorganizer -
-
danke euch.... bin jetzt tatsächlich schon soweit, dass ich die Mäherdaten auslesen kann. jetzt muss ich sie nur strukturiert ablegen.
-
Hi,
zuerst: Ich bin komplett neu in dem Thema ioBroker und nodered.
Aktuell versuche ich mit dem Adapter Zugriff auf meinen Mäher zu bekommen, dies scheitert aber, der Status der Instanz smartgarden bleibt bei gelb stehen:
Verbunden mit Host: Wahr
Lebenszeichen: Wahr
Verbunden mit smartgarden: FalschIm Log habe ich noch folgenden Eintrag gefunden:
(22651) 3/ Connection failure.{"error":"invalid_request","error_description":"Invalid parameter:
client_id
"}Auf der Einstellungsseite der Instanz habe ich die Zugangsdaten mehrfach überprüft und auch mehrfach den API-Key neu generiert und eingetragen.
Hat jemand eine Idee?
Danke
-
@Jörg-Benthien sagte in Hilfe bei Gardena API:
Im Log habe ich noch folgenden Eintrag gefunden:
(22651) 3/ Connection failure.{"error":"invalid_request","error_description":"Invalid parameter:
client_id
"}Auf der Einstellungsseite der Instanz habe ich die Zugangsdaten mehrfach überprüft und auch mehrfach den API-Key neu generiert und eingetragen.
Gib mal bitte etwas mehr vom Logfile; interessant ist meistens das was vor einem Fehler geschieht. Der Fehler weist für mich auf den API-Key. Vergleich den mal.
VG jpgorganizer
-
Hi,
danke für die Hilfe!
Hier die Einträger aus dem Log nachdem ich die Instanz versucht habe neu zu starten:
smartgarden.0 2020-10-03 18:53:18.140 info (22027) 3/ ---> State change by device
smartgarden.0 2020-10-03 18:53:18.139 info (22027) 3/ state smartgarden.0.info.connection changed: false (ack = true)
smartgarden.0 2020-10-03 18:53:18.137 info (22027) 3/ ---> State change by device
smartgarden.0 2020-10-03 18:53:18.137 info (22027) 3/ state smartgarden.0.info.connection changed: false (ack = true)
smartgarden.0 2020-10-03 18:53:18.129 error (22027) Error: 400
smartgarden.0 2020-10-03 18:53:18.128 info (22027) 3/ Connection failure.{"error":"invalid_request","error_description":"Invalid parameter:client_id
"}
smartgarden.0 2020-10-03 18:53:18.128 info (22027) 3/ sgSetState: info.connection value=false ack=true
smartgarden.0 2020-10-03 18:53:17.880 info (22027) 3/ ---> State change by device
smartgarden.0 2020-10-03 18:53:17.880 info (22027) 3/ state smartgarden.0.info.revision changed: Main: 2160 / API: 2250 (ack = true)
smartgarden.0 2020-10-03 18:53:17.877 info (22027) 3/ ---> State change by device
smartgarden.0 2020-10-03 18:53:17.876 info (22027) 3/ state smartgarden.0.info.connection changed: false (ack = true)
smartgarden.0 2020-10-03 18:53:17.787 info (22027) 3/ Gardena Smart System Service hosts at: smart_host: https://api.smart.gardena.dev/v1 authentication_host: https://api.authentication.husqvarnagroup.dev
smartgarden.0 2020-10-03 18:53:17.784 info (22027) 3/ sgSetState: info.revision value=Main: 2160 / API: 2250 ack=true
smartgarden.0 2020-10-03 18:53:17.718 info (22027) starting. Version 1.0.2 in /opt/iobroker/node_modules/iobroker.smartgarden, node: v10.22.1, js-controller: 3.1.6
host.raspberrypi 2020-10-03 18:53:15.765 info instance system.adapter.smartgarden.0 started with pid 22027
host.raspberrypi 2020-10-03 18:53:15.734 info "system.adapter.smartgarden.0" enabledIch habe mehrfach den API-Key kopiert und eingefügt. Mir ist allerdings nicht ganz klar was mit dem Application secret auf sich hat.
Verbunden sind die Gardena smart system API und Authentication API.
Danke
Jörg