Dreo Fan Integration?

If anyone is interested… I was struggling with getting the indentation in the yaml @drashish87 posted above, so based on an expanded version of option #1 I hacked together a functional screen based on mushroom cards that works on my tiny iPhone SE:

YAML:

type: vertical-stack
cards:
  - type: custom:mushroom-fan-card
    entity: fan.dreomax
    icon_animation: true
    layout: vertical
    show_percentage_control: true
    show_oscillate_control: true
    fill_container: false
  - type: entities
    entities:
      - entity: sensor.dreomax_temperature
        name: Current Temp
    header:
      type: graph
      entity: sensor.dreomax_temperature
      detail: 2
    state_color: true
    show_header_toggle: false
  - square: true
    type: grid
    cards:
      - type: custom:mushroom-template-card
        primary: Natural
        icon: mdi:leaf
        entity: fan.dreomax
        icon_color: "{{ 'green' if state_attr('fan.dreomax', 'preset_mode') == 'natural'
          else 'gray' }}"
        layout: vertical
        tap_action:
          action: call-service
          service: fan.set_preset_mode
          target:
            entity_id: fan.dreomax
          data:
            preset_mode: natural
        secondary: ""
        badge_color: ""
        fill_container: false
      - type: custom:mushroom-template-card
        primary: Sleep
        icon: mdi:moon-waning-crescent
        icon_color: "{{ 'purple' if state_attr('fan.dreomax', 'preset_mode') == 'sleep'
          else 'gray' }}"
        layout: vertical
        tap_action:
          action: call-service
          service: fan.set_preset_mode
          target:
            entity_id: fan.dreomax
          data:
            preset_mode: sleep
      - type: custom:mushroom-template-card
        primary: Normal
        icon: mdi:wind-power-outline
        icon_color: "{{ 'cyan' if state_attr('fan.dreomax', 'preset_mode') == 'normal'
          else 'gray' }}"
        layout: vertical
        tap_action:
          action: call-service
          service: fan.set_preset_mode
          target:
            entity_id: fan.dreomax
          data:
            preset_mode: normal
      - type: custom:mushroom-template-card
        primary: Auto
        icon: mdi:autorenew
        icon_color: "{{ 'blue' if state_attr('fan.dreomax', 'preset_mode') == 'auto'
          else 'gray' }}"
        entity: fan.dreomax
        layout: vertical
        tap_action:
          action: call-service
          service: fan.set_preset_mode
          target:
            entity_id: fan.dreomax
          data:
            preset_mode: auto
    columns: 4
  - type: custom:mushroom-template-card
    primary: Beep
    icon: "{{ 'mdi:bell-off' if is_state('switch.dreomax_panel_sound', 'off') else
      'mdi:bell' }}"
    icon_color: "{{ 'red' if is_state('switch.dreomax_panel_sound', 'off') else 'gray' }}"
    entity: switch.dreomax_panel_sound
    layout: vertical
    tap_action:
      action: toggle
    fill_container: true
1 Like