Added zone cleaning
This commit is contained in:
parent
442b91c347
commit
afe7d690ef
53
index.js
53
index.js
@ -102,6 +102,33 @@ function NeatoVacuumRobotAccessory(robot, platform) {
|
||||
this.vacuumRobotScheduleService = new Service.Switch(this.name + " Schedule", "schedule");
|
||||
this.vacuumRobotBatteryService = new Service.BatteryService("Battery", "battery");
|
||||
|
||||
this.updatePersistentMaps(() => {
|
||||
this.vacuumRobotCleanZoneServices = {};
|
||||
this.maps.forEach((map) => {
|
||||
map.boundaries.forEach((boundary) => {
|
||||
if (boundary.type === "polygone") {
|
||||
this.vacuumRobotCleanZoneServices[boundary.id] = new Service.Switch(this.name + " Clean the " + boundary.name, "clean");
|
||||
this.vacuumRobotCleanZoneServices[boundary.id].getCharacteristic(Characteristic.On).on('set', (on, callback) => {
|
||||
if(on){
|
||||
if(that.robot.canStart) {
|
||||
this.robot.startCleaningBoundary(this.eco, this.extraCare, boundary.id, (error, result) => {
|
||||
if (error){
|
||||
debug(error+": "+JSON.stringify(result));
|
||||
return;
|
||||
}
|
||||
callback();
|
||||
})
|
||||
} else {
|
||||
debug("Error, robot is already cleaning");
|
||||
callback();
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
});
|
||||
|
||||
this.updateRobotTimer();
|
||||
}
|
||||
|
||||
@ -371,6 +398,30 @@ NeatoVacuumRobotAccessory.prototype = {
|
||||
}
|
||||
},
|
||||
|
||||
updatePersistentMaps: function(callback) {
|
||||
this.robot.getPersistentMaps((error, maps) => {
|
||||
if (error) {
|
||||
this.log.error(error + ": " + result);
|
||||
return;
|
||||
}
|
||||
this.maps = maps;
|
||||
let processedMapsCounter = 0
|
||||
maps.forEach((map) => {
|
||||
this.getMapBoundaries(map.id, (error, result) => {
|
||||
if(error) {
|
||||
this.log.error(error + ": " + result);
|
||||
} else {
|
||||
map.boundaries = result;
|
||||
}
|
||||
processedMapsCounter++;
|
||||
if(processedMapsCounter == this.maps.length) {
|
||||
callback();
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
updateRobotTimer: function () {
|
||||
let that = this;
|
||||
this.updateRobot(function (error, result) {
|
||||
@ -413,4 +464,4 @@ NeatoVacuumRobotAccessory.prototype = {
|
||||
}
|
||||
});
|
||||
},
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user