** This project has been discontinued as of December 2023 **
I moved my personal setup to FHEM which supports Worx mowers out of the box and can be used together with homebridge.
- Install FHEM
- Install Homebridge-FHEM plugin in Homebridge
- Add Worx mowers to FHEM according to this guide
- Mowers will be found and added after you configured the Worx bridge as outlined above
- Apply
worx_landroidattrTemplate to newly found mowers via web UI set command or otherwise - Add
siriNameattribute to mower for it to be loaded in HomeKit - Add
homekitMappingattribute to mower with the content below - Restart homebridge
This homekitMapping has to be added to the mower so it can be controlled properly from HomeKit:
clear
On=mowerStatusTxt,values=Home:0;;/.*/:1,cmds=0:stopMower;;1:startMower;;false:stopMower;;true:startMower
BatteryService#BatteryLevel=batteryPercent
BatteryService#ChargingState=batteryCharging
BatteryService#StatusLowBattery=batteryPercent,threshold=20,values=0:BATTERY_LEVEL_LOW;;1:BATTERY_LEVEL_NORMAL
To add other switches you can add more On=... lines, to add ContactSensors add a line like
ContactSensorState=mowerStatusTxt,values=closed:Home=0;open:/.*/
Homebridge plugin to control Worx Landroid (as well as Kress, Ferrex and Landxcape) lawn mowers through the Cloud, should support most mowers.
- Automatically fetches all mowers from Cloud
- Start mower
- Return mower to home
- Mowing status (on / off)
- Battery Status
- Error status
- Rain status
- Home status
- Install homebridge using: npm install -g homebridge
- Install this plugin using: npm install -g homebridge-landroid
- Set up homebridges config.json with your Worx account data
{
"bridge": {
"name": "Homebridge",
"username": "CC:22:3D:E3:CE:30",
"port": 51826,
"pin": "031-45-154"
},
"platforms": [
{
"platform": "Landroid",
"email": "my@email.com",
"pwd": "my_password"
}
]
}
emaileMail for your Worx accountpwdPassword for your Worx accountrainsensorAdds an additional "Leak" sensor for rain detectionhomesensorAdds an additional "Home" sensor for home detectionpartyswitchAdds an additional "PartyMode" switch to temporarily disable the schedulereloadClears all mowers in HomeKit and reloads them from the cloud, defaultfalsecloudSets the cloud to use,worx,kress,ferrexorlandxcape, defaultworxdebugEnable additional debug log output, defaultfalsemowdataEnable additional mowing data log output, defaultfalse
The mower will appear as a switch and a contact sensor in HomeKit.
The switch shows the current status and allows to control the mower. If the switch is off the mower is either on the home base or on its way to the home base. If it's on the mower is currently mowing. Turn the switch on to start the mowing cycle, turn it off to send the mower back home.
The contact sensor is used to display issues with the mower (trapped, outside wire etc.), when the contact sensor is "open" there is some issue that prevents the mower from continuing. Fix the issue to control the mower again.
The home (contact) sensor is used to display if the mower is standing in home position, when the contact sensor is "open" the mower is currently not at home.
Note: If you update from Version <= 0.9.5 or enable the sensor after first setup then you need to reload all mowers. This also invalids your homekit automations which need to be reconfigured.
You can see the battery status in the settings of either the switch or contact sensor in the Home app and you can ask Siri about the battery status of your lawn mower.
If you want new features or improve the plugin, you're very welcome to do so. The projects devDependencies include homebridge and the npm run test command has been adapted so that you can run a test instance of homebridge during development. Alternatively you can use npm run dev if you have homebridge installed as a global package
- clone github repo
npm installin the project folder- create
.homebridgefolder in project root - add
config.jsonwith appropriate content to.homebridgefolder - run
npm run testto start the homebridge instance for testing - alternatively run
npm run devto start homebridge if its installed as a global package
Most of the connector code is directly copied from iobroker.worx, a helper script called 'sync-code' allows updating to the latest version of that code.