iRobot Roomba

Like I said, the easiest way to get going is using the Docker image (see https://home-assistant.io/docs/installation/docker/). Just remember to replace “homeassistan/home-assistant” with “pschmitt/home-assistant:roomba”.

Otherwise this should do it:

pip3 install -U git+https://github.com/pschmitt/[email protected]
hass

Thanks, I don’t have a docker install. And don’t know anything about docker… :wink:

Hmmm didn’t realize I was testing out HA 0.50.0 LOL

Ok, couldn’t get 0.50.0.dev to load, kept bombing on the open zwave install and others. So I’m falling back to 0.49.1… Sorry

Ok, I’ve upgraded to 0.50.2. If I run the pip3 install you provided, should it pull it down without trying to re-install HA on me now? :slight_smile:

Hang on a bit. There’s been a lot of changes since I last posted. Most importantly #8623 has been merged which effectively presents a new vacuum platform. A big thanks to @azogue
I reworked my implementation to support said platform. My PR is here: #8825.

You can checkout my work via:

  • Docker: pschmitt/home-assistant:roomba-vacuum-pr
  • pip: $ pip3 install -U git+https://github.com/pschmitt/[email protected]

EDIT: @turboc said command will re-install HASS no matter what. I’d suggest patiently waiting for 0.51 if that’s not what you want.

2 Likes

@pschmitt Is there any chance that this platform be used with the Thinking Cleaner component to send commands to my Roomba? Right now I have the component loaded in HA, but it only reports the state. It would be nice to be able to issue commands to start/stop return to base.

@berniebl Yes, both the thinking_cleaner and the neato can (and should) implement the vacuum interface. But both would need to be rewritten. I could throw together a port for both but since I do not own neither of these devices I wouldn’t be able to test any of them. That’d ideally be the the original submitters/maintainers responsibility.

Just to update this here: my PR has been merged. So starting with 0.51 WiFi Roombas are supported !

Here’s how this will look like:

7 Likes

@pschmitt,
THANK YOU, THANK YOU, THANK YOU!!!

My wife finally sees a benefit to all this automation stuff.

Thank you.

1 Like

Ran into an interesting problem today. We had a brief power outage, and when my roomba (spot) can back on, it evidently lost it’s connection to the network. Just pressing the home button didn’t fix it, I had to re-link it to the network. But that’s not the problem. Before I realized that problem, HA would not restart. It kept getting to a point and would hang. I noticed above that I was getting a message about roomba couldn’t be found. So I commented out the roomba config and HA started up fine. Can the next release of this include some type of timeout on waiting when it can’t find the roomba instead of just locking things up please? And now it looks like my blid and password may have been changed as a result of re-establishing the network connection. Hmmmm ok I can deal with that.
Thanks again for all the help with this.

Yeah right now there is no real error detection (other than logging) in the underlying Python library. I’ll see to get that implemented once I find the time to do this. As of right now, you need to make sure your credentials ares correct. Sorry for that.

Hi @pschmitt! I’m trying to setup Roomba 980 (fw 2.2.11-4) on latest Hass.IO but it seems I have some communication issues between vacuum and Homeassistant? I had Roomba connected once or twice but all the rest I have following in logs:

2017-08-29 23:07:03 INFO (MainThread) [homeassistant.components.vacuum] Setting up vacuum.roomba
2017-08-29 23:07:08 INFO (MainThread) [roomba.roomba.Roomba] CONTINUOUS connection
2017-08-29 23:07:08 INFO (MainThread) [homeassistant.components.vacuum.roomba] Initializing communication with host 192.168.1.13 (username: 6977831C70126550)
2017-08-29 23:07:08 INFO (SyncWorker_14) [roomba.roomba.Roomba] Connecting 
2017-08-29 23:07:08 INFO (MainThread) [homeassistant.core] Bus:Handling <Event service_executed[L]: service_call_id=1961314640-4>
2017-08-29 23:07:08 INFO (SyncWorker_14) [roomba.roomba.Roomba] Seting TLS
2017-08-29 23:07:08 WARNING (SyncWorker_14) [roomba.roomba.Roomba] TLS Setting failed - trying 1.3 version
2017-08-29 23:07:13 WARNING (MainThread) [homeassistant.components.vacuum] Setup of platform roomba is taking over 10 seconds.
2017-08-29 23:08:03 ERROR (MainThread) [homeassistant.components.vacuum] Setup of platform roomba is taking longer than 60 seconds. Startup will proceed without waiting any longer.
2017-08-29 23:08:04 INFO (MainThread) [homeassistant.core] Bus:Handling <Event service_registered[L]: domain=vacuum, service=turn_on>
2017-08-29 23:08:04 INFO (MainThread) [homeassistant.core] Bus:Handling <Event service_registered[L]: domain=vacuum, service=turn_off>
2017-08-29 23:08:04 INFO (MainThread) [homeassistant.core] Bus:Handling <Event service_registered[L]: domain=vacuum, service=toggle>
2017-08-29 23:08:04 INFO (MainThread) [homeassistant.core] Bus:Handling <Event service_registered[L]: domain=vacuum, service=start_pause>
2017-08-29 23:08:04 INFO (MainThread) [homeassistant.core] Bus:Handling <Event service_registered[L]: domain=vacuum, service=return_to_base>
2017-08-29 23:08:04 INFO (MainThread) [homeassistant.core] Bus:Handling <Event service_registered[L]: domain=vacuum, service=clean_spot>
2017-08-29 23:08:04 INFO (MainThread) [homeassistant.core] Bus:Handling <Event service_registered[L]: domain=vacuum, service=locate>
2017-08-29 23:08:04 INFO (MainThread) [homeassistant.core] Bus:Handling <Event service_registered[L]: domain=vacuum, service=stop>
2017-08-29 23:08:04 INFO (MainThread) [homeassistant.core] Bus:Handling <Event service_registered[L]: domain=vacuum, service=set_fan_speed>
2017-08-29 23:08:04 INFO (MainThread) [homeassistant.core] Bus:Handling <Event service_registered[L]: domain=vacuum, service=send_command>
2017-08-29 23:08:04 INFO (MainThread) [homeassistant.setup] Setup of domain vacuum took 81.4 seconds.
2017-08-29 23:08:04 INFO (MainThread) [homeassistant.core] Bus:Handling <Event component_loaded[L]: component=vacuum>
2017-08-29 23:09:15 ERROR (SyncWorker_14) [roomba.roomba.Roomba] Error: [Errno 110] Operation timed out 

Here goes configuration.yaml:

vacuum:
  - platform: roomba
    name: Roomba
    host: 192.168.1.13
    username: !secret roomba_blid
    password: !secret roomba_password

Have you any suggestions?

Can you ping your roomba from your hass machine?

I get the timeout message about every other time I restart HA. I think it still has the link open to the previous time and a second restart seems to clear it for me.

Yes, I can ping.
Restarts HA didn’t make it clear. I even remove vacuum: section out of configuration, restart, then put it back and got same errors.

This type of error normally occurs when there is another client connected to the Roomba. Stop any other software (rest980 for example) that may try to connect to it. Close the iRobot App as well.

Can you like drive it around with sending manual commands like forward, back, right, left, etc?

@marksev1 No.

Will such a functionality be later exposed in the component, because it makes sense (for example one could put a wifi security camera on the roomba and could then drive it remotely to inspect the insides of the house) :D.

@marksev1 No, this probably won’t ever happen. The Roomba API does not allow to do that. A future version might make this possible, but there is nothing we can do right now to make this happen.