68 219 läst · 113 svar
68k läst
113 svar
Worx Landroid development
I have also installed Mattias Jiderhamn's Landroid Home Assistant solution (https://github.com/mjiderhamn/worx-landroid-nodejs) on RaspPi 2
It took my some time to get all Python modules correctly compiled and installed, especially the discovery functionality (which is not needed for the landroid integration)
Tips: 1) upgrade Rasbian (debian) from weezy to jessie
2) To get HA discovery to work, Download python source "sudo apt-get install python3.4-dev" and then "sudo pip install netdisco"
And yes, I have the same some problem as Angr77, REST POSTs to HA fails status code 401. The password set in config.js was correct.
My workaround was to comment-out the password setting in HA's configuration.yaml file...
Any suggestions how to solve this, and make HA frontend, password protected again ?
Question: The battery percent graph is always at 100%, bug in HA or worx-landroid-nodejs ?
It took my some time to get all Python modules correctly compiled and installed, especially the discovery functionality (which is not needed for the landroid integration)
Tips: 1) upgrade Rasbian (debian) from weezy to jessie
2) To get HA discovery to work, Download python source "sudo apt-get install python3.4-dev" and then "sudo pip install netdisco"
And yes, I have the same some problem as Angr77, REST POSTs to HA fails status code 401. The password set in config.js was correct.
My workaround was to comment-out the password setting in HA's configuration.yaml file...
Any suggestions how to solve this, and make HA frontend, password protected again ?
Question: The battery percent graph is always at 100%, bug in HA or worx-landroid-nodejs ?

Since I'm not seeing this myself, could anyone with this problem try any of the Home Assistant support channels and report back here?enriko skrev:And yes, I have the same some problem as Angr77, REST POSTs to HA fails status code 401. The password set in config.js was correct.
My workaround was to comment-out the password setting in HA's configuration.yaml file...
Any suggestions how to solve this, and make HA frontend, password protected again ?
I haven't seen this problem either. Would you care to uncomment (i.e. remove the // ) from line 72 in landroid.js and watch the console/standard output to see if the problem is in getting the value from the Landroid, or in publishing it to Home Assistant? Also, what Landroid model and firmware version are you on?enriko skrev:
Hello,
I have some trouble with this wonderful script. Running Domoticz on a RPi2.
Hardware is created successfully but the script fails when trying to create a device.
WG796E.1 running software 1.91
Domoticz v3.4834
See log:
pi@raspberrypi:~/worx-landroid-nodejs$ node landroid2domoticz.js
Initializing devices on http://192.168.1.136:8080
MQTT hardware found in Domoticz
Devices identified: {"Memory Usage":1,"HDD /boot":2,"HDD /":3,"Internal Temperature":4,"CPU_Usage":5,"Lampa vard.rum fönster väst":6,"Lampa vard.rum":7,"Uterum":8,"Lampa rum bakom kök":24,"Lampa vard.rum söder":25,"Lampa källare fönster söder":26,"LBST-604":27,"Decklight (LGDR-3500)":28,"IsDonker":30,"Unknown":32}
Making sure device exists: Worx Landroid Battery
Device missing, needs to be created: Worx Landroid Battery
Creating device Worx Landroid Battery with type 2
Response to type=createvirtualsensor&idx=0&sensortype=2: {"status":"ERR"}
/home/pi/worx-landroid-nodejs/domoticz.js:246
throw "Error creating sensor '" + name + "': " + status;
^
ReferenceError: status is not defined
at /home/pi/worx-landroid-nodejs/domoticz.js:246:56
at Object.najax.success (/home/pi/worx-landroid-nodejs/domoticz.js:103:9)
at IncomingMessage.<anonymous> (/home/pi/worx-landroid-nodejs/node_modules/najax/lib/najax.js:130:44)
at emitNone (events.js:72:20)
at IncomingMessage.emit (events.js:166:7)
at endReadableNT (_stream_readable.js:905:12)
at nextTickCallbackWith2Args (node.js:437:9)
at process._tickCallback (node.js:351:17)
I have some trouble with this wonderful script. Running Domoticz on a RPi2.
Hardware is created successfully but the script fails when trying to create a device.
WG796E.1 running software 1.91
Domoticz v3.4834
See log:
pi@raspberrypi:~/worx-landroid-nodejs$ node landroid2domoticz.js
Initializing devices on http://192.168.1.136:8080
MQTT hardware found in Domoticz
Devices identified: {"Memory Usage":1,"HDD /boot":2,"HDD /":3,"Internal Temperature":4,"CPU_Usage":5,"Lampa vard.rum fönster väst":6,"Lampa vard.rum":7,"Uterum":8,"Lampa rum bakom kök":24,"Lampa vard.rum söder":25,"Lampa källare fönster söder":26,"LBST-604":27,"Decklight (LGDR-3500)":28,"IsDonker":30,"Unknown":32}
Making sure device exists: Worx Landroid Battery
Device missing, needs to be created: Worx Landroid Battery
Creating device Worx Landroid Battery with type 2
Response to type=createvirtualsensor&idx=0&sensortype=2: {"status":"ERR"}
/home/pi/worx-landroid-nodejs/domoticz.js:246
throw "Error creating sensor '" + name + "': " + status;
^
ReferenceError: status is not defined
at /home/pi/worx-landroid-nodejs/domoticz.js:246:56
at Object.najax.success (/home/pi/worx-landroid-nodejs/domoticz.js:103:9)
at IncomingMessage.<anonymous> (/home/pi/worx-landroid-nodejs/node_modules/najax/lib/najax.js:130:44)
at emitNone (events.js:72:20)
at IncomingMessage.emit (events.js:166:7)
at endReadableNT (_stream_readable.js:905:12)
at nextTickCallbackWith2Args (node.js:437:9)
at process._tickCallback (node.js:351:17)
Redigerat:
I have a 796E.1 with the latest 1.98 firmware. While the the robot is mowing the lawn wget jsondata.cgi gives this response:
{"versione_fw":1.98,
"lingua":0,
"ore_funz":[54,54,54,54,54,0,0],
"ora_on":[9,9,9,9,9,0,0],
"min_on":[0,0,0,0,0,0,15],
"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":x,x,x,x,x,x,x],
"time_format":1,
"date_format":1,
"rit_pioggia":360,
"area":0,
"enab_bordo":1,
"percent_programmatore":0
,"indice_area":9,
"tempo_frenatura":20,
"perc_rallenta_max":70,
"canale":0,
"num_ricariche_batt":0,
"num_aree_lavoro":4,
"dist_area":[1,20,30,50],
"perc_per_area":2,3,2,3],
"area_in_lavoro":0,
"email":"xxxx@xxxxxx.xxx"
,"perc_batt":"49"
,"ver_proto":1,
"state":"grass cutting",
"workReq":"user req grass cut",
"message":"none",
"batteryChargerState":"idle",
"distance":924801}
At this moment the lawn mover indicates 64 % battery level, but wget response says 90 %.
{"versione_fw":1.98,
"lingua":0,
"ore_funz":[54,54,54,54,54,0,0],
"ora_on":[9,9,9,9,9,0,0],
"min_on":[0,0,0,0,0,0,15],
"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":x,x,x,x,x,x,x],
"time_format":1,
"date_format":1,
"rit_pioggia":360,
"area":0,
"enab_bordo":1,
"percent_programmatore":0
,"indice_area":9,
"tempo_frenatura":20,
"perc_rallenta_max":70,
"canale":0,
"num_ricariche_batt":0,
"num_aree_lavoro":4,
"dist_area":[1,20,30,50],
"perc_per_area":2,3,2,3],
"area_in_lavoro":0,
"email":"xxxx@xxxxxx.xxx"
,"perc_batt":"49"
,"ver_proto":1,
"state":"grass cutting",
"workReq":"user req grass cut",
"message":"none",
"batteryChargerState":"idle",
"distance":924801}
At this moment the lawn mover indicates 64 % battery level, but wget response says 90 %.
Redigerat:
I've integrated my Landroid (796E.1) with openhab.
My main interest was to remotely start/stop mowing, and I've seen requests here for that, too, but no solution.
So I thought I share what I came up with after a bit of wiresharking. It's Xtend (openhab rule language) syntax, but you should be able to easily translate that to your needs and use e.g. curl or wget.
rule "Landroid command"
when
Item Landroid_Command received command
then
/* Commands:
11 = start
12 = stop (& return to base)
13 = charging Complete
14 = manual stop
15 = going home */
// insert PIN instead of XXXX and put up your IP
val String URL = "http://admin:XXXX@10.0.0.1/jsondata.cgi"
var String jsondata = 'data=[[\"settaggi\",' + Landroid_Command.state.toString + ',1]]'
logInfo("rules", "Sending Command " + Landroid_Command.state + " to Landroid.")
sendHttpPostRequest(URL, "application/x-www-form-urlencoded", jsondata)
end
My main interest was to remotely start/stop mowing, and I've seen requests here for that, too, but no solution.
So I thought I share what I came up with after a bit of wiresharking. It's Xtend (openhab rule language) syntax, but you should be able to easily translate that to your needs and use e.g. curl or wget.
rule "Landroid command"
when
Item Landroid_Command received command
then
/* Commands:
11 = start
12 = stop (& return to base)
13 = charging Complete
14 = manual stop
15 = going home */
// insert PIN instead of XXXX and put up your IP
val String URL = "http://admin:XXXX@10.0.0.1/jsondata.cgi"
var String jsondata = 'data=[[\"settaggi\",' + Landroid_Command.state.toString + ',1]]'
logInfo("rules", "Sending Command " + Landroid_Command.state + " to Landroid.")
sendHttpPostRequest(URL, "application/x-www-form-urlencoded", jsondata)
end
Nice!
I will make sure to integrate that into my script as soon as I've verified the commands.
https://github.com/trieb/worx-landroid
I will make sure to integrate that into my script as soon as I've verified the commands.
https://github.com/trieb/worx-landroid
This seems very interesting miktr. I run MQTT too (Mosquito) but use Home-Assistant instead of openHAB.miktr skrev:
Please let us know when you solved the task to send commands to the Landroid.
I might try mstormis version too to send commands directly using json
Good work!
EDIT: Anyone who can post a working cURL syntax?
I tried
curl -X POST -d '{"data=[[\"settaggi\",'11',1]]"}' http://admin:0000@192.168.1.11/jsondata.cgi
but it didn´t work
Redigerat:
I guess you have to add HTTP Authentication to the curl-command, something like:
To do a get:
curl -X GET --used admin:0000 http://192.168.190/jsondata.cgi
To do a get:
curl -X GET --used admin:0000 http://192.168.190/jsondata.cgi