0.4.3 • Published 2 years ago

node-botvac v0.4.3

Weekly downloads
60
License
MIT
Repository
github
Last release
2 years ago

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()
  • client.getRobots()


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.isBinFull boolean
  • 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()
  • robot.getSchedule()
  • robot.enableSchedule()
  • robot.disableSchedule()
  • robot.startCleaning()
  • robot.startSpotCleaning()
  • robot.stopCleaning()
  • robot.pauseCleaning()
  • robot.resumeCleaning()
  • robot.getPersistentMaps()
  • robot.getMapBoundaries()
  • robot.setMapBoundaries()
  • robot.startCleaningBoundary()
  • robot.sendToBase()
  • robot.findMe()


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'}};
-------------------------------------------------------
<a name="getSchedule"></a>
### robot.getSchedule([detailed], [callback])

Returns the scheduling state of the robot.
* `detailed` - `boolean` boolean, to return the full schedule object, not only it status
* `callback` - `function(error, schedule)`
  * `error` ```null``` if no error occurred
  * `schedule` depend on `detailed`
    * ```boolean``` (when `detailed` is `undefined` or `false`) true if scheduling is enabled 
    * ```object``` (when `detailed` is `true`) full schedule description object
        * example:
 ```Javascript
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"
        }
    ]
}

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.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.getPersistentMaps(callback)

Returns the persistent maps of the robot

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

robot.getMapBoundaries(mapId, callback)

Returns the boundaries of a map

  • 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)

Sets boundaries for a map

  • 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.startCleaningBoundary(eco, extraCare, boundaryId, callback)

Start cleaning with boundaries

  • 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.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

robot.findMe(callback)

Locate the robot by emitting a sound and light

  • callback - function(error, result)

    • error null if no error occurred
    • result string - 'ok' if robot could be located

Changelog

0.4.3

  • (Pmant) update dependencies

0.4.2

  • (PeterVoronov) add optional detailed parameter to robot.getSchedule
  • (naofireblade) add isBinFull property
  • (naofireblade) prevent request from catching exceptions in callback

0.4.1

  • (jbtibor) update dependencies

0.4.0

  • (naofireblade) add findMe

0.3.0

  • (az0uz) add 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
0.4.3

2 years ago

0.4.1

3 years ago

0.4.2

3 years ago

0.4.0

5 years ago

0.3.0

5 years ago

0.2.0

5 years ago

0.1.7

5 years ago

0.1.6

5 years ago

0.1.5

7 years ago

0.1.4

8 years ago

0.1.3

8 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago