I now see the response for info/state, and I’ve set up the secrets, etc.
When triggering a room-clean from LoveLace, I see the following error in the Rest980 log:
POST //api/local/action/cleanRoom 404 3.601 ms - 136
Error: Endpoint not found.
at /usr/src/app/app.js:63:13
at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:317:13)
at /usr/src/app/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:335:12)
at next (/usr/src/app/node_modules/express/lib/router/index.js:275:10)
at /usr/src/app/node_modules/express/lib/router/index.js:635:15
at next (/usr/src/app/node_modules/express/lib/router/index.js:260:14)
at jsonParser (/usr/src/app/node_modules/body-parser/lib/types/json.js:101:7)
at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:317:13)
at /usr/src/app/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:335:12)
at next (/usr/src/app/node_modules/express/lib/router/index.js:275:10)
at Function.handle (/usr/src/app/node_modules/express/lib/router/index.js:174:3)
at router (/usr/src/app/node_modules/express/lib/router/index.js:47:12)
at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:317:13)
at /usr/src/app/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:335:12)
at next (/usr/src/app/node_modules/express/lib/router/index.js:275:10)
at authHandler (/usr/src/app/app.js:23:48)
Thanks again @Syrius - but if this is the Log entry after I clicked the button in LoveLace, why would the POST call contain it? Where in the configuration do you think I made the mistake to have the LoveLace button click result in a // ?
The lovelace card now has native support for Braava along with the inclusion of the clean_mode attribute (which needs to be renamed from clean_passes in vacuum.yaml)
I have recently purchased a Braava m6, so have been able to properly prepare the configurations and published them. In my particular apartment, the tiles areas are not joined, so they are treated as separate maps by the Braava.
This has lead to the development of the Multi-Floor solution! You can find further details on GitHub, and a section in the FAQ.
Reach out for any issues, and please raise an issue/PR if I have missed something
@Daniel76, the lock in lovelace is reflected by the state of group.vacuum_rooms. Make sure all your input_booleans representing your rooms are in this group.
When clicking the clean rooms button, I get the following in my logs:
2021-07-31 00:09:24 WARNING (MainThread) [homeassistant.components.rest_command] Error. Url: http://192.168.5.120:3002/api/local/info/action/cleanRoom. Status code 400. Payload: b’{\n “ordered”: 1,\n “pmap_id”: “16kzuDeVTsCaZSZTacphbA”,\n “regions”: [\n unknown\n ]\n}’
this is what my secrets file has:
vacuum_action: http://192.168.5.120:3002/api/local/info/action/
I got this working in about 30 minutes. The simple Windows exe for getting the initial tokens helped significantly, and from there it was pretty plain sailing.
One hopefully easy question.
Is there an easy way to send the Vacuum home? I am trying to setup both a button and an automation which can just send the vacuum home. The automation will fire if someone comes home, it stops what it is doing and just goes back to its base.
It would also be good if there was a button I could put separately to send it home (I know it is in the Lovelace card). I have an “emergency stop” page which allows most things to be stopped or turned off from a single page.
I’m having issues with my Braava m6 now after updating. When I select rooms to clean it immediately fails, the Braava dings and says “See the app for help”. I then get notified “Mop ended the job stuck.” Not sure what may be causing this. I verified that the region id’s are the same as before and believe i’ve updated every section appropriately and have tried a soft reset on the mop. Any idea where to look?
this is how you can trigger it from Dev Tools, you can use this in your code elsewhere -
note: if your roomba is already docked (with clean base) this will also trigger the evac.
service: rest_command.vacuum_action
data:
command: dock
to get the robot to stop, just replace dock with stop in the above.
unfortunately its a manual updating process, of reviewing the changes, possibly using vs code and seeing how it compares with your deployment.
are you getting any errors in the home assistant log?
2021-08-02 19:04:07 ERROR (MainThread) [homeassistant.components.template.template_entity] TemplateError('IndexError: list index out of range') while processing template 'Template("{{ state_attr('sensor.rest980_2', 'pmaps')[1] | regex_findall_index("{'([\w\-]+)': '\w+'}") }}")' for attribute 'pmap1_id' in entity 'sensor.mop'
2021-08-02 19:04:07 ERROR (MainThread) [homeassistant.components.template.template_entity] TemplateError('IndexError: list index out of range') while processing template 'Template("{{ state_attr('sensor.rest980_2', 'pmaps')[2] | regex_findall_index("{'([\w\-]+)': '\w+'}") }}")' for attribute 'pmap2_id' in entity 'sensor.mop'
2021-08-02 19:04:07 ERROR (MainThread) [homeassistant.components.template.template_entity] TemplateError('IndexError: list index out of range') while processing template 'Template("{{ state_attr('sensor.rest980_2', 'pmaps')[3] | regex_findall_index("{'([\w\-]+)': '\w+'}") }}")' for attribute 'pmap3_id' in entity 'sensor.mop'
2021-08-02 19:05:07 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: list object has no element 1 when rendering '{{ state_attr('sensor.rest980_2', 'pmaps')[1] | regex_findall_index("{'([\w\-]+)': '\w+'}") }}'
2021-08-02 19:05:07 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: list object has no element 2 when rendering '{{ state_attr('sensor.rest980_2', 'pmaps')[2] | regex_findall_index("{'([\w\-]+)': '\w+'}") }}'
2021-08-02 19:05:07 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: list object has no element 3 when rendering '{{ state_attr('sensor.rest980_2', 'pmaps')[3] | regex_findall_index("{'([\w\-]+)': '\w+'}") }}'
Realized that the mop.yaml includes pmap in the Input Text section while the vacuum.yaml does not so I updated my config with the proper pmap_id received via /api/local/info/state
Although I still am getting those errors it seems to be working again as expected.
@Midivir, you can remove the attributes for pmaps 1, 2 and 3 (leaving 0) as I have this specifically for the 4 different floor plans i have at home (given my apartment tiled areas are seperated using carpet)
Hi Jeremy,
I have a problem with starts map in roomba vacuum. When i get prepared all files accorind in your manual i have error
GET /image.php 404 2.512 ms - 136
Error: Endpoint not found.
at /usr/src/app/app.js:63:13
at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:317:13)
at /usr/src/app/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:335:12)
at next (/usr/src/app/node_modules/express/lib/router/index.js:275:10)
at /usr/src/app/node_modules/express/lib/router/index.js:635:15
at next (/usr/src/app/node_modules/express/lib/router/index.js:260:14)
at jsonParser (/usr/src/app/node_modules/body-parser/lib/types/json.js:110:7)
at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:317:13)
at /usr/src/app/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:335:12)
at next (/usr/src/app/node_modules/express/lib/router/index.js:275:10)
at Function.handle (/usr/src/app/node_modules/express/lib/router/index.js:174:3)
at router (/usr/src/app/node_modules/express/lib/router/index.js:47:12)
at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:317:13)
at /usr/src/app/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:335:12)
at next (/usr/src/app/node_modules/express/lib/router/index.js:275:10)
The map you are seeing is provided by the rest980 container which you are using port 3002 for.
You will need to update the vacuum_map secret to use the port you have assigned to the php-nginx container (which is usually 3001)