iRobot Roomba i7+ Configuration using Rest980

Not. Why? What kind?

I have tried adding the cards to Lovelace but I can’t get them added… I’m still on teh first step. I have tried adding them manually but it keeps giving me an error even though I can see them in the resources page…

What’s the mistake? How does the mistake manifest itself?

this has been fixed!

ok so… apologies… i did have something written… but it was staged on my laptop and not pushed to GH :man_facepalming: check it again and let me know

ok so the first step is adding the modules to HA, is this what you mean?, are you using HACS to do this?

Yes, I have HACS installed. I have downloaded all the repositories for the cards. The only one that shows in the ‘card selection’ screen on the Lovelace interface is the custom button card. I can’t add any of the other cards even via the manual method. It looks like in order to add MQTT you have to at least have the fold entity row card added… per a comment you made here about generating the MQTT that way with both cards added. Perhaps I am just too in over my head with this.

Thank you for the FAQ Update. I’ve still one question. Do I have to fit in your mop_multifloor_example.yaml in my vacuum.yaml or do I have to use the mop multifloor additional? Or do I have to run the second 980rest add-on?

Thanks for your response. I am using HASS, so when you say “To allow the map to be correctly produced, you will need to create a new vacuum directory. I have chosen to put this inside the HA configuration directory…” in the instructions, do you mean as a sub directory within file editor? This is where I copied the entire folder, but robot.png doesn’t exist within your vacuum folder on GitHub.

Ok so…

  • Sounds like you have the cards installed in HACS :white_check_mark:
  • Confirm they are listed in Resources (Config, Lovelace Dashboards, Resources) if not then you will need to add them.
  • Using the manual method, you literally need to type the text into the card, which in theory you should be able to copy/paste the contents of lovelace.yaml (nothing that they are split into two sections)

the advantage of using the packages deployment method is that you can have these two files separate, or join them together, its totally your call ! I have kept it separate, but thats more-so to highlight the components which are different between one and multi-floor deployments.

ok… so this is a typo on my side :man_facepalming:, Ive changed the variable from robot to roomba for the default option in the Repo, please make this change on your side and hopefully this should fix your issue :crossed_fingers:

They are in resources but I don’t have them showing in Lovelace UI as a card I can add to the UI.

They wont appear in the selection list, you just need to type the code in manually.

Lovelace > Add Card > Manual

erase the existing code and enter this snippit (as an example)

entities:
  - style: |-
      .text-divider {
        padding: 0em;
        margin: 0em;
      } h2 {
        font-size: 1em;
        margin-block-start: 0em;
        margin-block-end: 0em;
      }
    text: Clean
    type: custom:text-divider-row
  - color: '#40bf6a'
    due: true
    entity: sensor.vacuum_maint_clean_brushes
    locale: en-au
    severity:
      - color: '#bfb540'
        value: 0 days
      - color: '#bf4060'
        value: '-1 days'
    style: |
      ha-card {
        padding: 2px;
        --ha-card-box-shadow: 'none';
        --paper-card-background-color: rgba(0, 0, 0, 0);
      }
    timeout: 10 days
    title: Brushes
    type: custom:check-button-card
head:
  label: Maintenance
  type: section
type: custom:fold-entity-row

when it comes to adding the proper cards, just copy to the sections from the lovelace.yaml file (lines 2 to 223 and then 226-229) and copy them into different cards.

You will need to edit the input booleans (covered in lines 18-29) to correspond with your environment.

Thanks… I think I understand that part now. I apparently started at the tail end of this and did not install 980 first. Maybe should have chosen a different project for my first automation in HA. Finding the IP address of Roomba and braava is hard, they don’t show on the network devices list on my google wifi. I’m guessing I need to disconnect those devices from the irobot integration within HA before I can find the IP address and thus the password right?

***Nevermind, I sorted it out!

1 Like

Hello.
I’d be interested in a curious thing.
Is it possible to see the same thing roomba sees that his camera?

I don’t believe this is possible. AFAIK iRobot does not have any intentions of granting access to the camera.

So I have the passwords and everything that I need for my vacuum and my braava.

I don’t understand the configure vacuum map directory instructions.

" To allow the map to be correctly produced, you will need to create a new vacuum directory. I have chosen to put this inside the HA configuration directory, but you can choose to put this elsewhere and update the configuration accordingly (if you are using HASS and referencing my hass-addons repo, please leave this at the default!)

Copy the contents of the Vacuum directory from Github into this folder.

Note: The image.php file will need updating, but this will be done after the setup is complete."

How do I create a new vacuum directory or copy the contents from GitHub into the folder? I am using HASS and the add-ons repo. The instructions sound like I should not be changing anything as far as creating a new vacuum directory, but I’m not sure how to copy their contents from Github into that folder. Sorry, I realize this is probably incredibly basic… thanks for any help…

You are best to use either the SMB or Code-Server Addon which will give you access into the HA Configuration folder, from there you can just create the new directory and copy in the relevant files

1 Like

Attempting to the addon installed. I’m running at i7+. I’m able to get the state of the vacuum, but my vacuum carding is showing nothing available. when I go and look, it doesn’t appear the sensor.rest980 entity is being created nor is the log file being created. Not sure what else to check. I’ve looked at the configuration file, rebuilt the docker image, and the php-nginx nothing seems to help. image

Welcome to the community! :partying_face:

You need to complete the steps posted in the GH Repo which generates the required config to display in the card

i did complete all 13 steps of the instructions. But nothing ever generated. Because I was able to create the Maintenace buttons, but the automations don’t seem to work either. I also get the error that the cleaning schedules are not available.

image

I also get error in the Logs when starting HA


TemplateError(‘UndefinedError: ‘None’ has no attribute ‘notReady’’) while processing template ‘Template(“{% if state_attr(‘sensor.rest980’, ‘cleanMissionStatus’)[‘cycle’] == ‘none’ and state_attr(‘sensor.rest980’, ‘cleanMissionStatus’)[‘notReady’] == 39 %} Pending {% elif state_attr(‘sensor.rest980’, ‘cleanMissionStatus’)[‘notReady’] > 0 %} Not Ready {% else %} {% set mapper = { ‘clean’ : ‘Clean’, ‘quick’ : ‘Clean’, ‘spot’ : ‘Spot’, ‘evac’ : ‘Empty’, ‘dock’ : ‘Dock’, ‘train’ : ‘Train’, ‘none’ : ‘Ready’ } %} {% set state = state_attr(‘sensor.rest980’, ‘cleanMissionStatus’)[‘cycle’] %} {{ mapper[state] if state in mapper else state }} {% endif %}”)’ for attribute ‘_attr_native_value’ in entity ‘sensor.vacuum’

6:57:32 AM – (ERROR) Template - message first occurred at 6:57:32 AM and shows up 2 times

Template variable warning: ‘None’ has no attribute ‘error’ when rendering ‘{% set mapper = { 0 : ‘n-a’, 15 : ‘Reboot Required’, 18 : ‘Docking Issue’} %} {% set state = state_attr(‘sensor.rest980’, ‘cleanMissionStatus’)[‘error’] %} {{ mapper[state] if state in mapper else state }}’

6:57:32 AM – (WARNING) helpers/template.py - message first occurred at 6:57:32 AM and shows up 12 times

Template variable error: ‘None’ has no attribute ‘split’ when rendering ‘{% if state_attr(‘sensor.rest980’, ‘softwareVer’) is defined %} {% set version = state_attr(‘sensor.rest980’, ‘softwareVer’) %} {{ version.split(’+‘)[1] }} {% else %} n-a {% endif %}’

6:57:32 AM – (ERROR) helpers/template.py - message first occurred at 6:57:32 AM and shows up 2 times

Error while processing template: Template(“{% if state_attr(‘sensor.rest980’, ‘cleanMissionStatus’)[‘cycle’] == ‘none’ and state_attr(‘sensor.rest980’, ‘cleanMissionStatus’)[‘notReady’] == 39 %} Pending {% elif state_attr(‘sensor.rest980’, ‘cleanMissionStatus’)[‘notReady’] > 0 %} Not Ready {% else %} {% set mapper = { ‘clean’ : ‘Clean’, ‘quick’ : ‘Clean’, ‘spot’ : ‘Spot’, ‘evac’ : ‘Empty’, ‘dock’ : ‘Dock’, ‘train’ : ‘Train’, ‘none’ : ‘Ready’ } %} {% set state = state_attr(‘sensor.rest980’, ‘cleanMissionStatus’)[‘cycle’] %} {{ mapper[state] if state in mapper else state }} {% endif %}”)

6:57:32 AM – (ERROR) helpers/template.py - message first occurred at 6:57:32 AM and shows up 2 times


This project is impressive and full of features! For my own use case, I simply wanted to be able to tell the Roomba to clean a specific room and found that the official iRobot integration integration is able to do this. For those wanting to only do that, instructions can be found here: