Roomba i7 support

Trying to get maps working for my Roomba980 on Hassio 0.102.3 using a custom component as suggested by @drjared88 in a post above.
I just modified his vacuum.py so that it imports the newer Roomba980-Python 1.2.6 by NickWaterton.
I’m currently stuck on an error message:

File "/config/custom_components/roomba/vacuum.py", line 111, in async_setup_platform
    iconPath="/www/res"
TypeError: enable_map() got an unexpected keyword argument 'enableMapWithText'

Any idea how to troubleshoot further?

Thanks, I used this fix but now I’m getting error code 4. BLID or Password issue.

I had this working before, could the password have changed?

Anyone got steps for verifying BLID and password in Hassio?

Yep, I use the Rest980 Docker Image for getting info out of my i7+ :slight_smile:

docker environment variables:
BLID=xxxxx
PASSWORD=xxxx
ROBOT_IP=x.x.x.x
FIRMWARE_VERSION=2

secret file: 
vacuum_resource: http://xxxxx:yyyy/api/local/info/state

sensor:
  # Roomba via Rest980 Docker Image
  - platform: rest
    name: Elf
    json_attributes:
      - batPct
      - bin
      - cleanMissionStatus
      - dock
    resource: !secret vacuum_resource
    value_template: 'OK'
    scan_interval: 30
  - platform: template
    sensors:
      elf_battery:
        friendly_name_template: "{{ states.sensor.elf.name}} Battery"
        value_template: '{{ states.sensor.elf.attributes["batPct"] }}'
        unit_of_measurement: '%'
        device_class: battery
      elf_phase:
        friendly_name_template: "{{ states.sensor.elf.name}} Status"
        value_template: >-
          {% if states.sensor.elf.attributes["cleanMissionStatus"]["phase"] == 'charge' and states.sensor.elf.attributes["batPct"] == 100 %}
            Fully Charged
          {% else %}
            {% set mapper =  {
            'charge' : 'Charging',
            'run' : 'Cleaning',
            'evac' : 'Emptying Robot',
            'stop' : 'Stopped/Paused',
            'stuck' : 'Stuck',
            'hmUsrDock' : 'Returning Home',
            'hmMidMsn' : 'Returning Home mid Clean',
            'hmPostMsn' : 'Returning Home' } %}
            {% set state =  states.sensor.elf.attributes["cleanMissionStatus"]["phase"] %}
            {{ mapper[state] if state in mapper else 'Unknown' }}
          {% endif %}
          
        icon_template: mdi:settings
      elf_bin:
        friendly_name_template: "{{ states.sensor.elf.name}} Bin Status"
        value_template: >-
          {% set mapper =  {
            true : 'Full',
            false : 'Not Full' } %}
          {% set state =  states.sensor.elf.attributes["bin"]["full"] %}
          {{ mapper[state] if state in mapper else 'Unknown' }}
        icon_template: mdi:delete
      elf_dock:
        friendly_name_template: "{{ states.sensor.elf.name}} Clean Base Status"
        value_template: >-
          {% set mapper =  {
            300 : 'Ready',
            301 : 'Ready',
            302 : 'Emptying Robot',
            350 : 'Bag Missing',
            351 : 'Base Clogged',
            353 : 'Bag Full' } %}
          {% set state =  states.sensor.elf.attributes["dock"]["state"] %}
          {{ mapper[state] if state in mapper else 'Unknown' }}
        icon_template: mdi:home-minus

I think I have a temporary solution to the clean map errors.
For future reference, here’s how I did it:
Hassio 0.102.3
Using NickWaterton’s Roomba980-Python package
Installed Portainer, disabled Protection Mode, unhid Homeassistant container.
Connected as root to the consolse, then:

 apk update
 apk add zlib-dev freetype freetype-dev make automake gcc g++ subversion python3-dev
 pip3 uninstall Pillow
 pip3 install Pillow

The map seems to be working though it won’t survive an upgrade.
I’m thinking how to make this more permanent - custom component, add-on or try to patch the Roomba integration…

Hello,

Can you do a step by step on how to get Rest980 setup and then getting the i7 info?

I have a Synology diskstation which can get Docker up and running but that is as far as I know…

Sure can, I’m just on vacation over Christmas, will write something up when I’m back early Jan :+1:

Hi @chilman4081,

I have posted this under Share Your Projects -

1 Like

we need the same options as in the app, ie map and option to only clean one room

can we get the map data from irobot servers? or do we need to build our own?
but yes the base support is there, but only a clean all and dock is a bit “thin” compared to the app
and even the app is flawed, you can edit maps when a fault is made or a wall not detected