NEWS
[neuer Adapter] smartgarden adapter for Gardena smart system
-
Erhalte folgenden Error:
Error: request returned 404 Bad Request
Adapter habe ich schon neu installiert, sogar einen komplett neuen Account bei angelegt (https://developer.husqvarnagroup.cloud/)
Hat alles nichts geholfen.
Wenn ich es mittles mail und PW probiere, erhalte ich auch einen Error:
Error: request returned 400 Bad Request
-
Moin,
seid einigen Tagen bekomme ich bei jedem Command, welchen ich meinem Mähroboter sende diesen Fehler:
Der Adapter lief einige Tage ohne Probleme und von jetzt auf gleich bekomme ich diese Fehler "Error: request returned 502 Bad Gateway". Ich hab nichts an der Umgebung geändert.
Habt ihr eine Idee, an was der Fehler liegen könnte?
Vielen Dank im voraus!
Gruß Richard
-
@richard-0 ich habe alle paar Tage das selbe Problem, immer wieder neue Zugangsdaten anfordern und dann läuft es wieder 1-2 Tage
Das Log sieht bei mir wie folgt aus:
-
@michihorn ich habe das Problem leider durchgängig. Nicht mal das neu erstellen der API im Dev Portal hat etwas geholfen.
Sonst habe ich auch keine Fehle bei mir im Log gefunden, bis auf den: "Error: request returned 502 Bad Gateway". Diesen bekomme ich auch nur, wenn ich befehle an den Roboter senden will. Die restlichen informationen bekomme ich alle. -
Hallo zusammen,
mein smart sileno Mähroboter fährt mittels Regensensor bei Regen in die Garage.
Bei Regen im Falle von wahr
schreibe Objekt ID steure Wert activity_control_i PARK_UNTILFURTHER_NOTICE
falls Wert vom Objekt ID Mäher-activity_moving_i = wahr
mache debug output Es regnet, der Mäher fährt in die Garage, info
sonst, falls es Regnet und der Mäher befindet sich in der Garage debug output Es regnet, aber der Mäher steht zum laden in der Garage infoSoweit funktioniert alles.
Jetzt möchte ich aber, wenn es nicht mehr regnet, den Mäher wieder in seinen Normalzustand versetzen. D.h. mähen nach Zeitplan. Wie kann ich das realisieren.
Mit
falls Wert von Objekt ID activity_controll = PARK_UNTIL_FURTHER_NOTIZE
mache schreibe Objekt_ID activity_control_i steure Wert PAR_UNTIL_NEXT_TASK
funktioniert das nicht.
Denn wenn ich danach schreibe debug output Es regnet nicht mehr infowird die Info nicht angezeigt.
Hat Jemand eine Lösung? -
@pistus Im Thread habe ich mal mein Blockly gepostet. Damit funktioniert es.
-
-
@kaiman55 Danke für deine Info.
Zu meinem Verständnis.Mit PARKUNTIL_FURTHER_NOTIZE wir der Mäher in die Garage geschickt. Wie lange bleibt der Text in der activity_control_i erhalten.
Meine Abfrage wenn der Mäher in der Garage ist lautet
Falls Wert vom Objekt ID activity_control_i = PARK_UNTIL_FURTHER_NOTIZE
Mache schreibe Objekt_ID activity_control_i steure Wert PARK_UNTIL_NEXT_TASK VerzögerungDer letzte Schritt funktioniert nicht.
https://forum.iobroker.net/topic/31289/neuer-adapter-smartgarden-adapter-for-gardena-smart-system/1026?loggedin=true#
Das müsste er aber wenn in activity_control_i noch PARK_UNTIL_FURTHER_NOTIZE stünde. -
Kann man mit dem Adapter den Zeitplan eines Mähers auslesen?
Ich habe irgendwie keine passenden Objekte dazu gefunden. -
@mon sagte in [neuer Adapter] smartgarden adapter for Gardena smart system:
Kann man mit dem Adapter den Zeitplan eines Mähers auslesen?
Ich habe irgendwie keine passenden Objekte dazu gefunden.nein, geht nicht
-
@mon Oh das ist ja Schade. Ich war mir sicher ich hatte sowas mal im Forum gesehen. Dann war das vlt. mit dem Gardena Plugin?
-
Grüß Euch!
Ich hatte den gleichen Fehler. Habe dann, wie hier besprochen, die App bei Husqvarna neu angelegt und dann in den Settings des Adapters UName und PWD raus genommen und entsprechend die AppKey und AppSec eingetragen. Seit dem bekomme ich immer einen "400 Bad Request". Ich habe bereits den Adapter gelöscht und neu angelegt, nicht nur die Instanz.
Könnt ihr mir an dieser Stelle ggf helfen? Ich schaffe es einfach nicht meine Daten / Objekte wieder zu bekommen. Wenn ich den Adapter neu starte, dass ist es tw. kurzzeitig "grün", also verbunden und dann aber schnell wieder "gelb". Mit geht es um die Connection zu Gardena. Meine App läuft zuverlässig (iPhone). Es hat sich nichts an Firewall oder dem Netzwerk generell verändert. Lief 1,5 Jahre problemlos und nun bekomme ich es einfach nicht mehr hin.
@jpgorganizer hast Du eine Idee?
Wenn ich das Testscript von Husqvarna per SSH auf meinem ioB ausführe, dann bekomme ich einen Accesstoken.
2023-09-26 10:13:29.938 - info: smartgarden.0 (11810) 1/ reconnect! 2023-09-26 10:13:29.938 - info: smartgarden.0 (11810) 1/ getConnection... 2023-09-26 10:13:29.939 - info: smartgarden.0 (11810) 1/ connectToGardena... 2023-09-26 10:13:29.939 - info: smartgarden.0 (11810) 1/ connecting to Gardena Smart System Service ... 2023-09-26 10:13:29.939 - info: smartgarden.0 (11810) 1/ Gardena Smart System Service hosts at: smart_host: https://api.smart.gardena.dev authentication_host: https://api.authentication.husqvarnagroup.dev 2023-09-26 10:13:29.939 - info: smartgarden.0 (11810) 1/ connect ... empty username 2023-09-26 10:13:29.939 - info: smartgarden.0 (11810) 1/ connect ... empty password 2023-09-26 10:13:29.939 - info: smartgarden.0 (11810) 1/ connect ... using client credentials grant 2023-09-26 10:13:30.160 - info: smartgarden.0 (11810) 1/ Connection failure.response.statusCode/Message=400/Bad Request 2023-09-26 10:13:30.160 - info: smartgarden.0 (11810) 1/ Connection failure:..return with error 2023-09-26 10:13:30.160 - error: smartgarden.0 (11810) Error: request returned 400 Bad Request 2023-09-26 10:13:30.160 - info: smartgarden.0 (11810) 1/ getConnection: returned connection error: request returned 400 Bad Request 2023-09-26 10:13:30.160 - info: smartgarden.0 (11810) 1/ getConnection: trying to connect again in 300 seconds
Teilweise connected er eben kurzzeitig und schließt dann wieder.
2023-09-26 10:42:50.469 - info: smartgarden.0 (11810) 1/ Connection: successful: response.statusCode / statusMessage=200 / OK 2023-09-26 10:42:50.469 - info: smartgarden.0 (11810) 1/ Connection: expires_in/timeout/factor:86399 / 86313 / 0.999 2023-09-26 10:42:50.469 - info: smartgarden.0 (11810) 1/ connected ... auth_data=eyJhXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXX-X-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 2023-09-26 10:42:50.470 - info: smartgarden.0 (11810) 1/ get_locations ... 2023-09-26 10:42:50.672 - info: smartgarden.0 (11810) 1/ get_locations: successful / response.statusMessage: OK 2023-09-26 10:42:50.673 - info: smartgarden.0 (11810) 1/ get_locations ... locations={"data":[{"id":"<wurde entfernt>","type":"LOCATION","attributes":{"name":"My Garden"}}]} 2023-09-26 10:42:50.673 - info: smartgarden.0 (11810) 1/ get_websocket ... 2023-09-26 10:42:50.844 - info: smartgarden.0 (11810) 1/ get_websocket successful: response.statusCode/Message=201/Created 2023-09-26 10:42:50.845 - info: smartgarden.0 (11810) 1/ get_websocket ... websocket ok 2023-09-26 10:42:50.975 - info: smartgarden.0 (11810) 1/ on_close: ### closed ### close.code=1006 close.reason=
Danach geht es direkt in den oben beschriebenen 400.
Danke Euch!
-
Hallo zusammen!
Dank des Blockly von @Kaiman55 fährt mein Mäher bei Regen automaisch zum Laden und setzt seine Fahrt dann später wieder fort. Das war für mich als Neuling recht einfach machbar
Nun aber eine Neulingsfrage: Ich möchte mir die Restlaufzeit (Mähen oder Laden) von Sekunden in Minuten umrechnen (mathematisch ist mir das klar) lassen und in zwei entsprechende Datenpunkte schreiben. Wie kann ich das machen. Habe es schonmal versucht, aber das funktioniert leider nicht.
Danke für eure Hilfe!
VG Martin -
@martin_olw
Ich habe zwar keine Ahnung von Blockly aber im Java sieht das so aus. Restlaufzeit und Restladezeit werden berechet und in einen vorher angelegten DP geschrieben.const id_LZ = "smartgarden.0.LOCATION_xxxxxx-2Df6d9-2D4225-xxxx81-2Dad62bcd5ae1e.DEVICE_5xxx-2De89e-2D46c1-2D9c5e-2D3340cc87b9ff.SERVICE_MOWER_59e2d2b8-2De89e-2D46c1-2D9c5e-2D3340cc87b9ff.activity_mowingTime_remain_i" const id_CT = "smartgarden.0.LOCATION_xxxxxxxx-2Df6d9-2D4225-2D9481-xxxxcd5ae1e.DEVICE_5xxxb8-2De89e-2D46c1-2D9c5e-2D3340cc87b9ff.SERVICE_COMMON_xxxxxxx-2De89e-2D46c1-2Dxxxe-2xxx40cc87b9ff.batteryState_chargingTime_remain_i" on({ id: id_LZ, change: "any" }, function (dp) { var RZ = (dp.state.val / 60).toFixed(0) log(RZ) setState("0_userdata.0.Garten.Rasen.Restlaufzeit", RZ) }); on({ id: id_CT, change: "any" }, function (dp) { var LZ = (dp.state.val / 60).toFixed(0) log(LZ) setState("0_userdata.0.Garten.Rasen.Restladezeit", LZ) });
Michael
-
@michihorn Vielen Dank!
Ich habe die beiden IDs in Zeile 1 und 2 durch meiner Werte aus den jeweiligen Objekten ersetzt. Auch den Datenpunkt in Zeile 8 und Zeile 14 angepasst. Aber bei mir kommt in den Datenpunkten immer noch "0", obwohl die beiden Werte zur verbleibenden Lauf- und Ladezeit im io aktualisiert werden.
Wo kann das Problem liegen, nach was soll ich schauen?
-
@martin_olw Hallo, das Script arbeitet nur, wenn sich der Wert des entsprechenden Datenpunktes in Zeile 1 oder 2 ändert, die selbst angelegten Datenpunkte in Zeile 8 und 14 müssen vom Typ Number sein und werden dann entsprechend des Scriptes mit Daten gefüllt.
Zeigt mal das LOG bei Ausführung, sollte so aussehen....
-
@michihorn Ich habe den Fehler gefunden. Hatte wohl beim Kopieren der beiden Datenpunkte einen Fehler gemacht. Ich habe die Pfade noch einmal neu kopiert (zur Sicherheit in Notepad), verglichen und neu ins Script eingefügt. Dann ging es.
Danke! -
Hi, nachdem ich meinen Gardena Sileno City letztes Jahr auf die aktuellste Version geupdated habe, habe ich heute den Mähroboter aus dem Keller geholt. Mir ist nun aufgefallen, dass die Datenpunkte activity_mowingTime_remain_i und batteryState_chargingTime_remain_i nicht mehr im iobroker gesetzt werden. Nach einem Neustart des Adapters sieht man zwar anhand des Timestamps, dass die Datenpunkte aktualisiert wurden, allerdings immer nur mit dem Wert Null. Meine Biobroker-Installation inkl. des Smartgarden-Adapters sind jeweils auf der aktuellsten Version.
Kennt Ihr zufällig das Problem?
Viele Grüße
Matthias -
@kaiman55 sagte in [neuer Adapter] smartgarden adapter for Gardena smart system:
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="comment" id="!5#EPV5tY!uMs.c:xRKl" x="-1487" y="-1312"> <field name="COMMENT">Mählanie bei Regen/Trockenheit rein und raus</field> <next> <block type="on_ext" id="Ps5%H5|sm,lZR5Mx~u]2"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="Fhv0CaM~0KQi1#h)-K=K"> <field name="oid">netatmo.0.Wohnbereich-(Innen).Regen.Rain.SumRain1</field> </shadow> </value> <statement name="STATEMENT"> <block type="comment" id="`H(zJXb|OgmoBpa=o*Id"> <field name="COMMENT">Mähen fortsetzen wenn es die letzte Stunde trocken war und rausschicken</field> <next> <block type="controls_if" id="kMv#PEDhcxz[S7_+j$:A"> <value name="IF0"> <block type="logic_operation" id="6?)|+@t.Z7w{fL;8ODH}" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="{zT!Dnt-6jBo5tofA36z"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="yu]AGvIi!8k]4_aQmx5s"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Wohnbereich-(Innen).Regen.Rain.SumRain1</field> </block> </value> <value name="B"> <block type="math_number" id="FW{XQ]B(v387y7yZ]Ovs"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="9`D18YFlpB1ZPD^Y%c(A"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="(MaIwHj8ttq`64|xLZH_"> <field name="ATTR">val</field> <field name="OID">smartgarden.0.LOCATION_2d4c7365-2D809c-2D4c18-2D91c9-2D8362146ac8f5.DEVICE_03630692-2Dce44-2D461e-2Daf24-2D63e5f5f5076c.SERVICE_MOWER_03630692-2Dce44-2D461e-2Daf24-2D63e5f5f5076c.activity_mowing_i</field> </block> </value> <value name="B"> <block type="logic_boolean" id="2nV[8E/H:+S9;jideC5}"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="r?Ws.R4O#`(%{.]6]IEy"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">smartgarden.0.LOCATION_2d4c7365-2D809c-2D4c18-2D91c9-2D8362146ac8f5.DEVICE_03630692-2Dce44-2D461e-2Daf24-2D63e5f5f5076c.SERVICE_MOWER_03630692-2Dce44-2D461e-2Daf24-2D63e5f5f5076c.activity_control_i</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id=")4/Q=nS46)(.v?~gG,*T"> <field name="TEXT">START_DONT_OVERRIDE</field> </block> </value> </block> </statement> <next> <block type="comment" id="+jz?xHrG/M|6f42myVBx"> <field name="COMMENT">Mäher bei aktiven Regen beenden und in die Hütte schicken</field> <next> <block type="controls_if" id="i|[`4tT!fw=x*8!O|*r8"> <value name="IF0"> <block type="logic_compare" id="/N]7?]TkkIuJTGg%mMn8"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="Dac0C!co=@NsOer[Pvn~"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Wohnbereich-(Innen).Regen.Rain.Rain</field> </block> </value> <value name="B"> <block type="math_number" id="bv[S6JBf|Tk+kbbVnSJR"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="358e!BIjwBL?s3R$NVKJ"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">smartgarden.0.LOCATION_2d4c7365-2D809c-2D4c18-2D91c9-2D8362146ac8f5.DEVICE_03630692-2Dce44-2D461e-2Daf24-2D63e5f5f5076c.SERVICE_MOWER_03630692-2Dce44-2D461e-2Daf24-2D63e5f5f5076c.activity_control_i</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="E5BZT|~^dqNWTMPBYH}a"> <field name="TEXT">PARK_UNTIL_FURTHER_NOTICE</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </xml>
"Mählanie".... Ich brüll mich gerade weg. Es gibt noch mehr Freaks wie ich auf diesem Planeten.
-
Moin,
ich bin gerade auf der Suche nach einem Mähroboter für unseren 2-zonigen Garten, ca. 500m² + 80m². Ein Punkt ist die Integration in ioBroker. Aktuell steht der Sileno Life 1000m² mit Lona auf Platz 1 meiner persönlichen Rangliste. Und da bin ich auf diesen Adapter gestroßen. Was genau mit Alexa und dem Skill machbar ist, konnte ich noch nicht herausfinden.
Allerdings wirkt die Entwicklung dieses Adapters eingestellt, oder täusche ich mich? Falls nicht, gibt es Alternativen?
Ich würde den Mäher gerne:
- bei Regen per ioBroker rein holen (er hat ja keinen eigenen Regensensor)
- manuell in eine bestimmte Zone schicken, denn die 2. Zone ist eher optional für ihn, weil direkt an der Straße mit lediglich 80cm hohem Zaun. Da möchte ich ihn nur fahren lassen, wenn ich zu Hause bin und es manuell anstoße.
- den Hebealarm direkt auslesen können, um darauf reagieren zu können
Gibt es da Möglichkeiten?
Danke und Gruß