iRobot Roomba i7+ Configuration using Rest980

your ha_rest980 url in here needs to be port 8123 to access HA :slight_smile:

thanks - will ammend shortly

wow, it is working now :slight_smile: is port 8123 a general port in HA? coz in configuration of rest980 Docker Image I have 3000
image

This is pulling the sensor data from HA, which sources the raw data from rest980 :slight_smile:

Just got my i3+.
I see your post is about i7+, other than smart map will it work?

Also, I am trying to get my arms around the HA integration. What is different between yours and https://www.home-assistant.io/integrations/roomba/?

My HA instance is a supported VM. With Virtual Box loaded, you can not load docker because they want the hypervisor setting different. Is this going to be an issue for me? I would assume since it is in the HA Addons, it should work for me.

After looking around, am I understanding correctly? The robot has a restful API, correct? I was thinking the integration was through the iRobot cloud. It uses MQTT, correct? My MQTT is not set to discoverable, can I manually configure the integration?

My app has not been able to “Add a Robot” yet. The robot is connected to Wi-Fi. I see it in my Unifi dashboard and the tech at iRobot said he can see it on my account. I have the robot on its own VLAN. I did not see that as an issue since I assumed the integrations connect via the cloud, now I need to add a route to the firewall. I am still digging, but is there something to say what needs to be open.

I am sure I will have more questions, since I am just starting and trying to get my terminology down, I need to take some bite-size chunks first. :slight_smile:

Kept digging and I download the Roomba980 python script or it was more like a program.
When I ran it, I did get some sort of response. I assume it did not do the password thing because I was not in “wifi” mode.

found 1 Roomba(s)
Make sure your robot (Roomba) at IP 192.168.5.120 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.
Press Enter to continue...

Question, it was talking about green light and pressing the home key. On the i3 and I assume it is the same for i7 and i9, you press and hold both home and spot. The light is blue. I can’t test it till I get home, but is that what it is asking me to do?

Here is what I got without being in wifi mode?

Make sure your robot (Roomba) at IP 192.168.5.120 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.
Press Enter to continue...
Received: {
  "ver": "3",
  "hostname": "Roomba-xxxxxx",
  "robotname": "Roomba",
  "robotid": "xxxxxxx",
  "ip": "192.168.5.120",
  "mac": "50:14:79:xx:xx:xx",
  "sw": "daredevil+1.2.7+daredevil-release+31",
  "sku": "i355020",
  "nc": 0,
  "proto": "mqtt",
  "cap": {
    "binFullDetect": 1,
    "dockComm": 1,
    "edge": 0,
    "maps": 4,
    "tLine": 2,
    "area": 1,
    "eco": 1,
    "multiPass": 2,
    "pose": 1,
    "team": 1,
    "pp": 0,
    "lang": 2,
    "5ghz": 0,
    "prov": 3,
    "sched": 1,
    "svcConf": 1,
    "ota": 2,
    "log": 2,
    "langOta": 2
  }
}
Roomba (Roomba) IP address is: 192.168.5.120
Error getting password, receive 7 bytes. Follow the instructions and try again.

I do have another question, while in “wifi” mode (blue light), the robot adds an access point with an SSID of Roomba and the 4 digits of the name. Does it do both station and AP at the same time?
I wonder if the app has to have access to the same VLan for that purpose?

To get the credentrials, you need to enter pairing mode, which should just be holding the home button, not home and spot.

Make sure the robot is on the Home Base and is powered on. Press and hold HOME on the robot, until it plays a series of tones (about 2 seconds). The Wi-Fi indicator on the robot will flash green when the button is released.

Reference

Give that a shot.

For those of you that are successfully running this, how “live” do you find the map to be?

I am (admittedly) going a little bit differently through this, but my map is pretty delayed, it seems.

My current approach (in order to continue using the normal Roomba integration and vacuum card, as my robot has no “clean room” functionality) is to send my robot’s coordinates from the vacuum entity created by the integration (simply by modifying the provided automations), which are formatted the same as the ones returned by sensor.rest980. This works, populates the log, and draws the picture, but I’m suspicious that the time between entity updates is what’s causing the lag in map updates.

So, does using the rest980 approach, as described here, update faster in general and/or in real time?

Also, does this type of skewing occur because the base got moved? These are from two different completed jobs, but the second is obviously a bit skewed from the first.


Its not the fastest… You mentioned the need to modify the automations? :thinking: The clean room feature shouldnt play a part in the automations used for map generation. Its based on when the status changes to clean. I outlined the process here

You can watch the HA logs to see when you get location updates from rest980. I think i get updates from the robot every couple of seconds or so, and then the map is rerendered at the camera refresh interval.

In saying that, whilst its pretty cool to look at - i dont spend a lot of time watching the map so update interval isnt really an issue for me :stuck_out_tongue:

EDIT - map only draws based on the data provided, I do believe that base alignment/location will affect the output, same if you lift the roomba off the floor during the clean, it resets the location back to 0

Oh, I didn’t have to modify the automations, and I mostly understand how it works now (except I don’t really read PHP :sweat_smile:).

The reason I opted to attempt mapping without the rest980 image is because my vacuum doesn’t support any kind of “clean room” routine, so I don’t see much extra functionality over the standard roomba integration. It already reports battery level, bin presence/fullness, location, and mission phase (among other things :sweat_smile:), which seem to be the main things I’d have from using rest980 as well (among other things also, I suppose :joy:).

Is there a measurable feature/performance benefit of using the rest980 image over the standard integration, if the referenced robot doesn’t support cleaning specific rooms?

Yeah, given a model without clean functions - you are correct that your not likely to see any benefit with rest980 over native.

I did see a post about people having disconnection issues - not sure if it’s a one off or consistent, or related to a specific release :man_shrugging:

The only connection issues I’ve seen are that the standard integration doesn’t seem to be able to connect while rest980 is running, but I’ve only used it in “continuous mode”, so I think that’s to be expected.

That did it.

I have been on HA since about .40. But have not messed with HACS or Lovelace that much. I did a custom card back in the day just to test. So adding all this has pushed me to learn a lot. I am now down to the step of getting the credentials. I actually downloaded the Rest980 and when I asked about pairing, it was from that perspective. This morning I am messing with it, but I am not at my home. So I can not put the robot into pairing mode. I do have the credentials from when I connected using the Rest980 app. Is there a way to inject that into the HA add on ( roombapw) without it doing the discovery?

BTW, I am doing this just to test the i3 and learn. I am returning the i3 for an i7. The i7 will get here Monday. Since I am away on business this weekend, I am taking Monday and Tuesday off. I am assuming what I have set up for the i3 will translate to the i7. Well except for the credentials. :slight_smile:

Just saw you added Clean Zone support! Thank you! Since I used the HA Addons, do I have to wait until that repo is also updated to get this support?

Its a manual change unfortunatley - I’ve just added the example configuration changes (which isnt much) to the configuration files.

One day I’ll build workflows to generate this config automagically - just not this year… :rofl:

Essentially you just need to -

  1. Update your existing Room secrets replacing -

} with , "type":"rid"}

  1. Define new Clean Zone secret/s (find the IDs using the iRobot App and selecting them and getting the ID numbers from the http URL). Different from rooms, these will end with -

, "type":"zid"}

  1. Define new Clean Zone Input Booleans and Texts, same as your existing room ones
  2. Add new Input Booleans to respective automations and onto your lovelace dashboard

Start a clean job and enjoy !

Yup, no worries there, I have no problem editing the yamls. I was referring to the HA Addons, since they haven’t been updated, is there anything I need to do to grab the latest update? HA Addon says it’s already up to date.

No these are the same, no change required.

Works like a charm, thank you!

1 Like

Just found this. Thanks for the great work!
Does this by pass the app so we can control the Roomba via HA? The iOS app is acting up this afternoon.
I have mqtt container with user/password setup running at the same server as HA container is running, will this work?

Thanks :slight_smile:

Yes this provides local control of your Roomba without the need for the app (other than initially grabbing the room identifiers)

As long as MQTT is setup and working, then the maintenance sensors will work :+1:

1 Like

Wow. This whole time I thought my Bravaa Jet couldn’t show a live map, and then I stumbled on this. Took less than 30 minutes to set up and another few minutes to get the map adjusted correctly. Amazing work.

I do have a question though. With the Roomba vacuum card, can I hide certain attributes from showing? I’d like to hide “Bin:” and “Resume In:.” I looked through the repository and I’m not seeing how to do this. Is it possible?