Skip to content

Kroellie/node-botvac

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

node-botvac

A node module for Neato Botvac Connected. Based on tomrosenbacks PHP Port and kanggurus work on the undocumented Neato API.

Installation

npm install node-botvac

Usage Example

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);
            });
        }
    });
});

Client API


client.authorize(email, password, force, callback)

Login at the neato api.

  • email - your neato email
  • password - your neato passwort
  • force - force login if already authorized
  • callback - function(error)
    • error null if no error occurred

client.getRobots(callback)

Returns an array containing your registered robots.

  • callback - function(error, robots)
    • error null if no error occurred
    • robots array - your robots

Robot Properties

  • robot.name - nickname of this robot (cannot be changed)

These properties will be updated every time robot.getState() is called:

  • robot.isCharging boolean
  • robot.isDocked boolean
  • robot.isScheduleEnabled boolean
  • robot.dockHasBeenSeen boolean
  • robot.charge number - charge in percent
  • robot.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 mode
  • robot.noGoLines boolean - set to true to enable noGoLines
  • robot.navigationMode number - 1: normal, 2: extra care (new models only)
  • robot.spotWidth number - width for spot cleaning in cm
  • robot.spotHeight number - height for spot cleaning in cm
  • robot.spotRepeat boolean - set to true to clean spot two times

Robot API


robot.getState([callback])

Returns the state object of the robot. Also updates all robot properties.

  • callback - function(error, state)
    • error null if no error occurred
    • state object
      • example:
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'}};

robot.getSchedule([callback])

Returns the scheduling state of the robot.

  • callback - function(error, schedule)
    • error null if no error occurred
    • schedule boolean - true if scheduling is enabled

robot.getPersistentMaps([callback])

Returns the scheduling state of the robot.

  • callback - function(error, schedule)
    • error null if no error occurred
    • maps Maps[] - array of maps

robot.getMapBoundaries(mapId, [callback])

Returns the scheduling state of the robot.

  • mapId string - a Map id for which to get the boundaries
  • callback - function(error, schedule)
    • error null if no error occurred
    • boundaries Boundary[] - array of boundaries

robot.setMapBoundaries(mapId, [callback])

Returns the scheduling state of the robot.

  • mapId string - a Map id for which to get the boundaries
  • boundaries Boundary[] - array of boundaries
  • callback - function(error, schedule)
    • error null if no error occurred
    • boundaries Boundary[] - array of boundaries

robot.enableSchedule([callback])

Enables scheduling.

  • callback - function(error, result)
    • error null if no error occurred
    • result string - 'ok' if scheduling got enabled

robot.disableSchedule([callback])

Disables scheduling.

  • callback - function(error, result)
    • error null if no error occurred
    • result string - 'ok' if scheduling got disabled

robot.startCleaning([eco], [navigationMode], [noGoLines], [callback])

Start cleaning.

  • eco boolean - clean in eco mode
  • navigationMode number - 1: normal, 2: extra care (new models only)
  • eco boolean - clean with enabled nogo lines
  • callback - function(error, result)
    • error null if no error occurred
    • result string - 'ok' if cleaning could be started

robot.startCleaningBoundary([eco], [extraCare], [boundaryId], [callback])

Start cleaning.

  • eco boolean - clean in eco mode
  • extraCare boolean - clean in extra care (new models only)
  • boundaryId string - a boundary id (zone) to clean
  • callback - function(error, result)
    • error null if no error occurred
    • result string - 'ok' if cleaning could be started

robot.startSpotCleaning([eco], [width], [height], [repeat], [navigationMode], [callback])

Start spot cleaning.

  • eco boolean - clean in eco mode
  • width number - spot width in cm (min 100cm)
  • height number - spot height in cm (min 100cm)
  • repeat boolean - clean spot two times
  • navigationMode number - 1: normal, 2: extra care (new models only)
  • callback - function(error, result)
    • error null if no error occurred
    • result string - 'ok' if spot cleaning could be started

robot.stopCleaning([callback])

Stop cleaning.

  • callback - function(error, result)
    • error null if no error occurred
    • result string - 'ok' if cleaning could be stopped

robot.pauseCleaning([callback])

Pause cleaning.

  • callback - function(error, result)
    • error null if no error occurred
    • result string - 'ok' if cleaning could be paused

robot.resumeCleaning([callback])

Resume cleaning.

  • callback - function(error, result)
    • error null if no error occurred
    • result string - 'ok' if cleaning could be resumed

robot.sendToBase([callback])

Send robot to base.

  • callback - function(error, result)
    • error null if no error occurred
    • result string - 'ok' if robot could be sent to base

Changelog

0.3.0

  • (az0uz) persistent maps and boundaries

0.2.0

  • (koush) http transport changes and updates

0.1.5

  • (naofireblade) add support for new parameter navigationMode (newer models)

0.1.6

  • (naofireblade) add support for new parameter noGoLines (newer models)
  • (naofireblade) changed to keep cleaning parameters in sync with neato app

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%