No enitiy_id created Roborock S7

Sure!

  - title: Vacuum
    path: vacuum
    icon: mdi:robot-vacuum
    badges: []
    cards:
      - type: vertical-stack
        cards:
          - type: custom:xiaomi-vacuum-card
            entity: vacuum.lucineide
            image: /local/vacuum/vacuum.png
            name: Lucineide
            vendor: xiaomi
            attributes:
              mop_attached:
                key: mop_attached
                label: 'Mop: '
          - type: horizontal-stack
            cards:
              - elements:
                  - entity: sensor.lucineide_side_brush_remaining
                    style:
                      background-color: rgba(0, 0, 0, 0.3)
                      bottom: 0px
                      color: orange
                      font-size: 30px
                      left: 0px
                      right: 0px
                      transform: translate(0%,0%)
                    title: '% Remaining Until Side Brush Should Be Replaced'
                    type: state-label
                  - entity: sensor.lucineide_side_brush_hrs_remaining
                    style:
                      bottom: 0px
                      color: white
                      font-size: 16px
                      line-height: 16px
                      right: 0px
                      transform: translate(0%,0%)
                    prefix: 'Remaining '
                    title: Hours Remaining Until Side Brush Should Be Replaced
                    type: state-label
                  - icon: mdi:restart
                    style:
                      color: white
                      padding: 7px
                      right: 0px
                      top: 0px
                      transform: translate(0%,0%)
                    tap_action:
                      action: call-service
                      confirmation:
                        text: >-
                          Are you sure you want to reset the hours remaining
                          counter for replacing the side brush?
                      service: vacuum.send_command
                      service_data:
                        command: reset_consumable
                        entity_id: vacuum.lucineide
                        params:
                          - side_brush_work_time
                    title: Reset Hours
                    type: icon
                image: /local/vacuum/side_brush.png
                type: picture-elements
              - elements:
                  - entity: sensor.lucineide_sensors_remaining
                    style:
                      background-color: rgba(0, 0, 0, 0.3)
                      bottom: 0px
                      color: orange
                      font-size: 30px
                      left: 0px
                      right: 0px
                      transform: translate(0%,0%)
                    title: '% Remaining Until Sensors Should Be Cleaned'
                    type: state-label
                  - entity: sensor.lucineide_sensors_hrs_remaining
                    style:
                      bottom: 0px
                      color: white
                      font-size: 16px
                      line-height: 16px
                      right: 0px
                      transform: translate(0%,0%)
                    prefix: 'Remaining '
                    title: Hours Remaining Until Sensors Should Be Cleaned
                    type: state-label
                  - icon: mdi:restart
                    style:
                      color: white
                      padding: 7px
                      right: 0px
                      top: 0px
                      transform: translate(0%,0%)
                    tap_action:
                      action: call-service
                      confirmation:
                        text: >-
                          Are you sure you want to reset the hours remaining
                          counter for cleaning the sensors?
                      service: vacuum.send_command
                      service_data:
                        command: reset_consumable
                        entity_id: vacuum.lucineide
                        params:
                          - sensor_dirty_time
                    title: Reset Hours
                    type: icon
                image: /local/vacuum/sensors.png
                type: picture-elements
          - type: horizontal-stack
            cards:
              - elements:
                  - entity: sensor.lucineide_filter_remaining
                    style:
                      background-color: rgba(0, 0, 0, 0.3)
                      bottom: 0px
                      color: orange
                      font-size: 30px
                      left: 0px
                      right: 0px
                      transform: translate(0%,0%)
                    title: '% Remaining Until Filter Should Be Replaced'
                    type: state-label
                  - entity: sensor.lucineide_filter_hrs_remaining
                    style:
                      bottom: 0px
                      color: white
                      font-size: 16px
                      line-height: 16px
                      right: 0px
                      transform: translate(0%,0%)
                    prefix: 'Remaining '
                    title: Hours Remaining Until Filter Should Be Replaced
                    type: state-label
                  - icon: mdi:restart
                    style:
                      color: white
                      padding: 7px
                      right: 0px
                      top: 0px
                      transform: translate(0%,0%)
                    tap_action:
                      action: call-service
                      confirmation:
                        text: >-
                          Are you sure you want to reset the hours remaining
                          counter for replacing the filter?
                      service: vacuum.send_command
                      service_data:
                        command: reset_consumable
                        entity_id: vacuum.lucineide
                        params:
                          - filter_work_time
                    title: Reset Hours
                    type: icon
                image: /local/vacuum/filter.png
                type: picture-elements
              - elements:
                  - entity: sensor.lucineide_main_brush_remaining
                    style:
                      background-color: rgba(0, 0, 0, 0.3)
                      bottom: 0px
                      color: orange
                      font-size: 30px
                      left: 0px
                      right: 0px
                      transform: translate(0%,0%)
                    title: '% Remaining Until Main Brush Should Be Replaced'
                    type: state-label
                  - entity: sensor.lucineide_main_brush_hrs_remaining
                    style:
                      bottom: 0px
                      color: white
                      font-size: 16px
                      line-height: 16px
                      right: 0px
                      transform: translate(0%,0%)
                    prefix: 'Remaining '
                    title: Hours Remaining Until Main Brush Should Be Replaced
                    type: state-label
                  - icon: mdi:restart
                    style:
                      color: white
                      padding: 7px
                      right: 0px
                      top: 0px
                      transform: translate(0%,0%)
                    tap_action:
                      action: call-service
                      confirmation:
                        text: >-
                          Are you sure you want to reset the hours remaining
                          counter for replacing the main brush?
                      service: vacuum.send_command
                      service_data:
                        command: reset_consumable
                        entity_id: vacuum.lucineide
                        params:
                          - main_brush_work_time
                    title: Reset Hours
                    type: icon
                image: /local/vacuum/main_brush.png
                type: picture-elements
      - type: vertical-stack
        cards:
          - type: custom:xiaomi-vacuum-map-card
            entity: vacuum.lucineide
            map_camera: camera.lucineide_map
            camera_calibration: true
          - show_header: true
            type: entities
            entities:
              - head:
                  entity: input_boolean.aspirar_iniciar
                  secondary_info: last-changed
                  icon: mdi:robot-vacuum
                  name: Start
                type: custom:fold-entity-row
                entities:
                  - entity: input_number.aspirar_cozinha
                    name: Kitchen
                    type: custom:numberbox-card
                    icon_plus: mdi:chevron-up
                    icon_minus: mdi:chevron-down
                    style: |
                      .cur-num{font-size:20px !important}
                  - entity: input_number.aspirar_sala
                    name: Living Room
                    type: custom:numberbox-card
                    icon_plus: mdi:chevron-up
                    icon_minus: mdi:chevron-down
                    style: |
                      .cur-num{font-size:20px !important}
                  - entity: input_number.aspirar_escritorio
                    name: Office
                    type: custom:numberbox-card
                    icon_plus: mdi:chevron-up
                    icon_minus: mdi:chevron-down
                    style: |
                      .cur-num{font-size:20px !important}
                  - entity: input_number.aspirar_hall_entrada
                    name: Hall
                    type: custom:numberbox-card
                    icon_plus: mdi:chevron-up
                    icon_minus: mdi:chevron-down
                    style: |
                      .cur-num{font-size:20px !important}
                  - entity: input_number.aspirar_wc
                    name: WC
                    type: custom:numberbox-card
                    icon_plus: mdi:chevron-up
                    icon_minus: mdi:chevron-down
                    style: |
                      .cur-num{font-size:20px !important}

filter main_brush

sensors side_brush 8249fd50a958e80bd226584a09acd534471bbb4a

4 Likes

Thank you for sharing the images too :slight_smile:

Really appreciate. Let’s wait for a github version for s7.
Or in a near future the root for s7 too :slight_smile:

@MrFroggy where did you define the zones? To get the entity ID?
entity: input_number.aspirar_wc

From HA helpers. Those input_numbers as well as the “input_boolean.aspirar_iniciar” are all helpers to make an automation within NodeRed.
This works like this: I expand the “Iniciar” (Start in Portuguese) dropdown and all zones appears. Then I just select how many passes I want for each zone and just press “Iniciar”.
Ahh and to optimize bandwidth, I just update the map when the vacuum is ON. If it’s OFF, the map does not update at all.

Sorry to ask you. I understand that I choose from the dropdown box, but is it needed NodeRed to accomplish this?
Thank you

No, you can do your automations within HA automations as well.
The use of NodeRed is just my preference. All my automations are implemented in NodeRed.

I cannot get the picture working…:frowning:

I tried the path inside config/photos/name.png
But it does not show the pic…
Any ideia why? Can you help me with that.?

Other question…
In ha where I can find the entities input…?
You talk in nodered but as I don’t have it where can I find that in HA?
Thanks

All images need to be saved inside “/config/www” directory. Inside the “www” directory you can create any directory tree you want.

1 Like

Goto Configuration->Helpers.
Install NodeRed depends on your HA installation. If you have HASSOS, then just install it from “Supervisor->Addon Store”.

@MrFroggy ok… but without NodeRed i already got into the HA → Helpers , but honestly i don’t know how to create on my side based on the yaml. Sorry for not to know so much about HA , but this regarding helpers and the sensors , i would be really appreciated if you can provide me some guidance. ?

i also intalled NodeRed in HA and installed the nodes for RoboRock , but i don’t know what to do… :frowning:
can you show me how please?
or without NodeRed …
i Am almost there i think heeheh.

Many thanks

Hi @nbexiga,

You don’t need the roborock palette in NodeRed to work with your S7. This palette is for people that doesn’t use HomeAssistant, only NodeRed. In your cenario (HA+NR) you should use only the HA<->Roborock integration, not the palette.

NodeRed is another chapter. First you need to learn HA and how it works (including helpers, automations, entities, attributes, services, templates, events, etc). Only then you should move to NodeRed. Just do as I did, learn from youtube videos, forum and the community. It’s not difficult, you just need to spend some time and patience.

For helpers, check those 2 videos:
Video 1
Video 2

But this is too much Offtopic. If you need more help, PM me.

BTW, these are the sensors created to help display some information on the cards.

# Roborock S7
- platform: template
  sensors:
    # Used for the Filter maintenance card
    lucineide_filter_remaining:
      friendly_name: 'HEPA Filter Life (%)'
      unit_of_measurement: '%'
      value_template: "{{((state_attr('vacuum.lucineide', 'filter_left') / 150) * 100) | round | int}}"

    # Used for the Filter maintenance card
    lucineide_filter_hrs_remaining:
      friendly_name: 'HEPA Filter Life (hr)'
      unit_of_measurement: 'hrs'
      value_template: "{{state_attr('vacuum.lucineide', 'filter_left')}}"

    # Used for the Side Brush maintenance card
    lucineide_side_brush_remaining:
      friendly_name: 'Side Brush Life (%)'
      unit_of_measurement: '%'
      value_template: "{{((state_attr('vacuum.lucineide', 'side_brush_left') / 200) * 100) | round | int}}"

    # Used for the Side Brush maintenance card
    lucineide_side_brush_hrs_remaining:
      friendly_name: 'Side Brush Life (hr)'
      unit_of_measurement: 'hrs'
      value_template: "{{state_attr('vacuum.lucineide', 'side_brush_left')}}"

    # Used for the Main Brush maintenance card
    lucineide_main_brush_remaining:
      friendly_name: 'Main Brush Life (%)'
      unit_of_measurement: '%'
      value_template: "{{((state_attr('vacuum.lucineide', 'main_brush_left') / 300) * 100) | round | int}}"

    # Used for the Main Brush maintenance card
    lucineide_main_brush_hrs_remaining:
      friendly_name: 'Main Brush Life (hr)'
      unit_of_measurement: 'hrs'
      value_template: "{{state_attr('vacuum.lucineide', 'main_brush_left')}}"

    # Used for the Sensors maintenance card
    lucineide_sensors_remaining:
      friendly_name: 'Sensors Usage (%)'
      unit_of_measurement: '%'
      value_template: "{{((state_attr('vacuum.lucineide', 'sensor_dirty_left') / 30) * 100) | round | int}}"

    # Used for the Sensors maintenance card
    lucineide_sensors_hrs_remaining:
      friendly_name: 'Sensors Usage (hr)'
      unit_of_measurement: 'hrs'
      value_template: "{{state_attr('vacuum.lucineide', 'sensor_dirty_left')}}"
3 Likes

Thank you all for all this lovely sharing !
Finally got the Roborock S7 fully integrated in HA, I’m loving it :


:slight_smile:

1 Like

You are welcome.

BTW, nice vacuum card!

@MrFroggy Many Many Many thanks for all your efforts giving me tips and advises regardind this.
Now i was capable to add cards and the sensors like you told me .

I just missing the part when i click start and choose the times per zone.
i already got the zones as you said , but don know how to fetch for the button in a automation :wink:
But thanks for your time till now teaching me.

Nice work Nuno! I think with this post you will be able to finish your work. Good luck!

For those like Nuno who wants to implement exacly like I did, here is the code for NodeRed to make the automation for starting the vacuum robot using the HomeAssistant Helpers.

[{"id":"a63c9be1.ee95e8","type":"tab","label":"ROBOROCK","disabled":false,"info":""},{"id":"9bd5bba6.b09488","type":"group","z":"a63c9be1.ee95e8","style":{"stroke":"#2e333a","stroke-opacity":"1","fill":"#2e333a","fill-opacity":"0.75","label":true,"label-position":"nw","color":"#a4a4a4"},"nodes":["bcbfcc5f.dec3d","bc974841.0bf828","d7b24b12.9306a8","cd96eee1.fadce","a843828c.34b51","ea8cb3eb.ca3dd","5f5c1f29.1e211"],"x":34,"y":39,"w":752,"h":282},{"id":"cd8aadb2.eebf3","type":"group","z":"a63c9be1.ee95e8","style":{"stroke":"#2e333a","stroke-opacity":"1","fill":"#2e333a","fill-opacity":"0.75","label":true,"label-position":"nw","color":"#a4a4a4"},"nodes":["5e914371.29870c","6363998a.ea18e8","43566311.cfc4bc","19ab0b03.339475","e79d9671.407078","95e97a0a.01ba08","276759e4.88efa6","c68102e8.586f9","ee1f2a20.03e478","4a47b2ac.38a22c","3ab58380.4da0fc","d2748058.b24fe","6b6ec088.76894","32cb9922.3b9436"],"x":34,"y":359,"w":1532,"h":302},{"id":"bcbfcc5f.dec3d","type":"api-call-service","z":"a63c9be1.ee95e8","g":"9bd5bba6.b09488","name":"Map Update","server":"8d8136f8.6f7ef8","version":3,"debugenabled":false,"service_domain":"homeassistant","service":"update_entity","entityId":"camera.lucineide_map","data":"","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":690,"y":280,"wires":[["ea8cb3eb.ca3dd","a843828c.34b51"]]},{"id":"bc974841.0bf828","type":"server-state-changed","z":"a63c9be1.ee95e8","g":"9bd5bba6.b09488","name":"Robock Docked","server":"8d8136f8.6f7ef8","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"vacuum.lucineide","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":140,"y":280,"wires":[["cd96eee1.fadce"]]},{"id":"d7b24b12.9306a8","type":"delay","z":"a63c9be1.ee95e8","g":"9bd5bba6.b09488","name":"","pauseType":"delay","timeout":"4","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":580,"y":160,"wires":[["bcbfcc5f.dec3d"]]},{"id":"cd96eee1.fadce","type":"switch","z":"a63c9be1.ee95e8","g":"9bd5bba6.b09488","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"cleaning","vt":"str"},{"t":"eq","v":"returning","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":290,"y":280,"wires":[["bcbfcc5f.dec3d"],["bcbfcc5f.dec3d"]]},{"id":"a843828c.34b51","type":"api-current-state","z":"a63c9be1.ee95e8","g":"9bd5bba6.b09488","name":"cleaning","server":"8d8136f8.6f7ef8","version":2,"outputs":2,"halt_if":"cleaning","halt_if_type":"str","halt_if_compare":"is","entity_id":"vacuum.lucineide","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":400,"y":140,"wires":[["d7b24b12.9306a8"],[]]},{"id":"ea8cb3eb.ca3dd","type":"api-current-state","z":"a63c9be1.ee95e8","g":"9bd5bba6.b09488","name":"returning","server":"8d8136f8.6f7ef8","version":2,"outputs":2,"halt_if":"returning","halt_if_type":"str","halt_if_compare":"is","entity_id":"vacuum.lucineide","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":400,"y":200,"wires":[["d7b24b12.9306a8"],[]]},{"id":"5f5c1f29.1e211","type":"comment","z":"a63c9be1.ee95e8","g":"9bd5bba6.b09488","name":"Atualização do mapa do aspirador apenas quando está a funcionar","info":"","x":300,"y":80,"wires":[]},{"id":"5e914371.29870c","type":"comment","z":"a63c9be1.ee95e8","g":"cd8aadb2.eebf3","name":"Escolha de divisões e nr de limpezas","info":"","x":200,"y":400,"wires":[]},{"id":"6363998a.ea18e8","type":"server-state-changed","z":"a63c9be1.ee95e8","g":"cd8aadb2.eebf3","name":"Iniciar Aspiração","server":"8d8136f8.6f7ef8","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_boolean.aspirar_iniciar","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":140,"y":520,"wires":[["43566311.cfc4bc"],[]]},{"id":"e79d9671.407078","type":"function","z":"a63c9be1.ee95e8","g":"cd8aadb2.eebf3","name":"Cozinha","func":"if (msg.payload.state == \"1.0\") {\n     msg.payload.value = \"20\";\n     return msg;\n} else if \n    (msg.payload.state == \"2.0\") {\n     msg.payload.value = \"20,20\";\n     return msg;\n} else {\n     msg.payload.value = \"20,20,20\";\n     return msg;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":640,"y":460,"wires":[["4a47b2ac.38a22c"]]},{"id":"19ab0b03.339475","type":"switch","z":"a63c9be1.ee95e8","g":"cd8aadb2.eebf3","name":"","property":"payload.entity_id","propertyType":"msg","rules":[{"t":"eq","v":"input_number.aspirar_cozinha","vt":"str"},{"t":"eq","v":"input_number.aspirar_sala","vt":"str"},{"t":"eq","v":"input_number.aspirar_escritorio","vt":"str"},{"t":"eq","v":"input_number.aspirar_hall_entrada","vt":"str"},{"t":"eq","v":"input_number.aspirar_wc","vt":"str"}],"checkall":"true","repair":false,"outputs":5,"x":470,"y":520,"wires":[["e79d9671.407078"],["95e97a0a.01ba08"],["276759e4.88efa6"],["c68102e8.586f9"],["ee1f2a20.03e478"]],"outputLabels":["Cozinha","Sala","Escritório","Hall","WC"]},{"id":"d2748058.b24fe","type":"join","z":"a63c9be1.ee95e8","g":"cd8aadb2.eebf3","name":"","mode":"custom","build":"array","property":"payload.value","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"5","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":1150,"y":540,"wires":[["6b6ec088.76894"]]},{"id":"43566311.cfc4bc","type":"ha-get-entities","z":"a63c9be1.ee95e8","g":"cd8aadb2.eebf3","name":"Divisões","server":"8d8136f8.6f7ef8","version":0,"rules":[{"property":"entity_id","logic":"starts_with","value":"input_number.aspirar_","valueType":"str"},{"property":"state","logic":"is_not","value":"0.0","valueType":"str"}],"output_type":"split","output_empty_results":false,"output_location_type":"msg","output_location":"payload","output_results_count":1,"x":320,"y":520,"wires":[["19ab0b03.339475"]]},{"id":"95e97a0a.01ba08","type":"function","z":"a63c9be1.ee95e8","g":"cd8aadb2.eebf3","name":"Sala","func":"if  (msg.payload.state == \"1.0\") {\n     msg.payload.value = \"19\";\n     return msg;\n} else if \n    (msg.payload.state == \"2.0\") {\n     msg.payload.value = \"19,19\";\n     return msg;\n} else {\n     msg.payload.value = \"19,19,19\";\n     return msg;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":630,"y":500,"wires":[["4a47b2ac.38a22c"]]},{"id":"276759e4.88efa6","type":"function","z":"a63c9be1.ee95e8","g":"cd8aadb2.eebf3","name":"Escritório","func":"if  (msg.payload.state == \"1.0\") {\n     msg.payload.value = \"21\";\n     return msg;\n} else if \n    (msg.payload.state == \"2.0\") {\n     msg.payload.value = \"21,21\";\n     return msg;\n} else {\n     msg.payload.value = \"21,21,21\";\n     return msg;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":640,"y":540,"wires":[["4a47b2ac.38a22c"]]},{"id":"c68102e8.586f9","type":"function","z":"a63c9be1.ee95e8","g":"cd8aadb2.eebf3","name":"Hall","func":"if  (msg.payload.state == \"1.0\") {\n     msg.payload.value = \"16\";\n     return msg;\n} else if \n    (msg.payload.state == \"2.0\") {\n     msg.payload.value = \"16,16\";\n     return msg;\n} else {\n     msg.payload.value = \"16,16,16\";\n     return msg;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":630,"y":580,"wires":[["4a47b2ac.38a22c"]]},{"id":"ee1f2a20.03e478","type":"function","z":"a63c9be1.ee95e8","g":"cd8aadb2.eebf3","name":"WC","func":"if  (msg.payload.state == \"1.0\") {\n     msg.payload.value = \"17\";\n     return msg;\n} else if \n    (msg.payload.state == \"2.0\") {\n     msg.payload.value = \"17,17\";\n     return msg;\n} else {\n     msg.payload.value = \"17,17,17\";\n     return msg;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":630,"y":620,"wires":[["4a47b2ac.38a22c"]]},{"id":"6b6ec088.76894","type":"api-call-service","z":"a63c9be1.ee95e8","g":"cd8aadb2.eebf3","name":"Aspiração off","server":"8d8136f8.6f7ef8","version":3,"debugenabled":false,"service_domain":"input_boolean","service":"turn_off","entityId":"input_boolean.aspirar_iniciar","data":"","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1310,"y":540,"wires":[["32cb9922.3b9436"]]},{"id":"3ab58380.4da0fc","type":"api-call-service","z":"a63c9be1.ee95e8","g":"cd8aadb2.eebf3","name":"Divisão = 0","server":"8d8136f8.6f7ef8","version":3,"debugenabled":true,"service_domain":"input_number","service":"set_value","entityId":"{{payload.entity_id}}","data":"{\"value\":0}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"all","x":990,"y":540,"wires":[["d2748058.b24fe"]]},{"id":"4a47b2ac.38a22c","type":"function","z":"a63c9be1.ee95e8","g":"cd8aadb2.eebf3","name":"Regroup","func":"return msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":820,"y":540,"wires":[["3ab58380.4da0fc"]]},{"id":"32cb9922.3b9436","type":"api-call-service","z":"a63c9be1.ee95e8","g":"cd8aadb2.eebf3","name":"Aspirar","server":"8d8136f8.6f7ef8","version":3,"debugenabled":false,"service_domain":"vacuum","service":"send_command","entityId":"vacuum.lucineide","data":"{  \"command\": \"app_segment_clean\",  \"params\": [    {{payload.value}}  ]}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1480,"y":540,"wires":[[]]},{"id":"8d8136f8.6f7ef8","type":"server","name":"Home Assistant","version":1,"legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]

ATTENTION:

  • Replace “vacuum.lucineide” with your vacuum entity;
  • Replace “camera.lucineide_map” with your camera map entity;
  • On node “Divisões”, there is a entity filter like “input_number.aspirar_”. This means that all your Input_Number Helpers should start with “aspirar_”. If you want to call them something else, just make sure all starts with the same prefix and change it in the node “Divisões”;
  • Check the node “Switch” from the second flow where I delegate each of my home divisions. Replace them with yours;
  • On all “function” nodes with my divisions, replace the Room ID with your room ID;

Hope you all like it.

Hello,
from my understanding, I can extract only tokens of devices added to Xiaomi app. But Roborock S7 is not found it the devices list and is not recognized by my Xiaomi app. Did I miss something? Is there a trick to do that? I can now control my vacuum just from Roborock app and (obviously) want to use HA. Ideas?

Yes it is found within devices on Xiaomi APP. Update you APP from store.

Do you mind sharing how to get or set status for Scrub Intensity? Referring to your second input_select list with ‘Close’ - i’m assuming this would be like in the app for Scrub intesity with options mild,moderate,intense, etc.

Something related to this feature request too.