This thread is meant for discussions around development efforts related to Worx Landroid robotic mowers. This includes leveraging the RESTful API that exists in some models (such as the WG796E), as well as reverse engineering with the aim of creating custom firmware.
Developers from all countries welcome.
49 304 läst · 113 svar
49k läst 113 svar
Worx Landroid development
Sida 1 av 8
22 jun 2015 09:11 #2
RESTful API using JSONThe Worx Landroid WG796E - and presumably also the WG797E - sports a RESTful API interface that consumes and produces JSON. The endpoint for the interface is at /jsondata.cgi on port 80 on the mowers IP.
The API uses Basic HTTP authentication with "admin" as username and the units PIN code as password.
Redigerat 22 jun 2015 09:50
22 jun 2015 16:37 #3
I have created a Node.JS project on GitHub, that polls the Worx Landroid for current status, and then publish the result to Domoticz. At the moment it allows tracking the battery level of the Landroid over time.
Inloggade ser högupplösta bilder Logga in
22 jun 2015 19:06 #4
Looks fantastic! Just a question on the environment...the Domotics is a software that you install on a PC etc at home which is present on the same wifi net as the worx? Where do you have execute the JS code? On the Domotics system?
22 jun 2015 19:13 #5
In order to get this running, you will need
- A Domoticz server running on a PC, Raspberry Pi or other supported hardware
- An MQTT broker. I used Mosquitto running on Windows
- My application executed in an environment supported by Node.JS
22 jun 2015 20:29 #6
Some challenges faced after installing the three apps + code...a readme file would be fantastic. I get the Domotics to work and also to configure a hardware requesting for MQTT information on port 1883.
Trying to start the Mosquitto broker...it complains about a file named SSLEAY32.dll which is missing...Which is a opensll library....downloaded this packages...but now things starts to be very complex....
22 jun 2015 20:52 #7
I just saw your readme file on GITHub site....but what is 4.Clone this Git repo git clone https://github.com/mjiderhamn/worx-landroid-domoticz.git
22 jun 2015 22:40 #8
Just to get in the game I also pushed a client that polls the Landroid for data and publish it using mqtt.
I will continue building on it, right now it only reads the battery level. Any suggestions are appreciated!
It's written in python and can be found here: https://github.com/trieb/worx-landroid
23 jun 2015 06:47 #10
The JSON response documentation has been added to the https://github.com/mjiderhamn/worx-landroid-domoticz.git project README.md, where proper formatting + syntax highlighting and updates are possible.
23 jun 2015 10:04 #11
Hi! In the readme file on Point 4 & 5. Where does the package get installed? Cloned directory?
(The GIT package installs - but were? Got some error that the js files could not be installed etc)
23 jun 2015 12:25 #12
I’m very happy to find the “Worx Landroid development” thread (in English) here. My target is to integrate the WG796E into my Smart-Home-System to monitor it and to send commands to the mower triggered by weather or other conditions.
First some general thought I’d like to share… There are basically three ways to approach the customizing of the WG796E:
1) Use http://landroidIP/jsondata.cgi to retrieve data and send commands (from external systems). Basic functionality can be found at http://landroidIP/js/app.js (this is pretty straight forward). However there are still some values that might allow deeper customization. The meaning of the alarm- and setting-bits as well as gradi_ini_diritto, perc_cor_diritto, coef_angolo_retta etc. still has to be determined.
2) All the information and commands from point 1) could probably be included in an updated web-interface on the mower. So it would be accessible through the smartphone-app (in same LAN only) or directly from a browser. The file “db297.pck” from the update to version 12.1 is basically just all the files for the internal webserver. Changes in this file (as long as the structure stays intact and probably checksums are newly calculated) will change the web-interface. The webserver won’t process any of the scripts – so if you crash something it will happen on your browser and the mower is still usable.
3) For those that like it hard-core - the file “db297.bin” can be reverse engineered and changed. This will completely replace the firmware… And probably damage the WG796E completely.
Well, I focus on point 1) because that seems most promising to me. I’ll keep you posted…
Abraham (from Switzerland)
23 jun 2015 14:27 #13
Great work guys! I wish I could be of use, but unfortunately I am pretty useless when it comes to coding and such. However, I will follow this thread closely, and when you find solutions, hopefully you can support us with no skills.
23 jun 2015 18:54 #15
The Domoticz device configuration has now been automated to allow getting started easier, see new instructions on https://github.com/mjiderhamn/worx-landroid-domoticz.git
I have also added alerts/alarms support.
From there, the project itself does not need to be compiled nor installed. We do however need to download the dependencies that the project uses. The "npm install" does the downloading, into a subdirectory ("node_modules") of the cloned repository. You can also ask npm to install dependencies globally (see npm tutorial).Redigerat 23 jun 2015 18:57