iRobot Roomba i7+ Configuration using Rest980

Tags: #<Tag:0x00007f3264a6bd08> #<Tag:0x00007f3264a6bbc8>

have a look at this post for how the mapping process works -

let me know if it dosent help and we can suss it out (y)

That got it!
Thank you for your assistance.
I am so appreciative of the support and excellent addons!!

1 Like

I’m trying to get rest980 set up in a Docker in order to play with this for my 960 (mostly interested in the live map), but I’m getting the error:

Errol:~ # docker run -e BLID=my_blid -e PASSWORD=my_password -e ROBOT_IP=my_robot_ip koalazak/rest980
standard_init_linux.go:211: exec user process caused "exec format error"

I have a feeling this is because my device is an aarch64 one? Could anyone offer suggestions on how I could get it running?

Yep koalazak only published x84_64 images on Docker Hub.

I have created custom images which run on HA which should work for your platform?

If you just want to run it direct on Docker, clone the rest980 folder in the above repo and build it manually
docker build --tag rest980 .

Trying to implement the 2 floor cleaning and following your earlier post.

Getting the following in the logs when I try to clean a room on a floor.
The pmap id and region are correct.

* Error. Url: http://192.168.1.4:3002/api/local/action/cleanRoom. Status code 400. Payload: b'{\n "ordered": 0,\n "pmap_id": "4VaRSnhQTBaH1uvtJksaFQ",\n "regions": [\n {"region_id": "4"}\n ]\n "user_pmapv_id": "None"\n}'

Any ideas on what may be wrong?
Can post vacuum.yaml if required.

Hi, I have a roomba (downstairs) and am adding a second(upstairs). I have the add-on containers working for both robots and the first(downstairs) robot entirely configured and working. Looking over this page I saw reference to an update in the FAQ to better explain what needs to change in the secrets.yaml and vacuum.yaml packages. I checked the FAQ and readme but was not able to find what I was looking for. The documentation explains how to get the second set of containers working but I could not find the steps needed to support a second floor Roomba like possible changes in the yaml files and possibly vacuum folder . Anyone have a link handy to the steps?, I have looked a few times and just am not seeing it…

Hi, i’m really new (started yesterday) to home assistant and lover the work you’ve done for this Roomba integration.
I was able to add my Roomba I7 through the GUI - Integrations. Got my blid and password through a python script.
But now i wanted to start using your advancend roomba setup.
I got stuck at Step 5: Get Room Details
My page is totally empty just {}2020-11-20 17_03_37-Window

I have the same issue. I haven’t figured out the solution yet however I can post more information here so that someone else might be able to.
Here is a link to an error from the rest980 container when this occurs.
https://pastebin.com/MuwEtbTV

Here is my environment section of my docker-compose

    environment:
      - BLID=BEXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      - PASSWORD=:1:xxxxxxxxx:xxxxxxxxxxxxxxxx
      - ROBOT_IP=192.168.x.xx
      - FIRMWARE_VERSION=2

I have also tried with putting quotes around the entire environment string
eg:

- "PASSWORD=:1:xxxxxxxxx:xxxxxxxxxxxxxxx"

That did not have a change. If anyone has any ideas or wants me to provide more information I’ll be happy to.

edit:
The error I linked does not always occur and may be unrelated. I’ve done several variations of this step and sometimes it doesn’t happen. However I always get a blank dictionary in my rest api
edit2:
So I’ve tried various combinations of holding the home button and starting clean rooms and starting the rest980 container. By holding the home button, then starting the rest980 and then checking the web page I get output. However the last command is NULL. If I leave the container going and start a clean room task, I immediately get the error I posted in the pastebin. It’s like it kicks me off once it starts the clean room
final edit:
So this is embarrassing but at some point during the resets and such the password changed. It used to be :1:55 and changed to :1:155. Couldn’t have been a copy paste error since it’s in the middle of the string. Sorry guys.

Just got everything set up this morning, and am running into a problem when I try to use the Selective room cleaning in lovelace, this is what I get in the log:

2020-11-20 10:30:36 WARNING (MainThread) [homeassistant.components.rest_command] Error. Url: http://x.x.x.x:3000/api/local/info/action/cleanRoom. Status code 400. Payload: b'{\n "ordered": 1,\n "pmap_id": "MY_ID",\n "regions": [\n {"region_id": "29"},\n unknown\n ]\n}'

I have tested the region ID in nightingale, a REST client, and it does indeed work, but I am not sure how to troubleshoot the code on the HASS side

ok after some time mine is giving some info.
do you need to do a full clean of the whole map?

{“batPct”:100,“batteryType”:“F12432832R”,“batInfo”:{“mName”:“F12432832R”,“mDate”:“2019-5-16”,“mDaySerial”:31798,“mData”:“303030333034303200000000000000000000000000”,“mLife”:“0C540B33107E0A724DEF000D04DFF75400CCFEBF2B0EFFFF07E512C100000000”,“cCount”:74,“afCount”:0},“batAuthEnable”:true,“bbchg”:{“nChatters”:25,“nKnockoffs”:1452,“nLithF”:2,“nChgOk”:140,“aborts”:[0,16,5],“smberr”:57344},“bbchg3”:{“estCap”:1847,“nAvail”:904,“hOnDock”:6144,“avgMin”:34},“bbmssn”:{“aCycleM”:55,“nMssnF”:12,“nMssnC”:24,“nMssnOk”:128,“aMssnM”:93,“nMssn”:165},“bbnav”:{“aMtrack”:93,“nGoodLmrks”:4,“aGain”:9,“aExpo”:36},“bbpause”:{“pauses”:[18,46,2,46,46,46,46,46,24,42]},“bbrstinfo”:{“nNavRst”:0,“nMobRst”:0,“causes”:“0000”,“nSafRst”:0,“safCauses”:[0,0,0,0,0,0,0,0,0,0]},“bbrun”:{“nEvacs”:0,“nCBump”:0,“nOvertemps”:0,“nWStll”:0,“nMBStll”:254,“nPanics”:104,“nPicks”:1615,“nOpticalDD”:227,“nScrubs”:373,“nPiezoDD”:128,“nStuck”:26,“sqft”:341,“min”:25,“hr”:91,“nCliffsF”:13207,“nCliffsR”:0},“bbswitch”:{“nBumper”:97983,“nDrops”:552,“nDock”:57,“nSpot”:68,“nClean”:77},“bbsys”:{“min”:25,“hr”:6442},“bin”:{“present”:true,“full”:false},“binPause”:false,“bleDevLoc”:false,“cap”:{“binFullDetect”:1,“dockComm”:1,“wDevLoc”:2,“bleDevLoc”:1,“edge”:0,“maps”:3,“pmaps”:4,“tLine”:2,“area”:1,“eco”:1,“multiPass”:2,“pose”:1,“team”:1,“pp”:0,“5ghz”:1,“prov”:3,“sched”:1,“svcConf”:1,“ota”:2,“log”:2,“tileScan”:1},“carpetBoost”:false,“cleanMissionStatus”:{“cycle”:“none”,“phase”:“charge”,“expireM”:0,“rechrgM”:0,“error”:0,“notReady”:0,“mssnM”:1,“sqft”:8,“initiator”:“rmtApp”,“nMssn”:165},“cleanSchedule2”:[],“cloudEnv”:“prod”,“connected”:true,“country”:“BE”,“deploymentState”:0,“dock”:{“known”:true,“pn”:null,“state”:null,“id”:null,“fwVer”:null},“evacAllowed”:true,“ecoCharge”:false,“hwPartsRev”:{“csscID”:0,“mobBrd”:7,“mobBlid”:“6279BCB2052A41066F97A0815BF70298”,“navSerialNo”:“CF09819FH”,“wlan0HwAddr”:“50:14:79:17:6d:e6”,“NavBrd”:0},“hwDbgr”:{“swVer”:"",“hw”:"",“status”:0},“langs”:[{“cs-CZ”:0},{“da-DK”:1},{“de-DE”:2},{“en-GB”:3},{“en-US”:4},{“es-ES”:5},{“es-XL”:6},{“fi-FI”:7},{“fr-CA”:8},{“fr-FR”:9},{“he-IL”:10},{“it-IT”:11},{“ja-JP”:12},{“ko-KR”:13},{“nb-NO”:14},{“nl-NL”:15},{“pl-PL”:16},{“pt-BR”:17},{“pt-PT”:18},{“ru-RU”:19},{“sv-SE”:20},{“zh-CN”:21},{“zh-HK”:22},{“zh-TW”:23}],“language”:3,“lastCommand”:{“command”:“dock”,“initiator”:“rmtApp”,“time”:1605885321,“ordered”:null,“pmap_id”:null,“regions”:null,“user_pmapv_id”:null,“robot_id”:null,“select_all”:null},“lastDisconnect”:2,“mapUploadAllowed”:true,“missionTelemetry”:{“aux_comms”:1,“bat_stats”:1,“camera_settings”:1,“map_hypotheses”:1,“map_load”:1,“vital_stats”:1,“vslam_report”:1},“mssnNavStats”:{“nMssn”:165,“gLmk”:4,“lmk”:1,“reLc”:0,“plnErr”:“none”,“mTrk”:93,“kdp”:0,“sfkdp”:0,“nmc”:1,“nmmc”:1,“nrmc”:0,“mpSt”:“idle”,“l_drift”:0,“h_drift”:0,“l_squal”:81,“h_squal”:0},“name”:“Woepie”,“noAutoPasses”:true,“noPP”:false,“openOnly”:false,“pmapLearningAllowed”:true,“pmaps”:[{“YgxkBy66TySujNZQL73mFw”:“201120T093204”}],“pmapCL”:true,“rankOverlap”:15,“sceneRecog”:1,“schedHold”:false,“secureBoot”:{“log”:2,“flip”:0,“sbl1Ver”:“B3.2.02_PPUB”,“stublVer”:“B3.2.02_PPUB”,“efuse”:1,“blType”:1,“enforce”:2,“lastRst”:“200000001”,“recov”:“linux+2.4.2+lewis-release-rt320+12”,“idSwitch”:0},“sku”:“i715840”,“softwareVer”:“lewis+3.10.8+lewis-release-rt320+13”,“subModSwVer”:{“nav”:“lewis-nav+3.10.8-EPMF+build-HEAD-fed1cd6fdd3+13”,“mob”:“3.10.8+build-HEAD-fed1cd6fdd3+13”,“pwr”:“0.5.3+build-HEAD-fed1cd6fdd3+13”,“sft”:“1.1.0+Lewis-Builds/Lewis-Certified-Safety/lewis-safety-bbbe81f2c82+21”,“mobBtl”:“4.2”,“linux”:“linux+2.4.2+lewis-release-rt320+13”,“con”:“2.4.0-@071b7851/build”},“svcEndpoints”:{“svcDeplId”:“v007”},“timezone”:“Europe/Brussels”,“tls”:{“tzbChk”:1,“privKType”:2,“lcCiphers”:[0,0,0,0,0,0,0,0,50380848,50331708]},“twoPass”:true,“tz”:{“events”:[{“dt”:1604232000,“off”:60},{“dt”:1616893201,“off”:120},{“dt”:1635642001,“off”:60}],“ver”:9},“vacHigh”:false,“wDevLoc”:false,“netinfo”:{“dhcp”:true,“addr”:“10.0.2.32”,“mask”:“255.255.255.0”,“gw”:“10.0.2.254”,“dns1”:“10.0.2.254”,“dns2”:“0.0.0.0”,“bssid”:“e0:63:da:2b:0f:f0”,“sec”:4},“signal”:{“rssi”:-41,“snr”:49,“noise”:-90},“wifistat”:{“cloud”:14,“wifi”:1,“uap”:false},“wlcfg”:{“sec”:4,“ssid”:“4465636B6572732D57696669”},“pose”:{“theta”:-3,“point”:{“x”:0,“y”:0}}}

You will need to run a clean room and select all your rooms and make note of the order. If it works, eventually that information will update. If you search for “lastCommand” and go to where it says “regions” shortly after that. You will need to copy and use that information later.

However, when I do a clean room when I’m at the same spot as you, it throws and error and I can’t figure that part out. Maybe you’ll have better luck than me.

Remove the user_pmapv_id section. The error is showing it with a none value

I haven’t written any proper instruction for two floors as I don’t have two floors to test :man_shrugging:
I’ve provided some proposed solutions and ideas, just haven’t had the time recently to try it out.

Seems like somethings is wrong with the integration. Do you happen to have the native “vacuum” component running as well? They don’t play nice together. Try restarting the rest980 container also. Can also enable debug mode in the container (I’ll have to lookup the environment variable) to see if it’s saying anything useful

At least it’s sorted and working! :partying_face:

You need to replace x.x.x.x with your hass IP address

You need to run the clean rooms from the Roomba app the first time

I got this all working and it’s such a great feeling. Thanks for all your hard work on this @Syrius

1 Like

ok i’m getting somewhere too.
Have everything working apart from the map and the maintenance things.

Maintenance things
Entity doesn’t exist. Create ?
When clicking the checkbox i get an error message.

Failed to call service mqtt/publish. Service not found.

Think my mqtt is not setup right.
I’ve put this into my configuration.yaml file.

mqtt:
discovery: true

Got MQTT working. Now everything is on ‘over by 50 years’.
After clicking on it it changes in some weeks or months.
How is this part working? Will I get an alert when to replace or clean things?

Still have some errors:

Map
The map is not displaying.
How do can I display it?

Thanks! that sorted it.
Now to get the map to display on Lovelace, have some issue but they are probably my own doing.

This just gives you an estimate on when to clean/replace the parts, the timings used are roughly in line with the frequency proposed by iRobot. There is no configured alerts for these, however you can configure a notificatino based on the maintenance input_boolean.vacuum_maint_due should you wish.

Looks like you still have some errors in the code you have pasted in. I have defined the secret vacuum_notify as a way of sending notificaytions to my ios device.

If you dont have or want this, then you need to hash out / delete the folliwng lines from the lovelace.yaml file

505-515 - Notify on Stuck status
542-552 - Notify on Complete status

The Map is displayed as a picture entities card in Lovelace, refer lovelace.yaml 156-160, otherwise refer below.
however this wont necessarily display properly if you are getting errors in the configuraiton, i would focus on them first.

refer statement above to get the camera showing in lovelace. Then have a look at the following which steps through the process for generating the map.

Thx Syrius,

the mobile app notification is working now.

Still having issues with getting the map on the view.
Think it is something with my indentation.

hello i have integration my roomba in hassio 32 bit and work well , later i integration in hassio 64 bit and see later 10 minutes stop work in HA .
is compatible roomba with home assistant rpi4 with 64 bit version ?
you know as can solve this problem?
thx you

Is anyone else having issues after updating to 0.118?
Mine worked fine untill i updated yesterday :frowning:

can you access the map via the map url?

is this the rest980 integration? what do you see in the logs for the addon?


im still on 0.115 :expressionless: … so cant tell you get… what is the log showing?