iRobot Roomba i7+ Configuration using Rest980

Hey there, sorry, work been kicking my butt, haven’t even played with my set up for a week.

To answer your question above, maybe, I set the automation to fire off the call service of “rest_command.vacuum_clean” that does a full clean for me. I have full clean (clean everywhere) as a favorite as well on my i7.

I know there was a NGIX(2) and rest980(2) in the addons, if you are using those and still having the issue, then I would look into the code itself, and see if you can see something that might be pointing to original, and not the (2). I wish I could be more help but that is about all I can offer on this issue. I am new to HA, myself, just got my roomba a month ago, and HA set up maybe 2 months ago lol

Let us know how you fix it, so if/when someone else ends up here they can trace your steps and hopefully fix it too. That’s why I am leaving a trail with what I do to fix everything along the way.

I tried a few different combinations, no luck… I agree the issue is on the rest_command, I just can t get the mapping figured out…

i ran into trouble with the roombapw addon. It seems you do not only have to disable the app on your phone but also disable the Roomba integration in home assistant.

I think I’ve captured the issues below, please tag me if ive missed something.

ok so the lovelace config provided is actually two seperate cards. there is the settings and the camera cards. is this still not working for you?

You just need to click on them again to reset the time back to 0

you need to add an attribute for “vacuum_action” to the second card, such as vacuum_action2 if this is what you called for your second robot.

Correct, you cannot use this in conjunction with the native HA vetsion. The MQTT Server on the roomba only allows one connection and the HA version is a little possessive :wink:

Thanks for getting back to us!

I have a camera card on the auto default lovelace, but it never has an image (not sure about when it runs I have it auto run when I am at work).

I had to actually mess around with the config.yaml as well to get the MQTT maint stuff to work. Just clicking on them didn’t do anything unforntunately. However I got most of them.

I honestly thought this was going to be much simpler when I went into HACS to install this, and was under the impression this was basically plug and play, but I have learned a lot, and somethings still don’t work (like maps, and possibly the camera) but I haven’t had time to mess with it again.

Thanks for all your hard work in creating this though and your help in the thread :slight_smile:

Yeah, unfortuatly its not a plug and play operation, but does allow significant customization dependant on needs, catch 22 i suppose.

If i had the time i would try to improve the implement process, but between work and kids… the tank it pretty empty.

Feel free to reach out when you investigate more, im sure we can get it up and running swish in no time :wink:

Hey Jeremy,

I have it working with 2 980 Rest interfaces and two neat cards… 100% great work. Your work to this point is great but really trying to figure out how to abstract the tight coupling to the “rest_command” and a few of the other automation in your implementation with Hassio. The rest_command is an implementation on the core_hassio so trying to understand how to make a design on that might be a challenge. I am new to Hassio and to be honest YAML in general so fought that alot in getting my setup running. I will take a step back and learn more then I want to help for those that want to have multiple iRobot devices. I have 2 more iRobots that are for Tile/Harwood floors that I have but they are annoying with the prep to use them so automation is not fun for those… LOL…

Basically to make it work had to clone and override the vacuum.yaml and the JS files to align to the second robot… There has to be an easier way IMO.

You shoudnt need to override the JS File for the card. I did expost the rest_command command name, which for your defaut robot is vacuum_action.

for example -

entity: sensor.vacuum2
vacuum_action: vacuum_action2
type: 'custom:roomba-vacuum-card'
rest_command:
  vacuum_action2:
    url: >-
      {{ states('input_text.vacuum_action') }}{{ command }}
...

I agree now I understand the code better but hacked away so need to take a step back and think!!!. LOL…

1 Like

Yeah… been there lol

Jeremy just wanted to let you know I got it all working. I learned a lot about how to use YAML’s in a proper way and that reading all the complete guide is important. Great fun to get it working!

1 Like

@Syrius Do you have any idea what the “bbrun” structure is supposed to represent in the response?

"bbrun": {
    "hr": 98,
    "min": 38,
    "sqft": 291,
    "nStuck": 86,
    "nScrubs": 222,
    "nPicks": 628,
    "nPanics": 315,
    "nCliffsF": 8514,
    "nCliffsR": 2636,
    "nMBStll": 8,
    "nWStll": 21,
    "nCBump": 0
  }

This looks to me like “historical” run data, but aalso doesn’t seem consistent… My robot may have only run for 98 hours cumulatively, but has definitely cleaned more than 291 sqft, for example.

Hello Jeremy, thank you for your implementation. I use it with Roomba e7 and it works great. I run it on my Synology in docker. I would like to use 2 instance for my Braava. When I try to make second REST container with different ports

sudo docker run --name rest980-2 -e BLID='myBLID' -e PASSWORD=mypassword -e ROBOT_IP=myIP -e FIRMWARE_VERSION=2 -p 3002:3002 koalazak/rest980:latest

I see this error

**> [email protected] start /usr/src/app**

**> node ./bin/www**

**WARNING: NODE_ENV value of 'production' did not match any deployment config file names.**

**WARNING: See https://github.com/lorenwest/node-config/wiki/Strict-Mode** 

Are you able to help me? Is it needed to install second instance of php-nginx with another port or only rename image.php and change path to this file?

Thanks

Hi Jeremy,
First, thanks for this add-on. I had tried the standard iRobot integration but the reason I got the i7 is so that I could select specific rooms.

I’m hoping someone could help me get this installed though. I’ve gone through the published setup up until the actual mapping (step 9) but I can’t see any connection to the Lovelace card, all status’ say unavailable. The relevant entity (sensor.vacuum) has a red ‘!’ and clicking on it says “This entity (“sensor.vacuum”) does not have a unique ID, therefore its settings cannot be managed from the UI.”.

I’m pretty new to HA so there’s every possibility I’ve missed something obvious (I already tracked down some formatting I screwed up in my vacuum.yaml). Logs for both rest980 Docker Image and php-nginx Docker Image don’t say much. If there’s more information I can provide I’d be happy to.

I’m hoping someone can help, I’ve been trying to track this down for a couple of days now.

Thanks!

Finally I stopped being lazy and added Braava as well.
Both (Roomba and Braava) seems to be working, yet to map and create picture at glance card for Braava.
One thing I noticed after adding mop, vacuum camera sensor was renamed to camera.roomba_2 and camera.roomba is taken by mop.

I can add my files (mop related) to repo (mostly find and replace for original files: port, _2 suffix, mop. prefix etc) if that helps. I may need to further adjust few things since mop doesn’t have all sensors and bin etc.

1 Like

Does anybody know if there is a way to securely store the HA token located in image.php, possible using secrets.yaml?

A little question that I don’t think has been answered here… where is the attribute or how can I obtain the firmware version installed on the Roomba? I’ve checked sensor.vacuum and sensor.rest980 and don’t see anything regarding the firmware version. With the standard iRobot integration it is easy to find via an attribute.

Thanks.

Hi @Syrius I get an error when I try to add your repo to the add on store. Would you know how to fix that or what I could be doing wrong?

Hello,
first mega work! Really great!
But I’m still going crazy, I left the first picture completely as it is. Everything works so far, except for time, resume in and area.
Here in Lovelace it just doesn’t update anything and it always says 0 or n / a.
What could be the reason for this? Is there any automation behind it that might be wrong? I checked the log and cords for the individual areas and they fit.
I really can’t explain it to myself anymore …

I have another question if I want to rewrite the text in Lovelace in German. Can you tell me what exactly needs to be adjusted? (Just to be on the safe side so that I don’t break anything: D)
Oh yes, I added a Braava as the second, can you tell me by chance how I get “am” out of the Lovelace card?
Cleanbase is already false but it still says “bin not available”: / big thx