Well,
It does appear in a “ha-circular-progress class”
<div class="progress-container" style="height:100px;">
<ha-circular-progress class="render-spinner" active="" size="small" progress="0"></ha-circular-progress>
</div>
I really have nothing weird. I can try a simpler card this afternoon to check is it also appears.
This is my full code in case anyone interested:
#############################################################################################################################################
# #
# Floorplan View #
# #
#############################################################################################################################################
- title: Floorplan
icon: mdi:view-dashboard-outline
path: dashboard
panel: true
cards:
################### config-template-card #####################
######################### IMPORTANT! #########################
# To use the styling templates for individual lights, I have used
# Config Template Card. Config template card passes the entities it
# uses into the card. Make sure you change these entities below to
# your own and include any light entities you use above.
# To understand why, check: https://github.com/iantrich/config-template-card
- type: 'custom:config-template-card'
entities:
- sun.sun
- binary_sensor.daytime_evening
- binary_sensor.daytime_morning
- light.office
- light.yeelight_monitor_bar
- light.yeelight_stripe_0x1b79391e
- light.shellyswitch25_c8c9a37a3f72_channel_1
- light.shellyswitch25_c8c9a37a3f72_channel_2
- light.hallway_lights
- binary_sensor.entrance
- input_boolean.shower
- light.living_room_lights
- light.sala_canto
- light.sala_candeeiro
- light.shelly1_4c7525332bb7
- light.dining_room
- light.dining_room_table_channel_2
- light.shelly_1_marquise
- sensor.aeg_lavar_roupa_wm1_appliancestate
card:
################### Picture Elements Card #####################
type: picture-elements
image: /local/ui/floorplan/night_lights_off.png
style: |
ha-card:first-child {
background: rgba(42, 46, 48, 1)
}
@keyframes wiggle {
0% {
webkit-transform: rotate(2.5deg);
transform: rotate(2.5deg);
}
100% {
webkit-transform: rotate(-2.5deg);
transform: rotate(-2.5deg);
}
elements:
######################### DAY BASE FLOORPLAN OVERLAY #########################
- action: none
entity: binary_sensor.daytime_morning
hold_action:
action: none
state_image:
"on": /local/ui/floorplan/morning_lights_off.png
"off": /local/transparent.png
style:
height: 100%
left: 50%
mix-blend-mode: lighten
#opacity: '${ states[''sensor.sunlight_opacity''].state }'
top: 50%
width: 100%
tap_action:
action: none
type: image
- action: none
entity: binary_sensor.daytime_evening
hold_action:
action: none
state_image:
"on": /local/ui/floorplan/evening_lights_off.png
"off": /local/transparent.png
style:
height: 100%
left: 50%
mix-blend-mode: lighten
#opacity: '${ states[''sensor.sunlight_opacity''].state }'
top: 50%
width: 100%
tap_action:
action: none
type: image
######################### WEATHER ANIMATIONS #########################
#- action: none
# entity: weather.buienweather
# hold_action:
# action: none
# image: /local/ui/floorplan/weather/rainstorm.gif
# state_filter:
# 'pouring': opacity(100%)
# style:
# left: 60%
# mix-blend-mode: color-dodge
# top: 50%
# width: 110%
# opacity: 0
# tap_action:
# action: none
# type: image
######################### INDIVIDUAL LIGHTS - BLENDED IMAGE OVERLAYS #########################
######################################################################################
######################### INDIVIDUAL LIGHTS - OFFICE #########################
######################################################################################
- action: none
entity: light.office
hold_action:
action: none
image: /local/ui/floorplan/office_ceiling_on.png
style:
#filter: >-
# ${ "hue-rotate(" + (states['light.table'].attributes.hs_color
# ? states['light.table'].attributes.hs_color[0] : 0) + "deg)"}
left: 50%
mix-blend-mode: lighten
opacity: "${states['light.office'].state === 'on' ? 1 : '0'}"
top: 50%
width: 100%
height: 100%
tap_action:
action: none
type: image
- action: none
entity: light.yeelight_monitor_bar
hold_action:
action: none
image: /local/ui/floorplan/office_monitor_on.png
style:
#filter: >-
# ${ "hue-rotate(" + (states['light.table'].attributes.hs_color
# ? states['light.table'].attributes.hs_color[0] : 0) + "deg)"}
left: 50%
mix-blend-mode: lighten
opacity: "${states['light.yeelight_monitor_bar'].state === 'on' ? 1 : '0'}"
top: 50%
width: 100%
height: 100%
tap_action:
action: none
type: image
######################################################################################
######################## INDIVIDUAL LIGHTS - BEDROOM #########################
######################################################################################
- action: none
entity: light.yeelight_stripe_0x1b79391e
hold_action:
action: none
image: /local/ui/floorplan/bedroom_bed_on.png
style:
filter: >-
${ "hue-rotate(" + (states['light.yeelight_stripe_0x1b79391e'].attributes.hs_color
? states['light.yeelight_stripe_0x1b79391e'].attributes.hs_color[0] : 0) + "deg)"}
left: 50%
mix-blend-mode: lighten
opacity: "${states['light.yeelight_stripe_0x1b79391e'].state === 'on' ? 1 : '0'}"
top: 50%
width: 100%
height: 100%
tap_action:
action: none
type: image
- action: none
entity: light.shellyswitch25_c8c9a37a3f72_channel_1
hold_action:
action: none
image: /local/ui/floorplan/bedroom_wall_on.png
style:
#filter: >-
# ${ "hue-rotate(" + (states['light.shellyswitch25_c8c9a37a3f72_channel_1'].attributes.hs_color
# ? states['light.shellyswitch25_c8c9a37a3f72_channel_1'].attributes.hs_color[0] : 0) + "deg)"}
left: 50%
mix-blend-mode: lighten
opacity: "${states['light.shellyswitch25_c8c9a37a3f72_channel_1'].state === 'on' ? 1 : '0'}"
top: 50%
width: 100%
height: 100%
tap_action:
action: none
type: image
- action: none
entity: light.shellyswitch25_c8c9a37a3f72_channel_2
hold_action:
action: none
image: /local/ui/floorplan/bedroom_ceiling_on.png
style:
#filter: >-
# ${ "hue-rotate(" + (states['light.shellyswitch25_c8c9a37a3f72_channel_2'].attributes.hs_color
# ? states['light.shellyswitch25_c8c9a37a3f72_channel_2'].attributes.hs_color[0] : 0) + "deg)"}
left: 50%
mix-blend-mode: lighten
opacity: "${states['light.shellyswitch25_c8c9a37a3f72_channel_2'].state === 'on' ? 1 : '0'}"
top: 50%
width: 100%
height: 100%
tap_action:
action: none
type: image
######################################################################################
######################## INDIVIDUAL LIGHTS - HALLWAY #########################
######################################################################################
- action: none
entity: light.hallway_lights
hold_action:
action: none
image: /local/ui/floorplan/hallway_on.png
style:
#filter: >-
# ${ "hue-rotate(" + (states['light.hallway_lights'].attributes.hs_color
# ? states['light.hallway_lights'].attributes.hs_color[0] : 0) + "deg)"}
left: 50%
mix-blend-mode: lighten
opacity: "${states['light.hallway_lights'].state === 'on' ? 1 : '0'}"
top: 50%
width: 100%
height: 100%
tap_action:
action: none
type: image
######################################################################################
######################## INDIVIDUAL LIGHTS - WC1 #########################
######################################################################################
- action: none
entity: input_boolean.shower
hold_action:
action: none
image: /local/ui/floorplan/wc1_on.png
style:
#filter: >-
# ${ "hue-rotate(" + (states['light.hallway_lights'].attributes.hs_color
# ? states['light.hallway_lights'].attributes.hs_color[0] : 0) + "deg)"}
left: 50%
mix-blend-mode: lighten
opacity: "${states['input_boolean.shower'].state === 'on' ? 1 : '0'}"
top: 50%
width: 100%
height: 100%
tap_action:
action: none
type: image
######################################################################################
###################### INDIVIDUAL LIGHTS - LIVINGROOM ####################
######################################################################################
- action: none
entity: light.living_room_lights
hold_action:
action: none
image: /local/ui/floorplan/livingroom_ceiling_on.png
style:
#filter: >-
# ${ "hue-rotate(" + (states['light.hallway_lights'].attributes.hs_color
# ? states['light.hallway_lights'].attributes.hs_color[0] : 0) + "deg)"}
left: 50%
mix-blend-mode: lighten
opacity: "${states['light.living_room_lights'].state === 'on' ? 1 : '0'}"
top: 50%
width: 100%
height: 100%
tap_action:
action: none
type: image
- action: none
entity: light.sala_canto
hold_action:
action: none
image: /local/ui/floorplan/livingroom_canto_on.png
style:
filter: >-
${ "hue-rotate(" + (states['light.sala_canto'].attributes.hs_color
? states['light.sala_canto'].attributes.hs_color[0] : 0) + "deg)"}
left: 50%
mix-blend-mode: lighten
opacity: "${states['light.sala_canto'].state === 'on' ? 1 : '0'}"
top: 50%
width: 100%
height: 100%
tap_action:
action: none
type: image
- action: none
entity: light.sala_candeeiro
hold_action:
action: none
image: /local/ui/floorplan/livingroom_lamp_on.png
style:
filter: >-
${ "hue-rotate(" + (states['light.sala_candeeiro'].attributes.hs_color
? states['light.sala_candeeiro'].attributes.hs_color[0] : 0) + "deg)"}
left: 50%
mix-blend-mode: lighten
opacity: "${states['light.sala_candeeiro'].state === 'on' ? 1 : '0'}"
top: 50%
width: 100%
height: 100%
tap_action:
action: none
type: image
######################################################################################
###################### INDIVIDUAL LIGHTS - DININGROOM ####################
######################################################################################
- action: none
entity: light.shelly1_4c7525332bb7
hold_action:
action: none
image: /local/ui/floorplan/diningroom_wall_on.png
style:
#filter: >-
# ${ "hue-rotate(" + (states['light.sala_candeeiro'].attributes.hs_color
# ? states['light.sala_candeeiro'].attributes.hs_color[0] : 0) + "deg)"}
left: 50%
mix-blend-mode: lighten
opacity: "${states['light.shelly1_4c7525332bb7'].state === 'on' ? 1 : '0'}"
top: 50%
width: 100%
height: 100%
tap_action:
action: none
type: image
- action: none
entity: light.dining_room
hold_action:
action: none
image: /local/ui/floorplan/diningroom_balloons_on.png
style:
filter: >-
${ "hue-rotate(" + (states['light.dining_room'].attributes.hs_color
? states['light.dining_room'].attributes.hs_color[0] : 0) + "deg)"}
left: 50%
mix-blend-mode: lighten
opacity: "${states['light.dining_room'].state === 'on' ? 1 : '0'}"
top: 50%
width: 100%
height: 100%
tap_action:
action: none
type: image
- action: none
entity: light.dining_room_table_channel_2
hold_action:
action: none
image: /local/ui/floorplan/diningroom_balloons_on.png
style:
#filter: >-
# ${ "hue-rotate(" + (states['light.dining_room_table_channel_2'].attributes.hs_color
# ? states['light.dining_room_table_channel_2'].attributes.hs_color[0] : 0) + "deg)"}
left: 50%
mix-blend-mode: lighten
opacity: "${states['light.dining_room_table_channel_2'].state === 'on' ? 1 : '0'}"
top: 50%
width: 100%
height: 100%
tap_action:
action: none
type: image
################################
- action: none
entity: light.shelly_1_marquise
hold_action:
action: none
image: /local/ui/floorplan/sunroom_on.png
style:
#filter: >-
# ${ "hue-rotate(" + (states['light.shelly_1_marquise'].attributes.hs_color
# ? states['light.shelly_1_marquise'].attributes.hs_color[0] : 0) + "deg)"}
left: 50%
mix-blend-mode: lighten
opacity: "${states['light.shelly_1_marquise'].state === 'on' ? 1 : '0'}"
top: 50%
width: 100%
height: 100%
tap_action:
action: none
type: image
######################################################################################
###################### INDIVIDUAL LIGHTS - LAUNDRY ####################
######################################################################################
- action: none
entity: sensor.aeg_lavar_roupa_wm1_appliancestate
hold_action:
action: none
#image: /local/ui/floorplan/laundry_on.png
state_image:
"running": /local/ui/floorplan/laundry_on.png
"off": /local/transparent.png
style:
#filter: >-
# ${ "hue-rotate(" + (states['light.sala_candeeiro'].attributes.hs_color
# ? states['light.sala_candeeiro'].attributes.hs_color[0] : 0) + "deg)"}
left: 50%
mix-blend-mode: lighten
#opacity: "${states['light.shelly1_4c7525332bb7'].state === 'on' ? 1 : '0'}"
top: 50%
width: 100%
height: 100%
tap_action:
action: none
type: image
######################### ROOM/GROUP CONTROL TRANSPARENT IMAGES #########################
# Used to create tap areas and popups for each room, referring to light groups.
# Because the above images overlap each other, I used seperate transparent images
#. to handle the control of the room, so you always tap the right room.
#
# browser_mod.popup is used for a tap and hold for a custom popup card
- entity: light.office
hold_action:
action: fire-dom-event
browser_mod:
command: popup
card:
cards:
- entities:
- entity: light.office
secondary_info: last-changed
style:
z-index: 5
type: entities
- cards:
- cards:
- brightness: false
color_picker: false
effects_list: false
entity: light.office
full_width_sliders: true
hide_header: true
persist_features: true
show_slider_percent: false
smooth_color_wheel: true
type: 'custom:light-entity-card'
style: |
ha-card {
box-shadow: none !important;
}
- brightness: false
color_temp: false
entity: light.office
full_width_sliders: true
hide_header: true
persist_features: true
show_slider_percent: false
smooth_color_wheel: true
type: 'custom:light-entity-card'
style: |
ha-card {
box-shadow: none !important;
}
column_height: 1
layout: vertical
type: 'custom:layout-card'
- entities:
- color_temp: true
entity: light.office
hide_header: true
persist_features: true
type: 'custom:light-slider-card'
show_header_toggle: false
style: |
:host{
height: 100%;
z-index: 0;
}
ha-card {
box-shadow: none !important;
}
type: entities
column_num: 2
layout: horizontal
max_width:
- 60%
- 40%
type: 'custom:layout-card'
type: 'custom:vertical-stack-in-card'
deviceID:
- this
style:
'--ha-card-border-radius': 0vw 0vw 0.8vw 0.8vw
border-radius: 0.8vw
opacity: 0.9
title: Living Room
image: /local/transparent.png
style:
height: 25%
left: 78%
top: 32.65%
width: 15%
tap_action:
action: call-service
service: homeassistant.toggle
service_data:
entity_id: light.office
type: image
- entity: light.office
icon: 'bha:ceiling-downlight'
style:
'--mdc-icon-size': 1.7vw
#'--paper-item-icon-active-color': '#000000'
'--paper-item-icon-color': darkgrey
align-items: center
background-color: '#FFFFFF'
border-radius: 100%
box-shadow: '0px 0px 28px 0px rgba(0,0,0,0.39)'
display: flex
height: 3vw
justify-content: center
left: 80%
margin-left: '-1.5vw'
margin-top: '-1.5vw'
top: 10%
transform: scale(1.2)
width: 3vw
z-index: 5
tap_action:
action: toggle
type: state-icon
- entity: light.yeelight_monitor_bar
icon: 'mdi:monitor'
style:
'--mdc-icon-size': 1.7vw
#'--paper-item-icon-active-color': '#000000'
'--paper-item-icon-color': darkgrey
align-items: center
background-color: '#FFFFFF'
border-radius: 100%
box-shadow: '0px 0px 28px 0px rgba(0,0,0,0.39)'
display: flex
height: 3vw
justify-content: center
left: 85%
margin-left: '-1.5vw'
margin-top: '-1.5vw'
top: 10%
transform: scale(1.2)
width: 3vw
z-index: 5
tap_action:
action: toggle
type: state-icon
- entity: light.yeelight_stripe_0x1b79391e
icon: 'mdi:bed-king-outline'
style:
'--mdc-icon-size': 1.7vw
#'--paper-item-icon-active-color': '#000000'
'--paper-item-icon-color': darkgrey
align-items: center
background-color: '#FFFFFF'
border-radius: 100%
box-shadow: '0px 0px 28px 0px rgba(0,0,0,0.39)'
display: flex
height: 3vw
justify-content: center
left: 80%
margin-left: '-1.5vw'
margin-top: '-1.5vw'
top: 90%
transform: scale(1.2)
width: 3vw
z-index: 5
tap_action:
action: toggle
type: state-icon
- entity: light.shellyswitch25_c8c9a37a3f72_channel_1
icon: 'mdi:wall-sconce-flat'
style:
'--mdc-icon-size': 1.7vw
#'--paper-item-icon-active-color': '#000000'
'--paper-item-icon-color': darkgrey
align-items: center
background-color: '#FFFFFF'
border-radius: 100%
box-shadow: '0px 0px 28px 0px rgba(0,0,0,0.39)'
display: flex
height: 3vw
justify-content: center
left: 85%
margin-left: '-1.5vw'
margin-top: '-1.5vw'
top: 90%
transform: scale(1.2)
width: 3vw
z-index: 5
tap_action:
action: toggle
type: state-icon
- entity: light.shellyswitch25_c8c9a37a3f72_channel_2
icon: 'bha:ceiling-downlight'
style:
'--mdc-icon-size': 1.7vw
#'--paper-item-icon-active-color': '#000000'
'--paper-item-icon-color': darkgrey
align-items: center
background-color: '#FFFFFF'
border-radius: 100%
box-shadow: '0px 0px 28px 0px rgba(0,0,0,0.39)'
display: flex
height: 3vw
justify-content: center
left: 75%
margin-left: '-1.5vw'
margin-top: '-1.5vw'
top: 90%
transform: scale(1.2)
width: 3vw
z-index: 5
tap_action:
action: toggle
type: state-icon
- entity: light.hallway_lights
icon: 'bha:ceiling-downlight'
style:
'--mdc-icon-size': 1.7vw
#'--paper-item-icon-active-color': '#000000'
'--paper-item-icon-color': darkgrey
align-items: center
background-color: '#FFFFFF'
border-radius: 100%
box-shadow: '0px 0px 28px 0px rgba(0,0,0,0.39)'
display: flex
height: 3vw
justify-content: center
left: 60%
margin-left: '-1.5vw'
margin-top: '-1.5vw'
top: 67%
transform: scale(1.2)
width: 3vw
z-index: 5
tap_action:
action: toggle
type: state-icon
- entity: binary_sensor.entrance
#icon: 'bha:ceiling-downlight'
style:
'--mdc-icon-size': 1.7vw
#'--paper-item-icon-active-color': '#000000'
'--paper-item-icon-color': darkgrey
align-items: center
background-color: '#FFFFFF'
border-radius: 100%
box-shadow: '0px 0px 28px 0px rgba(0,0,0,0.39)'
display: flex
height: 3vw
justify-content: center
left: 65%
margin-left: '-1.5vw'
margin-top: '-1.5vw'
top: 67%
transform: scale(1.2)
width: 3vw
z-index: 5
tap_action:
action: more-info
type: state-icon
- entity: light.living_room_lights
icon: 'bha:ceiling-downlight'
style:
'--mdc-icon-size': 1.7vw
#'--paper-item-icon-active-color': '#000000'
'--paper-item-icon-color': darkgrey
align-items: center
background-color: '#FFFFFF'
border-radius: 100%
box-shadow: '0px 0px 28px 0px rgba(0,0,0,0.39)'
display: flex
height: 3vw
justify-content: center
left: 38%
margin-left: '-1.5vw'
margin-top: '-1.5vw'
top: 10%
transform: scale(1.2)
width: 3vw
z-index: 5
tap_action:
action: toggle
type: state-icon
- entity: light.sala_canto
#icon: 'bha:ceiling-downlight'
style:
'--mdc-icon-size': 1.7vw
#'--paper-item-icon-active-color': '#000000'
'--paper-item-icon-color': darkgrey
align-items: center
background-color: '#FFFFFF'
border-radius: 100%
box-shadow: '0px 0px 28px 0px rgba(0,0,0,0.39)'
display: flex
height: 3vw
justify-content: center
left: 43%
margin-left: '-1.5vw'
margin-top: '-1.5vw'
top: 10%
transform: scale(1.2)
width: 3vw
z-index: 5
tap_action:
action: toggle
type: state-icon
- entity: light.sala_candeeiro
#icon: 'bha:ceiling-downlight'
style:
'--mdc-icon-size': 1.7vw
#'--paper-item-icon-active-color': '#000000'
'--paper-item-icon-color': darkgrey
align-items: center
background-color: '#FFFFFF'
border-radius: 100%
box-shadow: '0px 0px 28px 0px rgba(0,0,0,0.39)'
display: flex
height: 3vw
justify-content: center
left: 48%
margin-left: '-1.5vw'
margin-top: '-1.5vw'
top: 10%
transform: scale(1.2)
width: 3vw
z-index: 5
tap_action:
action: toggle
type: state-icon