NEWS
[Frage] Gardena Smart System (Mähroboter, Bewässerung)
-
Hallo, bin seit gestern nun auch Gardena Sileno Smart User und möchte den Mähroboter jetzt natuerlich auch per ioBroker steuern und Status abfragen…. nur wie...? Es gibt in einem Nachbarforum ein php_gardena_mover_class.ips.php script, welches die Steuerung vornehmen könnte. Jetzt die Frage, wie kann ich das jetzt in ioBroker einbinden? Wäre klasse, wenn es jemand zum laufen bringen könnte... Danke!!!!
PS: sehe gerade, dass es in github eine GardenaApi gibt, hilft das? Kann daraus etwa einen ioBroker Adapter zusammenbauen?
Das wäre perfekt!
Danke!
-
Hey,
ich habe auch die 24V Ventile Im Einsatz- Du brauchst dann bei dem 8 Kanal Empänger noch Relais weil DU damit nicht die 24V direkt schalten kannst glaube ich. So habe ich es zumindestens.
Ob die Ventile mit dem ersten Winter Probleme hatten sage ich Dir in ein paar Wochen wenn ich meine Anlage wieder in Betrieb nehme http://www.comparateur-mutuelle-assurance-sante.com/assurance-deces-invalidite, ich erwarte aber keine Probleme.
Ich habe im Herbst Die Anlage ausgeblasen. Die Ventile bleiben ohne Druck offen, damit sollte da auch nix festfrieren wenn man es im Herbst schafft das Sie offen bleiben (was aber wie gesagt kein Problem war …) `
Es wird an dieser Seite keine Sorgen sein, denke ich. Ich hoffe nur, der Winter nicht zu hart in diesem Jahr sein wird. -
Vielen Dank für die tolle Inspiration.
Aufgrund der Bewertungen der 24V Gardena-Bewässerungsventile werde ich jedoch die Hunter-Ventile probieren (PGV-101-GB).
Können Sie evtl. noch ein geeignetes 24V AC Netzteil empfehlen?
Vielen Dank im Voraus.
Eigentlich ist das sehr einfach. Der Schaltplan kann unten angesehen werden. Den Spannungswandler und die Lüsterklemmen habe ich ein eine Aufputz-Feuchtraum Verteilerdose gesetzt. Wenn es um Scripte geht, dann ist es noch etwas dünn. Realisiert ist es noch auf der CCU2. Ich frage eine Wetterstation, die bei mir in der nähe ist das Wunderground-Wetter ab. (https://homematic-forum.de/forum/viewtopic.php?t=17209). Dort wird eine Variable Wetter-Bedingungen gefüllt. Zusätzlich habe ich noch einen Bewässerung-Schalter definiert. Und dann geht es los:
wenn
Uhrzeit = 20:00
und Bewässerung Schalter = an
und Wetter-Bedingungen != Regen
dann
stoppe Ventil 2
stoppe Ventil 3
Setze Timer auf 30min
starte Ventil 1
ende
Wenn
Wetter-Bedingungen == Regen
dann
stoppe Ventil 1
stoppe Ventil 2
stoppe Ventil 3
ende
Für die nächste Zeit habe ich mir vorgenommen die Scripte zu optimieren und u.U. auf ioBroker umzuziehen. Das steht noch nicht fest. Ich möchte die Bewässerung abhängig von der Bodenfeuchtigkeit, der Länge des letzten Regens und und und. Kommt aber noch!
Ein Vorteil des Homematics 4-Fach Schalters ist, dass man mit dem Timer arbeiten kann. D.h. Wenn während des Bewässerungsvorganges die CCU2 abschmiert oder nicht mehr erreichbar sein sollte, dann schaltet der 4-Fach Schalter nach der abgelaufenen Zeit selbstständig ab. Des Weiteren schließen die 24V Gardena (der Hersteller ist egal) Ventile sobald sie stromlos sind. Also wenn der Strom für die Ventile und/oder für den Schalter ausfällt, dann wird die Bewässerung unterbrochen. Das Risiko zwei Whttps://www.amazon.de/PP-Endkappe-Stopfen-mit-D … 2+endkappe ochen lang den Garten ununterbrochen zu bewässern wird verkleinert.
Für weitere Fragen stehe ich gerne zur Verfügung. `
-
Ich habe mich gestern mal daran versucht und einen ersten Adapter gebastelt, der zumindest den Status vom Sensor und vom Ventil ausliest.
Bei Interesse könnte ich das Ding mal verfügbar machen.
Gruß,
Rudi
-
Ich habe mich gestern mal daran versucht und einen ersten Adapter gebastelt, der zumindest den Status vom Sensor und vom Ventil ausliest.
Bei Interesse könnte ich das Ding mal verfügbar machen.
Gruß,
Rudi `
Interesse! Hier! Ganz viel davon! Nur zu!
-
Und, seit ihr schon weiter? gibt schon was zu testen?
-
Hallo Leute,
ich habe eine erste Alphaversion eines Gardena-Adapters erstellt. Der Adapter kann von Github https://github.com/t4qjXH8N/ioBroker.gardena bezogen werden.
Bisher werden alle Datenpunkte aus dem Gardena Smart System ausgelesen und in Iobroker-States gespeichert.
Der Rasenmäher (Sileno irgendwas) kann über States (auf true setzen) gestartet oder gestoppt werden.
Da es sich um eine absolute Alphaversion handelt bitte um Feedback!
Beste Grüße und schöne Weihnachten
Christian
-
Hey Christian,
ich habe extra zum testen mein Gardena smartGateway und smartWaterControl wieder aus dem Winterschlaf geholt.
Soweit so gut, scheint der Adapter alle Daten auszulesen. Nur hab ich noch nicht den richtigen State zum schalten gefunden.
Gruß Dennis
-
Hallo,
da ich selber einen SmartSileno+ im Einsatz haben finde ich das echt super dass es hier weiter geht! Vielen Dank dafür! Bei mir sieht die Alphaversion schon richtig gut aus. Leider ist "Kevin" im Winterschlaf und kann somit erst wieder im Frühjahr ausgiebig testen. Aber die Datenpunkte werden erzeugt und die Inhalte sehen soweit plausibel aus.
Ein herzliches Dankeschön an den Entwickler! Würde auch gern unterstützen, aber leider reichen meine Programmierkenntnisse hierzu nicht aus.
VG
Thomas
-
Hey Christian,
ich habe extra zum testen mein Gardena smartGateway und smartWaterControl wieder aus dem Winterschlaf geholt.
Soweit so gut, scheint der Adapter alle Daten auszulesen. Nur hab ich noch nicht den richtigen State zum schalten gefunden.
Gruß Dennis `
Hallo Dennis,
ich habe ebenfalls eine Weile nach den Schaltpunkten gesucht. Nach einiger Zeit war ein Datenpunkt "commands" (gardena.0->devices->deviceID) vorhanden. Unter diesem habe ich dann die notwendigen Schaltpunkte gefunden. Ob sie tatsächlich funktionieren kann ich derzeit nicht testen, der Mäher ist im Winterschlaf. Vielleicht braucht der Adapter einfach einen Moment um diese Schaltpunkte anzubieten. Vielleicht einfach als kleiner Hinweis für dich.
VG
Thomas
-
Hallo, ich habe den Gardena Adapter erfolgreich installiert und frage damit den Gardena Temperatursensor ab.
Leider aktualisiert der Adapter nicht.
Die Zeit zwischen Verbindungsversuchen steht auf 500
Abfrageinterval steht bei 300
Wenn ich den Adapter per Hand neu lade aktualisiert er die Daten.
?
-
Bei mir leider das gleiche Problem….keine automatische Aktualisierung. Hat keiner ne Idee?
-
Das Problem hatte ich auch. Habe dann openHAB installiert und mit dem ioBroker verbunden. Im openHAB git es ein Gardena-Binding und so stehen die Werte und Schaltpunkte im ioBroker zur Verfügung. Funktioniert bisher problemlos außer dass alle übermittelten Werte in englischer Sprache sind.
VG
Thomas
-
Moin,
wird der Adapter aktuell noch weiter entwickelt?
Überlege schon eine Weile mir den Sileno Smart City 500 zuzulegen. Bei Recherchen zum Thema Steuerungsmöglichkeiten bin ich u.a. auf das Thema Robonect gestoßen.
Jetzt stellt sich die Frage:
Die Smart City 500er Variante mit ioBroker Adapter oder den City 250 mit Robonect Modul aufmotzen :?:
-
Sind die Probleme als issues im github angelegt? Wenn nein bitte machen.
-
Ich überegeau auch den City 500 zu kaufen und würde den Adapter testen aber wenn er nicht funktioniert fände ich es jetzt nicht so tragisch. Weil was willst Du genau im iobroker damit?
Das Teil läuft doch jeden Tag bei guten oder schlechten Wetter. Ich würde in einfach jeden Abend ab 22.00 Uhr zum mähen schicken da stört er mich nie und am Tag ist er fertig und stört mich auch nicht falls ich Mal Urlaub habe.
Die Prpgrammierung kann ich dann auch in der komischen Gardena App machen. Als Spielerei fände ich die Alexa Integration nett aber das ist halt eigentlich auch nur ein Party oder Beschergag…
-
Hallo,
bei mir liest der Adapter zwar alle States meines Gardena Water Control aus, aber ich kann keine States schalten.
Sollte das schon gehen?
In Github liest es so aus, als wenn das noch nicht gehen könnte, weil dem Entwickler die Geräte zum testen fehlen?!
Kann man hierbei unterstützen?!?
Gruß Dennis
-
Hallo,
auch ich versuche meine Gardena Smart Komponenten (Mähroboter Smart Sileno City und den Smart Power Adapter) einzubinden.
Ich war mit dem Gardena Adapter etwas überfordert und habe mir parallel erst mal einen Node-Red Flow geschrieben.
Der funktioniert soweit für den Mähroboter, leider habe ich die Befehle zum Schalten des Smart Power-Adapters noch nicht rausgefunden.
Falls es jemanden interessiert, hier der Node-red Flow:
[ { "id": "6196e1fa.d45458", "type": "tab", "label": "Gardena Smart Test", "disabled": false, "info": "" }, { "id": "4aceeaa1.67b294", "type": "inject", "z": "6196e1fa.d45458", "name": "Alle 30 Minuten", "topic": "", "payload": "", "payloadType": "date", "repeat": "1800", "crontab": "", "once": true, "onceDelay": "", "x": 170, "y": 160, "wires": [ [ "eafc90a5.120a18" ] ] }, { "id": "eafc90a5.120a18", "type": "function", "z": "6196e1fa.d45458", "name": "Anmeldung", "func": "// email und password eingeben\n\n\nmsg.payload = {\n \"sessions\": {\n \"email\": \"xxxxxx\",\n \"password\": \"yyyyy\",\n \"refresh\":\"30\",\n \"sessionTimeout\":\"60\"\n }\n};\n\nmsg.headers = {\n Accept: \"application/json\"\n};\n\nreturn msg;", "outputs": 1, "noerr": 0, "x": 350, "y": 160, "wires": [ [ "30579d39.443c02" ] ] }, { "id": "30579d39.443c02", "type": "http request", "z": "6196e1fa.d45458", "name": "", "method": "POST", "ret": "obj", "url": "https://sg-api.dss.husqvarnagroup.net/sg-1/sessions", "tls": "", "x": 650, "y": 160, "wires": [ [ "d50bbd55.7614a8" ] ] }, { "id": "d50bbd55.7614a8", "type": "function", "z": "6196e1fa.d45458", "name": "Session Token und User ID", "func": "global.set(\"token\", msg.payload.sessions.token);\nglobal.set(\"user_id\", msg.payload.sessions.user_id);\n\nvar mytoken = global.get(\"token\"); \nvar myuserid = global.get(\"user_id\"); \n\nmsg.headers = {\n \"Content-Type\": \"application/json\",\n \"X-Session\": mytoken\n};\n\nvar url= \"https://sg-api.dss.husqvarnagroup.net/sg-1/locations/?user_id=\" + myuserid;\n\nmsg.url = url;\n\nreturn msg;", "outputs": 1, "noerr": 0, "x": 400, "y": 260, "wires": [ [ "403f23aa.3f1154" ] ] }, { "id": "403f23aa.3f1154", "type": "http request", "z": "6196e1fa.d45458", "name": "", "method": "GET", "ret": "obj", "url": "", "tls": "", "x": 650, "y": 260, "wires": [ [ "41ef289b.b46998" ] ] }, { "id": "41ef289b.b46998", "type": "function", "z": "6196e1fa.d45458", "name": "Location ID", "func": "global.set(\"location\", msg.payload[\"locations\"][0][\"id\"]);\n\nreturn msg;", "outputs": 1, "noerr": 0, "x": 350, "y": 320, "wires": [ [ "b1b1d745.b17d98" ] ] }, { "id": "af52cada.e8e9", "type": "http request", "z": "6196e1fa.d45458", "name": "", "method": "GET", "ret": "obj", "url": "", "tls": "", "x": 630, "y": 380, "wires": [ [ "7d4ca598.7c208c", "59ff5d3a.ccb2ac" ] ] }, { "id": "aaa55c5f.51274", "type": "inject", "z": "6196e1fa.d45458", "name": "", "topic": "", "payload": "", "payloadType": "str", "repeat": "", "crontab": "", "once": false, "onceDelay": "", "x": 150, "y": 920, "wires": [ [ "9f0b36b9.b96a7" ] ] }, { "id": "9f0b36b9.b96a7", "type": "function", "z": "6196e1fa.d45458", "name": "Parken bis zum nächsten Zeitplan", "func": "var mower = global.get(\"mower\");\nvar mytoken = global.get(\"token\"); \nvar mylocation = global.get(\"location\"); \n\nmsg.payload = {\n \"name\":\"park_until_next_timer\"\n};\n\nmsg.headers = {\n \"Content-Type\": \"application/json\",\n \"X-Session\": mytoken\n};\n\nvar url= \"https://sg-api.dss.husqvarnagroup.net/sg-1/devices/\" + mower + \"/abilities/mower/command?locationId=\" + mylocation;\n\nmsg.url = url;\n\nreturn msg;", "outputs": 1, "noerr": 0, "x": 460, "y": 920, "wires": [ [ "8685b6b6.c541e8" ] ] }, { "id": "8685b6b6.c541e8", "type": "http request", "z": "6196e1fa.d45458", "name": "", "method": "POST", "ret": "txt", "url": "", "tls": "", "x": 710, "y": 920, "wires": [ [ "e8371e8d.d5ae88" ] ] }, { "id": "8df76892.fdcc7", "type": "inject", "z": "6196e1fa.d45458", "name": "", "topic": "", "payload": "", "payloadType": "str", "repeat": "", "crontab": "", "once": false, "onceDelay": "", "x": 150, "y": 1000, "wires": [ [ "bc8437be.d38e38" ] ] }, { "id": "bc8437be.d38e38", "type": "function", "z": "6196e1fa.d45458", "name": "Parken und Zeitplan pausieren", "func": "var mower = global.get(\"mower\");\nvar mytoken = global.get(\"token\"); \nvar mylocation = global.get(\"location\"); \n\nmsg.payload = {\n \"name\": \"park_until_further_notice\"\n};\n\nmsg.headers = {\n \"Content-Type\": \"application/json\",\n \"X-Session\": mytoken\n};\n\nvar url= \"https://sg-api.dss.husqvarnagroup.net/sg-1/devices/\" + mower + \"/abilities/mower/command?locationId=\" + mylocation;\n\nmsg.url = url;\n\nreturn msg;", "outputs": 1, "noerr": 0, "x": 450, "y": 1000, "wires": [ [ "210f3d17.50d8d2" ] ] }, { "id": "f84c6e6d.2847f", "type": "inject", "z": "6196e1fa.d45458", "name": "", "topic": "", "payload": "", "payloadType": "str", "repeat": "", "crontab": "", "once": false, "onceDelay": "", "x": 150, "y": 1080, "wires": [ [ "1f59bef7.068c49" ] ] }, { "id": "1f59bef7.068c49", "type": "function", "z": "6196e1fa.d45458", "name": "Starten und Zeitpläne fortsetzen", "func": "var mower = global.get(\"mower\");\nvar mytoken = global.get(\"token\"); \nvar mylocation = global.get(\"location\"); \n\nmsg.payload = {\n \"name\": \"start_resume_schedule\"\n};\n\nmsg.headers = {\n \"Content-Type\": \"application/json\",\n \"X-Session\": mytoken\n};\n\nvar url= \"https://sg-api.dss.husqvarnagroup.net/sg-1/devices/\" + mower + \"/abilities/mower/command?locationId=\" + mylocation;\n\nmsg.url = url;\n\nreturn msg;", "outputs": 1, "noerr": 0, "x": 450, "y": 1080, "wires": [ [ "edbaf63f.a2336" ] ] }, { "id": "edbaf63f.a2336", "type": "http request", "z": "6196e1fa.d45458", "name": "", "method": "POST", "ret": "txt", "url": "", "tls": "", "x": 710, "y": 1080, "wires": [ [ "83679876.36a7a" ] ] }, { "id": "4adb20be.76e49", "type": "inject", "z": "6196e1fa.d45458", "name": "", "topic": "", "payload": "", "payloadType": "str", "repeat": "", "crontab": "", "once": false, "onceDelay": "", "x": 150, "y": 1160, "wires": [ [ "7ef70fc7.b788d" ] ] }, { "id": "7ef70fc7.b788d", "type": "function", "z": "6196e1fa.d45458", "name": "24 Stunden lang mähen", "func": "var mower = global.get(\"mower\");\nvar mytoken = global.get(\"token\"); \nvar mylocation = global.get(\"location\"); \n\nmsg.payload = {\n \"name\": \"start_override_timer\",\n \"parameters\": { \"duration\": 1440 }\n};\n\nmsg.headers = {\n \"Content-Type\": \"application/json\",\n \"X-Session\": mytoken\n};\n\nvar url= \"https://sg-api.dss.husqvarnagroup.net/sg-1/devices/\" + mower + \"/abilities/mower/command?locationId=\" + mylocation;\n\nmsg.url = url;\n\nreturn msg;", "outputs": 1, "noerr": 0, "x": 430, "y": 1160, "wires": [ [ "d5535604.6429a8" ] ] }, { "id": "d5535604.6429a8", "type": "http request", "z": "6196e1fa.d45458", "name": "", "method": "POST", "ret": "txt", "url": "", "tls": "", "x": 710, "y": 1160, "wires": [ [ "5fca5bc4.128f1c" ] ] }, { "id": "e84daab1.ed651", "type": "inject", "z": "6196e1fa.d45458", "name": "", "topic": "", "payload": "", "payloadType": "str", "repeat": "", "crontab": "", "once": false, "onceDelay": "", "x": 150, "y": 1240, "wires": [ [ "127f1615.4fd0aa" ] ] }, { "id": "127f1615.4fd0aa", "type": "function", "z": "6196e1fa.d45458", "name": "3 Tage mähen", "func": "var mower = global.get(\"mower\");\nvar mytoken = global.get(\"token\"); \nvar mylocation = global.get(\"location\"); \n\nmsg.payload = {\n \"name\": \"start_override_timer\",\n \"parameters\": { \"duration\": 4320 }\n};\n\nmsg.headers = {\n \"Content-Type\": \"application/json\",\n \"X-Session\": mytoken\n};\n\nvar url= \"https://sg-api.dss.husqvarnagroup.net/sg-1/devices/\" + mower + \"/abilities/mower/command?locationId=\" + mylocation;\n\nmsg.url = url;\n\nreturn msg;", "outputs": 1, "noerr": 0, "x": 400, "y": 1240, "wires": [ [ "8386ffd7.ead028" ] ] }, { "id": "8386ffd7.ead028", "type": "http request", "z": "6196e1fa.d45458", "name": "", "method": "POST", "ret": "txt", "url": "", "tls": "", "x": 710, "y": 1240, "wires": [ [ "4538bc37.c487e4" ] ] }, { "id": "7d4ca598.7c208c", "type": "function", "z": "6196e1fa.d45458", "name": "Auswertung Mover", "func": "// id des movers ggfs. anpassen\nvar id = 2;\n\n\nglobal.set(\"mower\", msg.payload.devices[id].id);\n\nvar battery_level = { payload:msg.payload.devices[id].abilities[1].properties[0].value };\nvar battery_charging = { payload:msg.payload.devices[id].abilities[1].properties[1].value };\n\nvar mower_manual_op = { payload:msg.payload.devices[id].abilities[3].properties[0].value };\nvar mower_status = { payload:msg.payload.devices[id].abilities[3].properties[1].value };\nvar mower_error = { payload:msg.payload.devices[id].abilities[3].properties[2].value };\nvar mower_source_nxt_start = { payload:msg.payload.devices[id].abilities[4].properties[3].value };\nvar mower_nxt_start = { payload:msg.payload.devices[id].abilities[3].properties[5].value };\n\nvar mower_cut_time = { payload:msg.payload.devices[id].abilities[4].properties[0].value };\nvar mower_charg_cycle = { payload:msg.payload.devices[id].abilities[4].properties[1].value };\nvar mower_collisions = { payload:msg.payload.devices[id].abilities[4].properties[2].value };\nvar mower_run_time = { payload:msg.payload.devices[id].abilities[4].properties[3].value };\n\nnode.status({fill:\"green\",shape:\"ring\",text: msg.payload.devices[id].id});\n\n\n\nreturn [ [battery_level], [battery_charging], \n [mower_status], [mower_error], [mower_source_nxt_start], [mower_nxt_start], \n [mower_cut_time], [mower_charg_cycle], [mower_collisions], [mower_run_time] ];", "outputs": 10, "noerr": 0, "x": 890, "y": 340, "wires": [ [ "4e346187.1535d" ], [ "43c88b4e.b162dc" ], [ "ba52f633.ff6228" ], [ "1439ad2b.47c6a3" ], [ "43b59430.e81bfc" ], [ "c59aa7f.4b828d8" ], [ "e18bc1f4.cc46e" ], [ "158ac7f4.743688" ], [ "4146affb.1c1458" ], [ "811bdb23.53aea" ] ] }, { "id": "37eab16.09610ce", "type": "switch", "z": "6196e1fa.d45458", "name": "", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "", "vt": "str" }, { "t": "neq", "v": "", "vt": "str" } ], "checkall": "true", "outputs": 2, "x": 890, "y": 1000, "wires": [ [ "b2081f3f.4995b" ], [ "3cda60de.d311d" ] ] }, { "id": "b2081f3f.4995b", "type": "change", "z": "6196e1fa.d45458", "name": "NULL == true", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "1", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1080, "y": 980, "wires": [ [ "db71681e.021d8" ] ] }, { "id": "3cda60de.d311d", "type": "change", "z": "6196e1fa.d45458", "name": "NOT NULL == false", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "0", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1090, "y": 1020, "wires": [ [ "db71681e.021d8" ] ] }, { "id": "e8371e8d.d5ae88", "type": "switch", "z": "6196e1fa.d45458", "name": "", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "", "vt": "str" }, { "t": "neq", "v": "", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 890, "y": 920, "wires": [ [ "9c542ba9.fc3388" ], [ "1b158609.8ed162" ] ] }, { "id": "1b158609.8ed162", "type": "change", "z": "6196e1fa.d45458", "name": "NOT NULL == false", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "0", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1090, "y": 940, "wires": [ [ "32132a7c.bf462e" ] ] }, { "id": "9c542ba9.fc3388", "type": "change", "z": "6196e1fa.d45458", "name": "NULL == true", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "1", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1080, "y": 900, "wires": [ [ "32132a7c.bf462e" ] ] }, { "id": "83679876.36a7a", "type": "switch", "z": "6196e1fa.d45458", "name": "", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "", "vt": "str" }, { "t": "neq", "v": "", "vt": "str" } ], "checkall": "true", "outputs": 2, "x": 890, "y": 1080, "wires": [ [ "52c59e6d.a6e17" ], [ "1b11e42f.cc8f64" ] ] }, { "id": "1b11e42f.cc8f64", "type": "change", "z": "6196e1fa.d45458", "name": "NOT NULL == false", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "0", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1090, "y": 1100, "wires": [ [ "40fd496.bfcfb38" ] ] }, { "id": "52c59e6d.a6e17", "type": "change", "z": "6196e1fa.d45458", "name": "NULL == true", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "1", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1080, "y": 1060, "wires": [ [ "40fd496.bfcfb38" ] ] }, { "id": "5fca5bc4.128f1c", "type": "switch", "z": "6196e1fa.d45458", "name": "", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "", "vt": "str" }, { "t": "neq", "v": "", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 890, "y": 1160, "wires": [ [ "16b44f79.ce0921" ], [ "581dcb17.fea9b4" ] ] }, { "id": "581dcb17.fea9b4", "type": "change", "z": "6196e1fa.d45458", "name": "NOT NULL == false", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "0", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1090, "y": 1180, "wires": [ [ "253be03d.c381a" ] ] }, { "id": "16b44f79.ce0921", "type": "change", "z": "6196e1fa.d45458", "name": "NULL == true", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "1", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1080, "y": 1140, "wires": [ [ "253be03d.c381a" ] ] }, { "id": "4538bc37.c487e4", "type": "switch", "z": "6196e1fa.d45458", "name": "", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "", "vt": "str" }, { "t": "neq", "v": "", "vt": "str" } ], "checkall": "true", "outputs": 2, "x": 890, "y": 1240, "wires": [ [ "b8f1d7a8.8782" ], [ "9c912db.b3df45" ] ] }, { "id": "9c912db.b3df45", "type": "change", "z": "6196e1fa.d45458", "name": "NOT NULL == false", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "0", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1090, "y": 1260, "wires": [ [ "8e8d0550.17bff" ] ] }, { "id": "b8f1d7a8.8782", "type": "change", "z": "6196e1fa.d45458", "name": "NULL == true", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "1", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1080, "y": 1220, "wires": [ [ "8e8d0550.17bff" ] ] }, { "id": "210f3d17.50d8d2", "type": "http request", "z": "6196e1fa.d45458", "name": "", "method": "POST", "ret": "txt", "url": "", "tls": "", "x": 710, "y": 1000, "wires": [ [ "37eab16.09610ce" ] ] }, { "id": "d4f4f55e.1988a8", "type": "debug", "z": "6196e1fa.d45458", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "x": 870, "y": 460, "wires": [] }, { "id": "4e346187.1535d", "type": "function", "z": "6196e1fa.d45458", "name": "Battery Level", "func": "node.status({fill:\"green\",shape:\"ring\",text:msg.payload});\nreturn msg;\n", "outputs": 1, "noerr": 0, "x": 1190, "y": 140, "wires": [ [] ] }, { "id": "43c88b4e.b162dc", "type": "function", "z": "6196e1fa.d45458", "name": "battery charging", "func": "node.status({fill:\"green\",shape:\"ring\",text:msg.payload});\nreturn msg;\n", "outputs": 1, "noerr": 0, "x": 1400, "y": 180, "wires": [ [] ] }, { "id": "ba52f633.ff6228", "type": "function", "z": "6196e1fa.d45458", "name": "mover status", "func": "node.status({fill:\"green\",shape:\"ring\",text:msg.payload});\nreturn msg;\n", "outputs": 1, "noerr": 0, "x": 1190, "y": 220, "wires": [ [] ] }, { "id": "e18bc1f4.cc46e", "type": "function", "z": "6196e1fa.d45458", "name": "mower_cut_time", "func": "node.status({fill:\"green\",shape:\"ring\",text:msg.payload});\nreturn msg;\n", "outputs": 1, "noerr": 0, "x": 1200, "y": 400, "wires": [ [] ] }, { "id": "c59aa7f.4b828d8", "type": "function", "z": "6196e1fa.d45458", "name": "mower_nxt_start", "func": "node.status({fill:\"green\",shape:\"ring\",text:msg.payload});\nreturn msg;\n", "outputs": 1, "noerr": 0, "x": 1400, "y": 360, "wires": [ [] ] }, { "id": "1439ad2b.47c6a3", "type": "function", "z": "6196e1fa.d45458", "name": "mover error", "func": "node.status({fill:\"green\",shape:\"ring\",text:msg.payload});\nreturn msg;\n", "outputs": 1, "noerr": 0, "x": 1390, "y": 260, "wires": [ [] ] }, { "id": "43b59430.e81bfc", "type": "function", "z": "6196e1fa.d45458", "name": "mower_source_nxt_start", "func": "node.status({fill:\"green\",shape:\"ring\",text:msg.payload});\nreturn msg;\n", "outputs": 1, "noerr": 0, "x": 1230, "y": 320, "wires": [ [] ] }, { "id": "811bdb23.53aea", "type": "function", "z": "6196e1fa.d45458", "name": "mower_run_time", "func": "node.status({fill:\"green\",shape:\"ring\",text:msg.payload});\nreturn msg;\n", "outputs": 1, "noerr": 0, "x": 1410, "y": 520, "wires": [ [] ] }, { "id": "158ac7f4.743688", "type": "function", "z": "6196e1fa.d45458", "name": "mower_charg_cycle", "func": "node.status({fill:\"green\",shape:\"ring\",text:msg.payload});\nreturn msg;\n", "outputs": 1, "noerr": 0, "x": 1420, "y": 440, "wires": [ [] ] }, { "id": "4146affb.1c1458", "type": "function", "z": "6196e1fa.d45458", "name": "mower_collisions", "func": "node.status({fill:\"green\",shape:\"ring\",text:msg.payload});\nreturn msg;\n", "outputs": 1, "noerr": 0, "x": 1210, "y": 480, "wires": [ [] ] }, { "id": "32132a7c.bf462e", "type": "function", "z": "6196e1fa.d45458", "name": "Status", "func": "node.status({fill:\"green\",shape:\"ring\",text:msg.payload});\nreturn msg;\n", "outputs": 1, "noerr": 0, "x": 1270, "y": 900, "wires": [ [] ] }, { "id": "db71681e.021d8", "type": "function", "z": "6196e1fa.d45458", "name": "Status", "func": "node.status({fill:\"green\",shape:\"ring\",text:msg.payload});\nreturn msg;\n", "outputs": 1, "noerr": 0, "x": 1270, "y": 980, "wires": [ [] ] }, { "id": "40fd496.bfcfb38", "type": "function", "z": "6196e1fa.d45458", "name": "Status", "func": "node.status({fill:\"green\",shape:\"ring\",text:msg.payload});\nreturn msg;\n", "outputs": 1, "noerr": 0, "x": 1270, "y": 1060, "wires": [ [] ] }, { "id": "253be03d.c381a", "type": "function", "z": "6196e1fa.d45458", "name": "Status", "func": "node.status({fill:\"green\",shape:\"ring\",text:msg.payload});\nreturn msg;\n", "outputs": 1, "noerr": 0, "x": 1270, "y": 1140, "wires": [ [] ] }, { "id": "59ff5d3a.ccb2ac", "type": "function", "z": "6196e1fa.d45458", "name": "Auswertung Power", "func": "// id des power adapters ggfs. anpassen\nvar id = 1;\n\nglobal.set(\"power\", msg.payload.devices[id].id);\n\nvar name = { payload:msg.payload.devices[id].name};\nvar power_timer = { payload:msg.payload.devices[id].abilities[2].properties[0].value };\n\nnode.status({fill:\"green\",shape:\"ring\",text: msg.payload.devices[id].id})\n\nreturn [ [name], [power_timer] ];", "outputs": 2, "noerr": 0, "x": 890, "y": 580, "wires": [ [ "d96c8567.86223" ], [ "a3d22431.148e2" ] ] }, { "id": "d96c8567.86223", "type": "function", "z": "6196e1fa.d45458", "name": "Name", "func": "node.status({fill:\"green\",shape:\"ring\",text:msg.payload});\nreturn msg;\n", "outputs": 1, "noerr": 0, "x": 1110, "y": 560, "wires": [ [] ] }, { "id": "a3d22431.148e2", "type": "function", "z": "6196e1fa.d45458", "name": "power_timer", "func": "node.status({fill:\"green\",shape:\"ring\",text:msg.payload});\nreturn msg;\n", "outputs": 1, "noerr": 0, "x": 1130, "y": 620, "wires": [ [] ] }, { "id": "8e8d0550.17bff", "type": "function", "z": "6196e1fa.d45458", "name": "Status", "func": "node.status({fill:\"green\",shape:\"ring\",text:msg.payload});\nreturn msg;\n", "outputs": 1, "noerr": 0, "x": 1270, "y": 1220, "wires": [ [] ] }, { "id": "b1b1d745.b17d98", "type": "function", "z": "6196e1fa.d45458", "name": "Abfrage", "func": "\nvar mylocation = global.get(\"location\");\nvar mytoken = global.get(\"token\"); \n\nmsg.headers = {\n \"Content-Type\": \"application/json\",\n \"X-Session\": mytoken\n}\n\nvar url= \"https://sg-api.dss.husqvarnagroup.net/sg-1/devices?locationId=\" + mylocation;\n\nmsg.url = url;\n\nreturn msg;", "outputs": 1, "noerr": 0, "x": 340, "y": 380, "wires": [ [ "af52cada.e8e9" ] ] }, { "id": "8b9252be.112bf", "type": "inject", "z": "6196e1fa.d45458", "name": "", "topic": "", "payload": "", "payloadType": "str", "repeat": "", "crontab": "", "once": false, "onceDelay": "", "x": 150, "y": 720, "wires": [ [ "6b1da41d.868314" ] ] }, { "id": "6b1da41d.868314", "type": "function", "z": "6196e1fa.d45458", "name": "Schalter ein ???? funktioniert nicht", "func": "var power = global.get(\"power\");\nvar mytoken = global.get(\"token\"); \nvar mylocation = global.get(\"location\"); \n\nmsg.payload = {\n \"name\": \"help\" };\n \nmsg.payload = \n{\n \"name\" : \"power_timer\", \n \"parameters\": { \"value\" : \"on\" }\n};\n\nmsg.headers = {\n \"Content-Type\": \"application/json\",\n \"X-Session\": mytoken\n};\n\n\nvar url= \"https://sg-api.dss.husqvarnagroup.net/sg-1/devices/\" + power + \"/abilities/power/command?locationId=\" + mylocation;\n\n\nmsg.url = url;\n\nreturn msg;", "outputs": 1, "noerr": 0, "x": 460, "y": 720, "wires": [ [ "7dab55a4.15bd7c" ] ] }, { "id": "7dab55a4.15bd7c", "type": "http request", "z": "6196e1fa.d45458", "name": "", "method": "POST", "ret": "txt", "url": "", "tls": "", "x": 710, "y": 720, "wires": [ [ "23c5af0.e5f5ed2", "3d59e7ef.57c9c" ] ] }, { "id": "23c5af0.e5f5ed2", "type": "switch", "z": "6196e1fa.d45458", "name": "", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "", "vt": "str" }, { "t": "neq", "v": "", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 890, "y": 720, "wires": [ [ "dd7b3307.8eaea" ], [ "a77d7757.2eaa6" ] ] }, { "id": "a77d7757.2eaa6", "type": "change", "z": "6196e1fa.d45458", "name": "NOT NULL == false", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "0", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1090, "y": 740, "wires": [ [ "ce3ab545.b3b968" ] ] }, { "id": "dd7b3307.8eaea", "type": "change", "z": "6196e1fa.d45458", "name": "NULL == true", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "1", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1080, "y": 700, "wires": [ [ "ce3ab545.b3b968" ] ] }, { "id": "ce3ab545.b3b968", "type": "function", "z": "6196e1fa.d45458", "name": "Status", "func": "node.status({fill:\"green\",shape:\"ring\",text:msg.payload});\nreturn msg;\n", "outputs": 1, "noerr": 0, "x": 1270, "y": 700, "wires": [ [] ] }, { "id": "67147da1.ab4e7c", "type": "inject", "z": "6196e1fa.d45458", "name": "Alle 30 Sekunden", "topic": "", "payload": "", "payloadType": "date", "repeat": "30", "crontab": "", "once": true, "onceDelay": "30", "x": 170, "y": 440, "wires": [ [ "b1b1d745.b17d98" ] ] }, { "id": "3d59e7ef.57c9c", "type": "debug", "z": "6196e1fa.d45458", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "x": 900, "y": 780, "wires": [] } ] Dort müssen die Anmeldedaten (Email / Password) und die ID's der Devices angepasst werden. (Bei mir ID1 = Smart Power / ID2 = Mähroboter) Vielleicht hilft das und über ein Feedback würde ich mich freuen. Kennt Jemand die Befehle zum Schalten des Power Adapters? Grüße Thomas
-
Moin,
habe eben mal wieder durch Zufall hier in den Thread und bei Github reingeschaut und festgestellt, dass sich diese Woche was am Adapter getan hat (Update auf 1.0.1). Direkt mal installiert…
Bei mir werden nun in der Objektstruktur im ioBroker das Gardena-Gateway, das Stellventil (Smart Water Control), der Sensor und der Mähroboter (Sileno city 500) erkannt und mit Werten befüllt. Für den Sileno city 500 gibt es nun auch unterhalb des "Device" Knotens in der Objektstruktur eine "commands" Ebene, die ich bis dato immer vermisst habe. Hierüber lässt sich der Mäher direkt ansteuern.
Allerdings scheint man für Start- und Parlbefehl zwei sparate States zu benötigen. Ich habe "start_override_timer" als Startbefehl (in der Gardena App ist das vermutlich der Button für manuelles Mähen) und als Parkbefehl "park_until_further_notice" (in der Gardena App "parken und Zeitpläne aussetzen" oder so ähnlich) verwendet.
Funktioniert einwandfrei über Alexa.
Allerdings mus man anscheinend zwei Geräte anlegen, da es sich bei dem Parkbefehl nicht um die Umkehrung des Startbefehls im Sinne eines klassischen An-Aus-Schalters handelt. Heißt, ich habe im ioBroker Cloudadapter ein "Rasenmäher Start" und ein "Rasenmäher Stop" Gerät angelegt, von dem ich jeweils in Alexa nur den An-Schalter/ -Befehl verwende.
Möglicherweise lässt sich das noch schöner lösen. Ich bin auf jeden Fall mit der Lösung erstmal zu frieden. Danke für das Adapter-Update!
Vielleicht wird ja die "commands" Ebene für das Stellventil/ Smart Water Control auch noch ergänzt?! :roll:
-
Hallo zusammen
Ich nutze diesen Adapter für meinen Sileno und einen Bodenfeuchtesensor. Vorweg, ich finde diesen Adapter super!
Nun habe ich den Abfrageintervall von 600 s auf 60 Sekunden reduziert, da ich relativ online sehen wollte, was den mein Robby macht bzw. wenn die Sprinkler an sind der Robby brav nach Hause fährt.
Hierbei ist mir Aufgefallen, dass jedesmal wenn die Abfrage des Adapters starten keinerlei Skripte mehr funktionieren und mein javascript adapter abschmiert. d.h. es werden keine Skripte Ausgeführt.
Hab dann im TOP geschaut. Bei laufender Abfrage liegt die %CPU Auslastung zum teil bei >100%.
` > PID USER PR NI __VIRT __ RES __ SHR S %CPU %MEM TIME+ COMMAND
6527 root 20 0 1270224 147076 21924 R 103,6 3,6 6:21.32 iobroker.js-con
7144 root 20 0 1138648 148164 21520 R 99,3 3,6 3:27.37 io.javascript.0
7395 root 20 0 1115376 56500 22012 S 75,5 1,4 0:06.63 io.gardena.0
6537 root 20 0 1242932 110648 21640 S 48,3 2,7 2:08.88 io.admin.0 `
Dauert dann ca. 30 Sekunden dann bekomme ich im LOG:
> javascript.0 2018-08-24 00:56:31.449 warn Reconnection to DB.
Dannach gehen die Skripte wiederLiegt wahrscheinlich daran, dass der Adapter relativ lange benötigt um die Datenmenge zu verarbeiten.
Selbst wenn ich alle Skripte deaktiviere ist der Zustand laut TOP der selbe.
Liegt es an den extrem vielen Datenpunkten die abgefragt werden bzw. kann jemand anders dieses Problem nachvollziehen?
Habe jetzt erstmal den Abfrageintervall wieder auf 600s Sekunden gesetzt, damit das Problem minimiert ist.
Gruß Thomas