Files
EVCS/dashboards/evcs_master.yaml
Tallagrand Thierry 7aadfde090 Carte « Agents & surveillance » sur EVCS Master — le kill-switch du concierge n etait sur AUCUN tableau
Question du proprietaire : « il est ou cet interrupteur, dans quel dashboard ».
Reponse : celui du guichet d ordres n existe pas encore (annonce comme une
intention, pas construit). Mais la question en revele un vrai trou —
input_boolean.airtria_concierge_enabled existe depuis le 13/09 et n etait
affiche sur AUCUN tableau de bord. Il fallait passer par les outils de
developpement pour l atteindre. Un interrupteur d urgence hors de portee n en
est pas un.

La carte groupe desormais ce qui tourne tout seul et de quoi le couper :
le kill-switch du concierge, la derniere reponse WhatsApp recue, le selecteur
de vehicule qu elle pilote, et l etat du service d historisation (battement de
coeur, age, cause du dernier echec).

Le toggle du guichet d ordres viendra s y ajouter quand il sera construit.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GwpFpy2aQ2rJok6tNQSbVj
2026-09-16 09:06:19 +02:00

569 lines
23 KiB
YAML
Executable File
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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_night_battery_charge
name: 🔋 Charge nuit sur batterie (P12)
- entity: input_boolean.victron_evcs_night_battery_done
name: └ surplus de la nuit épuisé
- 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)
- type: vertical-stack
cards:
- type: custom:mushroom-title-card
title: 🔌 Agents & surveillance
subtitle: Ce qui tourne tout seul, et de quoi le couper
- type: entities
title: Concierge véhicule (WhatsApp)
entities:
# ⚠️ Ce kill-switch existait depuis le 13/09 et n'était affiché
# sur AUCUN tableau de bord : il fallait passer par les outils de
# développement pour l'atteindre. Un interrupteur d'urgence hors
# de portée n'est pas un interrupteur d'urgence.
- entity: input_boolean.airtria_concierge_enabled
name: Appliquer les étiquettes de véhicule
icon: mdi:car-info
- entity: input_text.airtria_vehicle_label
name: Dernière réponse reçue
icon: mdi:label-outline
- type: divider
- entity: input_select.victron_evcs_vehicle
name: Véhicule branché (piloté par la réponse)
icon: mdi:car-multiple
- type: entities
title: Service d'historisation (10.10.10.22)
entities:
# Le battement de cœur est la SEULE entité du système dont
# l'immobilité soit interprétable : son état est un horodatage,
# il change donc forcément à chaque écriture. La fraîcheur d'une
# entité métier ne dit rien — Home Assistant ne matérialise pas
# une écriture identique, et `last_reported` vaut `last_changed`.
- entity: binary_sensor.historisation_evcs_muette
name: État du service
icon: mdi:heart-pulse
- entity: sensor.historisation_evcs_age_du_battement
name: Âge du dernier battement
icon: mdi:timer-outline
- type: attribute
entity: binary_sensor.historisation_evcs_muette
attribute: cause
name: Cause du dernier échec
icon: mdi:alert-outline