iRobot Roomba i7+ Configuration using Rest980

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:

Can you check in Developer Tools, does sensor.rest980 exist?

Hey! Thanks good, and not surprising since its built on the same platform, that one just uses dorita980 direct whereas this uses the rest980 overlay.

@omar416 also getting the same error as you. Did you resolve this?

per @Syrius reply, i was previously using the native component, but since removed it. Still getting the error though. Any suggestions?

EDIT:
SOLVED
error adding localization.

good day

Please help
in the “maintenance” section in the “cleaning” section I have all the buttons red and it is not possible to achieve a green state in any way.
I think, probably wrongly, that I followed the installation procedure.
Can you please advise me where I probably made a mistake or what I could forget to set?
I do not fully understand the part related to mqtt, to config.yaml I did not add any sensors manually, but in the integration of mqtt vacuum_maint_ sensors _ I have _ available _.
I have no idea where I have a mistake?
Some idea???

Thank you

1 Like

Hello,

thank you so much for the hard work! I just got into HA and still dont know all the basics. I managed to get this working but I have a couple questions if someone would be so kind to help me out.

Im looking to add a simple button card per room which, when clicked, would spot clean only that room. Im guessing its flipping the boolean to on, but then what? How would I realize this in a card?

Also, the maintenance card is telling me that maintenance is overdue by 51 years. That seems excessive?

thanks

Hello @Syrius , I still can’t get the second floor running. First I wanted to integrate (merge) the multifloor.yaml into the existing vacuum.yaml of my Roomba. I also tried to rename kitchen map into ground floor map and so on. After a reboot everything was brocken and I needed to go back on my working setup. Next try was to let all the mop_map multifloor naming and put a separate file in the packages directory. I’ve read all the instructions under FAQ, but I think my abilities are limited to get it running with the FAQ alone. I’ve only 1 rest980 running, because I’ve only the Roomba in my House.
Perhaps you or someone who has got it running with two floors can help me.

Thanks

Hey guys, I hope someone can help me out.
I’m facing the classic error of the empty states {} when accessing “/api/local/info/state”.
I followed the instructions and already uninstalled the addons multiple times.
Also checked the thread trying to find the same issue, but I’m still stuck.
I also made sure to remove the Roomba Integration and also confirmed the password and BLID are still valid.

-Rest980 logs:

[email protected] start /usr/src/app
node ./bin/www
GET /api/local/info/state 200 144.815 ms - 2
GET /favicon.ico 200 17.935 ms - 1150

-NGINX
When accessing “/image.php” I get:
No Coordinates found in file, is it reachable and populated? Log file - http://192.168.2.40:3001/vacuum.log?

The only weird thing on the logs is:
[WARN tini (7)] Tini is not running as PID 1 and isn’t registered as a child subreaper.
Zombie processes will not be re-parented to Tini, so zombie reaping won’t work.

Any ideas?
Thanks

@thiagodeserto … i solved that image.php please check this :slight_smile:

@Syrius how can i display the map with the lovelace card like you are show in the image ??

i have the map when i go the url … and i have all the card funcions but no map … do u have a card for that ??

Thank you, André.
But I don’t see a vacuum.log being generated anywhere, not inside the vacuum folder nor inside the config.

The php app … can u tell me what u have in the conguration ???

is it like this

and in the image php … have u changed it ??

Yes. The php-nginx has its default values, like you postedit.
I also changed the values inside image.php, but I’m unsure if they have to point to 3000 or 3001.
I tried both, without luck.

@thiagodeserto

The line 25 … its the ip and port of home assistant not the apps of this mod … please point that to the internal ip of your home assistant and the port of home assistant

'$ha_rest980 = 'http://iphomeassistant:porthomeassistant/api/states/sensor.rest980'; # sensor.rest980_2, if configured for Mop

$ha_token = have u created the long lived home assistant token ??

that should work i thing that is your problem … then restart the apps from the mod in docker !!!

it still appears to be looking for vacuum in your code, you will need to find where its defined and remove it.

glad its solved :+1:

you could use a script or execute a seperate automation which changes the input boolean, and then triggers the automation. have a look at this automation which essentially does this, you just want to change the trigger.

click it again to reset it to 0

PM me and we can sort it out

hmm, typically this is due to the roomba integration running… do you have the app running on your phone? perhaps try rebooting your roomba incase there is a stuck connecting preventing rest980 from reaching the robot

if there is no state info, then this wont work (as there is no coordinates to generate)

you need to add a second card for the camera - refer here

Check this FAQ Item which explains how it works.

if you dont have the states working, then this is unlikely to work as it wont be able to get the coordinates published by the robot.

once thats sorted, then check and make sure the automations are getting executed with the vacuum log changes and writing to the vacuum.log fuile

robot_log should point at 3001 (the php-nginx port)
ha_rest980 should point at 8123 or which ever port you use for HA

Thanks for the all the answers, Syrius, but still no luck.

-I made sure to have the iRobot app closed on the phone.
-I made sure the official integration was removed, not only disabled.
-I rebooted Roomba.
-I confirmed BLID, Password and ip address. I even setup up the official integration again, and after removing it, just to guarantee nothing changed meanwhile.
-Updated the ha_rest980 var with the correct port, even thought that shouldn’t prevent states from showing, right?!
-Read all the FAQ.
-Removed and reinstalled Addons.
-Rebooted HA.

I’m starting to think that may be a particularity of the new J7+.
I’ll try to debug more this weekend.
Any ideas are welcome.
Thanks again and keep up the good work.