Hi all,
here is another simple way to get stuff running without node.js and all the other things (although this is a grrrreeeeaaaat reference!). Use a browser plugin, like e.g. HttpRequester, and the send the commands to your Roomba 980:
1. Get the password:
(Replace 192.168.10.135 with your robots IP address)
(Place the robot on the home base and press the HOME button for about 2 seconds until a series of tones is played and the WIFI light flashes, then hurry to send the POST command)
POST https://192.168.10.135/umi
Content-Type: application/json
Connection: close
User-Agent: aspen%20production/2618 CFNetwork/758.3.15 Darwin/15.4.0
Content-Encoding: identity
Accept: */*
Accept-Language: en-us
Host: 192.168.10.135
content-length: 37
{"do":"get","args":["passwd"],"id":1}
– Response: –
200 OK
Server: Marvell-WM
Connection: close
Transfer-Encoding: chunked
Content-Type: application/json
{"ok":{"passwd":"a1bcdEF23GhIj4KL"},"id":1}
2. Get the username/blid:
(Replace 192.168.10.135 with your robots IP address)
(For the Authorization header, you must Base64 encode the string “user:”+ThePasswordReceivedFromStep1, e.g. Base64(user:a1bcdEF23GhIj4KL) -> dXNlcjphMWJjZEVGMjNHaElqNEtM)
(The decimal “blid” values in the response must be hex encoded to receive the username: 43,6,75,31,32,127,12,132 -> 2B064B1F207F0C84)
POST https://192.168.10.135/umi
Content-Type: application/json
Connection: close
User-Agent: aspen%20production/2618 CFNetwork/758.3.15 Darwin/15.4.0
Content-Encoding: identity
Accept: */*
Accept-Language: en-us
Host: 192.168.10.135
content-length: 34
Authorization: Basic dXNlcjphMWJjZEVGMjNHaElqNEtM
{"do":"get","args":["sys"],"id":2}
– Response: –
200 OK
Server: Marvell-WM
Connection: close
Transfer-Encoding: chunked
Content-Type: application/json
{"ok":{"umi":2,"pid":2,"blid":[43,6,75,31,32,127,12,132],"sw":"v1.2.9","cfg":0,"boot":4042,"main":4313,"wifi":517,"nav":"01.08.04","ui":2996,"audio":32,"bat":"lith"},"id":2}
3. Start the robots clean job:
(Replace 192.168.10.135 with your robots IP address)
(See comment of Step 2 for the Authorization header)
POST https://192.168.10.135/umi
Content-Type: application/json
Connection: close
User-Agent: aspen%20production/2618 CFNetwork/758.3.15 Darwin/15.4.0
Content-Encoding: identity
Accept: */*
Accept-Language: en-us
Host: 192.168.10.135
content-length: 49
Authorization: Basic dXNlcjphMWJjZEVGMjNHaElqNEtM
{"do":"set","args":["cmd" {"op":"start"}],"id":3}
– Response: –
200 OK
Server: Marvell-WM
Connection: close
Transfer-Encoding: chunked
Content-Type: application/json
{"ok":null,"id":3}
4. Pause the robots clean job:
(Replace 192.168.10.135 with your robots IP address)
(See comment of Step 2 for the Authorization header)
POST https://192.168.10.135/umi
Content-Type: application/json
Connection: close
User-Agent: aspen%20production/2618 CFNetwork/758.3.15 Darwin/15.4.0
Content-Encoding: identity
Accept: */*
Accept-Language: en-us
Host: 192.168.10.135
content-length: 49
Authorization: Basic dXNlcjphMWJjZEVGMjNHaElqNEtM
{"do":"set","args":["cmd" {"op":"pause"}],"id":4}
– Response: –
200 OK
Server: Marvell-WM
Connection: close
Transfer-Encoding: chunked
Content-Type: application/json
{"ok":null,"id":4}
5. Resume the robots clean job:
(Replace 192.168.10.135 with your robots IP address)
(See comment of Step 2 for the Authorization header)
POST https://192.168.10.135/umi
Content-Type: application/json
Connection: close
User-Agent: aspen%20production/2618 CFNetwork/758.3.15 Darwin/15.4.0
Content-Encoding: identity
Accept: */*
Accept-Language: en-us
Host: 192.168.10.135
content-length: 50
Authorization: Basic dXNlcjphMWJjZEVGMjNHaElqNEtM
{"do":"set","args":["cmd" {"op":"resume"}],"id":5}
– Response: –
200 OK
Server: Marvell-WM
Connection: close
Transfer-Encoding: chunked
Content-Type: application/json
{"ok":null,"id":5}
6. Stop the robots clean job:
(Replace 192.168.10.135 with your robots IP address)
(See comment of Step 2 for the Authorization header)
POST https://192.168.10.135/umi
Content-Type: application/json
Connection: close
User-Agent: aspen%20production/2618 CFNetwork/758.3.15 Darwin/15.4.0
Content-Encoding: identity
Accept: */*
Accept-Language: en-us
Host: 192.168.10.135
content-length: 48
Authorization: Basic dXNlcjphMWJjZEVGMjNHaElqNEtM
{"do":"set","args":["cmd" {"op":"stop"}],"id":6}
– Response: –
200 OK
Server: Marvell-WM
Connection: close
Transfer-Encoding: chunked
Content-Type: application/json
{"ok":null,"id":6}
7. Force the robot to return back to its home base:
(Replace 192.168.10.135 with your robots IP address)
(See comment of Step 2 for the Authorization header)
POST https://192.168.10.135/umi
Content-Type: application/json
Connection: close
User-Agent: aspen%20production/2618 CFNetwork/758.3.15 Darwin/15.4.0
Content-Encoding: identity
Accept: */*
Accept-Language: en-us
Host: 192.168.10.135
content-length: 48
Authorization: Basic dXNlcjphMWJjZEVGMjNHaElqNEtM
{"do":"set","args":["cmd" {"op":"dock"}],"id":7}
– Response: –
200 OK
Server: Marvell-WM
Connection: close
Transfer-Encoding: chunked
Content-Type: application/json
{"ok":null,"id":7}