Roomba 980(v2 firmware) support for nodered
Credit goes to dorita980.
You can look up either git to find information on setup and how to get the BLID and Password for you Roomba: https://github.com/koalazak/dorita980#how-to-get-your-usernameblid-and-password
A successfull response return an object with ok
property and the internal request id:
{ ok: null, id: 2 }
An error response return an object with err
property and error number:
{ err: -32600 }
getTime()
{"ok":{"d":"sat","h":13,"m":8},"id":8}
getBbrun()
{"ok":{"hr":103,"min":10,"sqft":251,"nStuck":8,"nScrubs":62,"nPicks":280,"nPanics":97,"nCliffsF":518,"nCliffsR":1005,"nMBStll":0,"nWStll":1,"nCBump":0},"id":9}
getLangs()
{ ok: { total: 5, iterIndex: 2, iterName: 'en-US' }, id: 2 }
getSys()
{ ok:
{ umi: 2,
pid: 2,
blid: 1,2,3,4,5,6,6,8],
sw: 'v1.6.6',
cfg: 0,
boot: 3580,
main: 4313,
wifi: 517,
nav: '01.09.08',
ui: 2996,
audio: 31,
bat: 'lith' },
id: 2 }
getWirelessLastStat()
{ ok: { softap: 0, station: 1, cloud: 3, strssi: 47, diagflags: 0 }, id: 2 }
getWeek()
Monday disable and every day start at 10:30am
{ ok:
{ cycle: [ 'start', 'none', 'start', 'start', 'start', 'start', 'start' ],
h: [ 10, 10, 10, 10, 10, 10, 10 ],
m: [ 30, 30, 30, 30, 30, 30, 30 ] },
id: 2 }
getPreferences(autoDecodeFlags)
{ ok:
{ flags: 1024, // See Cleaning Preferences table.
lang: 2,
timezone: 'America/Buenos_Aires',
name: 'myRobotName',
cleaningPreferences: {
carpetBoost: 'auto', // 'auto', 'performance', 'eco'
edgeClean: true,
cleaningPasses: '1', // '1', '2', 'auto'
alwaysFinish: true
}
},
id: 2 }
getMission()
With this you can draw a map :)
{ ok:
{ flags: 0,
cycle: 'none',
phase: 'charge',
pos: { theta: 179, point: {x: 102, y: -13} },
batPct: 99,
expireM: 0,
rechrgM: 0,
error: 0,
notReady: 0,
mssnM: 0,
sqft: 0 },
id: 2 }
getWirelessStatus()
{ ok:
{ softap: 0,
station: 1,
strssi: 45,
dhcp: 1,
addr: 1744939200,
mask: 16777215,
gtwy: 16885952,
dns1: 16885952,
dns2: 0,
bssid: [ 123, 23, 23, 123, 23, 123 ],
sec: 4 },
id: 2 }
getCloudConfig()
{ ok: { cloudconfig: 'https://irobot-connect.axeda.com/ammp/' },
id: 2 }
start()
{"ok":null,"id":293}
pause()
{"ok":null,"id":293}
stop()
{"ok":null,"id":293}
resume()
{"ok":null,"id":293}
dock()
{"ok":null,"id":293}
This methods use setPreferences() with the correct flags
for each setting.
setCarpetBoostAuto()
{"ok":null,"id":293}
setCarpetBoostPerformance()
{"ok":null,"id":293}
setCarpetBoostEco()
{"ok":null,"id":293}
setEdgeCleanOn()
{"ok":null,"id":293}
setEdgeCleanOff()
{"ok":null,"id":293}
setCleaningPassesAuto()
{"ok":null,"id":293}
setCleaningPassesOne()
{"ok":null,"id":293}
setCleaningPassesTwo()
{"ok":null,"id":293}
setAlwaysFinishOn()
{"ok":null,"id":293}
setAlwaysFinishOff()
{"ok":null,"id":293}