iRobot Roomba i7+ Configuration using Rest980

Just got software update 3.2.9… Everything still appears to be working but can’t see any release notes for it yet :thinking:

Hi @Syrius
I think your repo
jeremywillans/check-button-card has visibility_timestamp broken, there have been a few commits since e80ef56, latest commit now is 68e4549. When I switched to your repo I had already created the entities and didn’t single click the check-button entity until I had to perform maintenance today.
The entities already created from commit e80ef56 will still have visibility_timestamp attribute even after upgrading the code.

Only after single clicking the check-buttons the attribute visibility_timestamp goes away with latest code. Since the HACS plugin install for jeremywilans/check-button-card doesn’t let you choose version or commits, I reverted it manually downloading the e80ef56 .js and creating .js.gz from it in the /config/www/community/check-button-card folder. I got visibility_timestamp back now.

I’m at HA version 0.105.5 in case you don’t see an issue in your config.

/Pierre

1 Like

Try using master for the version in my repo, however dont touch it if you have a workaround :rofl:

I’m in the process of updating my repo to use the new timeout_timestamp option which the proper check-button-card now uses - just waiting for one last PR to be merged to fix an outstanding issue

Got some new updates coming also… Watch this space!! :partying_face:

First off, thank you for all the hard work.
I am trying to get this to work and having issues. I am trying to do this without docker so everything is manually installed downloaded and configured.
I have the robot-vacuum-card working. It updates with information and I can start and stop my roomba (s9+)
My issues is that the clean individual rooms is not working.
This is the contents of my secrets.yaml (maps are not working either but I will focus on that later)

vacuum_state:  http://192.###.#.###:3000/api/local/info/state
vacuum_action: http://192.###.#.###:3000/api/local/action/
vacuum_verify_ssl: false
vacuum_map: http://192.###.#.###:4123/image.php
vacuum_pmap_id: 2F8WoQ#######QyOE9UA
vacuum_user_pmapv_id: 200####222327
vacuum_family:  '{"region_id": "1","region_name": "Family Room","region_type": "family_room", "type": "rid"}'
vacuum_dining:  '{"region_id": "9","region_name": "Dining Room","region_type": "dining_room", "type": "rid"}'
vacuum_kitchen: '{"region_id": "7","region_name": "Kitchen","region_type": "kitchen", "type": "rid"}'
vacuum_foyer:   '{"region_id": "12","region_name": "Foyer","region_type": "foyer", "type": "rid"}'
vacuum_hallway: '{"region_id": "15","region_name": "Hallway","region_type": "hallway", "type": "rid"}'
vacuum_living:  '{"region_id": "11","region_name": "Living Room","region_type": "living_room", "type": "rid"}'
vacuum_utility: '{"region_id": "16","region_name": "Utility","region_type": "laundry_room", "type": "rid"}'
vacuum_breakfast: '{"region_id": "17","region_name": "Breakfast Room","region_type": "breakfast_room", "type": "rid"}'

I am running rest980 and getting output that status is being run but I never see the

GET /api/local/info/state 200 100.559 ms - 3420
GET /api/local/info/state 200 100.511 ms - 3420
GET /api/local/info/state 200 100.519 ms - 3420
GET /api/local/info/state 200 100.521 ms - 3420
GET /api/local/info/state 200 100.541 ms - 3420
GET /api/local/info/state 200 100.541 ms - 3420
GET /api/local/info/state 200 100.709 ms - 3420
GET /api/local/info/state 200 100.541 ms - 3420
GET /api/local/info/state 200 100.523 ms - 3420
GET /api/local/info/state 200 100.529 ms - 3420
GET /api/local/info/state 200 100.653 ms - 3420

But I never see the /api/local/action

I have looked through the vacuum.yaml file and changed all of the section in there that refer to the different rooms. I think it comes down to the automation not firing
In looking through the code I cannot find where initiate_vacuum_clean event gets notified. What am I missing?


automation:
  # Initiate Selective Room Clean
  - alias: Vacuum Clean Rooms
    hide_entity: true
    trigger:
    - platform: event
      event_type: initiate_vacuum_clean       
    action:
      - service: rest_command.vacuum_clean
        data_template:
          payload: >

Hi @batlin, thanks :blush:

In the Lovelace.yaml file the button card calls the Automation. Can you please check/verify that is configured correctly?

Hi there!

Very nice write up!

I have a Roomba 960 and running home assistant on a Raspberry pi 3B.
The built in Roomba component works, but I’m missing some features I would like to play with.
If I am correct this addon should work for my 960 as well right? (except room cleaning and other not supported features). I see in the readme that this is for amd64 systems only, but the following is mentioned:

Would be nice if I can get the map to work.

Furthermore, I looked into the code on github, but I cannot find if it is possible to send Raw commands?
I would like to play around with some RAW commands, because of multiple reasons:

  • My base is located under a closet. I would like to get the Roomba to drive from underneath when the bin is full, so it is easier to empy. I tried using the original component with clean, but that doesn’t work as the Roomba doesn’t accept new missions when the bin in full.
  • I would like to create my own “room cleaning” feature like SuperMario wants, but for that to work the Roomba needs to be able to drive said room first

I have found some commands here, I think the are for a iRobot Create 2. But it might give some pointers to additional commands?
With the original Roomba component I seem to be unable to send Raw commands (see my post here, no answers yet though)

Thanks in advance!

If you use HA (formerly HASS) the addon works on RPi :blush: if you use HA Core then you will need to build the rest980 image locally as there isn’t an arm image on docker hub.

I’ll amend the readme when I get a chance!

I don’t think this is possible through rest980, but you might have more luck with the underlying Nodejs package dorita980? however I think know if that ability exists :grimacing:

Anyone had luck getting it to work with roomba 980?

And how to?

What are you trying to get work? I couple of the guys on here @SuperMario @ddppddpp have that model.

AFAIK live mapping working, but selective cleaning does not

hei. i istalled the hassio addon. and i get this when i try to enter blid and pw.

Failed to save addon configuration, not a valid value for dictionary value @ data[‘options’]. Got {‘BLID’: 31742416890, ‘PASSWORD’: ':1:1565096:K6DowgNVQAynokui’, ‘ROBOT_IP’: '******’, ‘FIRMWARE_VERSION’: ‘2’}

BLID: 3175000890"
PASSWORD: :1:
***:K6DowgNVQAynokui
ROBOT_IP: ***********
FIRMWARE_VERSION: ‘2’

[email protected] start /usr/src/app
node ./bin/www
/usr/src/app/node_modules/dorita980/lib/v2/local.js:33
throw e;
^
Error: Connection refused: Not authorized
at MqttClient._handleConnack (/usr/src/app/node_modules/mqtt/lib/client.js:920:15)
at MqttClient._handlePacket (/usr/src/app/node_modules/mqtt/lib/client.js:350:12)
at work (/usr/src/app/node_modules/mqtt/lib/client.js:292:12)
at Writable.writable._write (/usr/src/app/node_modules/mqtt/lib/client.js:302:5)
at doWrite (/usr/src/app/node_modules/readable-stream/lib/_stream_writable.js:428:64)
at writeOrBuffer (/usr/src/app/node_modules/readable-stream/lib/_stream_writable.js:417:5)
at Writable.write (/usr/src/app/node_modules/readable-stream/lib/_stream_writable.js:334:11)
at TLSSocket.ondata (_stream_readable.js:558:20)
at emitOne (events.js:96:13)
at TLSSocket.emit (events.js:188:7)
at readableAddChunk (_stream_readable.js:176:18)
at TLSSocket.Readable.push (_stream_readable.js:134:10)
at TLSWrap.onread (net.js:559:20)
npm ERR! Linux 4.19.93-v7l
npm ERR! argv “/usr/local/bin/node” “/usr/local/bin/npm” “start”
npm ERR! node v6.17.1
npm ERR! npm v3.10.10
npm ERR! code ELIFECYCLE
npm ERR! [email protected] start: node ./bin/www
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] start script ‘node ./bin/www’.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the rest980 package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node ./bin/www
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs rest980
npm ERR! Or if that isn’t available, you can get their info via:
npm ERR! npm owner ls rest980
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /usr/src/app/npm-debug.log

I don’t believe this needs quotes on the end?

The fist error is without anything.
The second post is with

I just tested on my dev HA (hass) instance, and it put single quotes around the password.

Can you try with that and see?

Thank you, the customer-button card was the issue. This wasn’t listed as a requirement in the repo so I missed it.

1 Like

Glad its sorted! :slight_smile: Apologies for the rabbit hole :expressionless: I’ve added that card to the prerequisite list

Thank you. I am working to also integrate my Braava M6 as well, has anyone else done both S9/i7 and Braava? Do I need to run two instances of Rest980 to get this accomplished?

I would assume so because you will need to specify seperate IP addresses for each.

Do you use my HA addon repo? I can create a second copy in my repo if that makes it easier for you?

I have actually been able to get it to work by creating a new lovelace-roomba-vacuum-card (naming it lovelace-roomba-braava-card) as well as creating a new vacuum.yaml in my packages directory and naming it braava (and then changing all vacuum references to braava references). It is working with both my s9+ and Braaava on two separate lovelace tabs. I was hoping there would be a way to only run rest980 once but you are right, each instance seems to need its own blid etc so i run it twice and specify a different port number for my braava. Works like a charm albeit a little clunky (needing to make sure i restart my rest980s after each restart of my server)
You have done a lot of great work on this and thank you!!!

1 Like

Still working on how to get maps to work without docker :woozy_face: