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