iRobot Roomba i7+ Configuration using Rest980

Tags: #<Tag:0x00007f326939d968> #<Tag:0x00007f326939d850>

Remove this comma and try again

Has anyone used this to expose to Alexa? Via Nabu casa? The entities are exposed and discovered; but I think it would need the automation kicked off not just the input_boolean switched… Thoughts?

Thanks! Looking forward to making it public :slight_smile:

Right now I use the scheduling directly from the iRobot App :see_no_evil: :speak_no_evil:
Given its a set and forget for me - I haven’t spent the time (yet!) to incorporate it into HA.

To prevent code double up, i would probably write an automation/node red flow to “turn on” the appropriate input booleans and then trigger the automation via call-service (or using event “initiate_vacuum_clean”) :+1:

Ahh, derp. Perfect - I guess I didn’t look that hard.

Working perfectly now, thanks a million!

1 Like

The node red solution above should also work with Alexa local node… I’ll try that. I’d like to create a simple way to ask alexa to clean a room. The irobot alexa integration is clunky. With this I should be able to say “Alexa, turn on clean kitchen”. I’ll report back

Done - Works exactly like i said…

[{"id":"4a8b496b.936eb8","type":"tab","label":"Vacuum","disabled":false,"info":""},{"id":"5573fcd.af84f04","type":"alexa-local","z":"4a8b496b.936eb8","devicename":"Clean Kitchen","inputtrigger":false,"x":196,"y":227,"wires":[["e1d4ba7c.f15428"]]},{"id":"e1d4ba7c.f15428","type":"api-call-service","z":"4a8b496b.936eb8","name":"Kitchen input on","server":"2a12269e.94634a","version":1,"debugenabled":false,"service_domain":"input_boolean","service":"turn_on","entityId":"input_boolean.vacuum_kitchen","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":420,"y":220,"wires":[["a6c0c69c.c37538"]]},{"id":"a6c0c69c.c37538","type":"delay","z":"4a8b496b.936eb8","name":"","pauseType":"delay","timeout":"3","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":600,"y":220,"wires":[["73884d9d.301574"]]},{"id":"73884d9d.301574","type":"api-call-service","z":"4a8b496b.936eb8","name":"vacuum","server":"2a12269e.94634a","version":1,"debugenabled":false,"service_domain":"automation","service":"trigger","entityId":"automation.vacuum_clean_rooms","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":810,"y":220,"wires":[[]]},{"id":"2a12269e.94634a","type":"server","z":"","name":"Home Assistant1","legacy":false,"hassio":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true}]
1 Like

Thanks for sharing @paulcusick3!

Now you just need to get multiple rooms working at once :rofl:

Any news on the card?

Hi @ Ddppddpp
I’ve finally got a floor plan created, I found the original blue-print of my house in PDF,
i’ve shrunk-ed it re-scaled to .png file, did my best to superimpose the vacuum cleaning path over my house floor plan. I’ve noticed there is a slight rotational offset overall, and to the East of the vacuum the furthest point from the base the vacuum location data is suggesting it is going through the walls.

Either the irobot 7 positional accurary is not the best, the further it goes from the base, it may rely on a signal from the base to supplement positional data, and to help it find the home base to overcome the positional accuracy, or the builder did not stick to the floor plan exactly, at least the inner walls, the outer house perimeter dimensions should be
more exact, as city inspection were pretty rough on the builders here.


Don’t tear down the walls just yet :smiley:
I found out that putting the base perpendicular to the wall goes a loong way.
I actually secured it to the floor with a bit of adhesive tape so that the roomba doesn’t accidentally move it when coming back ‘home’.

I’ll try the adhesive under the base, see if that helps the slight rotational offset, sometimes my unit does return to base recharge and then finish the cleaning on its scheduled remaining room. Not sure if it will help with the X offset furthest to the east from the base. that seems more like accumulation of some data inaccuracy from the irobot7, the room with the highest location data error was the last room it cleaned.
I’ll try a test where I’ll clean that room by itself after the unit is charged at its docking base.
when its docked the roomba location gets reset to (0,0,0), which is not the location data when its redocked after a clean.

Hi @Heine_Madsen

The card and required changes (there is alot!) is already uploaded in GitHub, just switch to the dev branch :slight_smile:

Please feel free to give it a shot and let me know !

Note: You will need to use my forked version of the check-button-card for maintenance to work properly, I have updated the README to reference this.

Once the PR for check-button-card is merged, ill re-base this to master !

Master Branch

EDIT: Link updated to Master branch

Hi @Syrius
I also took the plunge, and tried to upgrade, I’ve overcome most issues, but I can’t find where you defined the following sensors. They are referenced in automation section of vacuum.yaml, and in lovelace file but not defined.
I am in branch dev
git status returned->
“Your branch is up to date with ‘origin/dev’”

these are the missing sensors required by maintenance.

Hi @pnakashian!

Good point!

These are from the Lovelace check button card :blush: if you have added the card, open the fold entity row and each will state “entity does not exist, create?” Which will create the entry in MQTT and auto discovery (needs to be enabled) will bring the sensor into HA

Did you have any other issues that I need to address / call out in the doco?


Hey any chance you could help me with the password? I have the i7 and the pw app from github, it shows me the output with the blid and all other info except the password, I get an error at the end. I did this fine with my 980 a year ago…I think the part Im confused it when it tells you to hold the button for 2 seconds and wait for a beep. On the i7 its different, should I hold the two outside buttons for a couple seconds like your setting wifi up or am I missing something completly?:slight_smile:

On the i7 just hold the home button for 2 seconds (on home base) :+1:

Hi @Syrius,
I guess my MQTT discovery does not work with my current MQTT configuration.
I should have looked at the check button card and mqtt documentation closer.

I already had mqtt setup as client with discovery off for smartthings hub.
i am not using embedded mqtt broker, I have another docker container that is the mqtt broker.
Turning discovery on with my current setup i guess made no difference.

broker: localhost
port: 1883
client_id: hass
protocol: 3.1
discovery: true
discovery_prefix: smartthings

I’ll have to run some experiments with the embedded mqtt broken turned on again and my external mqtt broker docker container stopped, see if smartthings and smarthings bridge will work with it now.
Probably discovery is meant to work with mqtt setup as embedded broker (server mode) rather than client.

I did get “entity does not exist, create” in folder entity row but for me when I clicked it
it displayed something then it reverted back to “entity does not exist, create”. Fixing my mqtt will probably resolve this.

I had some issues installing “lovelace-roomba-vacuum-card” from Home assistant community store"
the install would not do anything, so i used git clone … on a different machine copied the files manually
to folder ./config/www/community/lovelace-roomba-vacuum-card
my issues were isolated to low memory at the time on the raspberry pi.

everything else was smooth good job on documentation. I did not think entities could be created automatically in any setup when I encountered the check button card issue.

Because you have this set, you will need to add the discovery_prefix option to each of the maint sensors (example below)
thanks for pointing this out - ill make sure to ammend the files to specify this :slight_smile:

- entity: sensor.vacuum_maint_clean_brushes
   - hue: '140'
     value: 8 days
   - hue: '55'
     value: 10 days
   - hue: '345'
     value: 14 days
   title: Brushes
   type: 'custom:check-button-card'
   discovery_prefix: smartthings <--------------- THIS
   visibility_timeout: 10 days

Let me know how you go!

Hi Jeremy! I have a new s9 that I would like to get set up this way. It’s running version 3.2.4 and I can’t seem to get the password/BLID. the addon throws an error.

> [email protected] getpassword /usr/src/app
> node ./bin/getpassword.js
Make sure your robot is on the Home Base and powered on (green lights on). Then press and hold the HOME button on your robot until it plays a series of tones (about 2 seconds). Release the button and your robot will flash WIFI light.
This step will continue in 10 seconds...
(node:19) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
      throw er; // Unhandled 'error' event
Error: connect EHOSTUNREACH
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1137:16)
Emitted 'error' event on TLSSocket instance at:
    at emitErrorNT (internal/streams/destroy.js:84:8)
    at processTicksAndRejections (internal/process/task_queues.js:84:21) {
  errno: -113,
  syscall: 'connect',
  address: '',
  port: 8883
npm ERR! errno 1
npm ERR! [email protected] getpassword: `node ./bin/getpassword.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] getpassword script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2020-02-13T01_40_10_992Z-debug.log

It says up there host unreachable. Is this a routing problem? Or is there more that I’m missing?

I am running Home assistant core ( “Home Assistant 0.105.3” in Proxmox

Hi @austech360,

Appears as though your roomba isn’t in pairing mode before starting the roombapw add-on (hence the connection refused)

Can you confirm ?