curl -u admin:WORX-PIN -H "Accept: application/json" -H "Content-type: application/x-www-form-urlencoded" -X POST -d 'data=[["settaggi",12,1]]' http://IP-VOM-WORX/jsondata.cgi
Worx Mähroboter starten & Stoppen / HTTP-Post-Request
Einklappen
X
-
Ich habe es jetzt über die Dreambox gemacht - wollte es eigentlich vermeiden, aber ich komme hier nicht weiter. Mit diesem Befehl über die Drembox funktioniert es wunderbar.
curl -u admin:WORX-PIN -H "Accept: application/json" -H "Content-type: application/x-www-form-urlencoded" -X POST -d 'data=[["settaggi",12,1]]' http://IP-VOM-WORX/jsondata.cgi -
Hallo zusammen!
Bei uns werkelt seit einigen Wochen ein WG796E.1 und verschafft mir seither mehr Freizeit! Ich habe mich daher heute mal mit der Integration in den Miniserver beschäftigt.
Zuerst ging es mir nur um die Visualisierung der Mähzeiten, doch schnell hatte ich auch den Wunsch den Mäher auch ausserhalb der Mähzeiten zur Arbeit zu überreden.
Ein wenig Recherche und Sniffing später, habe ich einige Infos ans Licht gebracht.
Hier mal Auswahl der über den Webserver des Mähers zugreifbaren Dateien (habe ich in der Firmware des Mähers gefunden) :
XXXX=Pin des Mähers
IP-MAEHER= die IP Adresse des Mähers
http://admin:XXXX@IP-MAEHER/jsondata.cgi
Hier mal ein Auszug von meinem Mäher:
Code:{"versione_fw":2.61,"lingua":1,"ore_funz":[0,37,0,37,62,0,0],"ora_on":[0,15,0,15,13,0,0],"min_on":[0,0,0,0,0,0,0],"allarmi":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"settaggi":[0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"mac":[0,35,167,164,222,114],"time_format":1,"date_format":1,"rit_pioggia":120,"area":0,"enab_bordo":1,"percent_programmatore":0,"indice_area":9,"tempo_frenatura":20,"perc_rallenta_max":70,"canale":0,"num_ricariche_batt":260,"num_aree_lavoro":1,"dist_area":[1,1,1,1],"perc_per_area":[1,1,1,1],"area_in_lavoro":0,"email":"","perc_batt":"100","ver_proto":1,"state":"home","workReq":"user req manual homing","message":"none","batteryChargerState":"idle","distance":4}
http://admin:XXXX@IP-MAEHER/debugPage.html
Hier findet man die aktuellen Zustand des Mähers z.B. die Mähzeiten, den Status des Mäher (In der Ladestation, folgt Kabel, mäht etc.)
Als JSON bekommt man das über http://admin:XXXX@IP-MAEHER/jsonDebug.cgi
Hier findet man ein Seite mit Livedaten, mit z.B. der Temperatur des Akkus, Ladestrom, Daten des Beschleunigungsmessers, Motordrehzahlen und vielem mehr.
http://admin:XXXX@IP-MAEHER/index.htm bzw. http://admin:XXXX@IP-MAEHER/index.html
führt zur "App" Oberfläche des Mähers im Browser.
http://admin:XXXX@IP-MAEHER/log.html
Hier kann man sich die letzten Einträge im internen Log des Mähers ansehen z.B. Messerlaufzeit der letzten Fahrt, start der Akkuladung etc..
Als JSON bekommt man dies über http://admin:XXXX@IP-MAEHER/jsonLog.cgi
http://admin:XXXX@IP-MAEHER/js/app.js.gz
Hier findet man die der App zugrundeliegenden Funktionen und somit auch die setzbaren Parameter.
http://admin:XXXX@IP-MAEHER/locale/de.js
Diverse Übersetzungen der Statusmeldungen (da/de/en/es/fi/fr/it/nb/nl/pt/sv).
Nun aber zum starten und stoppen des Mähers über Loxone. Ganz ehrlich, die Doku des virtuellen Ausgangs/virtuellen Ausgangs Befehl sind wirklich dürftig!
Ohne vielfaches probieren, hat man keine Chance die genau Funktion zu ergründen.
Ich habe das nun so gelöst:
Dazu kommen nun 2 virtuelle Ausgangs Befehle, einer für Stoppen und einer fürs Starten.
Befehl bei EIN:/jsondata.cgi
HTTP-Erweiterung bei EIN:Content-Type: application/x-www-form-urlencoded\nAccept: application/json
HTTP-Post-Befehl bei EIN:data=%5B%5B%22settaggi%22%2C11%2C1%5D%5D
Decoded sende ich also: data=[["settaggi",11,1]]
HTTP Methode bei EIN:POST
Ich habe das gleiche Setting bei AUS eingesetzt, somit wird das ganze 2 mal ausgeführt, ist zwar nicht unbedingt nötig, habe es aber ohne nicht getestet.
Wiederholungen und Abstand der Wierderholungen habe ich auf 1 gesetzt (hier muss ich noch testen ob es nicht sinnvoll ist dies zu erhöhen, ich habe ein recht weitläufiges Grundstück und bin mir nicht sicher ob der Mäher überall WLAN Empfang hat).
Zum stoppen wir hier alles analog eingestellt nur der settaggi rückt um ein Feld auf 12 vor.
Decoded sende ich also: data=[["settaggi",12,1]]
Ob das ganze geklappt hat, kann man über jsondata.cgi am Parameter "workReq" erkennen.
stoppen setzt:user req manual homing
starten setzt:user req grass cut
Ich habe einfach 2 Taster in die Config gesetzt, diese setzen dann den Befehl ab.
Funktioniert bei mir einwandfrei!
Somit lassen sich auch andere Werte setzen, z.B. die Startzeiten der einzelnen Tage z.B. Sonntag um 15Uhr mit dem mähen beginnen und um 19:45Uhr geht es für den Mäher zurück zur Ladestation.
Beispiel:
data=[["ora_on",6,15],["ore_funz",6,37]]
Encoded also:
data=%5B%5B%22ora_on%22%2C6%2C15%5D%2C%5B%22ore_fu nz%22%2C6%2C37%5D%5D
Wichtig dabei ist das data= NICHT codiert wird!
Perfekt ist auch, das man nicht bei jedem senden alle Felder senden muss, sondern ganz gezielt nur den Wert der geändert werden soll.
Ich hoffe ich konnte helfen.
Schönen Abend!
P.S. Als nächstes möchte ich versuchen über die Visu die Start- und Stoppzeiten des Mäher zu setzen. Hat jemand eine Idee wie sich das umsetzen lässt (evtl. Schaltuhr/Wecker)? An anderer Ansatz ist es den Mäher wetterabhänig zu starten, dazu mus ich aber erstmal meine Ventus W266 mittels ESP8266 dazu überreden mit dem MS zu reden, aber das ist eine andere Baustelle...
P.P.S. Das ist mein erster Beitrag, ich lese schon ein Weile mit, habe aber nur selten Zeit mal was zu schreiben.Zuletzt geändert von type0n; 30.09.2017, 19:51.Loxberry, 1x MS, 1x 1-Wire, 11x Extension, 1x Airbase, viele ESP8266/ESP32 Geräte über UDP MQTT, Shellies! Novelan Solewärmepumpe, 10kWp PV mit SMA STL-9000, einige RaPis,FritzBoxen etc. Alte Hütte von 1770 mit rund 370m² für 2 Parteien, vollentkernt ab 2011, Einzug 2013, Fertigstellung ∞, ein wenig Umlage 9K m²Kommentar
-
Hallo Leute, möchte mir den Worx Landroid Mähroboter M1000i
Link:https://www.obi.at/maehroboter/worx-...000i/p/3189917
zulegen, kann man bei disem Gerät auch eine Verbindung mit dem MS herstellen?
Danke für die Info
LG Michi
LG MRMKommentar
-
Ich lasse mir jetzt per iobroker und node-red ein paar Werte vom Landroid S in der Loxone Visu anzeigen. Es sind noch deutlich mehr möglich. Werde demnächst auch noch versuchen den Robi darüber zu starten und stoppen.1 BildKommentar
-
Hallo Zusammen Erst mal total klasse das How to
Funktioniert alles super
Ich hab nur eine Frage: würde gerne den Regensensor auslesen.
Das bekomme ich im explorer angezeigt:
{"landroid":{"state":"home","boardTemperature": 8.4 ,"distance":-72280,"wheelLeftDistance":-144552,"wheelRightDistance":-9,"angle":-25096,"rainSensor":3838,"aree":{"index":0,"vet":[1,1,1,1,1,1,1,1,1,1]},"battery":{"percentage":100,"voltage":27.33,"t em perature":3.2,"ntcResistance":23900},"batteryCharg er":{"state":"idle","chargeCurrent":0.00},"accel er ometer":{"gravity":[0.043,0.064,1.006],"angle":[1.000000,3.000000,0.000000]},"gyroscope":{"angularSpeed":[-0.760,1.159,5.556],"angle":[-14358500.000000,22793490.000000,1867970.750000]},"motor":[{"speed":0,"maxSpeed":51,"speedReduction":0,"rp m": 0,"feedbackError":0,"acceleration":100,"decelera ti on":220,"fault":false},{"speed":0,"maxSpeed":51, "s peedReduction":0,"rpm":0,"feedbackError":0,"accele ration":100,"deceleration":220,"fault":false},{"sp eed":0,"maxSpeed":92,"speedReduction":0,"rpm":0," f eedbackError":0,"acceleration":100,"deceleration": 250,"fault":false}],"guide":{"straightSpeed":0,"turningSpeed":0,"m eas uredWheelDeltaDistance":0,"requiredWheelDeltaDista nce":0,"deltaSpeedCorrection":0}},"id":{"stop1":f a lse,"stop2":false,"lift1":false,"lift2":false,"tra ppedLeft":false,"trappedRight":false,"door1":false ,"door2":false},"dipSw":{"sw1":false,"sw2":fals e," sw3":false,"sw4":false},"wireSensor":{"fwVer":0.7 0 ,"left":"inside","right":"outside"}}
Und würde gerne den "rainSensor":3838" als Status einlesen
Bei Loxone kommt aber nur eine "51" an ????
Virtueller Eingang: http://mein pw:mein benutzer
@"Worxy IP"/jsonDebug.cgi
Befehlserkennung: \i"rainSensor":\i\1
Habt ihr eine Idee was ich falsch mache?
Vielen dank für eure Hilfe
Gruss AndiZuletzt geändert von andineu; 28.10.2018, 07:01.Kommentar
-
-
Nö, am Abfragezyklus scheitert es nicht. Er fragte nach dem 1. Byte, da hat er bekommen. 3 -> (ASCII) 51.Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)Kommentar
-
-
Es bringt Dir ja nichts, wenn wir Dir jetzt jede Abfrage zeigen.
Schau dir mal die Dokumentation dazu an und überleg doch mal wie das gehen könnte.
Die Vorgehensweise unterscheidet sich ja nicht von der vorherigen Frage bezüglich Regensensor.
Wenn Du nicht weiterkommst, dann zeigst Du wie Du es versucht hast und sagst uns was Dir nicht klar ist.lg RomildoKommentar
-
OK danke, geht klar.
Ich schau mir das an und melde mich dann nochmal
vielleicht klappt es ja ;D..... OK der erst geht ( danke für die Beschreibung die ist echt hilfreich)
Mal sehe wie ich den ersten jetzt überspringe
OK ich hab es gerafft
gravity":[\v
gravity":[\s6\v
gravity":[\s12\v
Echt super
Gruss AndiZuletzt geändert von andineu; 28.10.2018, 20:56.Kommentar
-
Ich habe alles so eingegeben, wie du es vorgemacht hast - allerdings läuft er nicht los. Hast du eine Idee? Wenn ich den Befehl
curl -X POS "http://admin:1708@192.168.2.45/jsondata.cgi" -d 'data=[["settaggi",11,1]]'
eingebe - funktioniert es.
3 BilderKommentar
Kommentar