iRobot Roomba i7+ Configuration using Rest980

ok so when you press the ‘Full Clean’ button, in the background it invokes the following -

rest_command.vacuum_action
command: start

can you try running it manually from developer tools?

image

Still not working, thinking I may have a issue with my unifi controller firewall settings as I randomly have disconnection issues with my HA UI and tons of errors in logs about not being able to connect with nabu casa, time to reroll my USG controller with fresh settings and see if anything changes.

Issuing commands this way works but not through HA

Maybe this, looks like its appending too many http:// on the commands

Log Details (ERROR)
Logger: homeassistant.components.rest_command
Source: components/rest_command/__init__.py:120
Integration: RESTful Command (documentation, issues)
First occurred: 12:43:52 PM (6 occurrences)
Last logged: 12:43:58 PM

Client error http://http://192.168.1.10:3000/api/local/action/stop.
Client error http://http://192.168.1.10:3000/api/local/action/dock.
Client error http://http://192.168.1.10:3000/api/local/action/pause.
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/aiohttp/connector.py", line 967, in _create_direct_connection
    traces=traces), loop=self._loop)
  File "/usr/local/lib/python3.7/site-packages/aiohttp/connector.py", line 815, in _resolve_host
    await event.wait()
  File "/usr/local/lib/python3.7/site-packages/aiohttp/locks.py", line 37, in wait
    raise self._exc
  File "/usr/local/lib/python3.7/site-packages/aiohttp/connector.py", line 830, in _resolve_host
    self._resolver.resolve(host, port, family=self._family)
  File "/usr/local/lib/python3.7/site-packages/aiohttp/resolver.py", line 30, in resolve
    host, port, type=socket.SOCK_STREAM, family=family)
  File "/usr/local/lib/python3.7/asyncio/base_events.py", line 792, in getaddrinfo
    None, getaddr_func, host, port, family, type, proto, flags)
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.7/socket.py", line 752, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Try again

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/rest_command/__init__.py", line 120, in async_service_handler
    timeout=timeout,
  File "/usr/local/lib/python3.7/site-packages/aiohttp/client.py", line 1012, in __aenter__
    self._resp = await self._coro
  File "/usr/local/lib/python3.7/site-packages/aiohttp/client.py", line 483, in _request
    timeout=real_timeout
  File "/usr/local/lib/python3.7/site-packages/aiohttp/connector.py", line 523, in connect
    proto = await self._create_connection(req, traces, timeout)
  File "/usr/local/lib/python3.7/site-packages/aiohttp/connector.py", line 859, in _create_connection
    req, traces, timeout)
  File "/usr/local/lib/python3.7/site-packages/aiohttp/connector.py", line 971, in _create_direct_connection
    raise ClientConnectorError(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host http:80 ssl:None [Try again]

can you please verify the following entries?

secrets.yaml
vacuum_action: http:/192.168.1.10:3000/api/local/action/
vacuum_verify_ssl: false
vacuum.yaml
rest_command:
  vacuum_action:
    url: >-
      {{ states('input_text.vacuum_action') }}{{ command }}
    verify_ssl: !secret vacuum_verify_ssl
    method: 'get'
    timeout: 20

input_text:
  vacuum_action:
    name: Vacuum Action URL
    initial: !secret vacuum_action

That was it! Thank you, i checked all the files that needed to be edited except the secret one, forgot about that one. Now onto the floor plan and to remove the regions from showing up in my overview since I have a 980 that doesn’t have the room feature.
What should I comment out for that?

Glad its working!

At a glance, you should be ok to remove the following

vacuum.yaml
sensor.vacuum attributes
- pmap0_id
- pmap0_timestamp

rest_command.vacuum_clean
input_boolean.vacuum_clean_*
input_text.vacuum_clean_*
group.vacuum_rooms

automations
- Vacuum Clean Rooms
- Vacuum Add Rooms for Cleaning
- Vacuum Remove Rooms for Cleaning
- Schedules - unless you schedule full cleans?
secrets.yaml
- vacuum_<rooms>
lovelace.yaml
<entire selective room cleaning section from here>
- entities:
      - input_boolean.vacuum_clean_kitchen
    <other stuff in here >
    head:
      label: Selective Room Cleaning
      type: section
    type: 'custom:fold-entity-row'
<to here>

Hope this helps!

1 Like

@hawk @S10XtremeNLow @mirekmal @nopenopenope

Good News!

I’ve fixed the rotate image function :partying_face:

Note to self, don’t re-use variables in code :man_facepalming:

Update lines 123-129 in your code as follows (pushed to GH also) :+1:

  $tmpx = $split[1]+$x_offset;
  $tmpy = $split[0]+$y_offset;
  $theta = $split[2];
  
  // Rotate Calculations
  $x=($tmpx*cos(deg2rad($rotate_angle))+$tmpy*sin(deg2rad($rotate_angle)))*$scale;
  $y=(-1*$tmpx*sin(deg2rad($rotate_angle))+$tmpy*cos(deg2rad($rotate_angle)))*$scale;
1 Like

OK, updated the code, but yet have to make some cleaning (will do later today to test). In meantime; you mentioned that deleting latest.png file and reloading the image.php will force redrawing the map… but how to reload image.php? I tried simple reload of page in HA or even restarting the add-on, but it does not recreate image file…

HA should refresh? Maybe try accessing the URL directly to confirm.

Does anyone know if there is still a modified vacuum.yaml file out for the 2nd rest980 instance to pull the sensor values for a braava m6 mop? I have both instances running now but I’m trying to pull information like the tank levels and such for the braava. I thought I remember reading somewhere that someone had posted a modified file to achieve this but I can’t seem to locate it.

After you edit all relevant files you need to execute the automation “Vacuum Generate Image after Cleaning”. Restarting or reloading anything isn’t necessary.

I am looking for the same.
Would be good to have a modified one that is for Braava and then one instance for the vaccum.

In this thread I believe there is someone that did the modifications to get the Braava details.

I am happy to post the state output that shows the data that needs to be collected.

I just sometimes randomly look in here and its so awesome to see what people build out of it :smiley:

I’m currently thinking of switching to JS/Canvas Image generation so you don’t need the extra php/nginx anymore, let me know if you guys are interested.

1 Like

Totally interested! Just have had zero free time to look into actually doing it myself :rofl:

:+1::+1:

has anyone been able to properly create a map wit a roomba 891? All my sensors and map is visible but i can’t get any points on my vacuum.log

can you verify in the HA Log that the Vacuum Log Position automation is executing when your roomba is cleaning ?

this is all i get after a clean run:

Home Assistant notifications (Log started: 2020-08-23T16:27:18.513691+00:00)

Finished

Once it finishes, it creates my map but with no lines

Thanks for your great work!

ok, in the HA log - is the vacuum log position automation running?

Yes. Vacuum log position and vacuum update location