iRobot Roomba i7+ Configuration using Rest980

Hi @Syrius!

I made a pull request adding some features like:

  • Read state of “always finish/bin pause”
  • Services to change fan speed, cleaning edge, etc.

So, we can use our Roomba fully within HA!!

Hi
I first tried the xiaomi vacuum cleaner with my roomba
that one is working, until i found this card , especially for roomba

I’m not sure which attributes i’m able to get, but when i look i see far more attributes than on xiaomi card.

I got a roomba i5
so not sure

i tried using this card and pointed to the entity vacuum.zjef
But it says it needs to point to a sensor
i only got 2 sensors too
one for the bin and one for the battery
so not sure

Hey @ajtudela,

Thanks and apologies - I have seen your PR, just been busy and also deciding how to best implement these features in the UI… and what options are actually worth implementing… Do you actually change these once they have been initially set?

Hi @skank,

This lovelace card is unlikely to work with the native roomba integration (… maybe not very well anyway).

I designed it to work with rest980 HA Addon and my custom sensors which are available through the GH Link in the OP.

Is there something you are specifically looking for as afar as attributes is concerned?

Yes. The services work fine and change the settings in the Roomba: cleaning passes, fan speed and clean edges. The only problem I found, as I said to you in Github, is the attribute “always finish” doesn’t change at all.

Hi
Actually i missed history of the cleaning stuff
Or the messages the robot sends in the app.
Theres not much stuff i miss, i dont need the map
The brushes/filter stuff is not available for my i5 version i think?

I’m using the xiaomi card now but having troubles… How do i hide the “mode”?
Cause its not available for my roomba
is there a way to have the label in black text? Cause its white now and so is my background

I’m using the card with stack in card in vertical mode, and when loading its showing the background but it immediately disappears, any idea?

title: Testing
icon: mdi:test-tube
path: Test
theme: ios-dark-mode
cards:
- type: custom:stack-in-card
  title: Zjef
  mode: vertical
  cards:
    - type: custom:xiaomi-vacuum-card
      entity: vacuum.zjef
      name: Zjef
      vendor: roomba
      image: /local/roomba.png 

ok ill try find some time soon to validate and get these incorporated.

sorry, as this isnt my card im not sure on its options

these arent linked to the robot at all - they are just time based to allow proper tracking of maintenance items.

i suspect this will help you out

Hi, first of all thank you for all your work!
I am trying to set everything up using a Roomba 980.
I already have all the BLID and password as it was previously working OK using the native Roomba integration in HA.

I am running HA in docker (so no hass-io) and I managed so far to:

  • installed the roomba-vacuum-card using HACS
  • Configurde Vacuum Map Directory and copied all the content of your repository
  • run the docker compose stack in your repository ( I am able to see the roomba details by calling thre REST methods via browser)
  • skipped the part of the rooms as my roomba doesn’t support it
  • configured image.php to add the correct bindings to ip:ports and the HA token

I am currently stack to step 6) “Configure Home Assistant Package and Secrets”.
I cannot figure out if the !vacuum.yaml should be imported in the configuration.yaml of HA and how.
Should I use something like this? Does the pack_1 name matter at all?

homeassistant:
  ...
  packages:
    pack_1: !include vacuum.yaml

Thanks!

Hi @nick2k3,

Welcome :partying_face:

This is the way I have configured packages :slight_smile:

  • Create a new directory in your configuration folder called packages and drop in vacuum.yaml
  • Add the following to your configuration.yaml file
homeassistant:
  ..
  packages: !include_dir_named packages/ 
1 Like

@Syrius I am working on a PR so you can combine all your rest sensors into a template vacuum. Currently it’s missing attribute_templates, but I’m hoping it’ll get merged sometime in the near future.

I’ve already been able to integrate my Samsung Vacuum with the exposed SmartThings sensors utilizing my modifications.

image


2 Likes

Thank you!
I managed to import it and play with it! It’s really great, kudos for the effort!

I have one problem though: if noticed that using increasingly higher rotation values tends to distort the map drawings.
I am using rotation in conjunction with offsets. It is barely visible on small values (-10 +10) but it starts to be quite evident once you go higher (+270 for instance).
I will try to post some pictures later when I can run roomba without the neighbour killing me :smile:
Is it normal?

PS: is there a way to make the image.php recalculate the map+drawing using an existing vacuum.log while the roomba is not cleaning?

unfortunately it is a little special… :expressionless: just requires some experimental to get it right
id like to fix it at some stage to be smoother, just haven’t had the time to spend on it unfortunately

yes, you just need to delete the latest.png file in the vacuum directory - then it will re-draw the map each time you reload the file. if there is a latest.png file in the folder - it will just load this one (to not waste resources)

First, thank you for creating this! After spending most of the day yesterday, I was finally able to get my S9+ up and running. I’ve run into a couple issues if you wouldn’t mind helping me please.

  1. I can empty the bin and run a clean all cycle. However, when trying to run a selective rooms option, I am getting an message from the robot that says see the app for help. The app is telling me that the room cannot be found.

Here is my keys in secrets.

vacuum_state: http://10.0.0.173:3000/api/local/info/state 
vacuum_action: http://10.0.0.173:3000/api/local/action/ 
vacuum_verify_ssl: false 
vacuum_map: http://10.0.0.173:3001/image.php 
vacuum_log: /config/vacuum/vacuum.log 
vacuum_dir: /config/vacuum 
vacuum_kitchen: '{"region_id": "14"}' 
vacuum_office: '{"region_id": "15"}' 
vacuum_living_room: '{"region_id": "2"}' 
vacuum_closet: '{"region_id": "16"}' 
vacuum_bathroom: '{"region_id": "17"}' 
vacuum_dining_room: '{"region_id": "6"}' 
vacuum_master_bedroom: '{"region_id": "1"}' 

Looking at previous posts, it looks like I need to include map ids so I modified my code below using pmap_id for floorplan and user_pmapv_id for. user_floorplan

vacuum_state: http://10.0.0.173:3000/api/local/info/state 
vacuum_action: http://10.0.0.173:3000/api/local/action/ 
vacuum_verify_ssl: false 
vacuum_map: http://10.0.0.173:3001/image.php 
vacuum_log: /config/vacuum/vacuum.log 
vacuum_dir: /config/vacuum 
vacuum_floorplan: pxLLqu3WS9mWyVWWcRhw_A 
vacuum_user_floorplan: 200426T015813 
vacuum_kitchen: '{"region_id":"14","region_name":"Kitchen","region_type":"kitchen"}' 
vacuum_office: '{"region_id":"15","region_name":"Office","region_type":"office"}' 
vacuum_living_room: '{"region_id":"2","region_name":"Living Room","region_type":"living_room"}' 
vacuum_closet: '{"region_id":"16","region_name":"Closet","region_type":"closet"}' 
vacuum_bathroom: '{"region_id":"17","region_name":"Bathroom","region_type":"bathroom"}' 
vacuum_dining_room: '{"region_id":"6","region_name":"Dining Room","region_type":"dining_room"}' 
vacuum_master_bedroom:'{"region_id":"1","region_name":"MasterBedroom","region_type":"master_bedroom"}' 

Do I need to update any code in the vacuum.yaml to use these added ids? I still cannot get selective room cleaning to work.

  1. The map is generating and showing on my dashboard. I took a screenshot of the floorplan from my app and loaded it into the vacuum directory as floor.png. However, the map that produces is just the black background with the green line. It is not using the floorplan as the background. I did delete “latest” and ran another run but same result.

Hi!
How did you change to get the Braava Image?
I have a Roomba S9+ and a Braava m6 and I managed to get them both integrated into HA.

Next thing, the maintenance parts for the Roomba for brushes etc. It would be nice to be able to get info on filling the tank for Braava and also when to replace the dry and wet pad. Also have an indication if the dry or wet pad is mounted.

In the roomba vacuum card you have to update the vaccum.png file with one that you create with the M6 robot. I’ve created one that you can use if you’d like. Wasnt able to perfectly get the white background imaged removed but it still looks nice. M6 Pic

Question for you, can you walk me thru the basics of what you did to get the M6 added? I have the rest980_2 docker running to capture the data from the m6 and a second ngnix running both on different ports than my set up for the S9.

  • I went through and created a new folder in config called mop and updated the image.php file to include the updated ports for the M6.
  • Since i couldnt download a second custom robot card in lovelace, i copied the folder and created a custom mop card file with the same documents.
  • I created a mop.yaml file and did find replace in the entire script for vacuum and replaced with mop.
  • I then added the region ids and relevant information to secrets.yaml to include the mop references.
  • In the entities I can see the second sensors and automation for mop. But i am getting an error on the custom mop card as it is saying the card doesnt exist. I did ensure to call the added card in the resources section.

Im at a dead end and was planning to go through and delete all mop files and start the process over again. If you could help me in covering what you did so that I can review when redoing the process. Wondering if I need to update anything in the Mop files/scripts to call rest980_2 vs rest980 (which is for the S9)

Hi!
Thanks for the picture :slight_smile:
I first created a second folder called vacuum2 and specfied that in the ngix 2.

Then all the entries i changed the rest980 to rest980_2. Then I created a mop instead of vacuum in secrets.

The in all sensors end input etc I cahnged vacuum to mop and rest980 to rest980_2

Hope that helps.

This was removed from being hardcoded as it can get obtained dynamically

I’ve seen this before where the id listed on the URL dosent actually match the value used my the app. If you run a selective clean, check the URL user last command section and double check these map values match what is shown under sensor.vacuum

The fix in this last case was to update the map from the app (renamed a room or add a no-go section, etc) and that brought the values back in line.[quote=“Sw674954, post:401, topic:161175”]
The map is generating and showing on my dashboard. I took a screenshot of the floorplan from my app and loaded it into the vacuum directory as floor.png
[/quote]

Does the image.php correctly specify this file in the top parameters? Tried in private window/cleared cache?
Can you load the file directly via its URL?

You can just specify the card multiple times, and use different attributes for each

I don’t have one so will be hard to confirm :disappointed: I know there is a semi-active PR pair sitting on the dorita980/rest980 GH pages… but it’s not merged.