Adding Worx Landroid

Topics (not sure which fora)
when not sure where to post, post here and mods will move it to right forum.

Moderators: leecollings, remb0

Post Reply
daPeda
Posts: 7
Joined: Thursday 15 August 2019 1:21
Target OS: Linux
Domoticz version: 2021.1
Contact:

Adding Worx Landroid

Post by daPeda »

Hello,

I am trying to integrate my Worx Landroid robotic lawnmower into Domoticz. For this I am following the following instructions:
https://easydomoticz.com/forum/viewtopi ... 300#p72300

However, I get an error here in the first part of the manual:
TOKEN = $ (curl -v -X POST -d '{"client_......
(23) Failed writing body

My research came up with the result that my file system should be broken. So I've reinstalled Domotics on the Raspberry. Unfortunately, no improvement.

I would be very happy if I got a tip.

Thank you in advance!

all the best
Peter
timmpo
Posts: 14
Joined: Sunday 24 February 2019 10:26
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Adding Worx Landroid

Post by timmpo »

i tested the information on that site and found it working, i rewrite some code..

This make 2 files with json data with all usefull info aboute your landroid (second file hold the most usefull information).
make sure you give the script rights to create files. (sudo chmod 777 filename.sh)
edit user, pass and your serial number
you need to have JQ installed

Code: Select all

#!/bin/sh
DOMOTICZ="192.168.1.100"
PORT="8080"

TOKEN=$(curl -v -X POST -d '{"client_id": 1, "grant_type": "password", "scope": "*", "client_secret":"nCH3A0WvMYn66vGorjSrnGZ2YtjQWDiCvjg7jNxK", "username":"YOUR_EMAIL", "password":"YOUR_PASSWORD"}' -H 'Content-Type: application/json' https://api.worxlandroid.com/api/v2/oauth/token | jq -r '.access_token')
curl -X GET -H 'Accept: application/json' -H 'Content-Type: application/json' -H "Authorization: Bearer $TOKEN" https://api.worxlandroid.com/api/v2/product-items > landroid_indata.json
curl -X GET -H 'Accept: application/json' -H 'Content-Type: application/json' -H "Authorization: Bearer $TOKEN" https://api.worxlandroid.com/api/v2/product-items/YOUR_SERIAL_NUMBER/status > landroid_indata2.json
echo "Done..."

#This reads the json file
MOWER_WORKED=`cat landroid_indata.json | jq '.[]|.mower_work_time'/60`
echo $MOWER_WORKED
#Put the value to domoticz
curl http://$DOMOTICZ:$PORT/json.htm?"type=command&param=udevice&idx=IDX&svalue=$MOWER_WORKED"
but this information on that site is not right, on newer firmwares (5.52) you find the mower_work_time in the second json file
at the ['dat'] ['st'] ['wt']
distance is on ['dat'] ['st'] ['d']
battery voltage ['dat'] ['bt'] ['v']
rsi ['dat'] ['rsi']
so perhaps you have to find out what is what with your version
azertigrou
Posts: 1
Joined: Monday 04 May 2020 14:21
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Adding Worx Landroid

Post by azertigrou »

The following command worked very well yesterday but not today.
Is the problem is on my site or the API does not exist anymore?
Thx

TOKEN=$(curl -v -X POST -d '{"client_id": 1, "grant_type": "password", "scope": "*", "client_secret":"nCH3A0WvMYn66vGorjSrnGZ2YtjQWDiCvjg7jNxK", "username":"YOUR_EMAIL", "password":"YOUR_PASSWORD"}' -H 'Content-Type: application/json' https://api.worxlandroid.com/api/v2/oauth/token | jq -r '.access_token')
magicduck
Posts: 36
Joined: Sunday 11 February 2018 13:25
Target OS: -
Domoticz version:
Location: Longwy, France
Contact:

Re: Adding Worx Landroid

Post by magicduck »

I have an "old" Worx (with the app : Worx Mover).

I have just made some quick dzvents script :

Code: Select all

-- Your Worx Landroid M informations
local worx_ip  = "192.168.x.Z"
local worx_pin = "0000"
-- Update the virtual devices 
local update_devices = 1 -- 0 = no update / 1 = update 
local idxbat   = 1234  -- Virtual Device type Percentage
local idxstate = 1235  -- Virtual Device type Text
local idxmsg   = 1236  -- Virtual Device type Text


-- For http callback
local response = "Worx_response"

return {
	on = {
	    timer         = { "every minute"},
	    httpResponses = { response },
	},
	logging = {
	        level = domoticz.LOG_DEBUG,
	        maker = "Worx M"},
	execute = function(dz, item)
            local function logWrite(str, level)
                dz.log(tostring(str), level or dz.LOG_DEBUG)
            end
            
            if item.isHTTPResponse then
                local worx_state
                local worx_battery
                local worx_charger
                local worx_message
                
                worx_state = item.json.state 
                worx_battery = item.json.perc_batt
                worx_charger = item.json.batteryChargerState
                worx_message = item.json.message
                
                logWrite("Worx State   : " .. worx_state)
                logWrite("Worx Battery : " .. worx_battery .. "%")
                logWrite("Worx Charger : " .. worx_charger)
                logWrite("Worx Message : " .. worx_message)
                
                if update_devices then
                    dz.devices(idxbat).updatePercentage(worx_battery)
                    dz.devices(idxstate).updateText(worx_state)
                    dz.devices(idxmsg).updateText(worx_message)
                end
            else
                local url = "http://admin:"..worx_pin.."@"..worx_ip.."/jsondata.cgi"
                
                dz.openURL({
                    url    = url,
                    method = "GET",
                    callback = response })
            end 
	end
}
Replace all information at the begining, you'll get data directly :p
skorc11
Posts: 12
Joined: Wednesday 24 October 2018 9:55
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Adding Worx Landroid

Post by skorc11 »

Hello,

is this still working for new models with WIFI ? New API ?

This looks nice for lawn mower...
https://www.npmjs.com/package/iobroker.worx

U
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest