Roomba iRobot 960 and Home Assistant

Hello All :slight_smile:
First as most of us, I would like to say Big THANK YOU for the hard work to create such nice Smart Home Integration/Automation platform.
I’m still new to it and i’m trying to setup my first few devices within Home Assistant.
I’m trying to setup my Roomba iRobot 960 and the respective Lovelace however I’m encountering strange behavior, which I can’t explain to myself.
I’ve tried to follow the guides within this Post: iRobot Roomba i7+ Configuration using Rest980
For whatever reason, Home Assistant is not able to connect to the roomba vacuum, hence not able to see the correct entities - vacuum.roomba to create my Lovelace.

Home Assistant Details:

x86_64
dev false
docker true
hassio true
os_name Linux
os_version 4.15.0-88-generic
python_version 3.7.7
timezone Europe/Sofia
version 0.107.5
virtualenv false

The following are the details within my configuration.yaml file:
roomba:

  • platform: roomba
    host: 192.168.1.12
    username: 69C2850881234760
    password: :1:1552136263:MRaFax0gX9PTKGXb

I have tried to enable this addon - rest980 Docker Image and when I start it - those are the only available logs -

[email protected] start /usr/src/app
node ./bin/www

GET /api/local/info/state 200 135.104 ms - 234
I’ve checked the Home Assistant Logs and I can see the following ones, which occur only after rebooting HA.
2020-03-23 13:23:43 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for alexa_media which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant.
2020-03-23 13:23:43 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for sonarr_upcoming_media which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant.
2020-03-23 13:23:43 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for radarr_upcoming_media which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant.
2020-03-23 13:23:43 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for hacs which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant.
2020-03-23 13:23:43 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for plex_recently_added which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant.

2020-03-23 13:23:47 ERROR (MainThread) [homeassistant.setup] Error during setup of component alexa_media
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/setup.py”, line 170, in _async_setup_component
hass, processed_config
File “/config/custom_components/alexa_media/init.py”, line 105, in async_setup
for account in domainconfig[CONF_ACCOUNTS]:
KeyError: ‘accounts’
2020-03-23 13:23:47 ERROR (MainThread) [homeassistant.setup] Setup failed for plex_recently_added: No setup function defined.
2020-03-23 13:23:47 ERROR (MainThread) [homeassistant.setup] Setup failed for radarr_upcoming_media: No setup function defined.
2020-03-23 13:23:47 ERROR (MainThread) [homeassistant.setup] Setup failed for roomba: No setup function defined.
2020-03-23 13:23:47 ERROR (MainThread) [homeassistant.setup] Setup failed for sonarr_upcoming_media: No setup function defined.
2020-03-23 13:23:53 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry for hacs
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/config_entries.py”, line 216, in async_setup
hass, self
File “/config/custom_components/hacs/init.py”, line 81, in async_setup_entry
startup_result = await hacs_startup()
File “/config/custom_components/hacs/init.py”, line 143, in hacs_startup
await setup_frontend()
File “/config/custom_components/hacs/setup.py”, line 103, in setup_frontend
require_admin=True,
File “/usr/src/homeassistant/homeassistant/components/frontend/init.py”, line 190, in async_register_built_in_panel
raise ValueError(f"Overwriting panel {panel.frontend_url_path}")
ValueError: Overwriting panel hacs
2020-03-23 13:23:57 WARNING (MainThread) [homeassistant.setup] Setup of updater is taking over 10 seconds.
2020-03-23 13:24:02 ERROR (MainThread) [homeassistant.components.updater] Timeout fetching Home Assistant update data

In additional after I restart it, I receive the following notification however when I do HA check configuration, all seems to be fine and in addition, I can see the Sonarr/Radarr and PLEX Components to be working fine (my custom cards have the correct data) - errors:

image

Hi @benzoto!

The inbuilt Roomba and my rest980 platforms are mutually ex clusive. The reason I created rest980 is due to issues with the inbuilt platform and it does not allow selective cleaning which I don’t believe your model has.

If you want to use test980, then I highly suggest you disable the vacuum component in your configuration.yaml

This I assume means you also configured the sensor.rest980. If you head to the developers page, states tab, and look for this sensor - what output do you yet? Also try going directly to this URL in a browser.

Not sure for the other errors offhand, would need further investigation.

Hello Jeremy :slight_smile:
Thank you for the swift reply.
Indeed the model that I have (Roomba 960) does not have selective cleaning however I’m interested just to add the main capabilities (Start/Stop/Pause, Return Home, Battery and the Maintenance Info) if possible.
So just to be sure that I understand it correctly, I should not have the iRobot info(Host/Username/Pass) in my configuration.yaml if I want to use the rest980. The only think that I should add is the sensor.rest980 as I do not have it configured in it. If that is the case, can you please share an example what would be the exact entry in the config.yaml
I’ve also tried to access the URL and I can see the following - URL. 192.168.1.88:3000/api/local/info/state (using the rest980 port)

{“netinfo”:{“dhcp”:true,“addr”:3232235788,“mask”:4294967040,“gw”:3232235777,“dns1”:134744072,“dns2”:134743044,“bssid”:“c0:4a:00:57:2a:64”,“sec”:4},“wifistat”:{“wifi”:1,“uap”:false,“cloud”:1},“wlcfg”:{“sec”:7,“ssid”:“4469536153546552”},“mac”:“d0:c5:d3:62:1d:66”,“country”:“BG”,“cloudEnv”:“prod”,“svcEndpoints”:{“svcDeplId”:“v007”},“mapUploadAllowed”:true,“localtimeoffset”:120,“utctime”:1584962145,“pose”:{“theta”:0,“point”:{“x”:58,“y”:0}},“batPct”:100,“dock”:{“known”:false},“bin”:{“present”:true,“full”:false},“audio”:{“active”:false},“cleanMissionStatus”:{“cycle”:“none”,“phase”:“charge”,“expireM”:0,“rechrgM”:0,“error”:0,“notReady”:0,“mssnM”:58,“sqft”:300,“initiator”:“manual”,“nMssn”:252},“language”:0,“noAutoPasses”:false,“noPP”:false,“ecoCharge”:false,“vacHigh”:false,“binPause”:false,“carpetBoost”:true,“openOnly”:false,“twoPass”:false,“schedHold”:false,“lastCommand”:{“command”:“quick”,“time”:1584688677,“initiator”:“manual”},“langs”:[{“en-US”:0},{“fr-FR”:1},{“es-ES”:2},{“de-DE”:3},{“it-IT”:4}],“bbnav”:{“aMtrack”:65,“nGoodLmrks”:9,“aGain”:24,“aExpo”:75},“bbpanic”:{“panics”:[9,8,9,8,9]},“bbpause”:{“pauses”:[14,14,16,8,13,2,2,0,13,0]},“bbmssn”:{“nMssn”:252,“nMssnOk”:197,“nMssnC”:30,“nMssnF”:25,“aMssnM”:46,“aCycleM”:41},“bbrstinfo”:{“nNavRst”:56,“nMobRst”:6,“causes”:“0000”},“signal”:{“rssi”:-34,“snr”:57},“cap”:{“pose”:1,“ota”:2,“multiPass”:2,“pp”:1,“binFullDetect”:1,“langOta”:1,“maps”:1,“edge”:1,“eco”:1,“svcConf”:1},“hardwareRev”:3,“sku”:“R960020”,“batteryType”:“li26”,“soundVer”:“31”,“uiSwVer”:“4582”,“navSwVer”:“01.12.01#1”,“wifiSwVer”:“20992”,“mobilityVer”:“5806”,“bootloaderVer”:“4042”,“umiVer”:“6”,“softwareVer”:“v2.4.6-3”,“tz”:{“events”:[{“dt”:1583082000,“off”:120},{“dt”:1585443601,“off”:180},{“dt”:1603587601,“off”:120}],“ver”:8},“timezone”:“Europe/Sofia”,“name”:“Roomba”,“cleanSchedule”:{“cycle”:[“none”,“none”,“none”,“none”,“none”,“none”,“none”],“h”:[0,0,0,0,0,0,0],“m”:[0,0,0,0,0,0,0]},“bbchg3”:{“avgMin”:37,“hOnDock”:8291,“nAvail”:2029,“estCap”:7451,“nLithChrg”:224,“nNimhChrg”:0,“nDocks”:95},“bbchg”:{“nChgOk”:224,“nLithF”:0,“aborts”:[4,4,4]},“bbswitch”:{“nBumper”:1656,“nClean”:349,“nSpot”:43,“nDock”:95,“nDrops”:1517},“bbrun”:{“hr”:206,“min”:53,“sqft”:609,“nStuck”:271,“nScrubs”:159,“nPicks”:1707,“nPanics”:590,“nCliffsF”:36703,“nCliffsR”:5717,“nMBStll”:21,“nWStll”:14,“nCBump”:0},“bbsys”:{“hr”:8701,“min”:42}}

When I try to access this link (using HA port) : URL: http://192.168.1.88:8123/api/local/info/state I receive not found - which I’m not sure whether it is OK or not :slight_smile:

Hi :slight_smile:
I did added the following in my configuration file under sensors.

I hope it is what is required, and now I can seem to be able to see the rest980 in the Dev > State but nothing related to the roomba :frowning:

I’ve tried to restart the service and try to pair again the Roomba but it is the same. I do see communication between the rest980 addon and the roomba

GET /api/local/info/state 200 102.362 ms - 2347
GET /api/local/info/state 200 102.157 ms - 2347
GET /api/local/info/state 200 102.601 ms - 2347
GET /api/local/info/state 200 103.244 ms - 2347
GET /api/local/info/state 200 108.685 ms - 2347
GET /api/local/info/state 200 101.884 ms - 2347
GET /api/local/info/state 200 102.712 ms - 2347
GET /api/local/info/state 200 101.771 ms - 2347
GET /api/local/info/state 200 105.245 ms - 2347
GET /api/local/info/state 200 101.162 ms - 2347
GET /api/local/info/state 200 104.074 ms - 2347
GET /api/local/info/state 200 101.879 ms - 2347
GET /api/local/info/state 200 101.900 ms - 2347
GET /api/local/info/state 200 102.167 ms - 2347
GET /api/local/info/state 200 105.860 ms - 2347
GET /api/local/info/state 200 101.743 ms - 2347
GET /api/local/info/state 200 100.649 ms - 2347
GET /api/local/info/state 200 103.591 ms - 2347
GET /api/local/info/state 200 102.882 ms - 2347
GET /api/local/info/state 200 102.375 ms - 2347
GET /api/local/info/state 200 102.548 ms - 2347
GET /api/local/info/state 200 102.779 ms - 2347

Follow the steps on my repo here. Specifically the part for creating the template sensor which leverages the above rest980 sensor

The selective room cleaning parts won’t be applicable, but the rest will work for you

Hi Jeremy

Thank you again. I did followed already the steps that you’ve described and after correcting few errors I’ve managed to add the roomba lovelace using the rest.

I’m experiencing another issue since the morning, which I can’t really understand how to fix.

I do not have secrets.yaml nor vacuum.yaml however i’ve added most of the components within the configuration.yaml but the buttons within the Lovelace are not calling the services action/start.

I’ve tested on the Lovelace the stop/pause/dock and all that is working but the start doesnt…however if I try to open the http://xxxxx:3000/api/local/action/start and it is working ok :frowning:
APologies if the questions are dumb… but… I’m still figuring the entire thing - Home assistant and all :slight_smile:

The Lovelace details

cards:
  - entity: sensor.vacuum
    type: 'custom:roomba-vacuum-card'
    image: /local/community/roomba-vacuum-card/vacuum.png
    name: Пена
    attributes:
      clean_base: false
      job: true
      job_status: true
      totals: true
      maint: true
    buttons:
      blank: true
      dock: true
      start: true
      stop: true
      find: true
    labels:
      battery: 
      bin: 
      job_area: 
      job_recharge: 
      job_time: 
      mode: 
      status: 

image

Hey sorry for the delay, did you have any luck getting this working?

I use Packages within HA which allows me to keep the vacuum.yaml file seperate.

Hello :slight_smile:
I did make it work using the native HA integration but it is not working properly.
It keeps losing connection to the roomba and I do not seem to be able to fix it. If you have any ideas :slight_smile: please share
On the other hand, I’m still trying to understand the logic within your yaml :slight_smile: as I’m still newbie to the HA and even more for the REST command. I’ve tried to copy it and use it within my config.yaml but I can seem to make it work properly. I can only see the status but the buttons and the rest it is not working.

Regards,

Thanks again for the help :slight_smile:

Hello Again :slight_smile:
Just to report back that after the recent HA updates all is working fine with the Roomba :slight_smile:

Thx a lot for your help

Glad its working - apologies for the delay in response !

Hello all,

I had integrated my Roomba 960 with HA, but after some hours, the connection gets lost until a HA Reboot.

After the reboot, the connection is reestablished and I can control my Roomba again, but some hours later, gets lost again…

I have already tried to reconfigure the integration by the YAML file and by the integration menu with no luck.

I’m running version 0.118.3 of homeassistant.

Any help?

BR,
Cesar

I experience the same issue as @Cesarsanf with version 0.118.4. With 0.117.x and other previous versions didn’t had this problem.

I experience the same issue with 0.118.4 After reloading the integration (or after restarting home assistant) the integration is alive and kicking. However, after a few moments it’s lost again. Status of the attached entities isn’t getting updated anymore. Didn’t have this issue previously.

I have the same issue to on 0.118.4, restart fixes it.

Same here. Also 0.118.4

New Roomba owner, same here!

After updating to 2020.12.1 it seems that the problem is solved.
Might be that https://github.com/home-assistant/core/pull/43594 fix it.