{ "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é\n" } }, { "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\n" } }, { "type": "conditional", "conditions": [ { "entity": "switch.victron_evcs_charging", "state": "on" } ], "card": { "type": "markdown", "content": "## ✅ Charge EVCS active\n" } } ] }, { "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\n", "multiline_secondary": true, "icon": "mdi:ev-station", "icon_color": "{% if is_state('switch.victron_evcs_charging', 'on') %}\n green\n{% elif is_state('binary_sensor.victron_evcs_vehicle_connected', 'on') %}\n blue\n{% else %}\n grey\n{% endif %}\n" }, { "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') }}\n", "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') }}\n", "multiline_secondary": true, "icon": "mdi:strategy", "icon_color": "{% if is_state('input_select.victron_evcs_strategy', 'force_grid_now') %}\n red\n{% elif is_state('input_select.victron_evcs_strategy', 'force_charge_now') %}\n orange\n{% elif is_state('input_select.victron_evcs_strategy', 'auto_solar_plus') %}\n green\n{% elif is_state('input_select.victron_evcs_strategy', 'auto_solar') %}\n teal\n{% else %}\n grey\n{% endif %}\n" }, { "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') }}\n", "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_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_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\n", "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 %}\n" }, { "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": "[[[\n if (!entity) return 'Inconnu';\n if (entity.state === 'on') return 'ON';\n if (entity.state === 'off') return 'OFF';\n return entity.state;\n]]]\n", "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": "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" } ] } ] } ] } ] }