Les paquets et cartes Home Assistant entrent enfin dans l historique

Treize paquets et dix-sept cartes n existaient qu en un seul exemplaire vivant
sur le partage de 10.10.10.17. La sauvegarde quotidienne les couvre contre la
perte, mais elle ne donne ni diff ni historique : le retrait des initial: du
06/09, les helpers de la reserve d orage, la politique batterie dynamique, la
carte du conseiller reecrite hier n avaient aucune trace de leur evolution.

⚠️ Ce sont des COPIES. La source de verite reste le partage — c est l inverse
de src/nodes/, et le LISEZMOI le dit en tete pour qu une prochaine session
n edite pas la copie en croyant changer l installation.

Verifie avant de verser : aucun identifiant en clair. Le paquet du bilan ne
porte que la DECLARATION de la cle Forecast.Solar, en mode password ; sa valeur
vit dans .storage, qui n entre pas ici.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GwpFpy2aQ2rJok6tNQSbVj
This commit is contained in:
Tallagrand Thierry
2026-09-14 02:11:13 +02:00
parent 18d0a7ba08
commit 3f987f1b3d
32 changed files with 8265 additions and 0 deletions

View File

@@ -0,0 +1,286 @@
- title: ECS Réglages & Debug
path: ecs-debug
icon: mdi:bug
cards:
- type: vertical-stack
cards:
- type: custom:mushroom-title-card
title: ECS - Réglages & Debug
subtitle: Analyse complète advisor / observer / protector
- type: custom:mushroom-chips-card
chips:
- type: entity
entity: input_select.victron_water_heater_recommended_mode
name: Conseil
- type: entity
entity: input_text.victron_water_heater_observed_regime
name: Observé
- type: entity
entity: input_boolean.victron_evcs_priority_active
name: EVCS
icon_color: >-
{% if is_state('input_boolean.victron_evcs_priority_active','on') %}
red
{% else %}
grey
{% endif %}
- type: entity
entity: input_boolean.victron_water_heater_forced_off_by_advisor
name: Forced OFF
icon_color: >-
{% if is_state('input_boolean.victron_water_heater_forced_off_by_advisor','on') %}
red
{% else %}
grey
{% endif %}
- type: entity
entity: switch.tt_chauffe_eau_pleumeur_switch
name: Alim
- type: custom:mushroom-template-card
primary: >-
ECS {{ states('input_select.victron_water_heater_recommended_mode')|upper }}
/ {{ states('input_select.victron_water_heater_advice_color')|upper }}
secondary: >-
État: {{ states('input_text.victron_water_heater_advice_state') }}
{% if states('input_text.victron_water_heater_pending_user_action') not in ['','unknown','unavailable'] %}
• Action: {{ states('input_text.victron_water_heater_pending_user_action') }}
{% endif %}
icon: mdi:water-boiler-alert
icon_color: >-
{% set c = states('input_select.victron_water_heater_advice_color') %}
{% if c == 'green' %}
green
{% elif c == 'orange' %}
orange
{% else %}
red
{% endif %}
multiline_secondary: true
- type: custom:mushroom-title-card
title: Capteurs bruts
subtitle: Contexte énergétique
- type: grid
columns: 2
square: false
cards:
- type: custom:mushroom-entity-card
entity: sensor.victron_battery_soc
name: SOC batterie
icon: mdi:battery
- type: custom:mushroom-entity-card
entity: sensor.victron_battery_current
name: Courant batterie
icon: mdi:current-dc
- type: custom:mushroom-entity-card
entity: sensor.victron_pv_power_system
name: PV instantané
icon: mdi:solar-power
- type: custom:mushroom-entity-card
entity: sensor.victron_pv_power_10m_avg
name: PV moyenne 10 min
icon: mdi:chart-bell-curve
- type: custom:mushroom-entity-card
entity: sensor.victron_consumption_power_l1
name: Charge maison
icon: mdi:home-lightning-bolt
- type: custom:mushroom-entity-card
entity: sensor.victron_grid_power_l1
name: Réseau
icon: mdi:transmission-tower
- type: custom:mushroom-entity-card
entity: switch.edf_general_ok_switch
name: Commande EDF
icon: mdi:flash
- type: custom:mushroom-entity-card
entity: sensor.victron_ac_in1_available
name: AC-IN disponible
icon: mdi:power-plug
- type: custom:mushroom-entity-card
entity: sensor.energy_production_today_remaining
name: Prod restante jour
icon: mdi:weather-sunny
- type: custom:mushroom-entity-card
entity: sensor.energy_production_tomorrow
name: Prod demain
icon: mdi:weather-partly-cloudy
- type: custom:mushroom-title-card
title: Chauffe-eau réel
subtitle: Observation runtime
- type: grid
columns: 2
square: false
cards:
- type: custom:mushroom-entity-card
entity: switch.tt_chauffe_eau_pleumeur_switch
name: Alim ECS
icon: mdi:water-boiler
- type: custom:mushroom-entity-card
entity: sensor.tt_chauffe_eau_pleumeur_energie_totale
name: Énergie totale ECS
icon: mdi:counter
- type: custom:mushroom-entity-card
entity: input_number.victron_water_heater_observed_power_w
name: Puissance observée
icon: mdi:flash
- type: custom:mushroom-entity-card
entity: input_text.victron_water_heater_observed_regime
name: Régime observé
icon: mdi:eye
- type: custom:mushroom-entity-card
entity: input_number.victron_water_heater_energy_total_prev_kwh
name: Énergie précédente
icon: mdi:history
- type: custom:mushroom-entity-card
entity: input_datetime.victron_water_heater_energy_prev_at
name: Échantillon précédent
icon: mdi:clock-outline
- type: custom:mushroom-title-card
title: Decision engine
subtitle: Sortie advisor
- type: entities
entities:
- entity: input_select.victron_water_heater_recommended_mode
name: Mode recommandé
- entity: input_select.victron_water_heater_advice_color
name: Couleur conseil
- entity: input_text.victron_water_heater_advice_state
name: État advisor
- entity: input_text.victron_water_heater_advice_reason
name: Raison courte
- entity: input_number.victron_water_heater_projected_end_of_day_soc
name: SOC projeté fin de jour
- entity: input_number.victron_water_heater_budget_margin_kwh
name: Marge budget
- entity: input_number.victron_load_water_heater_kwh
name: Charge retenue
- entity: input_text.victron_water_heater_advice_last_signature
name: Signature
- type: custom:mushroom-title-card
title: Action humaine / protection
subtitle: Mismatch, délai, coupure
- type: entities
entities:
- entity: input_text.victron_water_heater_pending_user_action
name: Action utilisateur attendue
- entity: input_datetime.victron_water_heater_mode_mismatch_since
name: Mismatch depuis
- entity: input_boolean.victron_water_heater_forced_off_by_advisor
name: Coupé par advisor
- entity: input_text.victron_water_heater_forced_off_reason
name: Raison coupure
- entity: input_datetime.victron_water_heater_forced_off_at
name: Coupé à
- entity: input_number.victron_water_heater_mode_mismatch_delay_min
name: Délai mismatch
- entity: input_number.victron_water_heater_restore_surplus_w
name: Surplus mini restauration
- type: custom:mushroom-title-card
title: Intégration EVCS
subtitle: Priorité globale maison
- type: entities
entities:
- entity: input_boolean.victron_evcs_priority_active
name: EVCS prioritaire
- entity: input_select.victron_energy_priority_mode
name: Mode priorité énergie
- entity: input_text.victron_energy_priority_reason
name: Raison priorité
- entity: input_datetime.victron_evcs_priority_until
name: Priorité jusqu'à
- type: custom:mushroom-title-card
title: Réglages usage ECS
subtitle: Demande, horaires, politique
- type: entities
entities:
- entity: input_boolean.victron_water_heater_advisor_enabled
name: Advisor activé
- entity: input_boolean.victron_water_heater_notifications
name: Notifications
- entity: input_select.victron_water_heater_hot_water_demand
name: Demande ECS
- entity: input_boolean.victron_water_heater_morning_boost_priority_enabled
name: Priorité boost matin
- entity: input_datetime.victron_water_heater_morning_boost_latest_time
name: Heure max boost matin
- entity: input_datetime.victron_water_heater_late_red_time
name: Heure red tardive
- entity: input_datetime.victron_flexible_day_start_time
name: Début fenêtre jour
- entity: input_datetime.victron_flexible_day_stop_time
name: Fin fenêtre jour
- type: custom:mushroom-title-card
title: Réglages énergie
subtitle: Seuils et garde-fous
- type: entities
entities:
- entity: input_number.victron_water_heater_green_power_w
name: Green W
- entity: input_number.victron_water_heater_auto_power_w
name: Auto W
- entity: input_number.victron_water_heater_boost_power_w
name: Boost W
- entity: input_number.victron_water_heater_strong_forecast_kwh
name: Forecast fort
- entity: input_number.victron_water_heater_medium_forecast_kwh
name: Forecast moyen
- entity: input_number.victron_water_heater_strong_pv_now_w
name: PV fort
- entity: input_number.victron_water_heater_medium_pv_now_w
name: PV moyen
- entity: input_number.victron_water_heater_morning_boost_min_soc_strong_day
name: SOC mini boost matin jour fort
- entity: input_number.victron_water_heater_boost_min_soc_medium_day
name: SOC mini boost jour moyen
- entity: input_number.victron_water_heater_end_of_day_soc_guard
name: Garde SOC fin de jour
- entity: input_number.victron_end_of_day_soc_target
name: Cible SOC fin de jour
- entity: input_number.victron_base_load_remaining_kwh
name: Base load restante
- entity: input_number.victron_flexible_safety_margin_kwh
name: Marge sécurité
- entity: input_number.victron_ac_loads_max_safe_w
name: Charge AC max safe
- type: history-graph
title: ECS - Puissance / PV / Maison
hours_to_show: 24
refresh_interval: 60
entities:
- entity: input_number.victron_water_heater_observed_power_w
name: ECS observé
- entity: sensor.victron_pv_power_system
name: PV
- entity: sensor.victron_consumption_power_l1
name: Maison
- entity: sensor.victron_grid_power_l1
name: Réseau
- type: history-graph
title: ECS - États / protection
hours_to_show: 24
refresh_interval: 60
entities:
- entity: switch.tt_chauffe_eau_pleumeur_switch
name: Alim ECS
- entity: input_boolean.victron_water_heater_forced_off_by_advisor
name: Forced OFF
- entity: input_boolean.victron_evcs_priority_active
name: EVCS prioritaire

View File

@@ -0,0 +1,324 @@
title: ECS Debug Réglages Premium
views:
- title: ECS Debug Premium
path: ecs-debug-premium
icon: mdi:bug
cards:
- type: vertical-stack
cards:
- type: custom:mushroom-title-card
title: ECS Réglages & Debug
subtitle: Advisor + Observer + Protection + EVCS
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-chips-card
chips:
- type: entity
entity: input_select.victron_water_heater_recommended_mode
name: Conseil
- type: entity
entity: input_text.victron_water_heater_observed_regime
name: Observé
- type: entity
entity: input_boolean.victron_evcs_priority_active
name: EVCS
icon_color: >-
{% if is_state('input_boolean.victron_evcs_priority_active','on') %}
red
{% else %}
grey
{% endif %}
- type: entity
entity: input_boolean.victron_water_heater_forced_off_by_advisor
name: Forced OFF
icon_color: >-
{% if is_state('input_boolean.victron_water_heater_forced_off_by_advisor','on') %}
red
{% else %}
grey
{% endif %}
- type: entity
entity: switch.tt_chauffe_eau_pleumeur_switch
name: Alim
- type: entity
entity: input_boolean.victron_water_heater_advisor_enabled
name: Advisor
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-template-card
entity: input_text.victron_water_heater_advice_state
primary: >-
ECS {{ states('input_select.victron_water_heater_recommended_mode')|upper }}
/ {{ states('input_select.victron_water_heater_advice_color')|upper }}
secondary: >-
État: {{ states('input_text.victron_water_heater_advice_state') }}
{% if states('input_text.victron_water_heater_pending_user_action') not in ['','unknown','unavailable'] %}
• Action: {{ states('input_text.victron_water_heater_pending_user_action') }}
{% endif %}
icon: mdi:water-boiler-alert
icon_color: >-
{% set c = states('input_select.victron_water_heater_advice_color') %}
{% if c == 'green' %}
green
{% elif c == 'orange' %}
orange
{% else %}
red
{% endif %}
multiline_secondary: true
- type: custom:mushroom-title-card
title: Capteurs bruts
subtitle: Contexte énergétique réel
- type: grid
columns: 2
square: false
cards:
- type: custom:mushroom-entity-card
entity: sensor.victron_battery_soc
name: SOC batterie
icon: mdi:battery
- type: custom:mushroom-entity-card
entity: sensor.victron_battery_current
name: Courant batterie
icon: mdi:current-dc
- type: custom:mushroom-entity-card
entity: sensor.victron_pv_power_system
name: PV instantané
icon: mdi:solar-power
- type: custom:mushroom-entity-card
entity: sensor.victron_pv_power_10m_avg
name: PV moyen 10 min
icon: mdi:chart-bell-curve
- type: custom:mushroom-entity-card
entity: sensor.victron_consumption_power_l1
name: Charge maison
icon: mdi:home-lightning-bolt
- type: custom:mushroom-entity-card
entity: sensor.victron_grid_power_l1
name: Réseau
icon: mdi:transmission-tower
- type: custom:mushroom-entity-card
entity: switch.edf_general_ok_switch
name: Commande EDF
icon: mdi:flash
- type: custom:mushroom-entity-card
entity: sensor.victron_ac_in1_available
name: AC-IN dispo
icon: mdi:power-plug
- type: custom:mushroom-entity-card
entity: sensor.energy_production_today_remaining
name: Prod restante jour
icon: mdi:weather-sunny
- type: custom:mushroom-entity-card
entity: sensor.energy_production_tomorrow
name: Prod demain
icon: mdi:weather-partly-cloudy
- type: custom:mushroom-title-card
title: Chauffe-eau observé
subtitle: Runtime réel
- type: grid
columns: 2
square: false
cards:
- type: custom:mushroom-entity-card
entity: switch.tt_chauffe_eau_pleumeur_switch
name: Alim ECS
icon: mdi:water-boiler
- type: custom:mushroom-entity-card
entity: sensor.tt_chauffe_eau_pleumeur_energie_totale
name: Énergie totale ECS
icon: mdi:counter
- type: custom:mushroom-entity-card
entity: input_number.victron_water_heater_observed_power_w
name: Puissance observée
icon: mdi:flash
- type: custom:mushroom-entity-card
entity: input_text.victron_water_heater_observed_regime
name: Régime observé
icon: mdi:eye
- type: custom:mushroom-entity-card
entity: input_number.victron_water_heater_energy_total_prev_kwh
name: Énergie précédente
icon: mdi:history
- type: custom:mushroom-entity-card
entity: input_datetime.victron_water_heater_energy_prev_at
name: Échantillon précédent
icon: mdi:clock-outline
- type: custom:mushroom-title-card
title: Sortie advisor
subtitle: Décision calculée
- type: custom:vertical-stack-in-card
cards:
- type: entities
entities:
- entity: input_select.victron_water_heater_recommended_mode
name: Mode recommandé
- entity: input_select.victron_water_heater_advice_color
name: Couleur conseil
- entity: input_text.victron_water_heater_advice_state
name: État advisor
- entity: input_text.victron_water_heater_advice_reason
name: Raison
- entity: input_number.victron_water_heater_projected_end_of_day_soc
name: SOC projeté fin de jour
- entity: input_number.victron_water_heater_budget_margin_kwh
name: Marge budget
- entity: input_number.victron_load_water_heater_kwh
name: Charge retenue
- entity: input_text.victron_water_heater_advice_last_signature
name: Signature
- type: custom:mushroom-title-card
title: Mismatch & protection
subtitle: Interaction humaine + sécurité EVCS
- type: custom:vertical-stack-in-card
cards:
- type: entities
entities:
- entity: input_text.victron_water_heater_pending_user_action
name: Action utilisateur attendue
- entity: input_datetime.victron_water_heater_mode_mismatch_since
name: Mismatch depuis
- entity: input_boolean.victron_water_heater_forced_off_by_advisor
name: Coupé par advisor
- entity: input_text.victron_water_heater_forced_off_reason
name: Raison coupure
- entity: input_datetime.victron_water_heater_forced_off_at
name: Coupé à
- entity: input_number.victron_water_heater_mode_mismatch_delay_min
name: Délai mismatch
- entity: input_number.victron_water_heater_restore_surplus_w
name: Surplus mini restauration
- type: custom:mushroom-title-card
title: Intégration EVCS
subtitle: Priorité maison globale
- type: custom:vertical-stack-in-card
cards:
- type: entities
entities:
- entity: input_boolean.victron_evcs_priority_active
name: EVCS prioritaire
- entity: input_select.victron_energy_priority_mode
name: Mode priorité énergie
- entity: input_text.victron_energy_priority_reason
name: Raison priorité
- entity: input_datetime.victron_evcs_priority_until
name: Priorité jusqu'à
- type: custom:mushroom-title-card
title: Réglages usage ECS
subtitle: Demande, horaires, politique
- type: custom:vertical-stack-in-card
cards:
- type: entities
entities:
- entity: input_boolean.victron_water_heater_advisor_enabled
name: Advisor activé
- entity: input_boolean.victron_water_heater_notifications
name: Notifications
- entity: input_select.victron_water_heater_hot_water_demand
name: Demande ECS
- entity: input_boolean.victron_water_heater_morning_boost_priority_enabled
name: Priorité boost matin
- entity: input_datetime.victron_water_heater_morning_boost_latest_time
name: Heure max boost matin
- entity: input_datetime.victron_water_heater_late_red_time
name: Heure red tardive
- entity: input_datetime.victron_flexible_day_start_time
name: Début fenêtre jour
- entity: input_datetime.victron_flexible_day_stop_time
name: Fin fenêtre jour
- type: custom:mushroom-title-card
title: Réglages énergie
subtitle: Seuils et garde-fous
- type: custom:vertical-stack-in-card
cards:
- type: entities
entities:
- entity: input_number.victron_water_heater_green_power_w
name: Green W
- entity: input_number.victron_water_heater_auto_power_w
name: Auto W
- entity: input_number.victron_water_heater_boost_power_w
name: Boost W
- entity: input_number.victron_water_heater_strong_forecast_kwh
name: Forecast fort
- entity: input_number.victron_water_heater_medium_forecast_kwh
name: Forecast moyen
- entity: input_number.victron_water_heater_strong_pv_now_w
name: PV fort
- entity: input_number.victron_water_heater_medium_pv_now_w
name: PV moyen
- entity: input_number.victron_water_heater_morning_boost_min_soc_strong_day
name: SOC mini boost matin jour fort
- entity: input_number.victron_water_heater_boost_min_soc_medium_day
name: SOC mini boost jour moyen
- entity: input_number.victron_water_heater_end_of_day_soc_guard
name: Garde SOC fin de jour
- entity: input_number.victron_end_of_day_soc_target
name: Cible SOC fin de jour
- entity: input_number.victron_base_load_remaining_kwh
name: Base load restante
- entity: input_number.victron_flexible_safety_margin_kwh
name: Marge sécurité
- entity: input_number.victron_ac_loads_max_safe_w
name: Charge AC max safe
- type: custom:mushroom-title-card
title: Historique
subtitle: Visualisation rapide 24h
- type: history-graph
title: ECS / PV / Maison
hours_to_show: 24
refresh_interval: 60
entities:
- entity: input_number.victron_water_heater_observed_power_w
name: ECS observé
- entity: sensor.victron_pv_power_system
name: PV
- entity: sensor.victron_consumption_power_l1
name: Maison
- entity: sensor.victron_grid_power_l1
name: Réseau
- type: history-graph
title: États / protection
hours_to_show: 24
refresh_interval: 60
entities:
- entity: switch.tt_chauffe_eau_pleumeur_switch
name: Alim ECS
- entity: input_boolean.victron_water_heater_forced_off_by_advisor
name: Forced OFF
- entity: input_boolean.victron_evcs_priority_active
name: EVCS prioritaire

170
dashboards/ECS_PILOTAGE.yaml Executable file
View File

@@ -0,0 +1,170 @@
i- title: ECS Pilotage
path: ecs-pilotage
icon: mdi:water-boiler
cards:
- type: vertical-stack
cards:
- type: custom:mushroom-title-card
title: Chauffe-eau thermodynamique
subtitle: Pilotage quotidien ECS
- type: custom:mushroom-chips-card
chips:
- type: entity
entity: switch.tt_chauffe_eau_pleumeur_switch
name: Alim ECS
icon_color: >-
{% if is_state('switch.tt_chauffe_eau_pleumeur_switch','on') %}
green
{% else %}
grey
{% endif %}
- type: entity
entity: input_select.victron_water_heater_recommended_mode
name: Conseil
- type: entity
entity: input_select.victron_water_heater_advice_color
name: Couleur
- type: entity
entity: input_text.victron_water_heater_observed_regime
name: Régime
- type: entity
entity: input_boolean.victron_evcs_priority_active
name: EVCS
icon_color: >-
{% if is_state('input_boolean.victron_evcs_priority_active','on') %}
red
{% else %}
grey
{% endif %}
- type: custom:mushroom-template-card
primary: >-
{% set mode = states('input_select.victron_water_heater_recommended_mode') %}
{% set color = states('input_select.victron_water_heater_advice_color') %}
Conseil ECS : {{ mode|upper }} / {{ color|upper }}
secondary: >-
{{ states('input_text.victron_water_heater_advice_state') }}
icon: mdi:water-boiler
icon_color: >-
{% set c = states('input_select.victron_water_heater_advice_color') %}
{% if c == 'green' %}
green
{% elif c == 'orange' %}
orange
{% else %}
red
{% endif %}
multiline_secondary: true
tap_action:
action: more-info
entity: input_text.victron_water_heater_advice_state
- type: horizontal-stack
cards:
- type: custom:mushroom-entity-card
entity: input_number.victron_water_heater_observed_power_w
name: Puissance observée
icon: mdi:flash
icon_color: amber
- type: custom:mushroom-entity-card
entity: sensor.tt_chauffe_eau_pleumeur_energie_totale
name: Compteur ECS
icon: mdi:counter
icon_color: blue
- type: horizontal-stack
cards:
- type: custom:mushroom-entity-card
entity: input_number.victron_water_heater_projected_end_of_day_soc
name: SOC projeté
icon: mdi:battery
icon_color: green
- type: custom:mushroom-entity-card
entity: input_number.victron_water_heater_budget_margin_kwh
name: Marge budget
icon: mdi:scale-balance
icon_color: >-
{% if states('input_number.victron_water_heater_budget_margin_kwh')|float(0) >= 0 %}
green
{% else %}
red
{% endif %}
- type: custom:mushroom-entity-card
entity: input_select.victron_water_heater_hot_water_demand
name: Demande ECS
icon: mdi:shower
icon_color: blue
- type: conditional
conditions:
- entity: input_boolean.victron_evcs_priority_active
state: "on"
card:
type: custom:mushroom-template-card
entity: input_boolean.victron_evcs_priority_active
primary: EVCS prioritaire
secondary: >-
{{ states('input_text.victron_energy_priority_reason') }}
{% if states('input_datetime.victron_evcs_priority_until') not in ['unknown','unavailable',''] %}
• jusqu'à {{ states('input_datetime.victron_evcs_priority_until') }}
{% endif %}
icon: mdi:car-electric
icon_color: red
multiline_secondary: true
- type: conditional
conditions:
- entity: input_text.victron_water_heater_pending_user_action
state_not: ""
card:
type: custom:mushroom-template-card
entity: input_text.victron_water_heater_pending_user_action
primary: Action utilisateur conseillée
secondary: "{{ states('input_text.victron_water_heater_pending_user_action') }}"
icon: mdi:account-alert
icon_color: orange
multiline_secondary: true
- type: conditional
conditions:
- entity: input_boolean.victron_water_heater_forced_off_by_advisor
state: "on"
card:
type: custom:mushroom-template-card
entity: input_boolean.victron_water_heater_forced_off_by_advisor
primary: ECS coupé par l'advisor
secondary: >-
{{ states('input_text.victron_water_heater_forced_off_reason') }}
icon: mdi:power-plug-off
icon_color: red
multiline_secondary: true
- type: custom:mushroom-entity-card
entity: switch.tt_chauffe_eau_pleumeur_switch
name: Alimentation chauffe-eau
icon: mdi:power
icon_color: >-
{% if is_state('switch.tt_chauffe_eau_pleumeur_switch','on') %}
green
{% else %}
grey
{% endif %}
tap_action:
action: toggle
- type: entities
title: Détail rapide
entities:
- entity: input_text.victron_water_heater_advice_reason
name: Raison
- entity: input_text.victron_water_heater_observed_regime
name: Régime observé
- entity: input_number.victron_load_water_heater_kwh
name: Charge ECS retenue
- entity: input_boolean.victron_water_heater_advisor_enabled
name: Advisor activé
- entity: input_boolean.victron_water_heater_notifications
name: Notifications

View File

@@ -0,0 +1,244 @@
title: ECS Pilotage Premium
views:
- title: ECS Premium
path: ecs-premium
icon: mdi:water-boiler
cards:
- type: vertical-stack
cards:
- type: custom:mushroom-title-card
title: Chauffe-eau thermodynamique
subtitle: Pilotage intelligent ECS / EVCS
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-chips-card
chips:
- type: entity
entity: switch.tt_chauffe_eau_pleumeur_switch
name: ECS
icon_color: >-
{% if is_state('switch.tt_chauffe_eau_pleumeur_switch','on') %}
green
{% else %}
grey
{% endif %}
- type: entity
entity: input_select.victron_water_heater_recommended_mode
name: Conseil
- type: entity
entity: input_select.victron_water_heater_advice_color
name: Couleur
- type: entity
entity: input_text.victron_water_heater_observed_regime
name: Régime
- type: entity
entity: input_boolean.victron_evcs_priority_active
name: EVCS
icon_color: >-
{% if is_state('input_boolean.victron_evcs_priority_active','on') %}
red
{% else %}
grey
{% endif %}
- type: entity
entity: input_boolean.victron_water_heater_forced_off_by_advisor
name: Protection
icon_color: >-
{% if is_state('input_boolean.victron_water_heater_forced_off_by_advisor','on') %}
red
{% else %}
grey
{% endif %}
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-template-card
entity: input_text.victron_water_heater_advice_state
primary: >-
{% set mode = states('input_select.victron_water_heater_recommended_mode') %}
{% set color = states('input_select.victron_water_heater_advice_color') %}
Conseil ECS : {{ mode|upper }} / {{ color|upper }}
secondary: >-
{{ states('input_text.victron_water_heater_advice_state') }}
icon: mdi:water-boiler
icon_color: >-
{% set c = states('input_select.victron_water_heater_advice_color') %}
{% if c == 'green' %}
green
{% elif c == 'orange' %}
orange
{% else %}
red
{% endif %}
multiline_secondary: true
tap_action:
action: more-info
- type: grid
columns: 2
square: false
cards:
- type: custom:mushroom-entity-card
entity: input_number.victron_water_heater_observed_power_w
name: Puissance observée
icon: mdi:flash
icon_color: amber
- type: custom:mushroom-entity-card
entity: sensor.tt_chauffe_eau_pleumeur_energie_totale
name: Compteur ECS
icon: mdi:counter
icon_color: blue
- type: custom:mushroom-entity-card
entity: input_number.victron_water_heater_projected_end_of_day_soc
name: SOC projeté
icon: mdi:battery
icon_color: green
- type: custom:mushroom-template-card
entity: input_number.victron_water_heater_budget_margin_kwh
primary: Marge budget
secondary: "{{ states('input_number.victron_water_heater_budget_margin_kwh') }} kWh"
icon: mdi:scale-balance
icon_color: >-
{% if states('input_number.victron_water_heater_budget_margin_kwh')|float(0) >= 0 %}
green
{% else %}
red
{% endif %}
- type: conditional
conditions:
- entity: input_boolean.victron_evcs_priority_active
state: "on"
card:
type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-template-card
entity: input_boolean.victron_evcs_priority_active
primary: EVCS prioritaire
secondary: >-
{{ states('input_text.victron_energy_priority_reason') }}
{% set until = states('input_datetime.victron_evcs_priority_until') %}
{% if until not in ['unknown','unavailable',''] %}
• jusqu'à {{ until }}
{% endif %}
icon: mdi:car-electric
icon_color: red
multiline_secondary: true
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-template-card
entity: input_text.victron_water_heater_pending_user_action
primary: >-
{% if states('input_text.victron_water_heater_pending_user_action') not in ['','unknown','unavailable'] %}
Action utilisateur conseillée
{% else %}
Aucune action utilisateur
{% endif %}
secondary: >-
{% set a = states('input_text.victron_water_heater_pending_user_action') %}
{% if a not in ['','unknown','unavailable'] %}
{{ a }}
{% else %}
Rien à faire pour le moment.
{% endif %}
icon: mdi:account-alert
icon_color: >-
{% set a = states('input_text.victron_water_heater_pending_user_action') %}
{% if a not in ['','unknown','unavailable'] %}
orange
{% else %}
green
{% endif %}
multiline_secondary: true
- type: conditional
conditions:
- entity: input_boolean.victron_water_heater_forced_off_by_advisor
state: "on"
card:
type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-template-card
entity: input_boolean.victron_water_heater_forced_off_by_advisor
primary: Chauffe-eau temporairement coupé
secondary: >-
{{ states('input_text.victron_water_heater_forced_off_reason') }}
icon: mdi:power-plug-off
icon_color: red
multiline_secondary: true
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-title-card
title: Commandes rapides
subtitle: Actions quotidiennes
- type: grid
columns: 2
square: false
cards:
- type: custom:mushroom-entity-card
entity: switch.tt_chauffe_eau_pleumeur_switch
name: Alimentation ECS
icon: mdi:power
tap_action:
action: toggle
icon_color: >-
{% if is_state('switch.tt_chauffe_eau_pleumeur_switch','on') %}
green
{% else %}
grey
{% endif %}
- type: custom:mushroom-entity-card
entity: input_select.victron_water_heater_hot_water_demand
name: Demande ECS
icon: mdi:shower
icon_color: blue
- type: custom:mushroom-entity-card
entity: input_boolean.victron_water_heater_advisor_enabled
name: Advisor ECS
icon: mdi:robot
tap_action:
action: toggle
icon_color: >-
{% if is_state('input_boolean.victron_water_heater_advisor_enabled','on') %}
green
{% else %}
grey
{% endif %}
- type: custom:mushroom-entity-card
entity: input_boolean.victron_water_heater_notifications
name: Notifications
icon: mdi:bell
tap_action:
action: toggle
icon_color: >-
{% if is_state('input_boolean.victron_water_heater_notifications','on') %}
amber
{% else %}
grey
{% endif %}
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-title-card
title: Détail rapide
subtitle: Lecture immédiate
- type: entities
entities:
- entity: input_text.victron_water_heater_advice_reason
name: Raison
- entity: input_text.victron_water_heater_observed_regime
name: Régime observé
- entity: input_number.victron_load_water_heater_kwh
name: Charge ECS retenue

148
dashboards/EVCS_SOLAR.yaml Executable file
View File

@@ -0,0 +1,148 @@
title: EVCS & Solar Dashboard
views:
- panel: false
path: evcs_solar_hub
badges: []
cards:
# --- HEADER & INFO GÉNÉRALE ---
- type: custom:grid-layout
grid-template-columns: 1fr 2fr 1fr
grid-template-rows: auto auto
grid-template-areas: |
"header header header"
"stats stats stats"
cards:
# 1. Titre et Logo (Gauche)
- type: custom:grid-item
grid-column: 1 / 2
grid-row: 1 / 3
card:
type: custom:button-card
entity: sensor.solar_production_daily
show_state: true
show_label: true
label: Installation
tap_action:
action: more-info
color_type: card
styles:
card:
- background-color: transparent
- border-radius: 8px
- padding: 10px
- border: 1px solid rgba(0,0,0,0.1)
- display: flex
- flex-direction: column
- align-items: center
- justify-content: center
- height: 100%
- text-align: center
tap:
action: none
# 2. Statistiques (Droite)
- type: custom:grid-item
grid-column: 3 / 4
grid-row: 1 / 3
card:
type: entities
title: ""
entities:
- entity: sensor.weather_temperature
name: Température
- entity: sensor.weather_condition
name: Météo
- entity: sensor.internet_status
name: Internet
# --- ZONE CENTRALE (STATUS BATTERIE & CONSOMMATION) ---
# On utilise une grille 3 colonnes pour séparer la batterie, la charge (EV) et le réseau
- type: grid
columns: 3
cards:
# CARTE GAUCHE : BATTERIE & RÉSEAU
- type: entities
entities:
- type: divider
- entity: sensor.battery_voltage
name: État Décharge (62.0%)
show_state: true
show_icon: true
show_unit_of_measurement: false
- entity: sensor.battery_power
name: Courant
show_state: true
- entity: sensor.battery_temperature
name: Température
- type: divider
- entity: binary_sensor.network_status
name: Réseau
state:
- value: 'off'
attributes:
- state: true
color: red
name: Connecté
- entity: sensor.solar_production_now
name: Production PV
show_state: true
# CARTE CENTRE : CHARGEUR EV
- type: entities
entities:
- type: divider
- entity: binary_sensor.ev_charge_state
name: Chargeur VE
show_state: true
- entity: number.ev_max_current_setting
name: Courant Max (Manual)
show_state: true
- entity: sensor.ev_charge_duration
name: Temps restant
show_state: true
- entity: sensor.ev_charging_energy_total
name: Énergie Totale (7kWh)
# CARTE DROITE : GRID & MPPT (SIMULÉ)
- type: entities
entities:
- type: divider
- entity: sensor.ac_loads_power
name: Charges CA (703 W)
show_state: true
- entity: sensor.frequency_hz
name: Fréquence
show_state: true
- entity: sensor.mppt_current
name: MPPT (PV)
show_state: true
# --- ZONE GRAPHIQUES DU BAS ---
- type: custom:vertical-stack-in-card
cards:
# Courbe de consommation / production
- type: custom:mini-graph-card
entities:
- entity: sensor.solar_production
- entity: sensor.power_consumption
show:
state: false
labels: false
labels_secondary: false
icons: false
name: false
legend: true
hours_to_show: 24
show:
points: false
graph: line
# Prévisions (Barres - simplifiées ici)
- type: custom:mini-graph-card
entities:
- entity: sensor.solar_production_forecast
show:
legend: false
hours_to_show: 24
show:
points: false
graph: bar

View File

@@ -0,0 +1,223 @@
title: Garage Debug Premium
views:
- title: Garage Debug Premium
path: garage-debug-premium
icon: mdi:bug
cards:
- type: vertical-stack
cards:
- type: custom:mushroom-title-card
title: Garage / Clim - Réglages & Debug
subtitle: Analyse complète automate garage
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-chips-card
chips:
- type: entity
entity: switch.clim_hygro_socket_1
name: Sortie
- type: entity
entity: input_boolean.garage_clim_surplus_auto_enabled
name: Auto
- type: entity
entity: input_boolean.garage_clim_latch
name: Latch
- type: entity
entity: input_text.garage_clim_state
name: State
- type: entity
entity: input_boolean.victron_evcs_priority_active
name: EVCS
icon_color: >-
{% if is_state('input_boolean.victron_evcs_priority_active','on') %}
red
{% else %}
grey
{% endif %}
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-template-card
entity: input_text.garage_clim_state
primary: >-
Garage : {{ states('input_text.garage_clim_state') }}
secondary: >-
{{ states('input_text.garage_clim_reason') }}
icon: mdi:garage-variant
icon_color: >-
{% if is_state('switch.clim_hygro_socket_1','on') %}
blue
{% elif is_state('input_boolean.victron_evcs_priority_active','on') %}
red
{% else %}
grey
{% endif %}
multiline_secondary: true
- type: custom:mushroom-title-card
title: Capteurs bruts
subtitle: Température et énergie
- type: grid
columns: 2
square: false
cards:
- type: custom:mushroom-entity-card
entity: sensor.garage_t_temperature
name: Température garage
icon: mdi:thermometer
- type: custom:mushroom-entity-card
entity: switch.clim_hygro_socket_1
name: Sortie clim/hygro
icon: mdi:air-conditioner
- type: custom:mushroom-entity-card
entity: sensor.victron_battery_soc
name: SOC batterie
icon: mdi:battery
- type: custom:mushroom-entity-card
entity: sensor.victron_battery_current
name: Courant batterie
icon: mdi:current-dc
- type: custom:mushroom-entity-card
entity: sensor.victron_pv_power_system
name: PV instantané
icon: mdi:solar-power
- type: custom:mushroom-entity-card
entity: sensor.victron_pv_power_10m_avg
name: PV moyen 10 min
icon: mdi:chart-bell-curve
- type: custom:mushroom-entity-card
entity: sensor.victron_consumption_power_l1
name: Charge maison
icon: mdi:home-lightning-bolt
- type: custom:mushroom-entity-card
entity: sensor.victron_grid_power_l1
name: Réseau
icon: mdi:transmission-tower
- type: custom:mushroom-entity-card
entity: switch.edf_general_ok_switch
name: Commande EDF
icon: mdi:flash
- type: custom:mushroom-entity-card
entity: sensor.victron_ac_in1_available
name: AC-IN dispo
icon: mdi:power-plug
- type: custom:mushroom-entity-card
entity: sensor.energy_production_today_remaining
name: Prod restante
icon: mdi:weather-sunny
- type: custom:mushroom-title-card
title: État automate
subtitle: Décision et mémoire
- type: custom:vertical-stack-in-card
cards:
- type: entities
entities:
- entity: input_text.garage_clim_state
name: State
- entity: input_text.garage_clim_reason
name: Reason
- entity: input_text.garage_clim_last_signature
name: Signature
- entity: input_boolean.garage_clim_latch
name: Latch
- entity: input_datetime.garage_clim_last_on_at
name: Dernier ON
- entity: input_datetime.garage_clim_last_off_at
name: Dernier OFF
- type: custom:mushroom-title-card
title: Réglages garage
subtitle: Seuils et fenêtres
- type: custom:vertical-stack-in-card
cards:
- type: entities
entities:
- entity: input_boolean.garage_clim_surplus_auto_enabled
name: Auto garage
- entity: input_boolean.garage_clim_surplus_notifications
name: Notifications
- entity: input_boolean.garage_clim_manual_adopt_enabled
name: Adoption manuelle
- entity: input_number.garage_temp_min_c
name: Temp mini
- entity: input_number.garage_temp_max_c
name: Temp maxi
- entity: input_number.garage_clim_soc_on
name: SOC ON
- entity: input_number.garage_clim_soc_off
name: SOC OFF
- entity: input_number.garage_clim_pv_on_w
name: PV ON
- entity: input_number.garage_clim_pv_off_w
name: PV OFF
- entity: input_number.garage_clim_surplus_min_kwh
name: Surplus mini
- entity: input_number.garage_clim_min_on_minutes
name: Mini ON
- entity: input_number.garage_clim_min_off_minutes
name: Mini OFF
- entity: input_number.garage_clim_battery_discharge_stop_a
name: Stop décharge batterie
- entity: input_number.garage_clim_house_ac_max_w
name: Charge maison max
- entity: input_datetime.garage_clim_start_time
name: Début fenêtre
- entity: input_datetime.garage_clim_stop_time
name: Fin fenêtre
- type: custom:mushroom-title-card
title: Priorité EVCS
subtitle: Arbitrage global
- type: custom:vertical-stack-in-card
cards:
- type: entities
entities:
- entity: input_boolean.victron_evcs_priority_active
name: EVCS prioritaire
- entity: input_select.victron_energy_priority_mode
name: Mode priorité énergie
- entity: input_text.victron_energy_priority_reason
name: Raison priorité
- entity: input_datetime.victron_evcs_priority_until
name: Priorité jusqu'à
- type: history-graph
title: Température / PV / Maison
hours_to_show: 24
refresh_interval: 60
entities:
- entity: sensor.garage_t_temperature
name: Temp garage
- entity: sensor.victron_pv_power_system
name: PV
- entity: sensor.victron_consumption_power_l1
name: Maison
- type: history-graph
title: États garage / EVCS
hours_to_show: 24
refresh_interval: 60
entities:
- entity: switch.clim_hygro_socket_1
name: Sortie garage
- entity: input_boolean.garage_clim_latch
name: Latch garage
- entity: input_boolean.victron_evcs_priority_active
name: EVCS prioritaire

169
dashboards/GARAGE_MOBILE.yaml Executable file
View File

@@ -0,0 +1,169 @@
title: Garage Mobile
views:
- title: Garage Mobile
path: garage-mobile
icon: mdi:garage-variant
cards:
- type: vertical-stack
cards:
- type: custom:mushroom-title-card
title: Garage / Clim
subtitle: Vue mobile compacte
- type: custom:mushroom-chips-card
chips:
- type: entity
entity: switch.clim_hygro_socket_1
name: Sortie
icon_color: >-
{% if is_state('switch.clim_hygro_socket_1','on') %}
green
{% else %}
grey
{% endif %}
- type: entity
entity: input_boolean.garage_clim_surplus_auto_enabled
name: Auto
icon_color: >-
{% if is_state('input_boolean.garage_clim_surplus_auto_enabled','on') %}
green
{% else %}
grey
{% endif %}
- type: entity
entity: input_boolean.garage_clim_latch
name: Latch
icon_color: >-
{% if is_state('input_boolean.garage_clim_latch','on') %}
orange
{% else %}
grey
{% endif %}
- type: entity
entity: input_boolean.victron_evcs_priority_active
name: EVCS
icon_color: >-
{% if is_state('input_boolean.victron_evcs_priority_active','on') %}
red
{% else %}
grey
{% endif %}
- type: custom:mushroom-template-card
entity: input_text.garage_clim_state
primary: >-
{{ states('input_text.garage_clim_state') }}
secondary: >-
Temp {{ states('sensor.garage_t_temperature') }}°C
• {{ states('input_text.garage_clim_reason') }}
icon: mdi:air-conditioner
icon_color: >-
{% if is_state('switch.clim_hygro_socket_1','on') %}
blue
{% elif is_state('input_boolean.victron_evcs_priority_active','on') %}
red
{% else %}
grey
{% endif %}
multiline_secondary: true
tap_action:
action: more-info
- type: conditional
conditions:
- entity: input_boolean.victron_evcs_priority_active
state: "on"
card:
type: custom:mushroom-template-card
entity: input_boolean.victron_evcs_priority_active
primary: Priorité EVCS active
secondary: >-
{{ states('input_text.victron_energy_priority_reason') }}
icon: mdi:car-electric
icon_color: red
multiline_secondary: true
- type: grid
columns: 2
square: false
cards:
- type: custom:mushroom-entity-card
entity: sensor.garage_t_temperature
name: Temp garage
icon: mdi:thermometer
icon_color: blue
- type: custom:mushroom-entity-card
entity: sensor.victron_pv_power_system
name: PV
icon: mdi:solar-power
icon_color: amber
- type: custom:mushroom-entity-card
entity: sensor.victron_battery_soc
name: SOC
icon: mdi:battery
icon_color: green
- type: custom:mushroom-entity-card
entity: sensor.victron_consumption_power_l1
name: Maison
icon: mdi:home-lightning-bolt
icon_color: orange
- type: grid
columns: 2
square: false
cards:
- type: custom:mushroom-entity-card
entity: switch.clim_hygro_socket_1
name: Clim garage
icon: mdi:power
tap_action:
action: toggle
icon_color: >-
{% if is_state('switch.clim_hygro_socket_1','on') %}
green
{% else %}
grey
{% endif %}
- type: custom:mushroom-entity-card
entity: input_boolean.garage_clim_surplus_auto_enabled
name: Auto garage
icon: mdi:robot
tap_action:
action: toggle
icon_color: >-
{% if is_state('input_boolean.garage_clim_surplus_auto_enabled','on') %}
green
{% else %}
grey
{% endif %}
- type: custom:mushroom-entity-card
entity: input_boolean.garage_clim_manual_adopt_enabled
name: Adopt manuel
icon: mdi:hand-back-right
tap_action:
action: toggle
icon_color: >-
{% if is_state('input_boolean.garage_clim_manual_adopt_enabled','on') %}
orange
{% else %}
grey
{% endif %}
- type: custom:mushroom-entity-card
entity: input_boolean.garage_clim_surplus_notifications
name: Notifs
icon: mdi:bell
tap_action:
action: toggle
icon_color: >-
{% if is_state('input_boolean.garage_clim_surplus_notifications','on') %}
amber
{% else %}
grey
{% endif %}

View File

@@ -0,0 +1,208 @@
title: Garage Premium Pilotage
views:
- title: Garage Premium
path: garage-premium
icon: mdi:garage-variant
cards:
- type: vertical-stack
cards:
- type: custom:mushroom-title-card
title: Garage / Clim
subtitle: Pilotage thermique et arbitrage énergétique
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-chips-card
chips:
- type: entity
entity: switch.clim_hygro_socket_1
name: Clim garage
icon_color: >-
{% if is_state('switch.clim_hygro_socket_1','on') %}
green
{% else %}
grey
{% endif %}
- type: entity
entity: input_boolean.garage_clim_surplus_auto_enabled
name: Auto
icon_color: >-
{% if is_state('input_boolean.garage_clim_surplus_auto_enabled','on') %}
green
{% else %}
grey
{% endif %}
- type: entity
entity: input_boolean.garage_clim_latch
name: Latch
icon_color: >-
{% if is_state('input_boolean.garage_clim_latch','on') %}
orange
{% else %}
grey
{% endif %}
- type: entity
entity: sensor.garage_t_temperature
name: Temp
- type: entity
entity: input_boolean.victron_evcs_priority_active
name: EVCS
icon_color: >-
{% if is_state('input_boolean.victron_evcs_priority_active','on') %}
red
{% else %}
grey
{% endif %}
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-template-card
entity: input_text.garage_clim_state
primary: >-
Garage : {{ states('input_text.garage_clim_state') }}
secondary: >-
{{ states('input_text.garage_clim_reason') }}
icon: mdi:air-conditioner
icon_color: >-
{% if is_state('switch.clim_hygro_socket_1','on') %}
blue
{% elif is_state('input_boolean.victron_evcs_priority_active','on') %}
red
{% else %}
grey
{% endif %}
multiline_secondary: true
- type: grid
columns: 2
square: false
cards:
- type: custom:mushroom-entity-card
entity: sensor.garage_t_temperature
name: Température garage
icon: mdi:thermometer
icon_color: blue
- type: custom:mushroom-template-card
entity: input_boolean.garage_clim_latch
primary: État sortie
secondary: >-
Switch={{ states('switch.clim_hygro_socket_1') | upper }}
• Latch={{ states('input_boolean.garage_clim_latch') | upper }}
icon: mdi:toggle-switch
icon_color: >-
{% if is_state('switch.clim_hygro_socket_1','on') %}
green
{% else %}
grey
{% endif %}
- type: custom:mushroom-entity-card
entity: sensor.victron_pv_power_system
name: PV instantané
icon: mdi:solar-power
icon_color: amber
- type: custom:mushroom-entity-card
entity: sensor.victron_battery_soc
name: SOC batterie
icon: mdi:battery
icon_color: green
- type: conditional
conditions:
- entity: input_boolean.victron_evcs_priority_active
state: "on"
card:
type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-template-card
entity: input_boolean.victron_evcs_priority_active
primary: EVCS prioritaire
secondary: >-
{{ states('input_text.victron_energy_priority_reason') }}
{% set until = states('input_datetime.victron_evcs_priority_until') %}
{% if until not in ['unknown','unavailable',''] %}
• jusqu'à {{ until }}
{% endif %}
icon: mdi:car-electric
icon_color: red
multiline_secondary: true
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-title-card
title: Commandes rapides
subtitle: Usage quotidien
- type: grid
columns: 2
square: false
cards:
- type: custom:mushroom-entity-card
entity: switch.clim_hygro_socket_1
name: Clim garage
icon: mdi:power
tap_action:
action: toggle
icon_color: >-
{% if is_state('switch.clim_hygro_socket_1','on') %}
green
{% else %}
grey
{% endif %}
- type: custom:mushroom-entity-card
entity: input_boolean.garage_clim_surplus_auto_enabled
name: Automatisation
icon: mdi:robot
tap_action:
action: toggle
icon_color: >-
{% if is_state('input_boolean.garage_clim_surplus_auto_enabled','on') %}
green
{% else %}
grey
{% endif %}
- type: custom:mushroom-entity-card
entity: input_boolean.garage_clim_manual_adopt_enabled
name: Adoption manuelle
icon: mdi:hand-back-right
tap_action:
action: toggle
icon_color: >-
{% if is_state('input_boolean.garage_clim_manual_adopt_enabled','on') %}
orange
{% else %}
grey
{% endif %}
- type: custom:mushroom-entity-card
entity: input_boolean.garage_clim_surplus_notifications
name: Notifications
icon: mdi:bell
tap_action:
action: toggle
icon_color: >-
{% if is_state('input_boolean.garage_clim_surplus_notifications','on') %}
amber
{% else %}
grey
{% endif %}
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-title-card
title: Détail rapide
subtitle: Lecture immédiate
- type: entities
entities:
- entity: input_text.garage_clim_reason
name: Raison
- entity: input_datetime.garage_clim_last_on_at
name: Dernier ON
- entity: input_datetime.garage_clim_last_off_at
name: Dernier OFF

290
dashboards/SDB_DEBUG_PREMIUM.yaml Executable file
View File

@@ -0,0 +1,290 @@
title: SDB Debug Premium
views:
- title: SDB Debug Premium
path: sdb-debug-premium
icon: mdi:bug
cards:
- type: vertical-stack
cards:
- type: custom:mushroom-title-card
title: SDB Réglages & Debug
subtitle: Confort, humidité, surplus, EVCS
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-chips-card
chips:
- type: entity
entity: input_text.sdb_climate_surplus_state
name: State
- type: entity
entity: switch.sdb_prise_socket_1
name: Master
- type: entity
entity: switch.deshumide_sdb_socket_1
name: Déshumide
- type: entity
entity: switch.sdb_radiateur_socket_1
name: Radiateur
- type: entity
entity: input_boolean.victron_evcs_priority_active
name: EVCS
icon_color: >-
{% if is_state('input_boolean.victron_evcs_priority_active','on') %}
red
{% else %}
grey
{% endif %}
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-template-card
entity: input_text.sdb_climate_surplus_state
primary: >-
SDB : {{ states('input_text.sdb_climate_surplus_state') }}
secondary: >-
{{ states('input_text.sdb_climate_surplus_reason') }}
icon: mdi:shower-head
icon_color: >-
{% set s = states('input_text.sdb_climate_surplus_state') %}
{% if 'blocked' in s or 'disabled' in s %}
red
{% elif 'wait' in s %}
orange
{% elif s in ['deshumide_on','radiator_on','deshumide_and_radiator_on'] %}
green
{% else %}
grey
{% endif %}
multiline_secondary: true
- type: custom:mushroom-title-card
title: Capteurs SDB
subtitle: Température, humidité, prises, énergie
- type: grid
columns: 2
square: false
cards:
- type: custom:mushroom-entity-card
entity: sensor.sdb_temp_hygro_temperature
name: Température SDB
icon: mdi:thermometer
- type: custom:mushroom-entity-card
entity: sensor.sdb_temp_hygro_humidite
name: Humidité SDB
icon: mdi:water-percent
- type: custom:mushroom-entity-card
entity: switch.sdb_prise_socket_1
name: Master SDB
icon: mdi:power-plug
- type: custom:mushroom-entity-card
entity: sensor.sdb_prise_energie_totale
name: Énergie master
icon: mdi:counter
- type: custom:mushroom-entity-card
entity: switch.deshumide_sdb_socket_1
name: Déshumidificateur
icon: mdi:air-humidifier-off
- type: custom:mushroom-entity-card
entity: sensor.deshumide_sdb_energie_totale
name: Énergie déshumide
icon: mdi:counter
- type: custom:mushroom-entity-card
entity: switch.sdb_radiateur_socket_1
name: Radiateur
icon: mdi:radiator
- type: custom:mushroom-entity-card
entity: sensor.sdb_radiateur_energie_totale
name: Énergie radiateur
icon: mdi:counter
- type: custom:mushroom-title-card
title: Contexte énergie
subtitle: Ce que voit le compute
- type: grid
columns: 2
square: false
cards:
- type: custom:mushroom-entity-card
entity: sensor.victron_battery_soc
name: SOC batterie
icon: mdi:battery
- type: custom:mushroom-entity-card
entity: sensor.victron_battery_current
name: Courant batterie
icon: mdi:current-dc
- type: custom:mushroom-entity-card
entity: sensor.victron_pv_power_system
name: PV instantané
icon: mdi:solar-power
- type: custom:mushroom-entity-card
entity: sensor.victron_pv_power_10m_avg
name: PV moyen 10 min
icon: mdi:chart-bell-curve
- type: custom:mushroom-entity-card
entity: sensor.victron_consumption_power_l1
name: Charge maison
icon: mdi:home-lightning-bolt
- type: custom:mushroom-entity-card
entity: sensor.victron_grid_power_l1
name: Réseau
icon: mdi:transmission-tower
- type: custom:mushroom-entity-card
entity: switch.edf_general_ok_switch
name: Commande EDF
icon: mdi:flash
- type: custom:mushroom-entity-card
entity: sensor.victron_ac_in1_available
name: AC-IN dispo
icon: mdi:power-plug
- type: custom:mushroom-title-card
title: Sortie automate
subtitle: State, raison, mémoire
- type: custom:vertical-stack-in-card
cards:
- type: entities
entities:
- entity: input_text.sdb_climate_surplus_state
name: State
- entity: input_text.sdb_climate_surplus_reason
name: Reason
- entity: input_text.sdb_climate_surplus_last_signature
name: Signature
- entity: input_boolean.sdb_master_power_latch
name: Latch master
- entity: input_boolean.sdb_deshumide_latch
name: Latch déshumide
- entity: input_boolean.sdb_radiator_latch
name: Latch radiateur
- entity: input_datetime.sdb_master_last_on_at
name: Master dernier ON
- entity: input_datetime.sdb_master_last_off_at
name: Master dernier OFF
- entity: input_datetime.sdb_deshumide_last_on_at
name: Déshumide dernier ON
- entity: input_datetime.sdb_deshumide_last_off_at
name: Déshumide dernier OFF
- entity: input_datetime.sdb_radiator_last_on_at
name: Radiateur dernier ON
- entity: input_datetime.sdb_radiator_last_off_at
name: Radiateur dernier OFF
- type: custom:mushroom-title-card
title: Réglages confort SDB
subtitle: Température et humidité
- type: custom:vertical-stack-in-card
cards:
- type: entities
entities:
- entity: input_boolean.sdb_climate_surplus_auto_enabled
name: Auto SDB
- entity: input_boolean.sdb_climate_surplus_notifications
name: Notifications
- entity: input_boolean.sdb_master_manual_adopt_enabled
name: Adoption manuelle
- entity: input_number.sdb_temp_on_min_c
name: Temp ON mini
- entity: input_number.sdb_temp_off_max_c
name: Temp OFF maxi
- entity: input_number.sdb_humidity_on_pct
name: Humidité ON
- entity: input_number.sdb_humidity_off_pct
name: Humidité OFF
- entity: input_number.sdb_deshumide_min_on_minutes
name: Déshumide min ON
- entity: input_number.sdb_deshumide_min_off_minutes
name: Déshumide min OFF
- type: custom:mushroom-title-card
title: Réglages radiateur surplus
subtitle: Chauffage flexible SDB
- type: custom:vertical-stack-in-card
cards:
- type: entities
entities:
- entity: input_boolean.sdb_radiator_surplus_auto_enabled
name: Auto radiateur
- entity: input_number.sdb_radiator_soc_on
name: SOC ON
- entity: input_number.sdb_radiator_soc_off
name: SOC OFF
- entity: input_number.sdb_radiator_pv_on_w
name: PV ON
- entity: input_number.sdb_radiator_pv_off_w
name: PV OFF
- entity: input_number.sdb_radiator_battery_charge_ceiling_a
name: Plafond charge batterie
- entity: input_number.sdb_radiator_house_ac_max_w
name: Charge maison max
- entity: input_number.sdb_radiator_min_on_minutes
name: Radiateur min ON
- entity: input_number.sdb_radiator_min_off_minutes
name: Radiateur min OFF
- entity: input_datetime.victron_flexible_day_start_time
name: Début fenêtre
- entity: input_datetime.victron_flexible_day_stop_time
name: Fin fenêtre
- type: custom:mushroom-title-card
title: Intégration EVCS
subtitle: Arbitrage global
- type: custom:vertical-stack-in-card
cards:
- type: entities
entities:
- entity: input_boolean.victron_evcs_priority_active
name: EVCS prioritaire
- entity: input_select.victron_energy_priority_mode
name: Mode priorité énergie
- entity: input_text.victron_energy_priority_reason
name: Raison priorité
- entity: input_datetime.victron_evcs_priority_until
name: Priorité jusqu'à
- type: history-graph
title: Température / Humidité
hours_to_show: 24
refresh_interval: 60
entities:
- entity: sensor.sdb_temp_hygro_temperature
name: Température
- entity: sensor.sdb_temp_hygro_humidite
name: Humidité
- type: history-graph
title: SDB / énergie / états
hours_to_show: 24
refresh_interval: 60
entities:
- entity: switch.deshumide_sdb_socket_1
name: Déshumide
- entity: switch.sdb_radiateur_socket_1
name: Radiateur
- entity: switch.sdb_prise_socket_1
name: Master
- entity: sensor.victron_pv_power_10m_avg
name: PV 10 min
- entity: input_boolean.victron_evcs_priority_active
name: EVCS

View File

@@ -0,0 +1,215 @@
title: SDB Premium Pilotage
views:
- title: SDB Premium
path: sdb-premium
icon: mdi:shower-head
cards:
- type: vertical-stack
cards:
- type: custom:mushroom-title-card
title: Salle de bain
subtitle: Pilotage confort / humidité / surplus
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-chips-card
chips:
- type: entity
entity: switch.sdb_prise_socket_1
name: Master
icon_color: >-
{% if is_state('switch.sdb_prise_socket_1','on') %}
green
{% else %}
grey
{% endif %}
- type: entity
entity: switch.deshumide_sdb_socket_1
name: Déshumide
icon_color: >-
{% if is_state('switch.deshumide_sdb_socket_1','on') %}
blue
{% else %}
grey
{% endif %}
- type: entity
entity: switch.sdb_radiateur_socket_1
name: Radiateur
icon_color: >-
{% if is_state('switch.sdb_radiateur_socket_1','on') %}
orange
{% else %}
grey
{% endif %}
- type: entity
entity: input_boolean.sdb_climate_surplus_auto_enabled
name: Auto
icon_color: >-
{% if is_state('input_boolean.sdb_climate_surplus_auto_enabled','on') %}
green
{% else %}
grey
{% endif %}
- type: entity
entity: input_boolean.victron_evcs_priority_active
name: EVCS
icon_color: >-
{% if is_state('input_boolean.victron_evcs_priority_active','on') %}
red
{% else %}
grey
{% endif %}
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-template-card
entity: input_text.sdb_climate_surplus_state
primary: >-
SDB : {{ states('input_text.sdb_climate_surplus_state') }}
secondary: >-
{{ states('input_text.sdb_climate_surplus_reason') }}
icon: mdi:shower-head
icon_color: >-
{% set s = states('input_text.sdb_climate_surplus_state') %}
{% if 'blocked' in s or 'disabled' in s %}
red
{% elif 'wait' in s %}
orange
{% elif s in ['deshumide_on','radiator_on','deshumide_and_radiator_on'] %}
green
{% else %}
grey
{% endif %}
multiline_secondary: true
- type: grid
columns: 2
square: false
cards:
- type: custom:mushroom-entity-card
entity: sensor.sdb_temp_hygro_temperature
name: Température
icon: mdi:thermometer
icon_color: blue
- type: custom:mushroom-entity-card
entity: sensor.sdb_temp_hygro_humidite
name: Humidité
icon: mdi:water-percent
icon_color: cyan
- type: custom:mushroom-entity-card
entity: sensor.victron_battery_soc
name: SOC batterie
icon: mdi:battery
icon_color: green
- type: custom:mushroom-entity-card
entity: sensor.victron_pv_power_10m_avg
name: PV moyen 10 min
icon: mdi:solar-power
icon_color: amber
- type: conditional
conditions:
- entity: input_boolean.victron_evcs_priority_active
state: "on"
card:
type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-template-card
entity: input_boolean.victron_evcs_priority_active
primary: Priorité EVCS active
secondary: >-
{{ states('input_text.victron_energy_priority_reason') }}
{% set until = states('input_datetime.victron_evcs_priority_until') %}
{% if until not in ['unknown','unavailable',''] %}
• jusqu'à {{ until }}
{% endif %}
icon: mdi:car-electric
icon_color: red
multiline_secondary: true
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-title-card
title: Commandes rapides
subtitle: Usage quotidien
- type: grid
columns: 2
square: false
cards:
- type: custom:mushroom-entity-card
entity: input_boolean.sdb_climate_surplus_auto_enabled
name: Auto SDB
icon: mdi:robot
tap_action:
action: toggle
icon_color: >-
{% if is_state('input_boolean.sdb_climate_surplus_auto_enabled','on') %}
green
{% else %}
grey
{% endif %}
- type: custom:mushroom-entity-card
entity: input_boolean.sdb_climate_surplus_notifications
name: Notifications
icon: mdi:bell
tap_action:
action: toggle
icon_color: >-
{% if is_state('input_boolean.sdb_climate_surplus_notifications','on') %}
amber
{% else %}
grey
{% endif %}
- type: custom:mushroom-entity-card
entity: input_boolean.sdb_master_manual_adopt_enabled
name: Adoption manuelle
icon: mdi:hand-back-right
tap_action:
action: toggle
icon_color: >-
{% if is_state('input_boolean.sdb_master_manual_adopt_enabled','on') %}
orange
{% else %}
grey
{% endif %}
- type: custom:mushroom-entity-card
entity: input_boolean.sdb_radiator_surplus_auto_enabled
name: Auto radiateur
icon: mdi:radiator
tap_action:
action: toggle
icon_color: >-
{% if is_state('input_boolean.sdb_radiator_surplus_auto_enabled','on') %}
orange
{% else %}
grey
{% endif %}
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-title-card
title: Détail rapide
subtitle: Lecture immédiate
- type: entities
entities:
- entity: input_text.sdb_climate_surplus_reason
name: Raison
- entity: input_boolean.sdb_master_power_latch
name: Latch master
- entity: input_boolean.sdb_deshumide_latch
name: Latch déshumide
- entity: input_boolean.sdb_radiator_latch
name: Latch radiateur
- entity: input_datetime.sdb_deshumide_last_on_at
name: Déshumide dernier ON
- entity: input_datetime.sdb_radiator_last_on_at
name: Radiateur dernier ON

1096
dashboards/big_victron_debug.yaml Executable file

File diff suppressed because it is too large Load Diff

520
dashboards/evcs_master.yaml Executable file
View File

@@ -0,0 +1,520 @@
views:
- title: EVCS Master
path: default_view
icon: mdi:car-electric
cards:
- type: vertical-stack
cards:
- type: custom:mushroom-title-card
title: EVCS Master
subtitle: Vue borne / session / stratégie / énergie
- type: conditional
conditions:
- entity: binary_sensor.victron_evcs_vehicle_connected
state: "off"
card:
type: markdown
content: |
## ℹ️ Véhicule non détecté
- type: conditional
conditions:
- entity: binary_sensor.victron_evcs_vehicle_connected
state: "on"
- entity: switch.victron_evcs_charging
state: "off"
card:
type: markdown
content: |
## ⚠️ Véhicule connecté mais charge inactive
- type: conditional
conditions:
- entity: switch.victron_evcs_charging
state: "on"
card:
type: markdown
content: |
## ✅ Charge EVCS active
- type: custom:layout-card
layout_type: grid
layout:
grid-template-columns: repeat(auto-fit, minmax(380px, 1fr))
grid-gap: 16px
margin: 0
cards:
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-title-card
title: État borne
subtitle: Statut global
- type: custom:mushroom-template-card
entity: sensor.victron_evcs_statut_fr
primary: EVCS
secondary: >
{{ states('sensor.victron_evcs_statut_fr') }}
• Mode {{ states('sensor.victron_evcs_mode_fr') }}
• {{ states('sensor.victron_evcs_current') | float(0) | round(1) }} A
multiline_secondary: true
icon: mdi:ev-station
icon_color: >
{% if is_state('switch.victron_evcs_charging', 'on') %}
green
{% elif is_state('binary_sensor.victron_evcs_vehicle_connected', 'on') %}
blue
{% else %}
grey
{% endif %}
- type: entities
show_header_toggle: false
entities:
- entity: sensor.victron_evcs_statut_fr
name: Statut FR
- entity: sensor.victron_evcs_mode_fr
name: Mode FR
- entity: sensor.victron_evcs_status_raw
name: Statut brut
- entity: sensor.victron_evcs_mode_raw
name: Mode brut
- entity: binary_sensor.victron_evcs_device_connected
name: EVCS détecté
- entity: binary_sensor.victron_evcs_vehicle_connected
name: Véhicule connecté
- entity: sensor.victron_evcs_charging_time
name: Durée charge
- entity: input_boolean.victron_evcs_surplus_auto_enabled
name: Contrôleur surplus actif
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-title-card
title: Session
subtitle: Courant / puissance / énergie
- type: custom:gauge-card-pro
entity: sensor.victron_evcs_current
header: Courant EVCS
min: 0
max: 32
needle: true
segments:
- from: 0
color: "#43a047"
- from: 6
color: "#fdd835"
- from: 16
color: "#fb8c00"
- from: 24
color: "#e53935"
- type: custom:mushroom-template-card
primary: Session en cours
secondary: >
{{ states('sensor.victron_evcs_ac_power') | float(0) | round(0) }} W
• {{ states('sensor.victron_evcs_current') | float(0) | round(1) }} A
• Consigne {{ states('sensor.victron_evcs_set_current') | float(0) | round(1) }} A
• {{ states('sensor.victron_evcs_charging_time') }}
multiline_secondary: true
icon: mdi:flash
icon_color: amber
- type: entities
show_header_toggle: false
entities:
- entity: sensor.victron_evcs_ac_power
name: Puissance EVCS
- entity: sensor.victron_evcs_l1_power
name: Puissance L1
- entity: sensor.victron_evcs_current
name: Courant réel
- entity: sensor.victron_evcs_set_current
name: Consigne lue
- entity: number.victron_evcs_set_current_command
name: Consigne envoyée
- entity: sensor.victron_evcs_charging_time
name: Durée charge
- entity: sensor.victron_evcs_l1_energy_forward
name: Énergie session
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-title-card
title: Stratégie & décision
subtitle: Mode utilisateur / logique n8n
- type: custom:mushroom-template-card
primary: Mode utilisateur
secondary: >
Stratégie : {{ states('input_select.victron_evcs_strategy') }}
• Profil : {{ states('input_text.victron_evcs_operating_mode') }}
• Décision : {{ states('input_text.victron_evcs_surplus_current_decision') }}
• Source : {{ states('input_text.victron_evcs_source_mode') }}
multiline_secondary: true
icon: mdi:strategy
icon_color: >
{% if is_state('input_select.victron_evcs_strategy', 'force_grid_now') %}
red
{% elif is_state('input_select.victron_evcs_strategy', 'force_charge_now') %}
orange
{% elif is_state('input_select.victron_evcs_strategy', 'auto_solar_plus') %}
green
{% elif is_state('input_select.victron_evcs_strategy', 'auto_solar') %}
teal
{% else %}
grey
{% endif %}
- type: custom:mushroom-template-card
primary: Besoin véhicule
secondary: >
Véhicule : {{ states('input_select.victron_evcs_target_vehicle') }}
• {{ states('input_number.victron_evcs_required_energy_kwh') | float(0) | round(1) }} kWh
• Départ : {{ states('input_datetime.victron_evcs_departure_time') }}
multiline_secondary: true
icon: mdi:calendar-clock
icon_color: cyan
- type: entities
title: Paramètres utilisateur
show_header_toggle: false
entities:
- entity: input_select.victron_evcs_vehicle
name: Véhicule branché (VW/JEEP)
- entity: input_number.victron_evcs_required_energy_kwh
name: Énergie demandée
- entity: input_boolean.victron_evcs_departure_priority_enabled
name: Priorité départ
- entity: input_datetime.victron_evcs_departure_time
name: Heure départ VW
- entity: input_datetime.victron_evcs_departure_time_jeep
name: Heure départ JEEP
- entity: input_boolean.victron_evcs_allow_grid_departure_urgent
name: ⚡ Réseau avant départ (P9)
- entity: input_select.victron_evcs_strategy
name: Stratégie EVCS
- entity: input_boolean.victron_evcs_allow_grid_hc_night
name: Réseau HC nuit
- entity: input_boolean.victron_evcs_allow_grid_hc_midday
name: Réseau HC midi
- entity: input_boolean.victron_evcs_surplus_auto_enabled
name: Contrôleur surplus actif
- type: entities
title: Décision contrôleur
show_header_toggle: false
entities:
- entity: input_text.victron_evcs_operating_mode
name: Profil actif
- entity: input_text.victron_evcs_surplus_state
name: État interne
- entity: input_text.victron_evcs_surplus_current_decision
name: Décision logique
- entity: input_text.victron_evcs_source_mode
name: Source autorisée
- entity: input_text.victron_evcs_surplus_reason
name: Raison courte
- entity: input_text.victron_evcs_last_block_reason
name: Dernier blocage
- entity: input_datetime.victron_evcs_blocked_until
name: Bloqué jusqu'à
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-title-card
title: Contexte énergie
subtitle: Batterie / PV / maison / réseau
- type: custom:mushroom-template-card
primary: Contexte instantané
secondary: >
SOC {{ states('sensor.victron_battery_soc') | float(0) | round(1) }} %
• PV {{ states('sensor.victron_pv_power_system') | float(0) | round(0) }} W
• Maison {{ states('sensor.victron_consumption_power_l1') | float(0) | round(0) }} W
• Grid {{ states('sensor.victron_grid_power_l1') | float(0) | round(0) }} W
multiline_secondary: true
icon: mdi:home-lightning-bolt
icon_color: >
{% set pv = states('sensor.victron_pv_power_system') | float(0) %}
{% if pv < 300 %} grey
{% elif pv < 1500 %} yellow
{% else %} green
{% endif %}
- type: entities
show_header_toggle: false
entities:
- entity: sensor.victron_battery_soc
name: SOC batterie
- entity: sensor.victron_battery_current
name: Courant batterie
- entity: sensor.victron_pv_power_system
name: Puissance PV
- entity: sensor.victron_consumption_power_l1
name: Charges maison
- entity: sensor.victron_grid_power_l1
name: Puissance réseau
- entity: switch.edf_general_ok_switch
name: Réseau EDF
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-title-card
title: Actions rapides
subtitle: Contrôle direct EVCS
- type: grid
columns: 2
square: false
cards:
- type: custom:button-card
entity: switch.victron_evcs_charging
name: Charge
icon: mdi:ev-station
show_state: true
state_display: >
[[[
if (!entity) return 'Inconnu';
if (entity.state === 'on') return 'ON';
if (entity.state === 'off') return 'OFF';
return entity.state;
]]]
tap_action:
action: toggle
hold_action:
action: more-info
styles:
card:
- border-radius: 18px
- padding: 12px
name:
- font-size: 15px
- font-weight: 600
state:
- font-size: 12px
state:
- value: "on"
color: "#43a047"
- value: "off"
color: "#757575"
- type: custom:button-card
entity: input_boolean.victron_evcs_surplus_auto_enabled
name: Contrôleur surplus
icon: mdi:robot
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
styles:
card:
- border-radius: 18px
- padding: 12px
name:
- font-size: 15px
- font-weight: 600
state:
- font-size: 12px
state:
- value: "on"
color: "#26a69a"
- value: "off"
color: "#757575"
- type: custom:button-card
entity: binary_sensor.victron_evcs_vehicle_connected
name: Véhicule
icon: mdi:car-electric
show_state: true
tap_action:
action: more-info
styles:
card:
- border-radius: 18px
- padding: 12px
name:
- font-size: 15px
- font-weight: 600
state:
- font-size: 12px
state:
- value: "on"
color: "#1e88e5"
- value: "off"
color: "#757575"
- type: custom:button-card
entity: number.victron_evcs_set_current_command
name: Courant demandé
icon: mdi:current-ac
show_state: true
tap_action:
action: more-info
hold_action:
action: more-info
styles:
card:
- border-radius: 18px
- padding: 12px
name:
- font-size: 15px
- font-weight: 600
state:
- font-size: 12px
- type: entities
title: Commandes manuelles
show_header_toggle: false
entities:
- entity: switch.victron_evcs_charging
name: Start / Stop charge
- entity: number.victron_evcs_set_current_command
name: Courant demandé
- entity: input_boolean.victron_evcs_charge_permission_now
name: Permission charge
- entity: input_boolean.victron_evcs_control_latch
name: Latch contrôle
- entity: switch.victron_evcs_auto_start
name: Auto Start borne (diagnostic)
- type: horizontal-stack
cards:
- type: button
entity: script.evcs_boost_edf
name: ⚡ BOOST EDF 28A
icon: mdi:flash
icon_height: 60px
tap_action:
action: call-service
service: script.turn_on
target:
entity_id: script.evcs_boost_edf
- type: button
entity: script.evcs_boost_off
name: Retour normal
icon: mdi:flash-off
icon_height: 60px
tap_action:
action: call-service
service: script.turn_on
target:
entity_id: script.evcs_boost_off
- type: entities
title: Plafonds courant EVCS
show_header_toggle: false
entities:
- entity: input_number.evcs_plafond_courant_edf_on
name: Plafond EDF ON (tous modes)
- entity: input_number.victron_evcs_current_max_auto_a
name: Plafond modes auto
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-title-card
title: Diagnostic
subtitle: Identité / version / brut
- type: entities
show_header_toggle: false
entities:
- entity: sensor.victron_evcs_product_name
name: Produit
- entity: sensor.victron_evcs_custom_name
name: Nom borne
- entity: sensor.victron_evcs_serial
name: Numéro de série
- entity: sensor.victron_evcs_firmware_version
name: Firmware
- entity: sensor.victron_evcs_connected_raw
name: Connected brut
- entity: sensor.victron_evcs_status_raw
name: Statut brut
- entity: sensor.victron_evcs_mode_raw
name: Mode brut
- entity: switch.victron_evcs_auto_start
name: Auto Start borne
- entity: input_datetime.victron_evcs_last_start_at
name: Dernier start
- entity: input_datetime.victron_evcs_last_stop_at
name: Dernier stop
- entity: input_datetime.victron_evcs_last_current_change_at
name: Dernier changement courant
- entity: input_datetime.victron_evcs_probe_started_at
name: Début probe
- entity: input_datetime.victron_evcs_cloud_debt_started_at
name: Début cloud debt
- entity: input_number.victron_evcs_cloud_debt_kwh
name: Cloud debt
- entity: input_text.victron_evcs_control_last_signature
name: Signature
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-title-card
title: Historique EVCS
subtitle: 12 dernières heures
- type: custom:apexcharts-card
graph_span: 12h
header:
show: true
title: Session EVCS
show_states: false
series:
- entity: sensor.victron_evcs_current
name: Courant EVCS
color: "#42a5f5"
- entity: sensor.victron_evcs_set_current
name: Consigne lue
color: "#ffca28"
- entity: sensor.victron_evcs_ac_power
name: Puissance EVCS
color: "#66bb6a"
- entity: sensor.victron_pv_power_system
name: PV
color: "#fdd835"
- entity: sensor.victron_grid_power_l1
name: Réseau
color: "#ef5350"
- type: vertical-stack
cards:
- type: custom:mushroom-title-card
title: 🤖 Conseiller IA (observateur)
subtitle: Il regarde et signale — il ne décide rien
- type: entities
title: Dernière observation
entities:
- entity: input_text.evcs_advisor_gravite
name: Gravité
icon: mdi:alert-circle-outline
- entity: input_text.evcs_advisor_constat
name: Ce qu'il voit
icon: mdi:eye-outline
- entity: input_text.evcs_advisor_ce_qui_cloche
name: Ce qui cloche
icon: mdi:help-rhombus-outline
- entity: input_text.evcs_advisor_reason
name: Piste (et sa confiance)
icon: mdi:magnify
- type: divider
- entity: input_text.evcs_advisor_status
name: Statut
- entity: input_text.evcs_advisor_model
name: Modèle LLM
- entity: input_text.evcs_advisor_last_run
name: Dernière analyse
- entity: input_number.evcs_advisor_agree_count
name: Cycles calmes
- entity: input_number.evcs_advisor_diverge_count
name: Signalements
- type: divider
- entity: input_boolean.evcs_advisor_enabled
name: Conseiller actif (kill-switch)

310
dashboards/evcs_mobile.yaml Executable file
View File

@@ -0,0 +1,310 @@
views:
- title: EVCS Mobile
path: default_view
icon: mdi:car-electric
cards:
- type: vertical-stack
cards:
- type: custom:mushroom-title-card
title: EVCS Mobile
subtitle: Vue rapide borne / session / énergie
- type: conditional
conditions:
- entity: binary_sensor.victron_evcs_vehicle_connected
state: "off"
card:
type: markdown
content: |
## ℹ️ Véhicule non détecté
- type: conditional
conditions:
- entity: binary_sensor.victron_evcs_vehicle_connected
state: "on"
- entity: switch.victron_evcs_charging
state: "off"
card:
type: markdown
content: |
## ⚠️ Véhicule connecté mais charge inactive
- type: conditional
conditions:
- entity: switch.victron_evcs_charging
state: "on"
card:
type: markdown
content: |
## ✅ Charge EVCS active
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-template-card
entity: sensor.victron_evcs_status
primary: EVCS
secondary: >
{{ states('sensor.victron_evcs_status') }}
• Mode {{ states('sensor.victron_evcs_mode') }}
• {{ states('sensor.victron_evcs_current') | float(0) | round(1) }} A
multiline_secondary: true
icon: mdi:ev-station
icon_color: >
{% if is_state('switch.victron_evcs_charging', 'on') %}
green
{% elif is_state('binary_sensor.victron_evcs_vehicle_connected', 'on') %}
blue
{% else %}
grey
{% endif %}
- type: entities
show_header_toggle: false
entities:
- entity: sensor.victron_evcs_mode
name: Mode borne
- entity: sensor.victron_evcs_status_raw
name: Statut brut
- entity: binary_sensor.victron_evcs_device_connected
name: EVCS détecté
- entity: binary_sensor.victron_evcs_vehicle_connected
name: Véhicule connecté
- entity: sensor.victron_evcs_charging_time
name: Durée charge
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-title-card
title: Session
subtitle: Puissance / courant / énergie
- type: custom:mushroom-template-card
primary: Session en cours
secondary: >
{{ states('sensor.victron_evcs_ac_power') | float(0) | round(0) }} W
• {{ states('sensor.victron_evcs_current') | float(0) | round(1) }} A
• {{ states('sensor.victron_evcs_l1_energy_forward') | float(0) | round(2) }} kWh
multiline_secondary: true
icon: mdi:flash
icon_color: amber
- type: entities
show_header_toggle: false
entities:
- entity: sensor.victron_evcs_ac_power
name: Puissance EVCS
- entity: sensor.victron_evcs_l1_power
name: Puissance L1
- entity: sensor.victron_evcs_current
name: Courant réel
- entity: sensor.victron_evcs_set_current
name: Consigne lue
- entity: number.victron_evcs_set_current_command
name: Consigne envoyée
- entity: sensor.victron_evcs_l1_energy_forward
name: Énergie session
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-title-card
title: Actions rapides
subtitle: Contrôle direct
- type: grid
columns: 2
square: false
cards:
- type: custom:button-card
entity: switch.victron_evcs_charging
name: Charge
icon: mdi:ev-station
show_state: true
state_display: >
[[[
if (!entity) return 'Inconnu';
if (entity.state === 'on') return 'ON';
if (entity.state === 'off') return 'OFF';
return entity.state;
]]]
tap_action:
action: toggle
hold_action:
action: more-info
styles:
card:
- border-radius: 18px
- padding: 12px
name:
- font-size: 15px
- font-weight: 600
state:
- font-size: 12px
state:
- value: "on"
color: "#43a047"
- value: "off"
color: "#757575"
- type: custom:button-card
entity: switch.victron_evcs_auto_start
name: Auto Start
icon: mdi:auto-mode
show_state: true
state_display: >
[[[
if (!entity) return 'Inconnu';
if (entity.state === 'on') return 'ON';
if (entity.state === 'off') return 'OFF';
return entity.state;
]]]
tap_action:
action: toggle
hold_action:
action: more-info
styles:
card:
- border-radius: 18px
- padding: 12px
name:
- font-size: 15px
- font-weight: 600
state:
- font-size: 12px
state:
- value: "on"
color: "#42a5f5"
- value: "off"
color: "#757575"
- type: custom:button-card
entity: binary_sensor.victron_evcs_vehicle_connected
name: Véhicule
icon: mdi:car-electric
show_state: true
tap_action:
action: more-info
styles:
card:
- border-radius: 18px
- padding: 12px
name:
- font-size: 15px
- font-weight: 600
state:
- font-size: 12px
state:
- value: "on"
color: "#1e88e5"
- value: "off"
color: "#757575"
- type: custom:button-card
entity: number.victron_evcs_set_current_command
name: Courant
icon: mdi:current-ac
show_state: true
tap_action:
action: more-info
hold_action:
action: more-info
styles:
card:
- border-radius: 18px
- padding: 12px
name:
- font-size: 15px
- font-weight: 600
state:
- font-size: 12px
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-title-card
title: Stratégie
subtitle: Besoin véhicule / départ
- type: custom:mushroom-template-card
primary: Départ & besoin
secondary: >
Véhicule {{ states('input_select.victron_evcs_target_vehicle') }}
• Besoin {{ states('input_number.victron_evcs_required_energy_kwh') | float(0) | round(1) }} kWh
• Départ {{ states('input_datetime.victron_evcs_departure_time') }}
multiline_secondary: true
icon: mdi:calendar-clock
icon_color: cyan
- type: entities
show_header_toggle: false
entities:
- entity: input_select.victron_evcs_target_vehicle
name: Véhicule cible
- entity: input_number.victron_evcs_required_energy_kwh
name: Énergie demandée
- entity: input_boolean.victron_evcs_departure_priority_enabled
name: Priorité départ
- entity: input_datetime.victron_evcs_departure_time
name: Heure départ
- entity: input_boolean.victron_advice_evcs_ok
name: EVCS OK selon advisor
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-title-card
title: Contexte énergie
subtitle: Batterie / PV / maison / réseau
- type: custom:mushroom-template-card
primary: Contexte instantané
secondary: >
SOC {{ states('sensor.victron_battery_soc') | float(0) | round(1) }} %
• PV {{ states('sensor.victron_pv_power_system') | float(0) | round(0) }} W
• Maison {{ states('sensor.victron_consumption_power_l1') | float(0) | round(0) }} W
• Grid {{ states('sensor.victron_grid_power_l1') | float(0) | round(0) }} W
multiline_secondary: true
icon: mdi:home-lightning-bolt
icon_color: >
{% set pv = states('sensor.victron_pv_power_system') | float(0) %}
{% if pv < 300 %} grey
{% elif pv < 1500 %} yellow
{% else %} green
{% endif %}
- type: entities
show_header_toggle: false
entities:
- entity: sensor.victron_battery_soc
name: SOC batterie
- entity: sensor.victron_battery_current
name: Courant batterie
- entity: sensor.victron_pv_power_system
name: Puissance PV
- entity: sensor.victron_consumption_power_l1
name: Charges maison
- entity: sensor.victron_grid_power_l1
name: Puissance réseau
- entity: switch.edf_general_ok_switch
name: Réseau EDF
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-title-card
title: Historique court
subtitle: 6 dernières heures
- type: custom:apexcharts-card
graph_span: 6h
header:
show: true
title: Session EVCS
show_states: false
series:
- entity: sensor.victron_evcs_current
name: Courant EVCS
color: "#42a5f5"
- entity: sensor.victron_evcs_set_current
name: Consigne lue
color: "#ffca28"
- entity: sensor.victron_evcs_ac_power
name: Puissance EVCS
color: "#66bb6a"

124
dashboards/test_cards.yaml Executable file
View File

@@ -0,0 +1,124 @@
views:
- title: Test Cards
path: default_view
icon: mdi:test-tube
cards:
- type: markdown
content: |
## Test cartes custom
Ce dashboard sert uniquement à valider les cartes HACS.
Si une carte plante ici, elle ne casse pas le Master.
- type: custom:mushroom-template-card
entity: sensor.victron_battery_soc
primary: Batterie
secondary: >
SOC {{ states('sensor.victron_battery_soc') | float(0) | round(1) }} %
• {{ states('sensor.victron_battery_power') | float(0) | round(0) }} W
multiline_secondary: true
icon: mdi:battery
icon_color: >
{% set s = states('sensor.victron_battery_soc') | float(0) %}
{% if s < 25 %} red
{% elif s < 50 %} orange
{% elif s < 75 %} yellow
{% else %} green
{% endif %}
- type: custom:button-card
entity: switch.victron_evcs_charging
name: EVCS Charge
icon: mdi:ev-station
show_state: true
state_display: >
[[[
if (!entity) return 'Inconnu';
if (entity.state === 'on') return 'ON';
if (entity.state === 'off') return 'OFF';
return entity.state;
]]]
tap_action:
action: more-info
hold_action:
action: more-info
styles:
card:
- border-radius: 18px
- padding: 14px
name:
- font-size: 16px
- font-weight: 600
state:
- font-size: 13px
state:
- value: "on"
color: "#43a047"
- value: "off"
color: "#757575"
- type: custom:layout-card
layout_type: grid
layout:
grid-template-columns: 1fr 1fr
grid-gap: 16px
margin: 0
cards:
- type: tile
entity: sensor.victron_pv_power_system
name: Test Layout - PV
- type: tile
entity: sensor.victron_consumption_power_l1
name: Test Layout - Maison
- type: markdown
content: |
**Card-mod OK si cette carte a une bordure bleue arrondie**
card_mod:
style: |
ha-card {
border: 2px solid #42a5f5;
border-radius: 16px;
padding: 8px;
}
- type: tile
entity: sensor.victron_pv_power_system
name: PV instantané
vertical: false
- type: custom:apexcharts-card
graph_span: 6h
header:
show: true
title: Flux énergie
show_states: false
series:
- entity: sensor.victron_pv_power_system
name: PV
color: "#fdd835"
- entity: sensor.victron_consumption_power_l1
name: Maison
color: "#42a5f5"
- entity: sensor.victron_grid_power_l1
name: Réseau
color: "#ef5350"
- entity: sensor.victron_battery_power
name: Batterie
color: "#ab47bc"
- type: custom:gauge-card-pro
entity: sensor.victron_battery_soc
header: Test Gauge Card Pro
min: 0
max: 100
needle: true
segments:
- from: 0
color: "#f44336"
- from: 25
color: "#ff9800"
- from: 50
color: "#ffeb3b"
- from: 75
color: "#4caf50"

1040
dashboards/victron_debug.yaml Executable file

File diff suppressed because it is too large Load Diff

367
dashboards/victron_master.yaml Executable file
View File

@@ -0,0 +1,367 @@
views:
- title: Master
path: default_view
icon: mdi:home-battery
cards:
- type: vertical-stack
cards:
- type: custom:mushroom-title-card
title: Victron Master
subtitle: Vue premium de synthèse énergie / pilotage
- type: conditional
conditions:
- entity: input_boolean.victron_auto_charge_enabled
state: "off"
card:
type: markdown
content: |
## ⚠️ Automatisation batterie désactivée
- type: conditional
conditions:
- entity: input_boolean.victron_charge_override_enabled
state: "on"
card:
type: markdown
content: |
## 🖐️ Override batterie actif
- type: conditional
conditions:
- entity: switch.edf_general_ok_switch
state: "off"
card:
type: markdown
content: |
## ⚠️ Réseau EDF désactivé
- type: custom:layout-card
layout_type: grid
layout:
grid-template-columns: repeat(auto-fit, minmax(360px, 1fr))
grid-gap: 16px
margin: 0
cards:
- type: custom:vertical-stack-in-card
cards:
- type: custom:gauge-card-pro
entity: sensor.victron_battery_soc
header: Batterie
min: 0
max: 100
needle: true
segments:
- from: 0
color: "#f44336"
- from: 25
color: "#fb8c00"
- from: 50
color: "#fdd835"
- from: 75
color: "#43a047"
- type: custom:mushroom-template-card
entity: sensor.victron_battery_soc
primary: Batterie
secondary: >
SOC {{ states('sensor.victron_battery_soc') | float(0) | round(1) }} %
• {{ states('sensor.victron_battery_power') | float(0) | round(0) }} W
• {{ states('input_text.victron_charge_mode') }}
multiline_secondary: true
icon: mdi:battery
icon_color: >
{% set s = states('sensor.victron_battery_soc') | float(0) %}
{% if s < 25 %} red
{% elif s < 50 %} orange
{% elif s < 75 %} yellow
{% else %} green
{% endif %}
- type: entities
show_header_toggle: false
entities:
- entity: sensor.victron_battery_voltage
name: Tension batterie
- entity: sensor.victron_battery_current
name: Courant batterie
- entity: input_text.victron_charge_reason
name: Raison batterie
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-title-card
title: Flux énergie
subtitle: Instantané
- type: custom:mushroom-template-card
primary: Production PV
secondary: >
{{ states('sensor.victron_pv_power_system') | float(0) | round(0) }} W
icon: mdi:solar-power
icon_color: >
{% set pv = states('sensor.victron_pv_power_system') | float(0) %}
{% if pv < 300 %} grey
{% elif pv < 1500 %} yellow
{% else %} green
{% endif %}
- type: custom:mushroom-template-card
primary: Consommation maison
secondary: >
{{ states('sensor.victron_consumption_power_l1') | float(0) | round(0) }} W
icon: mdi:home-lightning-bolt
icon_color: blue
- type: custom:mushroom-template-card
primary: Réseau
secondary: >
{{ states('sensor.victron_grid_power_l1') | float(0) | round(0) }} W
icon: mdi:transmission-tower
icon_color: >
{% set g = states('sensor.victron_grid_power_l1') | float(0) %}
{% if g > 0 %} red
{% elif g < 0 %} green
{% else %} blue
{% endif %}
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-title-card
title: Charges pilotées
subtitle: EVCS / Chauffe-eau / Garage
- type: custom:mushroom-template-card
entity: sensor.victron_evcs_status
primary: EVCS
secondary: >
{{ states('sensor.victron_evcs_status') }}
• Mode {{ states('sensor.victron_evcs_mode') }}
• {{ states('sensor.victron_evcs_current') | float(0) | round(0) }} A
multiline_secondary: true
icon: mdi:ev-station
icon_color: >
{% if is_state('switch.victron_evcs_charging', 'on') %}
green
{% elif is_state('binary_sensor.victron_evcs_vehicle_connected', 'on') %}
blue
{% else %}
grey
{% endif %}
- type: custom:mushroom-template-card
entity: switch.tt_chauffe_eau_pleumeur_switch
primary: Chauffe-eau
secondary: >
Mode recommandé : {{ states('input_select.victron_water_heater_recommended_mode') }}
multiline_secondary: true
icon: mdi:water-boiler
icon_color: >
{% if is_state('switch.tt_chauffe_eau_pleumeur_switch', 'on') %}
orange
{% else %}
grey
{% endif %}
- type: custom:mushroom-template-card
entity: switch.clim_hygro_socket_1
primary: Garage
secondary: >
{{ states('input_text.garage_clim_state') }}
multiline_secondary: true
icon: mdi:air-conditioner
icon_color: >
{% if is_state('switch.clim_hygro_socket_1', 'on') %}
cyan
{% else %}
grey
{% endif %}
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-title-card
title: Pilotage & conseils
subtitle: États système
- type: entities
show_header_toggle: false
entities:
- entity: input_boolean.victron_auto_charge_enabled
name: Automatisation batterie
- entity: input_boolean.victron_charge_override_enabled
name: Override batterie
- entity: input_boolean.victron_flexible_load_advisor_enabled
name: Flexible Load Advisor
- entity: input_boolean.victron_water_heater_advisor_enabled
name: Advisor chauffe-eau
- entity: input_boolean.victron_grid_hysteresis_enabled
name: Hystérésis réseau
- entity: input_text.victron_grid_control_state
name: État réseau
- entity: input_text.victron_flexible_load_state
name: État advisor
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-title-card
title: Actions rapides
subtitle: Contrôle direct
- type: grid
columns: 2
square: false
cards:
- type: custom:button-card
entity: switch.victron_evcs_charging
name: EVCS
icon: mdi:ev-station
show_state: true
state_display: >
[[[
if (!entity) return 'Inconnu';
if (entity.state === 'on') return 'ON';
if (entity.state === 'off') return 'OFF';
return entity.state;
]]]
tap_action:
action: more-info
styles:
card:
- border-radius: 18px
- padding: 12px
name:
- font-size: 15px
- font-weight: 600
state:
- value: "on"
color: "#43a047"
- value: "off"
color: "#757575"
- type: custom:button-card
entity: switch.tt_chauffe_eau_pleumeur_switch
name: Chauffe-eau
icon: mdi:water-boiler
show_state: true
state_display: >
[[[
if (!entity) return 'Inconnu';
if (entity.state === 'on') return 'ON';
if (entity.state === 'off') return 'OFF';
return entity.state;
]]]
tap_action:
action: more-info
styles:
card:
- border-radius: 18px
- padding: 12px
name:
- font-size: 15px
- font-weight: 600
state:
- value: "on"
color: "#fb8c00"
- value: "off"
color: "#757575"
- type: custom:button-card
entity: switch.edf_general_ok_switch
name: Réseau EDF
icon: mdi:transmission-tower
show_state: true
state_display: >
[[[
if (!entity) return 'Inconnu';
if (entity.state === 'on') return 'ON';
if (entity.state === 'off') return 'OFF';
return entity.state;
]]]
tap_action:
action: more-info
styles:
card:
- border-radius: 18px
- padding: 12px
name:
- font-size: 15px
- font-weight: 600
state:
- value: "on"
color: "#42a5f5"
- value: "off"
color: "#e53935"
- type: custom:button-card
entity: switch.clim_hygro_socket_1
name: Garage
icon: mdi:air-conditioner
show_state: true
state_display: >
[[[
if (!entity) return 'Inconnu';
if (entity.state === 'on') return 'ON';
if (entity.state === 'off') return 'OFF';
return entity.state;
]]]
tap_action:
action: more-info
styles:
card:
- border-radius: 18px
- padding: 12px
name:
- font-size: 15px
- font-weight: 600
state:
- value: "on"
color: "#26c6da"
- value: "off"
color: "#757575"
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-title-card
title: Verdict rapide
subtitle: Conseils automatisation
- type: entities
show_header_toggle: false
entities:
- entity: input_boolean.victron_advice_evcs_ok
name: EVCS OK
- entity: input_boolean.victron_advice_water_heater_ok
name: Chauffe-eau OK
- entity: input_boolean.victron_advice_garage_clim_ok
name: Garage OK
- entity: input_boolean.victron_advice_sdb_heater_ok
name: Chauffage SDB OK
- entity: input_select.victron_water_heater_recommended_mode
name: Mode recommandé chauffe-eau
- type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-title-card
title: Historique énergie
subtitle: 8 dernières heures
- type: custom:apexcharts-card
graph_span: 8h
header:
show: true
title: Flux énergie
show_states: false
series:
- entity: sensor.victron_pv_power_system
name: PV
color: "#fdd835"
- entity: sensor.victron_consumption_power_l1
name: Maison
color: "#42a5f5"
- entity: sensor.victron_grid_power_l1
name: Réseau
color: "#ef5350"
- entity: sensor.victron_battery_power
name: Batterie
color: "#ab47bc"

383
dashboards/victron_mobile.yaml Executable file
View File

@@ -0,0 +1,383 @@
views:
- title: Mobile
path: default_view
icon: mdi:cellphone
cards:
- type: vertical-stack
cards:
- type: custom:mushroom-title-card
title: Victron Mobile
subtitle: Vue rapide iPhone / écran étroit
- type: conditional
conditions:
- entity: input_boolean.victron_auto_charge_enabled
state: "off"
card:
type: markdown
content: |
## ⚠️ Auto batterie OFF
- type: conditional
conditions:
- entity: input_boolean.victron_charge_override_enabled
state: "on"
card:
type: markdown
content: |
## 🖐️ Override actif
- type: conditional
conditions:
- entity: switch.edf_general_ok_switch
state: "off"
card:
type: markdown
content: |
## ⚠️ Réseau EDF OFF
- type: custom:vertical-stack-in-card
mode: vertical
card_mod:
style: |
ha-card {
border-radius: 20px;
border: 1px solid rgba(255,255,255,0.10);
box-shadow: 0 6px 16px rgba(0,0,0,0.18);
}
cards:
- type: custom:gauge-card-pro
entity: sensor.victron_battery_soc
header: SOC Batterie
min: 0
max: 100
needle: true
segments:
- from: 0
color: "#f44336"
- from: 25
color: "#fb8c00"
- from: 50
color: "#fdd835"
- from: 75
color: "#43a047"
- type: custom:mushroom-template-card
entity: sensor.victron_battery_soc
primary: Batterie
secondary: >
{{ states('sensor.victron_battery_soc') | float(0) | round(1) }} %
• {{ states('sensor.victron_battery_power') | float(0) | round(0) }} W
• {{ states('input_text.victron_charge_mode') }}
multiline_secondary: true
icon: mdi:battery
icon_color: >
{% set s = states('sensor.victron_battery_soc') | float(0) %}
{% if s < 25 %} red
{% elif s < 50 %} orange
{% elif s < 75 %} yellow
{% else %} green
{% endif %}
- type: custom:vertical-stack-in-card
mode: vertical
card_mod:
style: |
ha-card {
border-radius: 20px;
border: 1px solid rgba(255,255,255,0.10);
box-shadow: 0 6px 16px rgba(0,0,0,0.18);
}
cards:
- type: custom:mushroom-title-card
title: Énergie
subtitle: Instantané
- type: custom:mushroom-template-card
primary: Production PV
secondary: >
{{ states('sensor.victron_pv_power_system') | float(0) | round(0) }} W
icon: mdi:solar-power
icon_color: >
{% set pv = states('sensor.victron_pv_power_system') | float(0) %}
{% if pv < 300 %} grey
{% elif pv < 1500 %} yellow
{% else %} green
{% endif %}
- type: custom:mushroom-template-card
primary: Maison
secondary: >
{{ states('sensor.victron_consumption_power_l1') | float(0) | round(0) }} W
icon: mdi:home-lightning-bolt
icon_color: blue
- type: custom:mushroom-template-card
primary: Réseau
secondary: >
{{ states('sensor.victron_grid_power_l1') | float(0) | round(0) }} W
icon: mdi:transmission-tower
icon_color: >
{% set g = states('sensor.victron_grid_power_l1') | float(0) %}
{% if g > 0 %} red
{% elif g < 0 %} green
{% else %} blue
{% endif %}
- type: custom:vertical-stack-in-card
mode: vertical
card_mod:
style: |
ha-card {
border-radius: 20px;
border: 1px solid rgba(255,255,255,0.10);
box-shadow: 0 6px 16px rgba(0,0,0,0.18);
}
cards:
- type: custom:mushroom-title-card
title: Charges pilotées
subtitle: États clés
- type: custom:mushroom-template-card
entity: sensor.victron_evcs_status
primary: EVCS
secondary: >
{{ states('sensor.victron_evcs_status') }}
• {{ states('sensor.victron_evcs_current') | float(0) | round(0) }} A
multiline_secondary: true
icon: mdi:ev-station
icon_color: >
{% if is_state('switch.victron_evcs_charging', 'on') %}
green
{% elif is_state('binary_sensor.victron_evcs_vehicle_connected', 'on') %}
blue
{% else %}
grey
{% endif %}
- type: custom:mushroom-template-card
entity: switch.tt_chauffe_eau_pleumeur_switch
primary: Chauffe-eau
secondary: >
{{ states('input_select.victron_water_heater_recommended_mode') }}
multiline_secondary: true
icon: mdi:water-boiler
icon_color: >
{% if is_state('switch.tt_chauffe_eau_pleumeur_switch', 'on') %}
orange
{% else %}
grey
{% endif %}
- type: custom:mushroom-template-card
entity: switch.clim_hygro_socket_1
primary: Garage
secondary: >
{{ states('input_text.garage_clim_state') }}
multiline_secondary: true
icon: mdi:air-conditioner
icon_color: >
{% if is_state('switch.clim_hygro_socket_1', 'on') %}
cyan
{% else %}
grey
{% endif %}
- type: custom:vertical-stack-in-card
mode: vertical
card_mod:
style: |
ha-card {
border-radius: 20px;
border: 1px solid rgba(255,255,255,0.10);
box-shadow: 0 6px 16px rgba(0,0,0,0.18);
}
cards:
- type: custom:mushroom-title-card
title: Actions rapides
subtitle: Contrôle direct
- type: grid
columns: 2
square: false
cards:
- type: custom:button-card
entity: switch.victron_evcs_charging
name: EVCS
icon: mdi:ev-station
show_state: true
state_display: >
[[[
if (!entity) return 'Inconnu';
if (entity.state === 'on') return 'ON';
if (entity.state === 'off') return 'OFF';
return entity.state;
]]]
tap_action:
action: more-info
styles:
card:
- border-radius: 18px
- padding: 10px
name:
- font-size: 14px
- font-weight: 600
state:
- font-size: 12px
state:
- value: "on"
color: "#43a047"
- value: "off"
color: "#757575"
- type: custom:button-card
entity: switch.tt_chauffe_eau_pleumeur_switch
name: ECS
icon: mdi:water-boiler
show_state: true
state_display: >
[[[
if (!entity) return 'Inconnu';
if (entity.state === 'on') return 'ON';
if (entity.state === 'off') return 'OFF';
return entity.state;
]]]
tap_action:
action: more-info
styles:
card:
- border-radius: 18px
- padding: 10px
name:
- font-size: 14px
- font-weight: 600
state:
- font-size: 12px
state:
- value: "on"
color: "#fb8c00"
- value: "off"
color: "#757575"
- type: custom:button-card
entity: switch.edf_general_ok_switch
name: Réseau
icon: mdi:transmission-tower
show_state: true
state_display: >
[[[
if (!entity) return 'Inconnu';
if (entity.state === 'on') return 'ON';
if (entity.state === 'off') return 'OFF';
return entity.state;
]]]
tap_action:
action: more-info
styles:
card:
- border-radius: 18px
- padding: 10px
name:
- font-size: 14px
- font-weight: 600
state:
- font-size: 12px
state:
- value: "on"
color: "#42a5f5"
- value: "off"
color: "#e53935"
- type: custom:button-card
entity: switch.clim_hygro_socket_1
name: Garage
icon: mdi:air-conditioner
show_state: true
state_display: >
[[[
if (!entity) return 'Inconnu';
if (entity.state === 'on') return 'ON';
if (entity.state === 'off') return 'OFF';
return entity.state;
]]]
tap_action:
action: more-info
styles:
card:
- border-radius: 18px
- padding: 10px
name:
- font-size: 14px
- font-weight: 600
state:
- font-size: 12px
state:
- value: "on"
color: "#26c6da"
- value: "off"
color: "#757575"
- type: custom:vertical-stack-in-card
mode: vertical
card_mod:
style: |
ha-card {
border-radius: 20px;
border: 1px solid rgba(255,255,255,0.10);
box-shadow: 0 6px 16px rgba(0,0,0,0.18);
}
cards:
- type: custom:mushroom-title-card
title: Verdict rapide
subtitle: Automatisation
- type: entities
show_header_toggle: false
entities:
- entity: input_boolean.victron_advice_evcs_ok
name: EVCS OK
- entity: input_boolean.victron_advice_water_heater_ok
name: ECS OK
- entity: input_boolean.victron_advice_garage_clim_ok
name: Garage OK
- entity: input_boolean.victron_advice_sdb_heater_ok
name: SDB OK
- entity: input_select.victron_water_heater_recommended_mode
name: Mode ECS
- entity: input_text.victron_grid_control_state
name: État réseau
- type: custom:vertical-stack-in-card
mode: vertical
card_mod:
style: |
ha-card {
border-radius: 20px;
border: 1px solid rgba(255,255,255,0.10);
box-shadow: 0 6px 16px rgba(0,0,0,0.18);
}
cards:
- type: custom:mushroom-title-card
title: Historique court
subtitle: 4 dernières heures
- type: custom:apexcharts-card
graph_span: 4h
header:
show: true
title: Flux énergie
show_states: false
series:
- entity: sensor.victron_pv_power_system
name: PV
color: "#fdd835"
- entity: sensor.victron_consumption_power_l1
name: Maison
color: "#42a5f5"
- entity: sensor.victron_grid_power_l1
name: Réseau
color: "#ef5350"
- entity: sensor.victron_battery_power
name: Batterie
color: "#ab47bc"