Ce concours m’a incité a revoir ma carte existante de suivi de production solaire (ECU APSystems), trouvée initialement sur ce forum, intégralement en button card (que je ne saurais pas forcément maintenir pleinement au besoin) et qui singeait la présentation de l’app EMA de APSystems. L’idée était d’avoir quelque chose de plus simple et compact. La surveillance énergétique de la maison via Home Assistant étant un de mes principaux intérêts, j’aime à avoir ces informations accessibles.
Voici ma carte sur base de custom:vertical-stack-in-card, custom:expander-card, custom:entity-progress-card, tuile et custom:mushroom-chips-card, pour quelque chose de plus proche du « natif ».
Affichage du statut du système (prod en cours ou pas), puissance instantanée, énergie cumulée du jour, puissance individuelle des 2 panneaux et une rangée de chips pour les données de statut de l’onduleur. En bonus derrière l’expander-card, les données d’un second système de mesure shelly et des stats historiques.
A l’état hors production, seule le premier rang est visible et les chips de statut sont masquées a l’exception du contact shelly.
En cours de production.
Etendue
type: custom:vertical-stack-in-card
cards:
- type: custom:expander-card
cards:
- square: false
type: grid
cards:
- type: custom:entity-progress-card
entity: sensor.shellyplus1pm_7c87ce7355b4_switch_0_power
name: Shelly Power
decimal: 0
min_value: 0
max_value: 780
tap_action:
action: more-info
icon_tap_action:
action: more-info
theme: optimal_when_high
bar_size: large
unit: W
icon: mdi:solar-power
- type: custom:entity-progress-card
entity: sensor.shellyplus1pm_today_energy
name: Shelly Energy
decimal: 2
min_value: 0
max_value: 6
tap_action:
action: more-info
icon_tap_action:
action: more-info
theme: optimal_when_high
bar_size: large
unit: kWh
icon: mdi:solar-power
- type: tile
entity: sensor.ecu_216300055006_lifetime_maximum_power
name: Lifetime W
vertical: false
icon_tap_action:
action: more-info
features_position: bottom
- type: tile
entity: sensor.ecu_216300055006_lifetime_energy
name: Lifetime kWh
vertical: false
icon_tap_action:
action: more-info
features_position: bottom
columns: 2
title-card:
square: false
type: grid
cards:
- type: custom:entity-progress-card-template
entity: sensor.ecu_216300055006_current_power
icon: mdi:solar-power
name: ECU Power
secondary: "{{ states(entity) }} W"
badge_icon: |-
{% if states('sensor.ecu_216300055006_inverters_online') == '1' %}
mdi:power-on
{% else %}
mdi:power-off
{% endif %}
badge_color: |-
{% if states('sensor.ecu_216300055006_inverters_online') == '1' %}
green
{% else %}
grey
{% endif %}
bar_size: large
min_value: 0
max_value: 780
percent: >-
{% set pow = states('sensor.ecu_216300055006_current_power') | int
%} {{ (pow / 780 * 100) | round(1) }}
bar_color: >-
{% set level = states('sensor.ecu_216300055006_current_power') | int
%} {% if level > 624 %}
linear-gradient(90deg, lightgreen, green)
{% elif level > 156 %}
linear-gradient(90deg, yellow, orange)
{% else %}
linear-gradient(90deg, orange, red)
{% endif %}
force_circular_background: true
color: >-
{% set level = states('sensor.ecu_216300055006_current_power') | int
%} {% if level > 624 %}
green
{% elif level > 156 %}
yellow
{% else %}
grey
{% endif %}
tap_action: more-info
icon_tap_action: more-info
- type: custom:entity-progress-card
entity: sensor.ecu_216300055006_today_energy
name: ECU Energy
decimal: 2
min_value: 0
max_value: 6
tap_action:
action: more-info
icon_tap_action:
action: more-info
theme: optimal_when_high
bar_size: large
unit: kWh
- type: custom:entity-progress-card
entity: sensor.inverter_703000573416_power_ch_1
unit: W
decimal: 0
min_value: 0
max_value: 390
tap_action:
action: more-info
icon_tap_action:
action: more-info
theme: optimal_when_high
bar_size: large
name: Panneau 1
visibility:
- condition: state
entity: sensor.inverter_703000573416_online
state: "true"
- type: custom:entity-progress-card
entity: sensor.inverter_703000573416_power_ch_2
unit: W
decimal: 0
min_value: 0
max_value: 390
tap_action:
action: more-info
icon_tap_action:
action: more-info
theme: optimal_when_high
bar_size: large
name: Panneau 2
visibility:
- condition: state
entity: sensor.inverter_703000573416_online
state: "true"
columns: 2
animation: true
clear: true
clear-children: true
title-card-button-overlay: true
padding: "0"
title-card-clickable: false
- type: custom:mushroom-chips-card
chips:
- type: template
entity: switch.shellyplus1pm_7c87ce7355b4_switch_0
icon: |-
{% if is_state(entity, 'off') %}
mdi:toggle-switch-variant-off
{% else %}
mdi:toggle-switch-variant
{% endif %}
icon_color: |-
{% if is_state(entity, 'off') %}
grey
{% else %}
green
{% endif %}
tap_action:
action: more-info
- type: template
entity: switch.ecu_216300055006_query_ecu
icon: |-
{% if is_state(entity, 'off') %}
mdi:toggle-switch-off
{% else %}
mdi:toggle-switch-outline
{% endif %}
icon_color: |-
{% if is_state(entity, 'off') %}
grey
{% else %}
green
{% endif %}
tap_action:
action: more-info
- type: conditional
conditions:
- condition: numeric_state
entity: sensor.ecu_216300055006_inverters_online
above: 0
chip:
type: template
entity: sensor.inverter_703000573416_voltage
icon: mdi:sine-wave
icon_color: |-
{% if is_state('switch.ecu_216300055006_query_ecu', 'on') %}
green
{% else %}
grey
{% endif %}
content: >-
{{ states('sensor.inverter_703000573416_voltage') | float | round(0)
}} V
tap_action:
action: more-info
hold_action:
action: none
double_tap_action:
action: none
- type: conditional
conditions:
- condition: numeric_state
entity: sensor.ecu_216300055006_inverters_online
above: 0
chip:
type: template
entity: sensor.inverter_703000573416_frequency
icon: mdi:thermometer
icon_color: |-
{% if is_state('switch.ecu_216300055006_query_ecu', 'on') %}
green
{% else %}
grey
{% endif %}
content: >-
{{ states('sensor.inverter_703000573416_frequency') | float |
round(0) }} Hz
tap_action:
action: more-info
hold_action:
action: none
double_tap_action:
action: none
- type: conditional
conditions:
- condition: numeric_state
entity: sensor.ecu_216300055006_inverters_online
above: 0
chip:
type: template
entity: sensor.inverter_703000573416_temperature
icon: mdi:sine-wave
icon_color: |-
{% if is_state('switch.ecu_216300055006_query_ecu', 'on') %}
green
{% else %}
grey
{% endif %}
content: >-
{{ states('sensor.inverter_703000573416_temperature') | float |
round(1) }} °C
tap_action:
action: more-info
hold_action:
action: none
double_tap_action:
action: none
- type: conditional
conditions:
- condition: numeric_state
entity: sensor.ecu_216300055006_inverters_online
above: 0
chip:
type: template
entity: sensor.inverter_703000573416_signal
icon: mdi:signal
icon_color: |-
{% if is_state('switch.ecu_216300055006_query_ecu', 'on') %}
green
{% else %}
grey
{% endif %}
content: >-
{{ states('sensor.inverter_703000573416_signal') | float | round(0)
}} dBm
tap_action:
action: more-info
hold_action:
action: none
double_tap_action:
action: none
alignment: start

