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:
520
dashboards/evcs_master.yaml
Executable file
520
dashboards/evcs_master.yaml
Executable 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)
|
||||
Reference in New Issue
Block a user