Skip to content

Status and Battery Titles missing with Roborock Core #908

@charredchar

Description

@charredchar

Checklist

  • I have updated the card to the latest version available
  • I have cleared the cache of my browser
  • I have checked if the problem is already reported

The problem

I recently switched from the HACS Roborock integration to the Core integration and as such needed to recreate the Vacuum Card.

When I select the platform it adds most of the title buttons but it's missing the Status and Battery information which are both available in the device page.
I can create a static config (which I don't mind) and add them myself but the only one that I can't seem to get working right is the battery icon. Though it would also be nice to have the same titles that were available from the HACS integration by default for future users.
I've tried using icon_source but it doesn't work with anything, I'd highly prefer to not use a static icon. I checked both the vacuum.roborock (the main entity) and sensor.roborock_s7_battery (the actual entity with the battery information) in the dev tools and neither have icon for the battery.
I assume sensor.roborock_s7_battery doesn't have an icon set for it since it's device_class: battery and HA sets it automatically. Would we be able to piggyback off this kind of setup for the card?

I understand there was a previous issue related to title problems but it is not the same issue as what I am reporting and the fixes there don't apply here.

What version of a card has described problem?

v2.3.2

What was the last working version card?

No response

What vacuum model do you have problems with?

Roborock S7

Which integration do you use to control your vacuum (link)?

https://www.home-assistant.io/integrations/roborock/

What browser (browsers/apps) does have this problem?

Firefox

What version of Home Assistant do you use?

2026.2.3

What type of installation are you running?

Home Assistant OS

Card's configuration

type: custom:xiaomi-vacuum-map-card
map_source:
  camera: image.roborock_s7_home_custom
  crop:
    left: 175
    right: 325
    top: 200
    bottom: 150
calibration_source:
  camera: true
entity: vacuum.roborock_s7
vacuum_platform: Roborock
map_modes:
  - name: Rooms
    icon: mdi:floor-plan
    run_immediately: false
    coordinates_rounding: true
    coordinates_to_meters_divider: 1000
    selection_type: ROOM
    id_type: number
    max_selections: 999
    repeats_type: EXTERNAL
    max_repeats: 3
    service_call_schema:
      service: vacuum.send_command
      service_data:
        command: app_segment_clean
        params:
          - segments: "[[selection]]"
            repeat: "[[repeats]]"
        entity_id: "[[entity_id]]"
    predefined_selections:
      - id: "16"
        icon:
          name: mdi:sofa
          x: 27125
          "y": 27275
        label:
          text: Livingroom
          x: 27125
          "y": 27275
          offset_y: 25
      - id: "17"
        icon:
          name: mdi:fridge
          x: 22000
          "y": 27950
        label:
          text: Kitchen
          x: 22000
          "y": 27950
          offset_y: 25
      - id: "18"
        icon:
          name: mdi:faucet
          x: 24300
          "y": 32975
        label:
          text: Bathroom
          x: 24300
          "y": 32975
          offset_y: 25
      - id: "19"
        icon:
          name: mdi:shower-head
          x: 24250
          "y": 34550
        label:
          text: Shower
          x: 24250
          "y": 34550
          offset_y: 25
      - id: "20"
        icon:
          name: mdi:toilet
          x: 21625
          "y": 31550
        label:
          text: WC
          x: 21625
          "y": 31550
          offset_y: 25
      - id: "21"
        icon:
          name: mdi:printer-pos-wrench
          x: 21400
          "y": 33675
        label:
          text: Workshop
          x: 21400
          "y": 33675
          offset_y: 25
      - id: "22"
        icon:
          name: mdi:door
          x: 20400
          "y": 31250
        label:
          text: Entry
          x: 20400
          "y": 31250
          offset_y: 25
      - id: "26"
        icon:
          name: mdi:walk
          x: 23700
          "y": 30975
        label:
          text: Hallway
          x: 23700
          "y": 30975
          offset_y: 25
      - id: "24"
        icon:
          name: mdi:washing-machine
          x: 23500
          "y": 25600
        label:
          text: Laundry
          x: 23500
          "y": 25600
          offset_y: 25
      - id: "25"
        icon:
          name: mdi:keyboard
          x: 28200
          "y": 31200
        label:
          text: Office
          x: 28200
          "y": 31200
          offset_y: 25
      - id: "23"
        icon:
          name: mdi:bed
          x: 27675
          "y": 33550
        label:
          text: Bedroom
          x: 27675
          "y": 33550
          offset_y: 25
    variables: {}
  - name: Predefined Zones
    icon: mdi:select-drag
    run_immediately: false
    coordinates_rounding: true
    coordinates_to_meters_divider: 1000
    selection_type: PREDEFINED_RECTANGLE
    max_selections: 5
    repeats_type: INTERNAL
    max_repeats: 3
    service_call_schema:
      service: vacuum.send_command
      service_data:
        command: app_zoned_clean
        params: "[[selection]]"
        entity_id: "[[entity_id]]"
    predefined_selections:
      - zones:
          - - 19750
            - 29770
            - 21076
            - 32230
          - - 19950
            - 29770
            - 26300
            - 31009
          - - 24240
            - 31000
            - 26300
            - 31629
        icon:
          name: mdi:walk
          x: 23250
          "y": 31000
        label:
          text: Entry & Hallway
          x: 23250
          "y": 31000
          offset_y: 25
      - zones:
          - - 20000
            - 24650
            - 30300
            - 29800
        icon:
          name: mdi:sofa
          x: 25000
          "y": 27250
        label:
          text: Kitchen & Livingroom
          x: 25000
          "y": 27250
          offset_y: 25
    variables: {}
  - name: Manual Zone cleanup
    icon: mdi:select-drag
    run_immediately: false
    coordinates_rounding: true
    coordinates_to_meters_divider: 1000
    selection_type: MANUAL_RECTANGLE
    max_selections: 5
    repeats_type: INTERNAL
    max_repeats: 3
    service_call_schema:
      service: vacuum.send_command
      service_data:
        command: app_zoned_clean
        params: "[[selection]]"
        entity_id: "[[entity_id]]"
    predefined_selections: []
    variables: {}
  - name: Pin & Go
    icon: mdi:map-marker-plus
    run_immediately: false
    coordinates_rounding: true
    coordinates_to_meters_divider: 1000
    selection_type: MANUAL_POINT
    max_selections: 999
    repeats_type: NONE
    max_repeats: 1
    service_call_schema:
      service: roborock.set_vacuum_goto_position
      service_data:
        x: "[[point_x]]"
        "y": "[[point_y]]"
        entity_id: "[[entity_id]]"
    predefined_selections: []
    variables: {}
map_locked: true
card_mod:
  style: |
    ha-card {
      --map-card-room-label-color: white;
      --map-card-room-label-color-selected: blue;
    }
icons:
  - icon_id: start_cleanup
    icon: mdi:play
    conditions:
      - entity: vacuum.roborock_s7
        value_not: cleaning
      - entity: vacuum.roborock_s7
        value_not: error
      - entity: vacuum.roborock_s7
        value_not: returning
    tooltip: Start
    tap_action:
      action: call-service
      service: vacuum.start
      service_data:
        entity_id: vacuum.roborock_s7
  - icon_id: pause
    icon: mdi:pause
    conditions:
      - entity: vacuum.roborock_s7
        value_not: docked
      - entity: vacuum.roborock_s7
        value_not: idle
      - entity: vacuum.roborock_s7
        value_not: error
      - entity: vacuum.roborock_s7
        value_not: paused
    tooltip: Pause
    tap_action:
      action: call-service
      service: vacuum.pause
      service_data:
        entity_id: vacuum.roborock_s7
  - icon_id: stop
    icon: mdi:stop
    conditions:
      - entity: vacuum.roborock_s7
        value_not: docked
      - entity: vacuum.roborock_s7
        value_not: idle
      - entity: vacuum.roborock_s7
        value_not: error
      - entity: vacuum.roborock_s7
        value_not: paused
    tooltip: Stop
    tap_action:
      action: call-service
      service: vacuum.stop
      service_data:
        entity_id: vacuum.roborock_s7
  - icon_id: return_to_base
    icon: mdi:home-map-marker
    conditions:
      - entity: vacuum.roborock_s7
        value_not: docked
      - entity: vacuum.roborock_s7
        value_not: returning
    tooltip: Return to base
    tap_action:
      action: call-service
      service: vacuum.return_to_base
      service_data:
        entity_id: vacuum.roborock_s7
  - icon_id: clean_spot
    icon: mdi:target-variant
    conditions:
      - entity: vacuum.roborock_s7
        value_not: docked
      - entity: vacuum.roborock_s7
        value_not: error
      - entity: vacuum.roborock_s7
        value_not: cleaning
      - entity: vacuum.roborock_s7
        value_not: returning
    tooltip: Clean spot
    tap_action:
      action: call-service
      service: vacuum.clean_spot
      service_data:
        entity_id: vacuum.roborock_s7
  - icon_id: locate
    icon: mdi:map-marker
    tooltip: Locate
    tap_action:
      action: call-service
      service: vacuum.locate
      service_data:
        entity_id: vacuum.roborock_s7
  - icon_id: fan_speed_menu_off
    menu_id: fan_speed
    icon: mdi:fan-alert
    label: "off"
    conditions:
      - entity: vacuum.roborock_s7
        attribute: fan_speed
        value: "off"
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7
        fan_speed: "off"
  - icon_id: fan_speed_menu_quiet
    menu_id: fan_speed
    icon: mdi:fan-alert
    label: quiet
    conditions:
      - entity: vacuum.roborock_s7
        attribute: fan_speed
        value: quiet
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7
        fan_speed: quiet
  - icon_id: fan_speed_menu_balanced
    menu_id: fan_speed
    icon: mdi:fan-alert
    label: balanced
    conditions:
      - entity: vacuum.roborock_s7
        attribute: fan_speed
        value: balanced
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7
        fan_speed: balanced
  - icon_id: fan_speed_menu_turbo
    menu_id: fan_speed
    icon: mdi:fan-alert
    label: Turbo
    conditions:
      - entity: vacuum.roborock_s7
        attribute: fan_speed
        value: turbo
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7
        fan_speed: turbo
  - icon_id: fan_speed_menu_max
    menu_id: fan_speed
    icon: mdi:fan-alert
    label: max
    conditions:
      - entity: vacuum.roborock_s7
        attribute: fan_speed
        value: max
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7
        fan_speed: max
  - icon_id: fan_speed_menu_custom
    menu_id: fan_speed
    icon: mdi:fan-alert
    label: custom
    conditions:
      - entity: vacuum.roborock_s7
        attribute: fan_speed
        value: custom
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7
        fan_speed: custom
  - icon_id: fan_speed_unknown
    icon: mdi:fan-alert
    conditions:
      - entity: vacuum.roborock_s7
        attribute: fan_speed
        value_not: "off"
      - entity: vacuum.roborock_s7
        attribute: fan_speed
        value_not: quiet
      - entity: vacuum.roborock_s7
        attribute: fan_speed
        value_not: balanced
      - entity: vacuum.roborock_s7
        attribute: fan_speed
        value_not: turbo
      - entity: vacuum.roborock_s7
        attribute: fan_speed
        value_not: max
      - entity: vacuum.roborock_s7
        attribute: fan_speed
        value_not: custom
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7
        fan_speed: "off"
  - type: menu
    menu_id: water_box_mode
    icon_id: water_box_mode
    available_values_attribute: options
    icon: mdi:water
    icon_mapping:
      "off": mdi:water-remove
      mild: mdi:water-minus
      moderate: mdi:water
      intense: mdi:water-plus
      custom: mdi:water-sync
    tap_action:
      action: call-service
      service: select.select_option
      service_data:
        option: "[[value]]"
        entity_id: "[[entity_id]]"
    entity: select.roborock_s7_mop_intensity
  - type: menu
    menu_id: mop_mode
    icon_id: mop_mode
    available_values_attribute: options
    icon: mdi:water
    icon_mapping:
      standard: mdi:standard-definition
      deep: mdi:high-definition
      deep_plus: mdi:ultra-high-definition
      custom: mdi:fit-to-screen-outline
    tap_action:
      action: call-service
      service: select.select_option
      service_data:
        option: "[[value]]"
        entity_id: "[[entity_id]]"
    entity: select.roborock_s7_mop_mode
tiles:
  - tile_id: state
    icon: mdi:robot-vacuum
    label: Status
    entity: sensor.roborock_s7_status
    translations: {}
  - tile_id: battery
    icon_source: sensor.roborock_s7_battery.attributes.icon
    label: Battery
    unit: "%"
    entity: sensor.roborock_s7_battery
    precision: 0
    translations: {}
  - tile_id: fan_speed
    entity: vacuum.roborock_s7
    label: Fan speed
    attribute: fan_speed
    icon: mdi:fan
    translations:
      silent: Silent
      standard: Standard
      medium: Medium
      turbo: Turbo
      auto: Auto
      gentle: Gentle
  - tile_id: main_brush_left
    icon: mdi:brush
    label: Main brush left
    unit: h
    entity: sensor.roborock_s7_main_brush_time_left
    precision: 0
    translations: {}
  - tile_id: sensor_dirty_left
    icon: mdi:eye-outline
    label: Sensors left
    unit: h
    entity: sensor.roborock_s7_sensor_time_left
    precision: 0
    translations: {}
  - tile_id: filter_left
    icon: mdi:air-filter
    label: Filter left
    unit: h
    entity: sensor.roborock_s7_filter_time_left
    precision: 0
    translations: {}
  - tile_id: side_brush_left
    icon: mdi:brush
    label: Side brush left
    unit: h
    entity: sensor.roborock_s7_side_brush_time_left
    precision: 0
    translations: {}
  - tile_id: cleaning_count
    icon: mdi:counter
    label: Cleaning count
    entity: sensor.roborock_s7_total_cleaning_count
    precision: 0
    translations: {}
  - tile_id: cleaned_area
    icon: mdi:texture-box
    label: Cleaned area
    unit: 
    precision: 2
    entity: sensor.roborock_s7_cleaning_area
    translations: {}
  - tile_id: cleaning_time
    icon: mdi:history
    label: Cleaning time
    unit: min
    entity: sensor.roborock_s7_cleaning_time
    precision: 0
    translations: {}
additional_presets: []

Javascript errors shown in the browser's console (if applicable)

Additional information

No response

Metadata

Metadata

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions