A node module for Neato Botvac Connected. Based on tomrosenbacks PHP Port and kanggurus work on the undocumented Neato API.
npm install node-botvac
var botvac = require('node-botvac');
var client = new botvac.Client();
//authorize
client.authorize('email', 'password', false, function (error) {
if (error) {
console.log(error);
return;
}
//get your robots
client.getRobots(function (error, robots) {
if (error) {
console.log(error);
return;
}
if (robots.length) {
//do something
robots[0].getState(function (error, result) {
console.log(result);
});
}
});
});
Login at the neato api.
email
- your neato emailpassword
- your neato passwortforce
- force login if already authorizedcallback
- function(error)
error
null if no error occurredReturns an array containing your registered robots.
callback
- function(error, robots)
error
null if no error occurredrobots
array - your robots
robot.name
- nickname of this robot (cannot be changed)These properties will be updated every time robot.getState() is called:
robot.isBinFull
booleanrobot.isCharging
booleanrobot.isDocked
booleanrobot.isScheduleEnabled
booleanrobot.dockHasBeenSeen
booleanrobot.charge
number - charge in percentrobot.canStart
boolean - robot is ready to start cleaning
robot.canStop
boolean - cleaning can be stopped
robot.canPause
boolean - cleaning can be paused
robot.canResume
boolean - cleaning can be resumed
robot.canGoToBase
boolean - robot can be sent to base
robot.eco
boolean - set to true to clean in eco moderobot.noGoLines
boolean - set to true to enable noGoLinesrobot.navigationMode
number - 1: normal, 2: extra care (new models only)robot.spotWidth
number - width for spot cleaning in cmrobot.spotHeight
number - height for spot cleaning in cmrobot.spotRepeat
boolean - set to true to clean spot two timesReturns the state object of the robot. Also updates all robot properties.
callback
- function(error, state)
error
null
if no error occurredstate
object
var state = {
version: 1,
reqId: '1',
result: 'ok',
error: 'ui_alert_invalid',
data: {},
state: 1,
action: 0,
cleaning: {category: 2, mode: 1, modifier: 1, spotWidth: 0, spotHeight: 0},
details: {
isCharging: false,
isDocked: true,
isScheduleEnabled: false,
dockHasBeenSeen: false,
charge: 98
},
availableCommands: {
start: true,
stop: false,
pause: false,
resume: false,
goToBase: false
},
availableServices: {
houseCleaning: 'basic-1',
spotCleaning: 'basic-1',
manualCleaning: 'basic-1',
easyConnect: 'basic-1',
schedule: 'basic-1'
},
meta: {modelName: 'BotVacConnected', firmware: '2.0.0'}};
Returns the scheduling state of the robot.
detailed
- boolean
boolean, to return the full schedule object, not only it statuscallback
- function(error, schedule)
error
null
if no error occurredschedule
depend on detailed
boolean
(when detailed
is undefined
or false
) true if scheduling is enabledobject
(when detailed
is true
) full schedule description object
var schedule = {
type:1,
enabled:true,
events:[
{
day:1,
startTime:"08:30"
},
{
day:2,
startTime:"08:30"
},
{
day:3,
startTime:"08:30"
},
{
day:4,
startTime:"08:30"
},
{
day:5,
startTime:"08:30"
},
{
day:6,
startTime:"11:30"
},
{
day:0,
startTime:"11:30"
}
]
}
Enables scheduling.
callback
- function(error, result)
error
null if no error occurredresult
string - 'ok' if scheduling got enabledDisables scheduling.
callback
- function(error, result)
error
null if no error occurredresult
string - 'ok' if scheduling got disabledStart cleaning.
eco
boolean - clean in eco modenavigationMode
number - 1: normal, 2: extra care (new models only)eco
boolean - clean with enabled nogo linescallback
- function(error, result)
error
null if no error occurredresult
string - 'ok' if cleaning could be startedStart spot cleaning.
eco
boolean - clean in eco modewidth
number - spot width in cm (min 100cm)height
number - spot height in cm (min 100cm)repeat
boolean - clean spot two timesnavigationMode
number - 1: normal, 2: extra care (new models only)callback
- function(error, result)
error
null if no error occurredresult
string - 'ok' if spot cleaning could be startedStop cleaning.
callback
- function(error, result)
error
null if no error occurredresult
string - 'ok' if cleaning could be stoppedPause cleaning.
callback
- function(error, result)
error
null if no error occurredresult
string - 'ok' if cleaning could be pausedResume cleaning.
callback
- function(error, result)
error
null if no error occurredresult
string - 'ok' if cleaning could be resumedReturns the persistent maps of the robot
callback
- function(error, schedule)
error
null if no error occurredmaps
Maps[] - array of mapsReturns the boundaries of a map
mapId
string - a Map id for which to get the boundariescallback
- function(error, schedule)
error
null if no error occurredboundaries
Boundary[] - array of boundariesSets boundaries for a map
mapId
string - a Map id for which to get the boundariesboundaries
Boundary[] - array of boundariescallback
- function(error, schedule)
error
null if no error occurredboundaries
Boundary[] - array of boundariesStart cleaning with boundaries
eco
boolean - clean in eco modeextraCare
boolean - clean in extra care (new models only)boundaryId
string - a boundary id (zone) to cleancallback
- function(error, result)
error
null if no error occurredresult
string - 'ok' if cleaning could be startedSend robot to base.
callback
- function(error, result)
error
null if no error occurredresult
string - 'ok' if robot could be sent to baseLocate the robot by emitting a sound and light
callback
- function(error, result)
error
null if no error occurredresult
string - 'ok' if robot could be located