New iRoomba Robot Plugin to support the iRoomba mqtt communication protocol. (as of firmware v.2.2.9-1 29th December 2017). This was helped a lot by a recent python library for roomba control.
Models Supported: Confirmed in this post by other users.
- 980 Model https://store.irobot.com/default/roomba ... 80020.html
- 985 Model
- i7 and i7+ Model https://store.irobot.com/default/roomba ... 15020.html
- j7, j7+ combo
Currently - have it functioning well and it enables a continuous connection to one or more iroomba
The benefit of continuous connection is status is updated immediately - so can trigger events to occur which happen within a few seconds; Status is immediately updated.
The library I am using also supports mapping/drawing a map of cleaning - which I would imagine would look good on a control page. (I haven't worked through those aspects as yet - but have it on a todo list)
Installation:
If
Indigo 7 Only:
Needs paho-mqtt for python installed via terminal window:
Within a terminal Window:
- Code: Select all
sudo pip install paho-mqtt
Or if using version of Indigo 2022.1 and python 3 version of plugin 0.9.13+
- Code: Select all
pip3 install paho-mqtt
Or if on latest Indigo 2023.2 + version, and python 3 plugin version of 0.9.35+
Does not need any libraries installed (well actually we need one more, aiohttp and paho-matt) but Indigo will manage this on install/or update!
So no terminal commands needed = just double click bundle to install.
https://www.indigodomo.com/pluginstore/132/
or
https://github.com/Ghawken/Indigo-iRobotRoomba
Setup
For this plugin to work correctly you irobot needs to have a fixed IP address so to know whom it is. Assign your iroomba a fixed IP address; either a router level (would be my recommendation) or within iroomba setup.
Install the plugin.
Configure the Plugin:
Create your iroomba Device
&
Edit Settings
Roomba IP Address: Enter the IP address (fixed ideally) of your iroomba robot
This can be a slightly tricky part as need to be quick between activating iroomba with holding Home button (four notes confirm) and pressing the Get Password button.
Indigo will also give a timeout error (as communication takes longer than allowed). This can be ignored.
This will possibility take a couple of goes to establish communication.
It then saves the communication password to a IP address based config file and will use this file if you happen to delete you device.
Status
The plugin reports the following status - and this is updated live in the setting of continuous communication.
Hopefully all straightforward
batPct - Battery Percentage
Binfull - true or false
Cycle - the cycle iroomba is currently performing
Error Code/Error Texts if any
RechargeM - time to be recharged
SqfFT - Square Feet cleaned
X & Y - Current Position
deviceStatus - running etc.
Actions
The plugin supports the following actions to control you iroomba.
What could go wrong:
1. Connection fails with a 'Broken Pipe' Error:
Debug info may display the following info about your iroomba during the Get Password connection phase:
- Code: Select all
iRobot-Roomba Debug Received: {
"robotname": "pmgk roomba rdc ",
"sku": "R980020",
"nc": 0,
"ver": "2",
[b]"proto": "http",[/b]
"ip": "192.168.1.13",
"hostname": "Roomba-",
[b]"sw": "v1.6.4", [/b]
"mac": "
}
This means that your iroomba is on very old software 1.6.4 and is still using its old http protocol. The iroomba automatically update when connected to cloud after a short period of time (unless blocked at firewall level).
This plugin only works on the newer firmware version.
Wait it out and your iroomba will be updated and try again.
2. If you do not have a fixed IP address for your device it will lose its connection when this is updated by your dhcp server. Set it to fixed.
3. Occasionally if the plugin loses its connection to iroomba it will restart the plugin itself to reestablish. It does this automatically with no user input required.
Glenn