Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/nicoduj/homebridge-deebotecovacs

Homebridge Deebot (from Ecovacs) plugin
https://github.com/nicoduj/homebridge-deebotecovacs

deebot ecovacs homebridge homebridge-plugin

Last synced: 13 days ago
JSON representation

Homebridge Deebot (from Ecovacs) plugin

Awesome Lists containing this project

README

        

# homebridge-deebotecovacs

[![npm](https://img.shields.io/npm/v/homebridge-deebotecovacs.svg)](https://www.npmjs.com/package/homebridge-deebotecovacs)
[![npm](https://img.shields.io/npm/dw/homebridge-deebotecovacs.svg)](https://www.npmjs.com/package/homebridge-deebotecovacs)
[![npm](https://img.shields.io/npm/dt/homebridge-deebotecovacs.svg)](https://www.npmjs.com/package/homebridge-deebotecovacs)

[![CodeFactor](https://www.codefactor.io/repository/github/nicoduj/homebridge-deebotecovacs/badge)](https://www.codefactor.io/repository/github/nicoduj/homebridge-deebotecovacs)
[![Build Status](https://travis-ci.com/nicoduj/homebridge-deebotecovacs.svg?branch=master)](https://travis-ci.com/nicoduj/homebridge-deebotecovacs)
[![Known Vulnerabilities](https://snyk.io/test/github/nicoduj/homebridge-deebotecovacs/badge.svg?targetFile=package.json)](https://snyk.io/test/github/nicoduj/homebridge-deebotecovacs?targetFile=package.json)

[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)


Plugin for controlling your [deebot Ecovacs](https://www.ecovacs.com/global/deebot-robotic-vacuum-cleaner) from [Ecovacs](https://www.ecovacs.com/global/support/) through [HomeBridge](https://github.com/nfarina/homebridge) .

Each Deebot is shown through

- One fan. Fan speed will determine the deebot speed. Direction will handle auto / edge mode. Switching off will make the deebot stop, switching on will make it start cleaning,
- One Switch that will allow you to start lceaning (auto / edge mode depending on Fan direction), and go back to charge when switched off,
- One Switch that will play a sound on your Deebot,
- One Motion sensor that will be triggered in case your deebot needs attention.

The battery percentage / charging status is shown in the detail pane of each service.

`npm install -g homebridge-deebotecovacs`

**IMPORTANT**
_This might not be needed anymore since 1.2.0_

If you encounter any issue while installing, you might have to install additionnal packages on your environment since the main dependency of it depends on canvas library which is not available for all configurations. See there for more details : [canvas compiling](https://github.com/Automattic/node-canvas#compiling).

For use in the [oznu/homebridge](https://github.com/oznu/docker-homebridge) Docker image (Alpine Linux) please add the following line to your `startup.sh` script and restart the container. You can edit this file in directly in the Homebride UI by selecting the drop down menu in the upper-right-corner and selecting _Startup Script_.

```
apk add build-base cairo-dev jpeg-dev pango-dev giflib-dev librsvg-dev
```

You can also use the [PACKAGES](https://github.com/oznu/docker-homebridge#optional-settings) env variable directly with docker

```bash
-e PACKAGES=build-base,cairo-dev,jpeg-dev,pango-dev,giflib-dev,librsvg-dev
```

## Homebridge configuration

Config as below:

```json
"platforms": [
{
"platform": "DeebotEcovacs",
"email": "[email protected]",
"password": "toto",
"countryCode" : "FR"
}
]
```

Fields:

- `platform` must be "DeebotEcovacs" (required).
- `email` email used for your ecovacs account (required).
- `password` password of your ecovacs account (required).
- `country code` : country code for your account , value in : CH, TW, MY, JP, SG, TH, HK, IN, KR,US,FR, ES, UK, NO, MX, DE, PT, CH, AU, IT, NL, SE, BE, DK, OTHER (required).
- `refreshTimer` Optional - enable refresh of deebot state every X seconds, for automation purpose if you need to activate something else based on its state change (defaults : disable, accepted range : 30-600s).
- `cleanCache` Set it to true in case you want to remove the cached accessory (only those from this plugin). You have to restart homebridge after applying the option. Remove it after restart, otherwise it will be recreated at each startup.
- `deebotNames` Array of NickNames of the deebot to publish. Defaults to all found on your account.
- `publishBipSwitch` Optional - defaults to true - Publish the switch that makes the deebot beeps
- `publishFan` Optional - defaults to true - Publish the fan that makes speed cleaning available
- `publishSwitch` Optional - defaults to true - Publish the switch that makes on/off available
- `publishMotionDetector` Optional - defaults to true - Publish the motion detector to be triggered in case of hep needed by your deebot
- `publishAutoSwitch` Optional - Publish a switch to start in auto Mode.
- `publishEdgeSwitch` Optional - Publish a switch to start in edge Mode.
- `publishSpotSwitch` Optional - Publish a switch to start in spot Mode.
- `publishSpotAreaSwitches` Optional - Publish switches to start for each spot Area. Must be something like ["1","1,2"] or ["deebotName|1","deebotName2|1,2"] if you have multiple deebots . Name can be specified like ["1/Kitchen","1,2/LivingRoom"]
- `publishCustomAreaSwitches` Optional - Publish switches to start for each Custom Area. Must be something like ["x1,y1,x2,y2,numberOfcleanings","x1,y1,x2,y2,numberOfcleanings"] or ["deebotName|x1,y1,x2,y2,numberOfcleanings","deebotName2|x1,y1,x2,y2,numberOfcleanings"] if you have multiple deebots. Number of cleanings is optionnal . Name can be specified like ["x1,y1,x2,y2,numberOfcleanings/Kitchen"]
- `publishAreaSwitchesAsSeparateDevices` Optional - Defaults to false. Publish Custom / Spot switches as indiviual accessories so that you can move them in other rooms.
- `showInfoLogs` Optional - Defaults to false. Log info for maps, custom areas and so on .

See : https://github.com/mrbungle64/ecovacs-deebot.js/wiki/Clean-modes

## Changelog

See [CHANGELOG][].

[changelog]: CHANGELOG.md

## Inspiration

Many thanks to :

- [wpietri] for sucks python api and protocol
- [mrbungle64] for nice js port and revamp of sucks.js package
- every tester / contributor that test, and give feedback in any way !

[wpietri]: https://github.com/wpietri/sucks
[mrbungle64]: https://github.com/mrbungle64/ecovacs-deebot.js

## Donating

Support this project and [others by nicoduj][nicoduj-projects] via [PayPal][paypal-nicoduj].

[![Support via PayPal][paypal-button]][paypal-nicoduj]

[nicoduj-projects]: https://github.com/nicoduj/
[paypal-button]: https://img.shields.io/badge/Donate-PayPal-green.svg
[paypal-nicoduj]: https://www.paypal.me/nicoduj/

## License

As of Sept 01 2019, Nicolas Dujardin has released this repository and its contents to the public domain.

It has been released under the [UNLICENSE][].

[unlicense]: LICENSE