Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/normen/homebridge-landroid
Homebridge plugin to control Worx Landroid robo mowers through the Worx Cloud
https://github.com/normen/homebridge-landroid
Last synced: about 1 month ago
JSON representation
Homebridge plugin to control Worx Landroid robo mowers through the Worx Cloud
- Host: GitHub
- URL: https://github.com/normen/homebridge-landroid
- Owner: normen
- Created: 2019-03-30T22:24:15.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-03-24T09:24:05.000Z (9 months ago)
- Last Synced: 2024-04-30T07:00:21.493Z (8 months ago)
- Language: JavaScript
- Size: 140 KB
- Stars: 25
- Watchers: 11
- Forks: 8
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
- awesome-ccamel - normen/homebridge-landroid - Homebridge plugin to control Worx Landroid robo mowers through the Worx Cloud (JavaScript)
README
# DISCONTINUED
** This project has been discontinued as of December 2023 **
I moved my personal setup to [FHEM](https://github.com/fhem) which supports Worx mowers out of the box and can be used together with homebridge.
##### Basic rundown
- Install [FHEM](https://fhem.de/#Installation)
- Install [Homebridge-FHEM](https://github.com/justme-1968/homebridge-fhem) plugin in Homebridge
- Add Worx mowers to FHEM according to [this guide](https://wiki.fhem.de/wiki/Mähroboter:_Worx_Landroid,_Kress,_Landxcape)
- Mowers will be found and added after you configured the Worx bridge as outlined above
- Apply `worx_landroid` attrTemplate to newly found mowers via web UI set command or otherwise
- Add `siriName` attribute to mower for it to be loaded in HomeKit
- Add `homekitMapping` attribute to mower with the content below
- Restart homebridge##### homekitMapping
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-landroid [![NPM Version](https://img.shields.io/npm/v/homebridge-landroid.svg)](https://www.npmjs.com/package/homebridge-landroid) [![verified-by-homebridge](https://badgen.net/badge/homebridge/verified/purple)](https://github.com/homebridge/homebridge/wiki/Verified-Plugins)
Homebridge plugin to control Worx Landroid (as well as Kress, Ferrex and Landxcape) lawn mowers through the Cloud, should support most mowers.## Features
- Automatically fetches all mowers from Cloud
- Start mower
- Return mower to home
- Mowing status (on / off)
- Battery Status
- Error status
- Rain status
- Home status## Installation
1. Install homebridge using: npm install -g homebridge
2. Install this plugin using: npm install -g homebridge-landroid
3. Set up homebridges config.json with your Worx account data#### Example config
```
{
"bridge": {
"name": "Homebridge",
"username": "CC:22:3D:E3:CE:30",
"port": 51826,
"pin": "031-45-154"
},
"platforms": [
{
"platform": "Landroid",
"email": "[email protected]",
"pwd": "my_password"
}
]
}
```#### Options
- `email` eMail for your Worx account
- `pwd` Password for your Worx account
- `rainsensor` Adds an additional "Leak" sensor for rain detection
- `homesensor` Adds an additional "Home" sensor for home detection
- `partyswitch` Adds an additional "PartyMode" switch to temporarily disable the schedule
- `reload` Clears all mowers in HomeKit and reloads them from the cloud, default `false`
- `cloud` Sets the cloud to use, `worx`, `kress`, `ferrex` or `landxcape`, default `worx`
- `debug` Enable additional debug log output, default `false`
- `mowdata` Enable additional mowing data log output, default `false`## Usage
The mower will appear as a switch and a contact sensor in HomeKit.#### On/Off Switch
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.#### Contact Sensor
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.#### Home Sensor
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.
#### Battery Status
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.## Development
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
#### Setup
- clone github repo
- `npm install` in the project folder
- create `.homebridge` folder in project root
- add `config.json` with appropriate content to `.homebridge` folder
- run `npm run test` to start the homebridge instance for testing
- alternatively run `npm run dev` to start homebridge if its installed as a global package#### Notes
Most of the connector code is directly copied from [iobroker.worx](https://github.com/iobroker-community-adapters/ioBroker.worx), a helper script called 'sync-code' allows updating to the latest version of that code.