iRobot Roomba i7+ Configuration using Rest980

Sorry Jeremy i I don’t understand, i beginner user in HA

Camera.romba

2021-08-11 19_21_04-Window

2021-08-11 19_13_02-Window

Camera.roomba and vaccum maps are corrected?

I found mistake in log server HA


Can you compare your camera config in vacuum.yaml?

###################################
# Camera
###################################

camera:
  - platform: generic
    still_image_url: >-
      {{ states('input_text.vacuum_map') }}
    content_type: image/png
    name: Roomba

it is same

###################################
# Camera
###################################

camera:
  - platform: generic
    still_image_url: >-
      {{ states('input_text.vacuum_map') }}
    content_type: image/png
    name: Roomba

Hmm… ok.

What version of HA are you running?

Try this method and see if it works for you -

###################################
# Camera
###################################

camera:
  - platform: generic
    still_image_url: !secret vacuum_map
    content_type: image/png
    name: Roomba

I used last version 2018.8.6 _phython 3.9.6.
I changed code and nothing change-maps not loaded :frowning:
Can you checking my file maybe you find something :wink:

configuration https://pastebin.com/QVGV6TkA;
secret https://pastebin.com/C3dyGShz;
image https://pastebin.com/RHE2YmWR;
vacuum https://pastebin.com/1y9G5Xn;

Hi,

Recently, I can’t perform any action using HA. When I do a “RESTful Command: vacuum_action” from the developer-tools/ services, the logs shows me a warning with a Timeout call.

The rest980 seems to work as I can see data in api/local/info/state

Any thoughs?

Thanks

The first three files seem ok. The vacuum link does not appear to be working however…
also, as your image php file contains a token, please regenerate it so its not publicly available!

Thats very strange, does the full clean command work ?

service: rest_command.vacuum_action
data:
  command: start

It seems to work but with a delay of 5 minutes.

I looked the info in “api/local/info/state” and it is outdated.

EDIT: I updated to HA 2021.8.7 and it seems to work now. Very strange indeed…

EDIT2: Nope, not working. When I reboot the HA it seems to work but after a while, rest commands works with a ~5 minutes delay, other times It doesn’t work at all. And state it’s not updated.

Ok i forgot removed token, i changed now.

Vaccum link was corrected https://pastebin.com/C7YZRgXv

How about if you run the command directly? Just trying to see if its a HA side issue or rest980 issue.

http://<ip or fqdn of docker host>:<rest980port>/api/local/action/start

Maybe try deleting/rebuilding the rest980 addon… :man_shrugging:

Thanks, again seems ok…

just to confirm, does the Map show if you access the url in a browser?

http://192.168.1.28:3003/image.php

and also to confirm, port 3003 is being used by php-nginx container?

I used this port 3001, after when i putting path on browser,i see this

’’’
Notice : Undefined variable: file_append in /config/vacuum/image.php on line 49

Warning : Cannot modify header information - headers already sent by (output started at /config/vacuum/image.php:49) in /config/vacuum/image.php on line 50

Notice : Undefined variable: file_append in /config/vacuum/image.php on line 51
�PNG IHDR��Wk�b pHYs���+e IDATx���|U�}���dY��e�(��:��,C5.%�%~�zT�e e�C�R��h�&롄���ex�2<�U<��e �2�ڱú�K(��C ���R�Q4�QT ѨXV��( ���su�չWWW��>z=��C���=?����~�9WE����V<�eƏ@a�t�;����u�����khhH�9mذ!�MSS�eeǽ��L��׬Y���� Y�$544�������UWW�N�>����d}ee�N�:��?t萊���v,]�T����r�ʈ���^9�F�5k���cǎ���S���joo׾}�ƴ����e�َ�hry��߯��Nuuu����***ƴ�Ѷo�ƍjnn���������K/�y?�ya���a�b� �^�Z%%%***ҙ3g&r�f���r�رCUUU���UMM�^y�d��'TUU�E�i͚5ڲe�^~�圗��A�8qB��Nd}EE�������'��a|���朖��-_�\���jhhО={�nݺ��o4�=>��?���h�߶m�6lؠ�˗k��媩�S���}�7o։'t��UTTh���|�r^��p����V��/fm����ee�Z~.e"��f����9i�z��w��i’�-Z�� �%K�8I����ݹs�uvv������������׻+W������㣾_���۷o�i��������’\rYcc�;z�hr�’N�W_}uL?o�����ص����^zi�~)�ɒߌ�Νs/^teee#����]��g�&��}�����v744�s�ƍe����w��%WSS�.^������������p�����ѣ.��l�]���۷��O�X,�ZZZ�T�ܼy��ݻw݆ e����ޞ�����ɓ’�s."��?��ڲeKd�\�_YY�����:::\UUUN�7U�’���蹬��g�q������ޭZ��uuu�ŋ�yߣ�oٲe�9��xS(J��ߌ,p�/_v—n�ƍ�m���eee][[����s�X�m߾}D�����[�n�5kָ�����m��r���nɒ%n�ܹ�ҥK.�’�����:;;�ڵk]YY�۲eKd�����+��������Szo{��M����u���.����A�v��1������q]]]n�ҥ#�-���,y�488�nݚ��M���e��z��߱c�sι��!�z���?j�6n���ݻ�.]�^�����ݵk��ʕ+��9�P(���oe7nt����̙3n���)u����� ��ܲeˈ@w�%�������X�����M�6%�m޼�ݺu�I^X�����OƐ{YY�K$�رc)�����.\��JKKݍe7ܲe˜����d���bw��5�s�μ�����m޼�uww�]�v�Su|rY�����8b�g˖-9�ٲe������qw��%����,X���G۾ e6���w�� W[[����܎;\oo�����ПQ �b��!�X̝?�]�z5ez��]�~�eL��ׯ_Ϻ�L�_�pa�|oo���V�X�snΜ9�y&:�KJJܹs�"æ��޽����W^I�̟??�r��-������۷]qq��g����Ν;9��T�\ן��h�oiiqap�\ii��x��דi��/_�snǎ)�;;;����’�g�B��*%�:~���;6bzYYو�=���܅��eo��s�y��%ۏu=�������Ν;nٲe���ʽ���y�a�B�U%�CCC��ݻ����UTT��)))qG�u===����555%�l��:::\GG�۵k����u����a�\=�򋋋݁a\gg����sׯ_Oy�j�������ݽ{���q�nݺ �).|CYXx������7�t�������>|x��x��777G�#|�u�;�3-���̝={�������>��ܜrS.�7��’��s9>��h��ҥK݅\OO����v��{�’r�m�JKK�k��溻�]WW�;uꔛ;w�T�Q�P(3������ra�t �0�@a�t �0�@a������\G�Q{{�����ӆ eR�455���1�e������Qι���ښ�f޼y�s玞~��֑�����r�驧��k�Q֬Y�?���[;x�V�X�իW��������֭[����ݻZ�pa������#���5kt���Ye�����˹s��ŋ]YYو������$u���d���b�o�>�����s�ݸq#������s�UUU%��e���ܜ|�`�w��Yw��=w��]w��!WZZ����������)��^������b�s˗/w�������q—�g��i���/j����nŊ)���]GG����vG�u�X,e�v�r�o�N�?��75 �B�L}ɻ���Р��R577k�ƍ)uMMM***�����������TTT�2<}��a����^Pyy�~��~oL����z���-Z�e˖���Zuuu#��_�����k�/
’’’

ok, so on a closer look… your image.php file is missing the following line -
$file_append = ''; # Allows differentiation of files for different floors or robots

in the repo, this is on line 7 of this file (under $robot_log)

Yes, I tried access to http://:/api/local/action/start and It doesn’t send the robot to clean, just loading.

It seems api/local/info/state doesn’t update since yesterday.

Yes, I tried rebuild the rest980 without success. If I rebuild, the state remains empty.

Hmm… If state is empty this suggests a connectivity issue.

Are you by chance running the native vacuum integration? This will break rest980

Other perhaps try rebooting your robot?

Mmm, things I tried:

  • Reboot roomba / reboot HA
  • Rebuild rest980 docker / uninstalling and reinstallling
  • Uninstalling rest980 and use native HA roomba.
  • Pair using roombapw Docker. I can’t even get the blid/password with this.

But I can see and use the robot using irobot offial android app.

I have a Roomba980 with firmware 2.4.16-126-12 june 2021.

EDIT: I did a factory reset and got a new password. Same connection behaviour that last time.

It seems there are some connection problems related with the latest firmware: here and here

And maps was created :grinning: Thank you Jerremy for your time.

Thanks for the update, maybe they are locking down external access :frowning_face:

Hopefully the factory reset lasts!

Nope, no luck. Controlling roomba from HA is not working :confused:

I just implemented both my roomba and braava into HA,
but using the lovelace_mop_multifloor.yaml the braava is not showing the selective room cleaning like the roomba. I have Map selection instead, which shows up empty.


Below is what I have for my card:

type: vertical-stack
cards:
  - entity: sensor.mop
    type: custom:roomba-vacuum-card
    mode: mop
  - type: entities
    entities:
      - entities:
          - entity: input_boolean.mop_schedule_1
            name: Master Ensuite Clean (11am M/W/F)
          - entity: input_boolean.mop_schedule_2
            name: Apartment Clean (12pm Sun)
        head:
          label: Cleaning Schedules
          type: section
        type: custom:fold-entity-row
      - entities:
          - type: custom:select-list-card
            entity: input_select.mop_maps
        head:
          label: Map Selection
          type: section
        type: custom:fold-entity-row
      - default:
          type: custom:blank-card
        entity: input_select.mop_map
        states:
          Kitchen:
            entities:
              - input_boolean.mop_clean_eetkamer
              - entity: automation.mop_clean_rooms
                lock:
                  enabled: >-
                    [[[ if ((states['group.mop_rooms'].state == "on") &&
                    (states['sensor.mop'].state == "Ready"))
                        return false;
                    return true; ]]]
                  exemptions: []
                name: Clean Rooms
                styles:
                  card:
                    - height: 50px
                tap_action:
                  action: call-service
                  service: automation.trigger
                  service_data:
                    entity_id: automation.mop_clean_rooms
                type: custom:button-card
            head:
              label: Kitchen Selective Room Cleaning
              type: section
            type: custom:fold-entity-row
          Entry:
            entities:
              - input_boolean.mop_clean_hal
              - entity: automation.mop_clean_rooms
                lock:
                  enabled: >-
                    [[[ if ((states['group.mop_rooms'].state == "on") &&
                    (states['sensor.mop'].state == "Ready"))
                        return false;
                    return true; ]]]
                  exemptions: []
                name: Clean Rooms
                styles:
                  card:
                    - height: 50px
                tap_action:
                  action: call-service
                  service: automation.trigger
                  service_data:
                    entity_id: automation.mop_clean_rooms
                type: custom:button-card
            head:
              label: Entry Selective Room Cleaning
              type: section
            type: custom:fold-entity-row
          Bathroom:
            entities:
              - input_boolean.mop_clean_badkamer
              - entity: automation.mop_clean_rooms
                lock:
                  enabled: >-
                    [[[ if ((states['group.mop_rooms'].state == "on") &&
                    (states['sensor.mop'].state == "Ready"))
                        return false;
                    return true; ]]]
                  exemptions: []
                name: Clean Rooms
                styles:
                  card:
                    - height: 50px
                tap_action:
                  action: call-service
                  service: automation.trigger
                  service_data:
                    entity_id: automation.mop_clean_rooms
                type: custom:button-card
            head:
              label: Bathroom Selective Room Cleaning
              type: section
            type: custom:fold-entity-row
          Master Ensuite:
            entities:
              - input_boolean.mop_clean_grootsteslaapkamer
              - entity: automation.mop_clean_rooms
                lock:
                  enabled: >-
                    [[[ if ((states['group.mop_rooms'].state == "on") &&
                    (states['sensor.mop'].state == "Ready"))
                        return false;
                    return true; ]]]
                  exemptions: []
                name: Clean Rooms
                styles:
                  card:
                    - height: 50px
                tap_action:
                  action: call-service
                  service: automation.trigger
                  service_data:
                    entity_id: automation.mop_clean_rooms
                type: custom:button-card
            head:
              label: Ensuite Selective Room Cleaning
              type: section
            type: custom:fold-entity-row
        type: custom:state-switch
      - entities:
          - style: |-
              .text-divider {
                padding: 0em;
                margin: 0em;
              } h2 {
                font-size: 1em;
                margin-block-start: 0em;
                margin-block-end: 0em;
              }
            text: Clean
            type: custom:text-divider-row
          - color: '#40bf6a'
            due: true
            entity: sensor.mop_maint_clean_pad
            locale: en-au
            severity:
              - color: '#bfb540'
                value: 0 days
              - color: '#bf4060'
                value: '-1 days'
            style: |
              ha-card {
                padding: 2px;
                --ha-card-box-shadow: 'none';
                --paper-card-background-color: rgba(0, 0, 0, 0);
              }
            timeout: 10 days
            title: Mop Pad
            type: custom:check-button-card
          - color: '#40bf6a'
            due: true
            entity: sensor.mop_maint_clean_contacts
            locale: en-au
            severity:
              - color: '#bfb540'
                value: 0 days
              - color: '#bf4060'
                value: '-3 days'
            style: |
              ha-card {
                padding: 2px;
                --ha-card-box-shadow: 'none';
                --paper-card-background-color: rgba(0, 0, 0, 0);
              }
            timeout: 18 days
            title: Contacts
            type: custom:check-button-card
          - color: '#40bf6a'
            due: true
            entity: sensor.mop_maint_clean_wheels
            locale: en-au
            severity:
              - color: '#bfb540'
                value: 0 days
              - color: '#bf4060'
                value: '-3 days'
            style: |
              ha-card {
                padding: 2px;
                --ha-card-box-shadow: 'none';
                --paper-card-background-color: rgba(0, 0, 0, 0);
              }
            timeout: 18 days
            title: Wheels
            type: custom:check-button-card
          - style: |-
              .text-divider {
                padding: 0em;
                margin: 0em;
              } h2 {
                font-size: 1em;
                margin-block-start: 0em;
                margin-block-end: 0em;
              }
            text: Replace
            type: custom:text-divider-row
          - color: '#40bf6a'
            due: true
            entity: sensor.mop_maint_replace_pad
            locale: en-au
            severity:
              - color: '#bfb540'
                value: 0 months
              - color: '#bf4060'
                value: '-4 months'
            style: |
              ha-card {
                padding: 2px;
                --ha-card-box-shadow: 'none';
                --paper-card-background-color: rgba(0, 0, 0, 0);
              }
            timeout: 8 months
            title: Mop Pad
            type: custom:check-button-card
        head:
          label: Maintenance
          type: section
        type: custom:fold-entity-row

@Syrius (or anyone else that has done this)

what are the steps to add a 2nd roomba to the same floorplan?

this Q comes from that my partner and me are moving to a house and we will bring her mom with us that also have an roomba. back when i added our to HA we also got her one just like ours and they where on a damm good discount (i7 without clean base)

so i’m kind of debating on if i should get a clean base and keep one charge dock, or just have the 2 charge docks

but how do i get them on the same floor plan?