Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
88f217e2b1 | ||
|
2fec762498 | ||
|
857af55e99 | ||
|
20e0a9b909 | ||
|
afdff765b0 | ||
|
dcef6653ff | ||
|
82bf19c548 | ||
|
1084bff0ee | ||
|
5aa66835dd |
14
CHANGELOG.md
14
CHANGELOG.md
@@ -41,4 +41,16 @@
|
||||
|
||||
## 0.4.1
|
||||
|
||||
* Added config parameter for extraCareNavigation
|
||||
* Added config parameter for extraCareNavigation
|
||||
|
||||
## 0.4.2
|
||||
|
||||
* Added config parameter to disable switches/sensors
|
||||
|
||||
## 0.4.4
|
||||
|
||||
* Fixed config parameter to disable switches/sensors not optional
|
||||
|
||||
## 0.4.5
|
||||
|
||||
* Fixed compatibility with homebridge 0.4.23 (occupancy sensor not working)
|
26
README.md
26
README.md
@@ -6,7 +6,7 @@ Feel free to leave any feedback [here](https://github.com/naofireblade/homebridg
|
||||
|
||||
If you update from a previous version 0.3.x you have to adapt your config.
|
||||
|
||||
# Features
|
||||
## Features
|
||||
|
||||
- Start and pause cleaning
|
||||
- Return to dock\*
|
||||
@@ -20,18 +20,18 @@ If you update from a previous version 0.3.x you have to adapt your config.
|
||||
|
||||
\* Available after some seconds of cleaning.
|
||||
|
||||
# Installation
|
||||
## Installation
|
||||
|
||||
1. Install homebridge using: `npm install -g homebridge`
|
||||
2. Install this plugin using: `npm install -g homebridge-neato`
|
||||
3. If you don't have a Neato account yet create one [here](https://www.neatorobotics.com/create-account/).
|
||||
4. Update your configuration file. See the sample below.
|
||||
|
||||
### Configuration
|
||||
## Configuration
|
||||
|
||||
Add the following information to your config file. Change the values for name, email and password.
|
||||
Add the following information to your config file. Change the values for email and password.
|
||||
|
||||
#### Simple
|
||||
### Simple
|
||||
|
||||
```json
|
||||
"platforms": [
|
||||
@@ -43,13 +43,15 @@ Add the following information to your config file. Change the values for name, e
|
||||
]
|
||||
```
|
||||
|
||||
The following config contains optional settings that are disabled when not specified.
|
||||
### Advanced
|
||||
|
||||
The parameter **refresh** adjusts in what interval (seconds) changes of the robot state will be pushed to homekit. The minimum refresh time is 60 seconds. You need this only when you set up rules based on the robot state and start him outside of homekit (e.g. with the Neato app).
|
||||
The following config contains advanced optional settings that are off when not specified.
|
||||
|
||||
The parameter **extraCareNavigation** determines if supporting models (currently Neato D3 and D5) take extra care of your furniture while cleaning.
|
||||
The parameter **refresh** sets in what interval (seconds) changes of the robot state will be pushed to homekit. The minimum refresh time is 60 seconds. You need this only when you set up rules based on the robot state and start him outside of homekit (e.g. with the Neato app).
|
||||
|
||||
#### Advanced
|
||||
The parameter **extraCareNavigation** sets if supporting models (currently Neato D3 and D5) should take extra care of your furniture while cleaning.
|
||||
|
||||
The parameter **disabled** accepts a list of switches/sensors that can be disabled in the neato homekit plugin (e.g. dock, dockstate, eco, schedule).
|
||||
|
||||
```json
|
||||
"platforms": [
|
||||
@@ -58,14 +60,16 @@ The parameter **extraCareNavigation** determines if supporting models (currently
|
||||
"email": "YourEmail",
|
||||
"password": "YourPassword",
|
||||
"refresh": "120",
|
||||
"extraCareNavigation": true
|
||||
"extraCareNavigation": true,
|
||||
"disabled": ["dock", "dockstate", "eco"]
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
# Tested robots
|
||||
## Tested robots
|
||||
|
||||
- BotVac Connected (Firmware 2.2.0)
|
||||
- BotVac D3 Connected
|
||||
- BotVac D5 Connected
|
||||
|
||||
If you have another connected neato robot, please [tell me](https://github.com/naofireblade/homebridge-neato/issues) about your experience with this plugin.
|
19
index.js
19
index.js
@@ -17,6 +17,7 @@ function NeatoVacuumRobotPlatform(log, config) {
|
||||
this.serial = "1-3-3-7";
|
||||
this.email = config['email'];
|
||||
this.password = config['password'];
|
||||
this.hiddenServices = ('disabled' in config ? config['disabled'] : '');
|
||||
|
||||
this.careNavigation = ('extraCareNavigation' in config && config['extraCareNavigation'] ? 2 : 1);
|
||||
debug("Extra Care Navigation: " + this.careNavigation);
|
||||
@@ -82,6 +83,7 @@ function NeatoVacuumRobotAccessory(robot, platform) {
|
||||
this.log = platform.log;
|
||||
this.refresh = platform.refresh;
|
||||
this.careNavigation = platform.careNavigation;
|
||||
this.hiddenServices = platform.hiddenServices;
|
||||
this.robot = robot;
|
||||
this.name = robot.name;
|
||||
this.lastUpdate = null;
|
||||
@@ -139,8 +141,17 @@ NeatoVacuumRobotAccessory.prototype = {
|
||||
this.vacuumRobotBatteryService.getCharacteristic(Characteristic.BatteryLevel).on('get', this.getBatteryLevel.bind(this));
|
||||
this.vacuumRobotBatteryService.getCharacteristic(Characteristic.ChargingState).on('get', this.getBatteryChargingState.bind(this));
|
||||
|
||||
return [this.informationService, this.vacuumRobotCleanService, this.vacuumRobotGoToDockService, this.vacuumRobotDockStateService, this.vacuumRobotEcoService,
|
||||
this.vacuumRobotScheduleService, this.vacuumRobotBatteryService];
|
||||
this.services = [this.informationService, this.vacuumRobotCleanService, this.vacuumRobotBatteryService];
|
||||
if (this.hiddenServices.indexOf('dock') === -1)
|
||||
this.services.push(this.vacuumRobotGoToDockService);
|
||||
if (this.hiddenServices.indexOf('dockstate') === -1)
|
||||
this.services.push(this.vacuumRobotDockStateService);
|
||||
if (this.hiddenServices.indexOf('eco') === -1)
|
||||
this.services.push(this.vacuumRobotEcoService);
|
||||
if (this.hiddenServices.indexOf('schedule') === -1)
|
||||
this.services.push(this.vacuumRobotScheduleService);
|
||||
|
||||
return this.services;
|
||||
},
|
||||
|
||||
setClean: function (on, callback) {
|
||||
@@ -249,7 +260,7 @@ NeatoVacuumRobotAccessory.prototype = {
|
||||
let that = this;
|
||||
this.updateRobot(function (error, result) {
|
||||
debug(that.name + ": Is docked: " + that.robot.isDocked);
|
||||
callback(false, that.robot.isDocked);
|
||||
callback(false, that.robot.isDocked ? 1 : 0);
|
||||
});
|
||||
},
|
||||
|
||||
@@ -317,7 +328,7 @@ NeatoVacuumRobotAccessory.prototype = {
|
||||
}
|
||||
|
||||
// no commands here, values can be updated without problems
|
||||
that.vacuumRobotDockStateService.setCharacteristic(Characteristic.OccupancyDetected, that.robot.isDocked);
|
||||
that.vacuumRobotDockStateService.setCharacteristic(Characteristic.OccupancyDetected, that.robot.isDocked ? 1 : 0);
|
||||
that.vacuumRobotBatteryService.setCharacteristic(Characteristic.BatteryLevel, that.robot.charge);
|
||||
that.vacuumRobotBatteryService.setCharacteristic(Characteristic.ChargingState, that.robot.isCharging);
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "homebridge-neato",
|
||||
"version": "0.4.1",
|
||||
"version": "0.4.5",
|
||||
"description": "A Neato vacuum robot plugin for homebridge.",
|
||||
"license": "MIT",
|
||||
"keywords": [
|
||||
|
Reference in New Issue
Block a user