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:
42
HA-COPIE-LISEZMOI.md
Normal file
42
HA-COPIE-LISEZMOI.md
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
# Les fichiers Home Assistant versionnes ici sont des COPIES
|
||||||
|
|
||||||
|
`packages/*.yaml`, `dashboards/*.yaml` et `ha-configuration.yaml` sont des
|
||||||
|
copies de ce que Home Assistant lit reellement dans
|
||||||
|
`/mnt/ARCH3/docker/HA/` (partage NFS de 10.10.10.17).
|
||||||
|
|
||||||
|
⚠️ **LA SOURCE DE VERITE EST LE PARTAGE, PAS CE DEPOT.** C'est l'inverse exact
|
||||||
|
de `src/nodes/` — la, git gagne et `tools/n8n-push.mjs` ecrase n8n. Ici, HA
|
||||||
|
gagne : editer la copie du depot ne change RIEN a l'installation.
|
||||||
|
|
||||||
|
Pour modifier un paquet ou une carte :
|
||||||
|
|
||||||
|
1. editer le fichier dans `/mnt/ARCH3/docker/HA/`, apres sauvegarde
|
||||||
|
(`packages/SAVE/`, `SAVE_CONFIG/`) ;
|
||||||
|
2. recharger — `input_boolean.reload`, `input_number.reload`,
|
||||||
|
`input_text.reload`, `input_select.reload`, `input_datetime.reload`,
|
||||||
|
`template.reload` selon ce qui a bouge. Un redemarrage complet de HA n'est
|
||||||
|
necessaire que pour `configuration.yaml` ;
|
||||||
|
3. recopier ici et commiter, dans le meme mouvement.
|
||||||
|
|
||||||
|
cp /mnt/ARCH3/docker/HA/packages/*.yaml packages/
|
||||||
|
cp /mnt/ARCH3/docker/HA/dashboards/*.yaml dashboards/
|
||||||
|
cp /mnt/ARCH3/docker/HA/configuration.yaml ha-configuration.yaml
|
||||||
|
|
||||||
|
## Pourquoi les versionner alors qu'ils sont deja sauvegardes
|
||||||
|
|
||||||
|
La sauvegarde HA quotidienne (§34) les couvre deja — 20 Mo, poussee sur
|
||||||
|
10.10.10.22 et 10.10.10.50. Elle protege contre la PERTE ; elle ne donne ni
|
||||||
|
historique, ni diff, ni le « qu'avons-nous change le 6 septembre, et
|
||||||
|
pourquoi ». C'est ce que git ajoute, et c'est ce qui manquait : le retrait des
|
||||||
|
`initial:` du 06/09, les helpers de la reserve d'orage, la politique batterie
|
||||||
|
dynamique, la carte du conseiller reecrite le 13/09 n'existaient qu'en un seul
|
||||||
|
exemplaire vivant, sans trace de leur evolution.
|
||||||
|
|
||||||
|
## Ce qui n'est PAS ici, et ne doit pas y venir
|
||||||
|
|
||||||
|
- `secrets.yaml`, `.storage/` — identifiants et etat interne ;
|
||||||
|
- la VALEUR de `input_text.evcs_balance_forecast_api_key` (le paquet n'en porte
|
||||||
|
que la DECLARATION, `mode: password` ; la valeur vit dans `.storage`) ;
|
||||||
|
- `packages/SAVE/` et `SAVE_CONFIG/` — sauvegardes locales avant modification,
|
||||||
|
c'est git qui joue ce role desormais ;
|
||||||
|
- `home-assistant_v2.db` — 4,4 Go d'historique, hors sujet ici.
|
||||||
286
dashboards/ECS_DEBUG_REGLAGES.yaml
Executable file
286
dashboards/ECS_DEBUG_REGLAGES.yaml
Executable 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
|
||||||
|
|
||||||
324
dashboards/ECS_DEBUG_REGLAGES_PREMIUM.yaml
Executable file
324
dashboards/ECS_DEBUG_REGLAGES_PREMIUM.yaml
Executable 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
170
dashboards/ECS_PILOTAGE.yaml
Executable 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
|
||||||
|
|
||||||
244
dashboards/ECS_PILOTAGE_PREMIUM.yaml
Executable file
244
dashboards/ECS_PILOTAGE_PREMIUM.yaml
Executable 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
148
dashboards/EVCS_SOLAR.yaml
Executable 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
|
||||||
223
dashboards/GARAGE_DEBUG_PREMIUM.yaml
Executable file
223
dashboards/GARAGE_DEBUG_PREMIUM.yaml
Executable 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
169
dashboards/GARAGE_MOBILE.yaml
Executable 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 %}
|
||||||
|
|
||||||
208
dashboards/GARAGE_PREMIUM_PILOTAGE.yaml
Executable file
208
dashboards/GARAGE_PREMIUM_PILOTAGE.yaml
Executable 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
290
dashboards/SDB_DEBUG_PREMIUM.yaml
Executable 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
|
||||||
|
|
||||||
215
dashboards/SDB_PREMIUM_PILOTAGE.yaml
Executable file
215
dashboards/SDB_PREMIUM_PILOTAGE.yaml
Executable 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
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
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)
|
||||||
310
dashboards/evcs_mobile.yaml
Executable file
310
dashboards/evcs_mobile.yaml
Executable 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
124
dashboards/test_cards.yaml
Executable 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
1040
dashboards/victron_debug.yaml
Executable file
File diff suppressed because it is too large
Load Diff
367
dashboards/victron_master.yaml
Executable file
367
dashboards/victron_master.yaml
Executable 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
383
dashboards/victron_mobile.yaml
Executable 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"
|
||||||
|
|
||||||
407
ha-configuration.yaml
Executable file
407
ha-configuration.yaml
Executable file
@@ -0,0 +1,407 @@
|
|||||||
|
# Loads default set of integrations. Do not remove.
|
||||||
|
default_config:
|
||||||
|
|
||||||
|
homeassistant:
|
||||||
|
packages: !include_dir_named packages
|
||||||
|
|
||||||
|
# Retention de l'historique brut (24/08/2026) : 10 jours par defaut -> 90 jours.
|
||||||
|
# Motif : pouvoir rejouer un incident plusieurs semaines apres coup. Les incidents
|
||||||
|
# EDF/EVCS de juillet-aout n'ont pas pu etre reconstitues finement faute d'historique.
|
||||||
|
# NB : les statistiques long terme (sommes horaires, base du bilan energetique) sont
|
||||||
|
# deja conservees SANS limite et ne dependent pas de ce reglage.
|
||||||
|
# Dimensionnement : 10 jours ~= 2,6 Go, donc 90 jours ~= 23 Go (volume1 : 5 To libres).
|
||||||
|
|
||||||
|
# =====================================================================
|
||||||
|
# HISTORISATION LONGUE — InfluxDB sur 10.10.10.22 (ajoute le 04/09/2026)
|
||||||
|
# L'historique brut ci-dessous (recorder) tient ~20 jours pour 5 Go ; les
|
||||||
|
# statistiques long terme ne gardent que des moyennes horaires. InfluxDB
|
||||||
|
# garde le detail, sur la duree, hors de cette machine.
|
||||||
|
# Details et mise en service : deploy/historisation/README.md du depot EVCS.
|
||||||
|
# =====================================================================
|
||||||
|
influxdb:
|
||||||
|
# Pourquoi une liste plutôt que « tout » : la maison publie ~1,14 M états par
|
||||||
|
# jour, dont l'essentiel n'a aucun rapport avec l'énergie. On garde large sur
|
||||||
|
# le périmètre énergie — c'est justement là qu'on ne sait pas d'avance ce
|
||||||
|
# dont on aura besoin, comme l'ont montré les modes MPPT le 03/09 — et on
|
||||||
|
# laisse le reste de côté.
|
||||||
|
include:
|
||||||
|
entity_globs:
|
||||||
|
- sensor.victron_*
|
||||||
|
# Les capteurs propres a la borne (13 entites) : compteur cumulatif,
|
||||||
|
# energie et duree de la derniere session, statut. Absents jusqu'au
|
||||||
|
# 06/09, ce qui a empeche d'etablir la semantique de
|
||||||
|
# `last_session_energy` quand elle a fausse une cloture de session.
|
||||||
|
- sensor.evcs_*
|
||||||
|
- sensor.mppt_*
|
||||||
|
- sensor.airtria_*
|
||||||
|
- sensor.gx_device_*
|
||||||
|
- sensor.sun_solar_elevation
|
||||||
|
- binary_sensor.victron_*
|
||||||
|
- switch.edf_*
|
||||||
|
- switch.gx_device_*
|
||||||
|
- number.gx_device_*
|
||||||
|
- input_boolean.victron_evcs_*
|
||||||
|
- input_boolean.evcs_*
|
||||||
|
- input_number.victron_evcs_*
|
||||||
|
- input_number.evcs_*
|
||||||
|
- input_select.victron_evcs_*
|
||||||
|
- input_text.victron_evcs_*
|
||||||
|
- input_text.evcs_*
|
||||||
|
exclude:
|
||||||
|
entities:
|
||||||
|
# Une clé d'API n'a rien à faire dans une base de séries temporelles.
|
||||||
|
- input_text.evcs_balance_forecast_api_key
|
||||||
|
tags:
|
||||||
|
installation: airtria
|
||||||
|
|
||||||
|
recorder:
|
||||||
|
purge_keep_days: 90
|
||||||
|
exclude:
|
||||||
|
entities:
|
||||||
|
# Clé d'API : aucune raison de l'archiver 90 jours dans la base.
|
||||||
|
- input_text.evcs_balance_forecast_api_key
|
||||||
|
|
||||||
|
# Load frontend themes from the themes folder
|
||||||
|
frontend:
|
||||||
|
themes: !include_dir_merge_named themes
|
||||||
|
|
||||||
|
automation: !include automations.yaml
|
||||||
|
script: !include scripts.yaml
|
||||||
|
scene: !include scenes.yaml
|
||||||
|
|
||||||
|
#gestion MQTT
|
||||||
|
mqtt:
|
||||||
|
sensor:
|
||||||
|
- name: "Victron Max Charge Current Setting"
|
||||||
|
unique_id: victron_max_charge_current_setting
|
||||||
|
state_topic: "N/c0619ab34ac5/settings/0/Settings/SystemSetup/MaxChargeCurrent"
|
||||||
|
value_template: "{{ value_json.value if value_json is defined and value_json.value is defined }}"
|
||||||
|
json_attributes_topic: "N/c0619ab34ac5/settings/0/Settings/SystemSetup/MaxChargeCurrent"
|
||||||
|
unit_of_measurement: "A"
|
||||||
|
icon: mdi:current-dc
|
||||||
|
state_class: measurement
|
||||||
|
|
||||||
|
- name: "Victron Max Charge Voltage Setting"
|
||||||
|
unique_id: victron_max_charge_voltage_setting
|
||||||
|
state_topic: "N/c0619ab34ac5/settings/0/Settings/SystemSetup/MaxChargeVoltage"
|
||||||
|
value_template: "{{ value_json.value if value_json is defined and value_json.value is defined }}"
|
||||||
|
json_attributes_topic: "N/c0619ab34ac5/settings/0/Settings/SystemSetup/MaxChargeVoltage"
|
||||||
|
unit_of_measurement: "V"
|
||||||
|
icon: mdi:flash
|
||||||
|
state_class: measurement
|
||||||
|
|
||||||
|
- name: "Victron Battery SoC Live"
|
||||||
|
unique_id: victron_battery_soc_live
|
||||||
|
state_topic: "N/c0619ab34ac5/battery/512/Soc"
|
||||||
|
value_template: "{{ value_json.value | float(0) if value_json is defined and value_json.value is defined }}"
|
||||||
|
unit_of_measurement: "%"
|
||||||
|
device_class: battery
|
||||||
|
state_class: measurement
|
||||||
|
expire_after: 600
|
||||||
|
# force_update: true # optionnel (je te conseille de le laisser commenté au début)
|
||||||
|
|
||||||
|
- name: "Victron Battery SoC"
|
||||||
|
unique_id: victron_battery_soc
|
||||||
|
state_topic: "N/c0619ab34ac5/battery/512/Soc"
|
||||||
|
unit_of_measurement: "%"
|
||||||
|
device_class: battery
|
||||||
|
value_template: "{{ value_json.value | float(0) if value_json is defined and value_json.value is defined }}"
|
||||||
|
expire_after: 600
|
||||||
|
force_update: true
|
||||||
|
state_class: measurement
|
||||||
|
|
||||||
|
- name: "Victron Battery Voltage"
|
||||||
|
unique_id: victron_battery_voltage
|
||||||
|
state_topic: "N/c0619ab34ac5/battery/512/Dc/0/Voltage"
|
||||||
|
unit_of_measurement: "V"
|
||||||
|
device_class: voltage
|
||||||
|
value_template: "{{ value_json.value | float(0) if value_json is defined and value_json.value is defined }}"
|
||||||
|
state_class: measurement
|
||||||
|
|
||||||
|
- name: "Victron Battery Current"
|
||||||
|
unique_id: victron_battery_current
|
||||||
|
state_topic: "N/c0619ab34ac5/battery/512/Dc/0/Current"
|
||||||
|
unit_of_measurement: "A"
|
||||||
|
device_class: current
|
||||||
|
value_template: "{{ value_json.value | float(0) if value_json is defined and value_json.value is defined }}"
|
||||||
|
state_class: measurement
|
||||||
|
|
||||||
|
- name: "Victron Battery Power"
|
||||||
|
unique_id: victron_battery_power
|
||||||
|
state_topic: "N/c0619ab34ac5/battery/512/Dc/0/Power"
|
||||||
|
unit_of_measurement: "W"
|
||||||
|
device_class: power
|
||||||
|
value_template: "{{ value_json.value | float(0) if value_json is defined and value_json.value is defined }}"
|
||||||
|
state_class: measurement
|
||||||
|
|
||||||
|
- name: "Victron Battery Temperature"
|
||||||
|
unique_id: victron_battery_temperature
|
||||||
|
state_topic: "N/c0619ab34ac5/battery/512/Dc/0/Temperature"
|
||||||
|
unit_of_measurement: "°C"
|
||||||
|
device_class: temperature
|
||||||
|
value_template: "{{ value_json.value | float(0) if value_json is defined and value_json.value is defined }}"
|
||||||
|
state_class: measurement
|
||||||
|
|
||||||
|
- name: "Victron PV Power (system)"
|
||||||
|
unique_id: victron_pv_power
|
||||||
|
state_topic: "N/c0619ab34ac5/system/0/Dc/Pv/Power"
|
||||||
|
unit_of_measurement: "W"
|
||||||
|
device_class: power
|
||||||
|
value_template: "{{ value_json.value | float(0) if value_json is defined and value_json.value is defined }}"
|
||||||
|
state_class: measurement
|
||||||
|
|
||||||
|
- name: "Victron VE.Bus DC Power (system)"
|
||||||
|
unique_id: victron_vebus_dc_power
|
||||||
|
state_topic: "N/c0619ab34ac5/system/0/Dc/Vebus/Power"
|
||||||
|
unit_of_measurement: "W"
|
||||||
|
device_class: power
|
||||||
|
value_template: "{{ value_json.value | float(0) if value_json is defined and value_json.value is defined }}"
|
||||||
|
state_class: measurement
|
||||||
|
|
||||||
|
- name: "Victron Grid Power L1"
|
||||||
|
unique_id: victron_grid_power_l1
|
||||||
|
state_topic: "N/c0619ab34ac5/system/0/Ac/Grid/L1/Power"
|
||||||
|
unit_of_measurement: "W"
|
||||||
|
device_class: power
|
||||||
|
value_template: "{{ value_json.value | float(0) if value_json is defined and value_json.value is defined }}"
|
||||||
|
state_class: measurement
|
||||||
|
|
||||||
|
- name: "Victron Consumption Power L1"
|
||||||
|
unique_id: victron_consumption_power_l1
|
||||||
|
state_topic: "N/c0619ab34ac5/system/0/Ac/Consumption/L1/Power"
|
||||||
|
unit_of_measurement: "W"
|
||||||
|
device_class: power
|
||||||
|
value_template: "{{ value_json.value | float(0) if value_json is defined and value_json.value is defined }}"
|
||||||
|
state_class: measurement
|
||||||
|
|
||||||
|
- name: "Victron VE.Bus State (raw)"
|
||||||
|
unique_id: victron_vebus_state_raw
|
||||||
|
state_topic: "N/c0619ab34ac5/vebus/276/State"
|
||||||
|
value_template: "{{ value_json.value | int(0) if value_json is defined and value_json.value is defined }}"
|
||||||
|
|
||||||
|
- name: "Victron VE.Bus MainState (raw)"
|
||||||
|
unique_id: victron_vebus_mainstate_raw
|
||||||
|
state_topic: "N/c0619ab34ac5/vebus/276/VebusMainState"
|
||||||
|
value_template: "{{ value_json.value | int(0) if value_json is defined and value_json.value is defined }}"
|
||||||
|
|
||||||
|
- name: "Victron VE.Bus ChargeState (raw)"
|
||||||
|
unique_id: victron_vebus_chargestate_raw
|
||||||
|
state_topic: "N/c0619ab34ac5/vebus/276/VebusChargeState"
|
||||||
|
value_template: "{{ value_json.value | int(0) if value_json is defined and value_json.value is defined }}"
|
||||||
|
|
||||||
|
- name: "Victron AC-in1 available"
|
||||||
|
unique_id: victron_acin1_available
|
||||||
|
state_topic: "N/c0619ab34ac5/vebus/276/Ac/State/AcIn1Available"
|
||||||
|
value_template: "{{ value_json.value | int(0) if value_json is defined and value_json.value is defined }}"
|
||||||
|
|
||||||
|
template:
|
||||||
|
- sensor:
|
||||||
|
- name: "Victron mode (derived)"
|
||||||
|
unique_id: victron_mode_derived
|
||||||
|
state: >-
|
||||||
|
{% set acin = states('sensor.victron_ac_in1_available')|int(0) %}
|
||||||
|
{% set gridw = states('sensor.victron_grid_power_l1')|float(0) %}
|
||||||
|
{% set batw = states('sensor.victron_battery_power')|float(0) %}
|
||||||
|
|
||||||
|
{# Seuils anti-bruit #}
|
||||||
|
{% set GRID_ON_W = 50 %}
|
||||||
|
{% set BAT_CHG_W = 150 %}
|
||||||
|
{% set BAT_DIS_W = -150 %}
|
||||||
|
|
||||||
|
{% if acin == 0 %}
|
||||||
|
{% if batw < BAT_DIS_W %}
|
||||||
|
Inverting (on battery)
|
||||||
|
{% else %}
|
||||||
|
Off-grid (idle/low load)
|
||||||
|
{% endif %}
|
||||||
|
{% else %}
|
||||||
|
{% if batw > BAT_CHG_W %}
|
||||||
|
Charging (AC-in)
|
||||||
|
{% elif gridw > GRID_ON_W %}
|
||||||
|
On grid (passthru/import)
|
||||||
|
{% else %}
|
||||||
|
Grid available (low import)
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
- name: Victron EVCS Status FR
|
||||||
|
unique_id: victron_evcs_status_fr
|
||||||
|
icon: mdi:ev-station
|
||||||
|
state: >-
|
||||||
|
{% set raw = states('sensor.victron_evcs_status_raw') | string %}
|
||||||
|
{% set vehicle = is_state('binary_sensor.victron_evcs_vehicle_connected', 'on') %}
|
||||||
|
{% set charging_switch = is_state('switch.victron_evcs_charging', 'on') %}
|
||||||
|
{% set evcs_power = states('sensor.victron_evcs_ac_power') | float(0) %}
|
||||||
|
|
||||||
|
{% if raw == '0' and not vehicle %}
|
||||||
|
EV déconnecté
|
||||||
|
{% elif raw == '2' %}
|
||||||
|
Charge en cours
|
||||||
|
{% elif raw == '6' and vehicle %}
|
||||||
|
Véhicule connecté - en attente
|
||||||
|
{% elif charging_switch or evcs_power > 100 %}
|
||||||
|
Charge en cours
|
||||||
|
{% elif raw in ['unknown', 'unavailable', '', 'none'] %}
|
||||||
|
Inconnu
|
||||||
|
{% else %}
|
||||||
|
Inconnu ({{ raw }})
|
||||||
|
{% endif %}
|
||||||
|
attributes:
|
||||||
|
raw_status: "{{ states('sensor.victron_evcs_status_raw') }}"
|
||||||
|
vehicle_connected: "{{ states('binary_sensor.victron_evcs_vehicle_connected') }}"
|
||||||
|
charging_switch: "{{ states('switch.victron_evcs_charging') }}"
|
||||||
|
evcs_power_w: "{{ states('sensor.victron_evcs_ac_power') }}"
|
||||||
|
|
||||||
|
- name: Victron EVCS mode FR
|
||||||
|
unique_id: victron_evcs_mode_fr
|
||||||
|
icon: mdi:tune
|
||||||
|
state: >
|
||||||
|
{% set raw = states('sensor.victron_evcs_mode_raw') | string %}
|
||||||
|
{% set source = states('sensor.victron_evcs_mode') | string %}
|
||||||
|
{% set label = source | lower %}
|
||||||
|
|
||||||
|
{% if raw == '0' or label in ['manuel', 'manual'] %}
|
||||||
|
Manuel
|
||||||
|
{% elif raw == '1' or label in ['auto', 'automatic', 'automatique'] %}
|
||||||
|
Auto
|
||||||
|
{% elif raw == '2' or label in ['planifié', 'planifie', 'scheduled', 'schedule'] %}
|
||||||
|
Planifié
|
||||||
|
{% elif source not in ['unknown', 'unavailable', '', 'none'] %}
|
||||||
|
{{ source }}
|
||||||
|
{% else %}
|
||||||
|
Inconnu
|
||||||
|
{% endif %}
|
||||||
|
attributes:
|
||||||
|
raw_mode: "{{ states('sensor.victron_evcs_mode_raw') }}"
|
||||||
|
source_mode: "{{ states('sensor.victron_evcs_mode') }}"
|
||||||
|
|
||||||
|
sensor:
|
||||||
|
- platform: filter
|
||||||
|
name: "Victron PV Power 10m Avg"
|
||||||
|
unique_id: victron_pv_power_10m_avg
|
||||||
|
entity_id: sensor.victron_pv_power_system
|
||||||
|
filters:
|
||||||
|
- filter: time_simple_moving_average
|
||||||
|
window_size: "00:10:00"
|
||||||
|
precision: 0
|
||||||
|
|
||||||
|
|
||||||
|
lovelace:
|
||||||
|
dashboards:
|
||||||
|
bilan-energetique:
|
||||||
|
mode: yaml
|
||||||
|
title: Bilan énergétique
|
||||||
|
icon: mdi:scale-balance
|
||||||
|
show_in_sidebar: true
|
||||||
|
filename: dashboards/bilan_energetique.yaml
|
||||||
|
|
||||||
|
victron-master:
|
||||||
|
mode: yaml
|
||||||
|
title: Victron Master
|
||||||
|
icon: mdi:home-battery
|
||||||
|
show_in_sidebar: true
|
||||||
|
filename: dashboards/victron_master.yaml
|
||||||
|
|
||||||
|
victron-debug:
|
||||||
|
mode: yaml
|
||||||
|
title: Victron Debug
|
||||||
|
icon: mdi:bug
|
||||||
|
show_in_sidebar: true
|
||||||
|
require_admin: true
|
||||||
|
filename: dashboards/victron_debug.yaml
|
||||||
|
|
||||||
|
test-cards:
|
||||||
|
mode: yaml
|
||||||
|
title: Test Cards
|
||||||
|
icon: mdi:test-tube
|
||||||
|
show_in_sidebar: true
|
||||||
|
require_admin: true
|
||||||
|
filename: dashboards/test_cards.yaml
|
||||||
|
|
||||||
|
victron-mobile:
|
||||||
|
mode: yaml
|
||||||
|
title: Victron Mobile
|
||||||
|
icon: mdi:cellphone
|
||||||
|
show_in_sidebar: true
|
||||||
|
filename: dashboards/victron_mobile.yaml
|
||||||
|
|
||||||
|
evcs-mobile:
|
||||||
|
mode: yaml
|
||||||
|
title: EVCS Mobile
|
||||||
|
icon: mdi:car-electric
|
||||||
|
show_in_sidebar: true
|
||||||
|
filename: dashboards/evcs_mobile.yaml
|
||||||
|
|
||||||
|
evcs-master:
|
||||||
|
mode: yaml
|
||||||
|
title: EVCS Master
|
||||||
|
icon: mdi:car-electric
|
||||||
|
show_in_sidebar: true
|
||||||
|
filename: dashboards/evcs_master.yaml
|
||||||
|
|
||||||
|
ecs-pilotage-premium:
|
||||||
|
mode: yaml
|
||||||
|
title: ECS Pilotage Premium
|
||||||
|
icon: mdi:water-boiler
|
||||||
|
show_in_sidebar: true
|
||||||
|
filename: dashboards/ECS_PILOTAGE_PREMIUM.yaml
|
||||||
|
|
||||||
|
ecs-debug-reglages-premium:
|
||||||
|
mode: yaml
|
||||||
|
title: ECS Debug Réglages Premium
|
||||||
|
icon: mdi:bug
|
||||||
|
show_in_sidebar: true
|
||||||
|
require_admin: true
|
||||||
|
filename: dashboards/ECS_DEBUG_REGLAGES_PREMIUM.yaml
|
||||||
|
|
||||||
|
garage-premium-pilotage:
|
||||||
|
mode: yaml
|
||||||
|
title: Garage Premium Pilotage
|
||||||
|
icon: mdi:garage-variant
|
||||||
|
show_in_sidebar: true
|
||||||
|
filename: dashboards/GARAGE_PREMIUM_PILOTAGE.yaml
|
||||||
|
|
||||||
|
garage-debug-premium:
|
||||||
|
mode: yaml
|
||||||
|
title: Garage Debug Premium
|
||||||
|
icon: mdi:bug
|
||||||
|
show_in_sidebar: true
|
||||||
|
require_admin: true
|
||||||
|
filename: dashboards/GARAGE_DEBUG_PREMIUM.yaml
|
||||||
|
|
||||||
|
garage-mobile:
|
||||||
|
mode: yaml
|
||||||
|
title: Garage Mobile
|
||||||
|
icon: mdi:cellphone
|
||||||
|
show_in_sidebar: true
|
||||||
|
filename: dashboards/GARAGE_MOBILE.yaml
|
||||||
|
|
||||||
|
sdb-premium-pilotage:
|
||||||
|
mode: yaml
|
||||||
|
title: SDB Premium Pilotage
|
||||||
|
icon: mdi:shower-head
|
||||||
|
show_in_sidebar: true
|
||||||
|
filename: dashboards/SDB_PREMIUM_PILOTAGE.yaml
|
||||||
|
|
||||||
|
sdb-debug-premium:
|
||||||
|
mode: yaml
|
||||||
|
title: SDB Debug Premium
|
||||||
|
icon: mdi:bug
|
||||||
|
show_in_sidebar: true
|
||||||
|
require_admin: true
|
||||||
|
filename: dashboards/SDB_DEBUG_PREMIUM.yaml
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ===== NOUVELLE ENTITÉ V2.0 (Stratégie EVCS) =====
|
||||||
|
input_select:
|
||||||
|
victron_evcs_strategy:
|
||||||
|
name: Stratégie EVCS Surplus
|
||||||
|
options:
|
||||||
|
- auto_solar
|
||||||
|
- auto_solar_plus
|
||||||
|
- force_grid_now
|
||||||
|
- force_charge_now
|
||||||
|
- stop
|
||||||
|
initial: "auto_solar_plus"
|
||||||
|
|
||||||
113
packages/evcs_advisor_shadow.yaml
Executable file
113
packages/evcs_advisor_shadow.yaml
Executable file
@@ -0,0 +1,113 @@
|
|||||||
|
# Conseiller IA — OBSERVATEUR (specialise le 12/09/2026)
|
||||||
|
#
|
||||||
|
# Il ne recommande plus d'action : il observe et signale. Les six helpers de
|
||||||
|
# l'epoque « recommandation » (strategie, cible SOC, plafond courant, charge du
|
||||||
|
# soir, divergence, et le toggle qui appliquait la cible) ont ete retires le
|
||||||
|
# 13/09/2026, en meme temps que leur cablage cote controleur.
|
||||||
|
#
|
||||||
|
# Pourquoi : depuis le 12/09 le conseiller n'ecrivait plus ces helpers, mais le
|
||||||
|
# controleur lisait toujours la cible. Ses quatre gardes passaient toutes —
|
||||||
|
# la garde de fraicheur date le RUN, pas la VALEUR — donc activer le toggle
|
||||||
|
# aurait applique un chiffre fige la veille. Un helper que plus personne
|
||||||
|
# n'ecrit, affiche comme une recommandation courante, est un piege.
|
||||||
|
# ⚠️ AUCUN `initial:` SUR LES REGLAGES MANUELS (06/09/2026).
|
||||||
|
# Dans Home Assistant, declarer `initial:` DESACTIVE la restauration d'etat :
|
||||||
|
# le helper est force a cette valeur a CHAQUE demarrage. Un reglage fait a la
|
||||||
|
# main est donc perdu au premier redemarrage, en silence.
|
||||||
|
# Constate deux fois sur le selecteur de vehicule (04/09 puis 06/09 : JEEP
|
||||||
|
# repasse a VW), et diagnostique le 06/09 en comparant avec
|
||||||
|
# `input_select.victron_evcs_strategy`, cree par l'interface donc sans
|
||||||
|
# `initial:`, qui survivait a tous les redemarrages.
|
||||||
|
# Les helpers de RUNTIME, eux, gardent leur `initial:` : ils sont reecrits par
|
||||||
|
# les workflows au cycle suivant, et repartir d'un etat connu y est voulu.
|
||||||
|
# Contrepartie assumee : sur une installation neuve, sans etat a restaurer, un
|
||||||
|
# input_select prend sa premiere option, un input_number son `min` et un
|
||||||
|
# input_datetime 00:00.
|
||||||
|
|
||||||
|
input_boolean:
|
||||||
|
evcs_advisor_enabled:
|
||||||
|
name: EVCS Advisor - Actif (mode ombre)
|
||||||
|
icon: mdi:robot-outline
|
||||||
|
|
||||||
|
input_text:
|
||||||
|
evcs_advisor_reason:
|
||||||
|
name: EVCS Advisor - Raison
|
||||||
|
max: 255
|
||||||
|
icon: mdi:comment-text-outline
|
||||||
|
initial: (pas encore de recommandation)
|
||||||
|
|
||||||
|
# ── OBSERVATION (12/09/2026) ──────────────────────────────────────────
|
||||||
|
# La mission principale du conseiller n est plus de choisir une strategie
|
||||||
|
# mais de REPERER CE QUI CLOCHE : les pannes de ce systeme sont des
|
||||||
|
# contradictions entre automates, chacun localement correct, et elles ne se
|
||||||
|
# voient que dans la SUITE des evenements. Le 12/09 le contacteur reseau a
|
||||||
|
# bascule toutes les 4 minutes pendant dix minutes — une automatisation
|
||||||
|
# coupait a 35 % de SOC, l hysteresis rallumait. Aucun automate ne l a vu.
|
||||||
|
evcs_advisor_constat:
|
||||||
|
name: EVCS Advisor - Constat
|
||||||
|
max: 255
|
||||||
|
icon: mdi:eye-outline
|
||||||
|
|
||||||
|
evcs_advisor_gravite:
|
||||||
|
name: EVCS Advisor - Gravite
|
||||||
|
max: 16
|
||||||
|
icon: mdi:alert-outline
|
||||||
|
|
||||||
|
evcs_advisor_ce_qui_cloche:
|
||||||
|
name: EVCS Advisor - Ce qui cloche
|
||||||
|
max: 255
|
||||||
|
icon: mdi:puzzle-remove-outline
|
||||||
|
|
||||||
|
evcs_advisor_status:
|
||||||
|
name: EVCS Advisor - Statut
|
||||||
|
max: 30
|
||||||
|
icon: mdi:heart-pulse
|
||||||
|
initial: never_ran
|
||||||
|
|
||||||
|
evcs_advisor_last_run:
|
||||||
|
name: EVCS Advisor - Dernière exécution
|
||||||
|
max: 40
|
||||||
|
icon: mdi:clock-check-outline
|
||||||
|
initial: jamais
|
||||||
|
|
||||||
|
evcs_advisor_model:
|
||||||
|
name: EVCS Advisor - Modèle utilisé
|
||||||
|
max: 60
|
||||||
|
icon: mdi:chip
|
||||||
|
initial: aucun
|
||||||
|
|
||||||
|
input_number:
|
||||||
|
# ⚠️ PAS d'`initial:` SUR UN COMPTEUR. Dans Home Assistant, declarer
|
||||||
|
# `initial:` DESACTIVE la restauration d'etat : le helper est force a cette
|
||||||
|
# valeur a CHAQUE demarrage. Sans consequence pour les helpers que le
|
||||||
|
# workflow reecrit au cycle suivant, mais fatal ici — un compteur
|
||||||
|
# s'incremente depuis sa valeur precedente. Chaque redemarrage de HA remettait
|
||||||
|
# donc la campagne de mesure a zero, en silence. (Meme piege que le selecteur
|
||||||
|
# de vehicule et les toggles de cablage, corriges le 06/09.)
|
||||||
|
#
|
||||||
|
# Ces compteurs ont change de sens DEUX FOIS le 12/09, il faut le savoir avant
|
||||||
|
# de lire leur valeur :
|
||||||
|
# 1. a l'origine ils comparaient la STRATEGIE recommandee a la strategie
|
||||||
|
# reelle — quasi toujours auto_solar_plus, d'ou 517 accords contre 23 :
|
||||||
|
# un score qui mesurait une constante, pas une decision ;
|
||||||
|
# 2. puis l'ecart entre la cible SOC de l'agent et celle du bilan ;
|
||||||
|
# 3. depuis que le conseiller est specialise en OBSERVATEUR et ne
|
||||||
|
# recommande plus de cible, ils comptent le VOLUME DE SIGNALEMENTS.
|
||||||
|
# On ne peut pas verifier automatiquement s'il a raison ; on peut
|
||||||
|
# mesurer s'il crie au loup.
|
||||||
|
# Remis a zero le 13/09 au matin : c'est de la que part la mesure utile.
|
||||||
|
evcs_advisor_agree_count:
|
||||||
|
name: EVCS Advisor - Cycles calmes (gravite aucune)
|
||||||
|
min: 0
|
||||||
|
max: 100000
|
||||||
|
step: 1
|
||||||
|
mode: box
|
||||||
|
icon: mdi:thumb-up-outline
|
||||||
|
|
||||||
|
evcs_advisor_diverge_count:
|
||||||
|
name: EVCS Advisor - Signalements (gravite faible a haute)
|
||||||
|
min: 0
|
||||||
|
max: 100000
|
||||||
|
step: 1
|
||||||
|
mode: box
|
||||||
|
icon: mdi:thumb-down-outline
|
||||||
225
packages/evcs_energy_balance.yaml
Executable file
225
packages/evcs_energy_balance.yaml
Executable file
@@ -0,0 +1,225 @@
|
|||||||
|
# =====================================================================
|
||||||
|
# Bilan énergétique EVCS — helpers (chantier du 24/08/2026)
|
||||||
|
# MODE OMBRE : le workflow "EVCS Energy Balance V1" n'écrit QUE dans ces
|
||||||
|
# entités. Aucun switch, aucune consigne de borne, aucune stratégie.
|
||||||
|
# Voir docs/CHANTIER_BILAN_ENERGETIQUE.md dans le dépôt EVCS.
|
||||||
|
# =====================================================================
|
||||||
|
|
||||||
|
input_boolean:
|
||||||
|
evcs_balance_enabled:
|
||||||
|
name: "Bilan énergétique — actif (kill-switch)"
|
||||||
|
icon: mdi:scale-balance
|
||||||
|
initial: true
|
||||||
|
evcs_balance_grid_needed:
|
||||||
|
name: "Bilan — réseau nécessaire"
|
||||||
|
icon: mdi:transmission-tower
|
||||||
|
evcs_balance_pv_censored:
|
||||||
|
name: "Bilan — production actuellement bridée"
|
||||||
|
icon: mdi:solar-power-variant-outline
|
||||||
|
# Vrai à partir de la vigilance ORANGE — le seuil est celui de Météo-France,
|
||||||
|
# pas un nombre choisi ici. N'agit sur rien : mode ombre.
|
||||||
|
evcs_balance_storm_active:
|
||||||
|
name: "Bilan — vigilance orage active"
|
||||||
|
icon: mdi:weather-lightning
|
||||||
|
|
||||||
|
input_number:
|
||||||
|
# Saisi par l'utilisateur : capacité réellement disponible du parc batterie.
|
||||||
|
# 7 modules US2000C actifs au 24/08/2026 (un isolé) -> ~15 kWh.
|
||||||
|
evcs_balance_usable_capacity_kwh:
|
||||||
|
name: "Bilan — capacité batterie utile"
|
||||||
|
min: 2
|
||||||
|
max: 60
|
||||||
|
step: 0.5
|
||||||
|
unit_of_measurement: kWh
|
||||||
|
mode: box
|
||||||
|
icon: mdi:battery-high
|
||||||
|
# Nombre de modules US2000C REELLEMENT en service. La courbe energie/SOC a ete
|
||||||
|
# mesuree sur sept modules (HANDOFF §41) ; elle est mise a l'echelle de ce
|
||||||
|
# nombre par le bilan ET par le controleur EVCS, qui le lisent tous deux ici —
|
||||||
|
# les deux decrivent forcement le meme parc.
|
||||||
|
# Helper absent ou hors bornes => repli sur 7, la valeur de la mesure.
|
||||||
|
# 05/09/2026 : pack ancien isole et coupe au coupe-circuit -> 4.
|
||||||
|
# ⚠️ EN EQUIVALENTS US2000C, PAS EN MODULES PHYSIQUES.
|
||||||
|
# La courbe energie/SOC est mesuree par US2000C (0,091 kWh AC par point de
|
||||||
|
# SOC et par module). Un US5000 fait 100 Ah contre 50 : il en vaut DEUX.
|
||||||
|
# 4 US2000C ....................... 4
|
||||||
|
# 4 US2000C + 4 US5000 ............ 12
|
||||||
|
# Cette valeur alimente TROIS consommateurs a la fois : la capacite utile du
|
||||||
|
# controleur, la conversion energie/SOC du bilan, et l'echelle des bandes de
|
||||||
|
# politique batterie. Une erreur ici se propage aux trois.
|
||||||
|
evcs_balance_modules_en_service:
|
||||||
|
name: "Parc batterie — équivalents US2000C"
|
||||||
|
min: 1
|
||||||
|
max: 24
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: équiv.
|
||||||
|
mode: box
|
||||||
|
icon: mdi:battery-sync
|
||||||
|
|
||||||
|
# Calculés par le bilan.
|
||||||
|
evcs_balance_required_soc:
|
||||||
|
name: "Bilan — SOC requis (décision)"
|
||||||
|
min: 0
|
||||||
|
max: 100
|
||||||
|
step: 0.1
|
||||||
|
unit_of_measurement: "%"
|
||||||
|
mode: box
|
||||||
|
icon: mdi:battery-alert-variant-outline
|
||||||
|
evcs_balance_required_soc_prudent:
|
||||||
|
name: "Bilan — SOC requis (planification)"
|
||||||
|
min: 0
|
||||||
|
max: 100
|
||||||
|
step: 0.1
|
||||||
|
unit_of_measurement: "%"
|
||||||
|
mode: box
|
||||||
|
icon: mdi:battery-clock
|
||||||
|
evcs_balance_energy_to_cover_kwh:
|
||||||
|
name: "Bilan — énergie à couvrir"
|
||||||
|
min: 0
|
||||||
|
max: 100
|
||||||
|
step: 0.01
|
||||||
|
unit_of_measurement: kWh
|
||||||
|
mode: box
|
||||||
|
icon: mdi:flash-outline
|
||||||
|
evcs_balance_grid_energy_needed_kwh:
|
||||||
|
name: "Bilan — énergie réseau nécessaire"
|
||||||
|
min: 0
|
||||||
|
max: 100
|
||||||
|
step: 0.01
|
||||||
|
unit_of_measurement: kWh
|
||||||
|
mode: box
|
||||||
|
icon: mdi:transmission-tower-import
|
||||||
|
# Prochaine fenêtre de déficit (typiquement la nuit qui vient).
|
||||||
|
evcs_balance_next_deficit_kwh:
|
||||||
|
name: "Bilan — énergie de la prochaine traversée déficitaire"
|
||||||
|
min: 0
|
||||||
|
max: 200
|
||||||
|
step: 0.01
|
||||||
|
unit_of_measurement: kWh
|
||||||
|
mode: box
|
||||||
|
icon: mdi:weather-night
|
||||||
|
evcs_balance_next_deficit_required_soc:
|
||||||
|
name: "Bilan — SOC requis avant la traversée"
|
||||||
|
min: 0
|
||||||
|
max: 300
|
||||||
|
step: 0.1
|
||||||
|
unit_of_measurement: "%"
|
||||||
|
mode: box
|
||||||
|
icon: mdi:battery-charging-100
|
||||||
|
# Au-dessus de 100 % de SOC requis : capacité utile manquante.
|
||||||
|
# C'est le chiffre du dimensionnement du stockage.
|
||||||
|
evcs_balance_storage_shortfall_kwh:
|
||||||
|
name: "Bilan — capacité de stockage manquante"
|
||||||
|
min: 0
|
||||||
|
max: 200
|
||||||
|
step: 0.01
|
||||||
|
unit_of_measurement: kWh
|
||||||
|
mode: box
|
||||||
|
icon: mdi:battery-alert
|
||||||
|
evcs_balance_vehicle_surplus_kwh:
|
||||||
|
name: "Bilan — surplus disponible pour le véhicule"
|
||||||
|
min: 0
|
||||||
|
max: 200
|
||||||
|
step: 0.01
|
||||||
|
unit_of_measurement: kWh
|
||||||
|
mode: box
|
||||||
|
icon: mdi:car-electric
|
||||||
|
# --- Réserve d'orage (27/08/2026) ---------------------------------------
|
||||||
|
# Ce qu'il faut avoir en batterie pour traverser SANS réseau la fenêtre de
|
||||||
|
# déficit qui compte. C'est la couverture prudente (p80) du bilan, pas une
|
||||||
|
# nouvelle constante : une coupure n'arrête pas l'installation, elle retire
|
||||||
|
# seulement le filet de secours et la possibilité de rattraper.
|
||||||
|
evcs_balance_storm_reserve_kwh:
|
||||||
|
name: "Bilan — réserve d'orage (énergie)"
|
||||||
|
min: 0
|
||||||
|
max: 100
|
||||||
|
step: 0.01
|
||||||
|
unit_of_measurement: "kWh"
|
||||||
|
mode: box
|
||||||
|
icon: mdi:weather-lightning
|
||||||
|
evcs_balance_storm_reserve_soc:
|
||||||
|
name: "Bilan — réserve d'orage (SOC)"
|
||||||
|
min: 0
|
||||||
|
max: 100
|
||||||
|
step: 0.1
|
||||||
|
unit_of_measurement: "%"
|
||||||
|
mode: box
|
||||||
|
icon: mdi:battery-alert-variant-outline
|
||||||
|
|
||||||
|
input_text:
|
||||||
|
# Profils recalculés une fois par jour, en CSV compact (24 valeurs, <255 car.)
|
||||||
|
evcs_balance_consumption_p50:
|
||||||
|
name: "Bilan — profil conso typique (CSV 24 h)"
|
||||||
|
max: 255
|
||||||
|
evcs_balance_consumption_p80:
|
||||||
|
name: "Bilan — profil conso prudent (CSV 24 h)"
|
||||||
|
max: 255
|
||||||
|
evcs_balance_envelope:
|
||||||
|
name: "Bilan — enveloppe de production démontrée (CSV 24 h)"
|
||||||
|
max: 255
|
||||||
|
evcs_balance_censorship_rate:
|
||||||
|
name: "Bilan — taux de censure par heure (CSV 24 h)"
|
||||||
|
max: 255
|
||||||
|
# Sorties lisibles.
|
||||||
|
evcs_balance_crossing_hour:
|
||||||
|
name: "Bilan — heure de croisement PV/conso"
|
||||||
|
max: 32
|
||||||
|
evcs_balance_censor_reason:
|
||||||
|
name: "Bilan — motif du bridage"
|
||||||
|
max: 255
|
||||||
|
evcs_balance_next_deficit_window:
|
||||||
|
name: "Bilan — prochaine traversée déficitaire"
|
||||||
|
max: 64
|
||||||
|
# --- Prévision solaire horaire (Forecast.Solar, abonnement Professional) ---
|
||||||
|
# La clé vit ici et NON dans le dépôt : le workflow n8n la lit via le snapshot
|
||||||
|
# et construit l'URL lui-même. mode password pour la masquer dans l'interface.
|
||||||
|
evcs_balance_forecast_api_key:
|
||||||
|
name: "Bilan — clé API Forecast.Solar"
|
||||||
|
mode: password
|
||||||
|
max: 64
|
||||||
|
# Plans au format attendu par l'API : dec/az/kWc répétés.
|
||||||
|
# ⚠️ Azimut selon la convention de l'API : 0 = sud, -90 = est, +90 = ouest.
|
||||||
|
evcs_balance_forecast_planes:
|
||||||
|
name: "Bilan — plans photovoltaïques (format API)"
|
||||||
|
max: 128
|
||||||
|
# La DATE que decrit la courbe de prevision (AAAA-MM-JJ). Sans elle, « today »
|
||||||
|
# veut dire « le premier jour renvoye par l'API au moment de la publication »,
|
||||||
|
# ce qui devient faux des qu'on passe minuit sans rafraichir : nuit du 07 au
|
||||||
|
# 08/09/2026, 4 h 45 sans publication, courbe du 7 lue comme celle du 8, bilan
|
||||||
|
# degrade et cible du matin retombee sur les paliers pendant quatre heures.
|
||||||
|
# PAS de `initial:` — il desactiverait la restauration d'etat.
|
||||||
|
evcs_balance_forecast_day0:
|
||||||
|
name: "Bilan — date de la courbe de prévision"
|
||||||
|
max: 10
|
||||||
|
evcs_balance_forecast_today:
|
||||||
|
name: "Bilan — prévision horaire du jour (CSV 24 h, kWh)"
|
||||||
|
max: 255
|
||||||
|
evcs_balance_forecast_tomorrow:
|
||||||
|
name: "Bilan — prévision horaire de demain (CSV 24 h, kWh)"
|
||||||
|
max: 255
|
||||||
|
evcs_balance_forecast_updated:
|
||||||
|
name: "Bilan — prévision mise à jour"
|
||||||
|
# 128 et non 32 : ce champ porte soit un horodatage « JJ/MM HH:MM » (11
|
||||||
|
# caracteres), soit un message d'echec. « échec : réponse illisible ou sans
|
||||||
|
# résultat » en fait 43 — Home Assistant le REJETAIT, si bien qu'aucune
|
||||||
|
# panne de prevision n'a jamais ete publiee ici. Constate le 08/09/2026 en
|
||||||
|
# cherchant pourquoi les 4 h 45 d'interruption de la nuit precedente
|
||||||
|
# n'avaient laisse aucune trace : zero message d'echec en quatre jours.
|
||||||
|
max: 128
|
||||||
|
evcs_balance_status:
|
||||||
|
name: "Bilan — statut"
|
||||||
|
max: 64
|
||||||
|
evcs_balance_reason:
|
||||||
|
name: "Bilan — explication"
|
||||||
|
max: 255
|
||||||
|
evcs_balance_last_run:
|
||||||
|
name: "Bilan — dernière exécution"
|
||||||
|
max: 32
|
||||||
|
evcs_balance_storm_level:
|
||||||
|
name: "Bilan — vigilance météo"
|
||||||
|
max: 40
|
||||||
|
icon: mdi:weather-lightning-rainy
|
||||||
|
evcs_balance_storm_reason:
|
||||||
|
name: "Bilan — réserve d'orage (détail)"
|
||||||
|
max: 255
|
||||||
|
icon: mdi:text-long
|
||||||
71
packages/ui_master_helpers.yaml
Executable file
71
packages/ui_master_helpers.yaml
Executable file
@@ -0,0 +1,71 @@
|
|||||||
|
input_number:
|
||||||
|
ui_max_pv_power:
|
||||||
|
name: UI Max PV Power
|
||||||
|
icon: mdi:solar-power
|
||||||
|
min: 1000
|
||||||
|
max: 15000
|
||||||
|
step: 100
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: W
|
||||||
|
initial: 5000
|
||||||
|
|
||||||
|
ui_max_house_power:
|
||||||
|
name: UI Max House Power
|
||||||
|
icon: mdi:home-lightning-bolt
|
||||||
|
min: 1000
|
||||||
|
max: 15000
|
||||||
|
step: 100
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: W
|
||||||
|
initial: 6000
|
||||||
|
|
||||||
|
ui_max_grid_power:
|
||||||
|
name: UI Max Grid Power
|
||||||
|
icon: mdi:transmission-tower
|
||||||
|
min: 500
|
||||||
|
max: 15000
|
||||||
|
step: 100
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: W
|
||||||
|
initial: 5000
|
||||||
|
|
||||||
|
ui_max_ac_out_power:
|
||||||
|
name: UI Max AC Out Power
|
||||||
|
icon: mdi:power-plug
|
||||||
|
min: 500
|
||||||
|
max: 15000
|
||||||
|
step: 100
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: W
|
||||||
|
initial: 3000
|
||||||
|
|
||||||
|
ui_max_battery_power:
|
||||||
|
name: UI Max Battery Power
|
||||||
|
icon: mdi:battery-high
|
||||||
|
min: 500
|
||||||
|
max: 15000
|
||||||
|
step: 100
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: W
|
||||||
|
initial: 3000
|
||||||
|
|
||||||
|
ui_max_evcs_power:
|
||||||
|
name: UI Max EVCS Power
|
||||||
|
icon: mdi:ev-station
|
||||||
|
min: 1000
|
||||||
|
max: 15000
|
||||||
|
step: 100
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: W
|
||||||
|
initial: 7400
|
||||||
|
|
||||||
|
ui_max_evcs_current:
|
||||||
|
name: UI Max EVCS Current
|
||||||
|
icon: mdi:current-ac
|
||||||
|
min: 6
|
||||||
|
max: 32
|
||||||
|
step: 1
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: A
|
||||||
|
initial: 32
|
||||||
|
|
||||||
506
packages/victron_evcs_battery_dynamic.yaml
Executable file
506
packages/victron_evcs_battery_dynamic.yaml
Executable file
@@ -0,0 +1,506 @@
|
|||||||
|
input_number:
|
||||||
|
|
||||||
|
# =====================================================
|
||||||
|
# GLOBAL TIMERS / GRACE / AUTO-REVERT
|
||||||
|
# =====================================================
|
||||||
|
|
||||||
|
victron_evcs_house_spike_grace_minutes:
|
||||||
|
name: EVCS Batt - Grâce pic maison
|
||||||
|
min: 0
|
||||||
|
max: 30
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: min
|
||||||
|
mode: box
|
||||||
|
initial: 10
|
||||||
|
|
||||||
|
victron_evcs_solar_potential_grace_minutes:
|
||||||
|
name: EVCS Batt - Grâce solaire potentiel
|
||||||
|
min: 0
|
||||||
|
max: 30
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: min
|
||||||
|
mode: box
|
||||||
|
initial: 12
|
||||||
|
|
||||||
|
victron_evcs_step_up_cooldown_seconds:
|
||||||
|
name: EVCS Batt - Cooldown montée courant
|
||||||
|
min: 5
|
||||||
|
max: 300
|
||||||
|
step: 5
|
||||||
|
unit_of_measurement: s
|
||||||
|
mode: box
|
||||||
|
initial: 30
|
||||||
|
|
||||||
|
victron_evcs_step_down_cooldown_seconds:
|
||||||
|
name: EVCS Batt - Cooldown baisse courant
|
||||||
|
min: 5
|
||||||
|
max: 300
|
||||||
|
step: 5
|
||||||
|
unit_of_measurement: s
|
||||||
|
mode: box
|
||||||
|
initial: 60
|
||||||
|
|
||||||
|
victron_evcs_force_mode_auto_revert_minutes:
|
||||||
|
name: EVCS Batt - Retour auto mode forcé
|
||||||
|
min: 0
|
||||||
|
max: 480
|
||||||
|
step: 5
|
||||||
|
unit_of_measurement: min
|
||||||
|
mode: box
|
||||||
|
initial: 120
|
||||||
|
|
||||||
|
victron_evcs_overload_step_down_a:
|
||||||
|
name: EVCS Batt - Step-down surcharge convertisseur
|
||||||
|
min: 1
|
||||||
|
max: 6
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: A
|
||||||
|
mode: box
|
||||||
|
initial: 2
|
||||||
|
|
||||||
|
victron_evcs_overload_hold_seconds:
|
||||||
|
name: EVCS Batt - Maintien avant nouvelle baisse surcharge
|
||||||
|
min: 5
|
||||||
|
max: 300
|
||||||
|
step: 5
|
||||||
|
unit_of_measurement: s
|
||||||
|
mode: box
|
||||||
|
initial: 30
|
||||||
|
|
||||||
|
victron_evcs_overload_stop_after_seconds:
|
||||||
|
name: EVCS Batt - Arrêt surcharge persistante
|
||||||
|
min: 10
|
||||||
|
max: 600
|
||||||
|
step: 10
|
||||||
|
unit_of_measurement: s
|
||||||
|
mode: box
|
||||||
|
initial: 120
|
||||||
|
|
||||||
|
|
||||||
|
# =====================================================
|
||||||
|
# SOC BAND > 90%
|
||||||
|
# =====================================================
|
||||||
|
|
||||||
|
victron_evcs_batt_discharge_soft_gt90_a:
|
||||||
|
name: EVCS Batt >90 - Décharge soft
|
||||||
|
min: -150
|
||||||
|
max: 0
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: A
|
||||||
|
mode: box
|
||||||
|
initial: -50
|
||||||
|
|
||||||
|
victron_evcs_batt_discharge_hard_gt90_a:
|
||||||
|
name: EVCS Batt >90 - Décharge hard
|
||||||
|
min: -200
|
||||||
|
max: 0
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: A
|
||||||
|
mode: box
|
||||||
|
initial: -100
|
||||||
|
|
||||||
|
victron_evcs_batt_charge_reserve_gt90_a:
|
||||||
|
name: EVCS Batt >90 - Réserve charge batterie
|
||||||
|
min: 0
|
||||||
|
max: 200
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: A
|
||||||
|
mode: box
|
||||||
|
initial: 5
|
||||||
|
|
||||||
|
victron_evcs_batt_soft_tol_gt90_min:
|
||||||
|
name: EVCS Batt >90 - Tolérance soft
|
||||||
|
min: 0
|
||||||
|
max: 60
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: min
|
||||||
|
mode: box
|
||||||
|
initial: 12
|
||||||
|
|
||||||
|
victron_evcs_batt_hard_tol_gt90_sec:
|
||||||
|
name: EVCS Batt >90 - Tolérance hard
|
||||||
|
min: 0
|
||||||
|
max: 120
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: s
|
||||||
|
mode: box
|
||||||
|
initial: 20
|
||||||
|
|
||||||
|
victron_evcs_batt_recovery_gt90_min:
|
||||||
|
name: EVCS Batt >90 - Récupération
|
||||||
|
min: 0
|
||||||
|
max: 60
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: min
|
||||||
|
mode: box
|
||||||
|
initial: 6
|
||||||
|
|
||||||
|
|
||||||
|
# =====================================================
|
||||||
|
# SOC BAND 80% - 90%
|
||||||
|
# =====================================================
|
||||||
|
|
||||||
|
victron_evcs_batt_discharge_soft_80_90_a:
|
||||||
|
name: EVCS Batt 80-90 - Décharge soft
|
||||||
|
min: -150
|
||||||
|
max: 0
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: A
|
||||||
|
mode: box
|
||||||
|
initial: -40
|
||||||
|
|
||||||
|
victron_evcs_batt_discharge_hard_80_90_a:
|
||||||
|
name: EVCS Batt 80-90 - Décharge hard
|
||||||
|
min: -200
|
||||||
|
max: 0
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: A
|
||||||
|
mode: box
|
||||||
|
initial: -80
|
||||||
|
|
||||||
|
victron_evcs_batt_charge_reserve_80_90_a:
|
||||||
|
name: EVCS Batt 80-90 - Réserve charge batterie
|
||||||
|
min: 0
|
||||||
|
max: 200
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: A
|
||||||
|
mode: box
|
||||||
|
initial: 10
|
||||||
|
|
||||||
|
victron_evcs_batt_soft_tol_80_90_min:
|
||||||
|
name: EVCS Batt 80-90 - Tolérance soft
|
||||||
|
min: 0
|
||||||
|
max: 60
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: min
|
||||||
|
mode: box
|
||||||
|
initial: 10
|
||||||
|
|
||||||
|
victron_evcs_batt_hard_tol_80_90_sec:
|
||||||
|
name: EVCS Batt 80-90 - Tolérance hard
|
||||||
|
min: 0
|
||||||
|
max: 120
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: s
|
||||||
|
mode: box
|
||||||
|
initial: 20
|
||||||
|
|
||||||
|
victron_evcs_batt_recovery_80_90_min:
|
||||||
|
name: EVCS Batt 80-90 - Récupération
|
||||||
|
min: 0
|
||||||
|
max: 60
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: min
|
||||||
|
mode: box
|
||||||
|
initial: 6
|
||||||
|
|
||||||
|
|
||||||
|
# =====================================================
|
||||||
|
# SOC BAND 60% - 80%
|
||||||
|
# =====================================================
|
||||||
|
|
||||||
|
victron_evcs_batt_discharge_soft_60_80_a:
|
||||||
|
name: EVCS Batt 60-80 - Décharge soft
|
||||||
|
min: -150
|
||||||
|
max: 0
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: A
|
||||||
|
mode: box
|
||||||
|
initial: -20
|
||||||
|
|
||||||
|
victron_evcs_batt_discharge_hard_60_80_a:
|
||||||
|
name: EVCS Batt 60-80 - Décharge hard
|
||||||
|
min: -200
|
||||||
|
max: 0
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: A
|
||||||
|
mode: box
|
||||||
|
initial: -50
|
||||||
|
|
||||||
|
victron_evcs_batt_charge_reserve_60_80_a:
|
||||||
|
name: EVCS Batt 60-80 - Réserve charge batterie
|
||||||
|
min: 0
|
||||||
|
max: 250
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: A
|
||||||
|
mode: box
|
||||||
|
initial: 40
|
||||||
|
|
||||||
|
victron_evcs_batt_soft_tol_60_80_min:
|
||||||
|
name: EVCS Batt 60-80 - Tolérance soft
|
||||||
|
min: 0
|
||||||
|
max: 60
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: min
|
||||||
|
mode: box
|
||||||
|
initial: 6
|
||||||
|
|
||||||
|
victron_evcs_batt_hard_tol_60_80_sec:
|
||||||
|
name: EVCS Batt 60-80 - Tolérance hard
|
||||||
|
min: 0
|
||||||
|
max: 120
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: s
|
||||||
|
mode: box
|
||||||
|
initial: 15
|
||||||
|
|
||||||
|
victron_evcs_batt_recovery_60_80_min:
|
||||||
|
name: EVCS Batt 60-80 - Récupération
|
||||||
|
min: 0
|
||||||
|
max: 60
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: min
|
||||||
|
mode: box
|
||||||
|
initial: 8
|
||||||
|
|
||||||
|
|
||||||
|
# =====================================================
|
||||||
|
# SOC BAND 40% - 60%
|
||||||
|
# =====================================================
|
||||||
|
|
||||||
|
victron_evcs_batt_discharge_soft_40_60_a:
|
||||||
|
name: EVCS Batt 40-60 - Décharge soft
|
||||||
|
min: -150
|
||||||
|
max: 0
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: A
|
||||||
|
mode: box
|
||||||
|
initial: -12
|
||||||
|
|
||||||
|
victron_evcs_batt_discharge_hard_40_60_a:
|
||||||
|
name: EVCS Batt 40-60 - Décharge hard
|
||||||
|
min: -200
|
||||||
|
max: 0
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: A
|
||||||
|
mode: box
|
||||||
|
initial: -30
|
||||||
|
|
||||||
|
victron_evcs_batt_charge_reserve_40_60_a:
|
||||||
|
name: EVCS Batt 40-60 - Réserve charge batterie
|
||||||
|
min: 0
|
||||||
|
max: 250
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: A
|
||||||
|
mode: box
|
||||||
|
initial: 70
|
||||||
|
|
||||||
|
victron_evcs_batt_soft_tol_40_60_min:
|
||||||
|
name: EVCS Batt 40-60 - Tolérance soft
|
||||||
|
min: 0
|
||||||
|
max: 60
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: min
|
||||||
|
mode: box
|
||||||
|
initial: 4
|
||||||
|
|
||||||
|
victron_evcs_batt_hard_tol_40_60_sec:
|
||||||
|
name: EVCS Batt 40-60 - Tolérance hard
|
||||||
|
min: 0
|
||||||
|
max: 120
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: s
|
||||||
|
mode: box
|
||||||
|
initial: 10
|
||||||
|
|
||||||
|
victron_evcs_batt_recovery_40_60_min:
|
||||||
|
name: EVCS Batt 40-60 - Récupération
|
||||||
|
min: 0
|
||||||
|
max: 60
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: min
|
||||||
|
mode: box
|
||||||
|
initial: 10
|
||||||
|
|
||||||
|
|
||||||
|
# =====================================================
|
||||||
|
# SOC BAND 25% - 40%
|
||||||
|
# =====================================================
|
||||||
|
|
||||||
|
victron_evcs_batt_discharge_soft_25_40_a:
|
||||||
|
name: EVCS Batt 25-40 - Décharge soft
|
||||||
|
min: -150
|
||||||
|
max: 0
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: A
|
||||||
|
mode: box
|
||||||
|
initial: -5
|
||||||
|
|
||||||
|
victron_evcs_batt_discharge_hard_25_40_a:
|
||||||
|
name: EVCS Batt 25-40 - Décharge hard
|
||||||
|
min: -200
|
||||||
|
max: 0
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: A
|
||||||
|
mode: box
|
||||||
|
initial: -15
|
||||||
|
|
||||||
|
victron_evcs_batt_charge_reserve_25_40_a:
|
||||||
|
name: EVCS Batt 25-40 - Réserve charge batterie
|
||||||
|
min: 0
|
||||||
|
max: 300
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: A
|
||||||
|
mode: box
|
||||||
|
initial: 110
|
||||||
|
|
||||||
|
victron_evcs_batt_soft_tol_25_40_min:
|
||||||
|
name: EVCS Batt 25-40 - Tolérance soft
|
||||||
|
min: 0
|
||||||
|
max: 60
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: min
|
||||||
|
mode: box
|
||||||
|
initial: 2
|
||||||
|
|
||||||
|
victron_evcs_batt_hard_tol_25_40_sec:
|
||||||
|
name: EVCS Batt 25-40 - Tolérance hard
|
||||||
|
min: 0
|
||||||
|
max: 120
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: s
|
||||||
|
mode: box
|
||||||
|
initial: 5
|
||||||
|
|
||||||
|
victron_evcs_batt_recovery_25_40_min:
|
||||||
|
name: EVCS Batt 25-40 - Récupération
|
||||||
|
min: 0
|
||||||
|
max: 60
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: min
|
||||||
|
mode: box
|
||||||
|
initial: 12
|
||||||
|
|
||||||
|
|
||||||
|
# =====================================================
|
||||||
|
# SOC BAND < 25%
|
||||||
|
# =====================================================
|
||||||
|
|
||||||
|
victron_evcs_batt_discharge_soft_lt25_a:
|
||||||
|
name: EVCS Batt <25 - Décharge soft
|
||||||
|
min: -150
|
||||||
|
max: 0
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: A
|
||||||
|
mode: box
|
||||||
|
initial: -3
|
||||||
|
|
||||||
|
victron_evcs_batt_discharge_hard_lt25_a:
|
||||||
|
name: EVCS Batt <25 - Décharge hard
|
||||||
|
min: -200
|
||||||
|
max: 0
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: A
|
||||||
|
mode: box
|
||||||
|
initial: -8
|
||||||
|
|
||||||
|
victron_evcs_batt_charge_reserve_lt25_a:
|
||||||
|
name: EVCS Batt <25 - Réserve charge batterie
|
||||||
|
min: 0
|
||||||
|
max: 300
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: A
|
||||||
|
mode: box
|
||||||
|
initial: 150
|
||||||
|
|
||||||
|
victron_evcs_batt_soft_tol_lt25_min:
|
||||||
|
name: EVCS Batt <25 - Tolérance soft
|
||||||
|
min: 0
|
||||||
|
max: 60
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: min
|
||||||
|
mode: box
|
||||||
|
initial: 1
|
||||||
|
|
||||||
|
victron_evcs_batt_hard_tol_lt25_sec:
|
||||||
|
name: EVCS Batt <25 - Tolérance hard
|
||||||
|
min: 0
|
||||||
|
max: 120
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: s
|
||||||
|
mode: box
|
||||||
|
initial: 2
|
||||||
|
|
||||||
|
victron_evcs_batt_recovery_lt25_min:
|
||||||
|
name: EVCS Batt <25 - Récupération
|
||||||
|
min: 0
|
||||||
|
max: 60
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: min
|
||||||
|
mode: box
|
||||||
|
initial: 15
|
||||||
|
|
||||||
|
|
||||||
|
# =====================================================
|
||||||
|
# HIGH CELL VOLTAGE / BATTERY CHARGE VOLTAGE MANAGEMENT
|
||||||
|
# =====================================================
|
||||||
|
|
||||||
|
victron_battery_charge_voltage_normal_v:
|
||||||
|
name: Batt - Tension charge normale
|
||||||
|
min: 48.0
|
||||||
|
max: 52.5
|
||||||
|
step: 0.1
|
||||||
|
unit_of_measurement: V
|
||||||
|
mode: box
|
||||||
|
initial: 51.3
|
||||||
|
|
||||||
|
victron_battery_charge_voltage_hcv_step1_v:
|
||||||
|
name: Batt - Tension HCV palier 1
|
||||||
|
min: 48.0
|
||||||
|
max: 52.5
|
||||||
|
step: 0.1
|
||||||
|
unit_of_measurement: V
|
||||||
|
mode: box
|
||||||
|
initial: 51.0
|
||||||
|
|
||||||
|
victron_battery_charge_voltage_hcv_step2_v:
|
||||||
|
name: Batt - Tension HCV palier 2
|
||||||
|
min: 48.0
|
||||||
|
max: 52.5
|
||||||
|
step: 0.1
|
||||||
|
unit_of_measurement: V
|
||||||
|
mode: box
|
||||||
|
initial: 50.9
|
||||||
|
|
||||||
|
victron_battery_charge_voltage_recovery_step_v:
|
||||||
|
name: Batt - Pas de remontée tension
|
||||||
|
min: 0.1
|
||||||
|
max: 0.5
|
||||||
|
step: 0.1
|
||||||
|
unit_of_measurement: V
|
||||||
|
mode: box
|
||||||
|
initial: 0.1
|
||||||
|
|
||||||
|
victron_battery_hcv_hold_minutes:
|
||||||
|
name: Batt - Maintien réduction HCV
|
||||||
|
min: 1
|
||||||
|
max: 120
|
||||||
|
step: 1
|
||||||
|
unit_of_measurement: min
|
||||||
|
mode: box
|
||||||
|
initial: 15
|
||||||
|
|
||||||
|
|
||||||
|
input_text:
|
||||||
|
|
||||||
|
# =====================================================
|
||||||
|
# MEMOIRE DU DEPASSEMENT SOUPLE (01/09/2026)
|
||||||
|
# =====================================================
|
||||||
|
# La table des bandes SOC ci-dessus declare, pour chaque bande, un courant
|
||||||
|
# de decharge SOUPLE tolere pendant N MINUTES (batt_soft_tol_*_min) et un
|
||||||
|
# courant DUR tolere quelques secondes. La dimension temporelle n'etait
|
||||||
|
# branchee nulle part : le controleur comparait un echantillon instantane a
|
||||||
|
# un seuil, toutes les 30 s. A SOC eleve la batterie est en float et son
|
||||||
|
# courant oscille autour de zero (mesure du 01/09 : +1,8 / -2,6 A d'un
|
||||||
|
# echantillon a l'autre) : le test devenait un tirage a pile ou face, et la
|
||||||
|
# charge du vehicule s'arretait sur du bruit.
|
||||||
|
#
|
||||||
|
# Ce helper porte l'horodatage du DEBUT du depassement souple en cours,
|
||||||
|
# ecrit par le controleur EVCS. Vide = aucun depassement en cours.
|
||||||
|
# Il ne se regle pas a la main.
|
||||||
|
victron_evcs_battery_soft_breach_at:
|
||||||
|
name: Victron EVCS Batt - Debut depassement souple
|
||||||
|
min: 0
|
||||||
|
max: 32
|
||||||
|
initial: ""
|
||||||
|
icon: mdi:battery-clock-outline
|
||||||
168
packages/victron_evcs_night_helpers.yaml
Executable file
168
packages/victron_evcs_night_helpers.yaml
Executable file
@@ -0,0 +1,168 @@
|
|||||||
|
input_number:
|
||||||
|
# =====================================================
|
||||||
|
# RUNTIME HELPERS EVCS NIGHT
|
||||||
|
# =====================================================
|
||||||
|
victron_evcs_night_target_soc:
|
||||||
|
name: Victron EVCS Night Target SOC
|
||||||
|
min: 0
|
||||||
|
max: 100
|
||||||
|
step: 0.1
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: "%"
|
||||||
|
icon: mdi:battery-clock
|
||||||
|
initial: 35
|
||||||
|
|
||||||
|
victron_evcs_night_grid_trigger_soc:
|
||||||
|
name: Victron EVCS Night Grid Trigger SOC
|
||||||
|
min: 0
|
||||||
|
max: 100
|
||||||
|
step: 0.1
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: "%"
|
||||||
|
icon: mdi:transmission-tower
|
||||||
|
initial: 35
|
||||||
|
|
||||||
|
# =====================================================
|
||||||
|
# EVCS NIGHT PARAMETERS
|
||||||
|
# =====================================================
|
||||||
|
victron_evcs_night_battery_hard_floor_pct:
|
||||||
|
name: Victron EVCS Night Battery Hard Floor Pct
|
||||||
|
min: 0
|
||||||
|
max: 100
|
||||||
|
step: 0.1
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: "%"
|
||||||
|
icon: mdi:battery-alert-variant-outline
|
||||||
|
initial: 22
|
||||||
|
|
||||||
|
victron_evcs_night_strong_forecast_kwh:
|
||||||
|
name: Victron EVCS Night Strong Forecast Kwh
|
||||||
|
min: 0
|
||||||
|
max: 80
|
||||||
|
step: 0.1
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: "kWh"
|
||||||
|
icon: mdi:weather-sunny
|
||||||
|
initial: 18
|
||||||
|
|
||||||
|
victron_evcs_night_medium_forecast_kwh:
|
||||||
|
name: Victron EVCS Night Medium Forecast Kwh
|
||||||
|
min: 0
|
||||||
|
max: 80
|
||||||
|
step: 0.1
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: "kWh"
|
||||||
|
icon: mdi:weather-partly-cloudy
|
||||||
|
initial: 10
|
||||||
|
|
||||||
|
victron_evcs_night_target_strong_forecast_pct:
|
||||||
|
name: Victron EVCS Night Target Strong Forecast Pct
|
||||||
|
min: 0
|
||||||
|
max: 100
|
||||||
|
step: 0.1
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: "%"
|
||||||
|
icon: mdi:battery-30
|
||||||
|
initial: 35
|
||||||
|
|
||||||
|
victron_evcs_night_target_medium_forecast_pct:
|
||||||
|
name: Victron EVCS Night Target Medium Forecast Pct
|
||||||
|
min: 0
|
||||||
|
max: 100
|
||||||
|
step: 0.1
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: "%"
|
||||||
|
icon: mdi:battery-50
|
||||||
|
initial: 55
|
||||||
|
|
||||||
|
victron_evcs_night_target_weak_forecast_pct:
|
||||||
|
name: Victron EVCS Night Target Weak Forecast Pct
|
||||||
|
min: 0
|
||||||
|
max: 100
|
||||||
|
step: 0.1
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: "%"
|
||||||
|
icon: mdi:battery-80
|
||||||
|
initial: 85
|
||||||
|
|
||||||
|
victron_evcs_night_battery_recovery_power_kw:
|
||||||
|
name: Victron EVCS Night Battery Recovery Power Kw
|
||||||
|
min: 0.1
|
||||||
|
max: 10
|
||||||
|
step: 0.1
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: "kW"
|
||||||
|
icon: mdi:battery-sync
|
||||||
|
initial: 2.5
|
||||||
|
|
||||||
|
victron_evcs_night_departure_safety_min:
|
||||||
|
name: Victron EVCS Night Departure Safety Min
|
||||||
|
min: 0
|
||||||
|
max: 240
|
||||||
|
step: 1
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: "min"
|
||||||
|
icon: mdi:clock-alert-outline
|
||||||
|
initial: 30
|
||||||
|
|
||||||
|
input_text:
|
||||||
|
# =====================================================
|
||||||
|
# RUNTIME HELPERS EVCS NIGHT
|
||||||
|
# =====================================================
|
||||||
|
victron_evcs_night_preferred_source_mode:
|
||||||
|
name: Victron EVCS Night Preferred Source Mode
|
||||||
|
max: 64
|
||||||
|
initial: "blocked"
|
||||||
|
icon: mdi:source-branch
|
||||||
|
|
||||||
|
victron_evcs_night_session_start_soc:
|
||||||
|
name: Victron EVCS Night Session Start SOC
|
||||||
|
max: 16
|
||||||
|
initial: ""
|
||||||
|
icon: mdi:battery-start
|
||||||
|
|
||||||
|
victron_evcs_night_session_start_at:
|
||||||
|
name: Victron EVCS Night Session Start At
|
||||||
|
max: 32
|
||||||
|
initial: ""
|
||||||
|
icon: mdi:clock-start
|
||||||
|
|
||||||
|
input_boolean:
|
||||||
|
# =====================================================
|
||||||
|
# RUNTIME HELPERS EVCS NIGHT
|
||||||
|
# =====================================================
|
||||||
|
victron_evcs_night_grid_takeover_needed:
|
||||||
|
name: Victron EVCS Night Grid Takeover Needed
|
||||||
|
icon: mdi:transmission-tower-import
|
||||||
|
initial: false
|
||||||
|
|
||||||
|
# =====================================================
|
||||||
|
# SESSION RESEAU UNIQUE DE LA NUIT (03/09/2026)
|
||||||
|
# =====================================================
|
||||||
|
# Ecrit par le controleur EVCS, ne se regle pas a la main.
|
||||||
|
#
|
||||||
|
# ON = pendant CETTE session de nuit, le bilan energetique a constate que la
|
||||||
|
# batterie ne couvrait pas la nuit, et on s'est engage a utiliser la fenetre
|
||||||
|
# d'heures creuses en UNE session continue.
|
||||||
|
#
|
||||||
|
# Ce bit existe pour que le relachement ne depende PAS d'un seuil de SOC :
|
||||||
|
# engagement sur le bilan, relachement a la FIN DE LA FENETRE. Sans lui, tout
|
||||||
|
# relachement sur seuil rouvre l'oscillateur corrige le 27/08 — et il le
|
||||||
|
# rouvrirait sur une grandeur fausse, la conversion kWh -> points de SOC du
|
||||||
|
# bilan etant lineaire (15 kWh) alors que la jauge vaut ~17 kWh au-dessus de
|
||||||
|
# 42 % et s'effondre a 8-12 kWh en dessous (mesures du 03/09).
|
||||||
|
victron_evcs_night_grid_session_committed:
|
||||||
|
name: Victron EVCS Night - Session reseau engagee
|
||||||
|
icon: mdi:transmission-tower
|
||||||
|
initial: false
|
||||||
|
|
||||||
|
victron_evcs_night_battery_recovery_urgent:
|
||||||
|
name: Victron EVCS Night Battery Recovery Urgent
|
||||||
|
icon: mdi:battery-alert
|
||||||
|
initial: false
|
||||||
|
|
||||||
|
victron_evcs_night_session_active:
|
||||||
|
name: Victron EVCS Night Session Active
|
||||||
|
icon: mdi:car-electric
|
||||||
|
initial: false
|
||||||
|
|
||||||
28
packages/victron_evcs_priority.yaml
Executable file
28
packages/victron_evcs_priority.yaml
Executable file
@@ -0,0 +1,28 @@
|
|||||||
|
input_boolean:
|
||||||
|
victron_evcs_priority_active:
|
||||||
|
name: EVCS priorité active
|
||||||
|
icon: mdi:car-electric
|
||||||
|
|
||||||
|
input_select:
|
||||||
|
victron_energy_priority_mode:
|
||||||
|
name: Priorité énergie
|
||||||
|
options:
|
||||||
|
- normal
|
||||||
|
- evcs_priority
|
||||||
|
- comfort_priority
|
||||||
|
- water_priority
|
||||||
|
initial: normal
|
||||||
|
icon: mdi:priority-high
|
||||||
|
|
||||||
|
input_text:
|
||||||
|
victron_energy_priority_reason:
|
||||||
|
name: Raison priorité énergie
|
||||||
|
max: 255
|
||||||
|
icon: mdi:comment-alert
|
||||||
|
|
||||||
|
input_datetime:
|
||||||
|
victron_evcs_priority_until:
|
||||||
|
name: EVCS priorité jusqu'à
|
||||||
|
has_date: true
|
||||||
|
has_time: true
|
||||||
|
|
||||||
26
packages/victron_evcs_priority_manual.yaml
Executable file
26
packages/victron_evcs_priority_manual.yaml
Executable file
@@ -0,0 +1,26 @@
|
|||||||
|
input_boolean:
|
||||||
|
victron_evcs_priority_manual_override:
|
||||||
|
name: EVCS priorité manuelle
|
||||||
|
icon: mdi:hand-back-right
|
||||||
|
|
||||||
|
input_select:
|
||||||
|
victron_evcs_priority_manual_mode:
|
||||||
|
name: EVCS priorité manuelle mode
|
||||||
|
options:
|
||||||
|
- normal
|
||||||
|
- evcs_priority
|
||||||
|
initial: normal
|
||||||
|
icon: mdi:tune
|
||||||
|
|
||||||
|
input_text:
|
||||||
|
victron_evcs_priority_manual_reason:
|
||||||
|
name: EVCS priorité manuelle raison
|
||||||
|
max: 255
|
||||||
|
icon: mdi:comment-edit
|
||||||
|
|
||||||
|
input_datetime:
|
||||||
|
victron_evcs_priority_manual_until:
|
||||||
|
name: EVCS priorité manuelle jusqu'à
|
||||||
|
has_date: true
|
||||||
|
has_time: true
|
||||||
|
|
||||||
208
packages/victron_evcs_surplus_v14.yaml
Executable file
208
packages/victron_evcs_surplus_v14.yaml
Executable file
@@ -0,0 +1,208 @@
|
|||||||
|
input_boolean:
|
||||||
|
victron_evcs_allow_grid_hc_night:
|
||||||
|
name: Victron EVCS - Autoriser réseau HC nuit
|
||||||
|
|
||||||
|
victron_evcs_allow_grid_hc_midday:
|
||||||
|
name: Victron EVCS - Autoriser réseau HC midi
|
||||||
|
|
||||||
|
victron_evcs_probe_enabled:
|
||||||
|
name: Victron EVCS - Mode sonde activé
|
||||||
|
|
||||||
|
victron_evcs_dynamic_ok:
|
||||||
|
name: Victron EVCS - Dynamic OK
|
||||||
|
|
||||||
|
victron_evcs_must_stop:
|
||||||
|
name: Victron EVCS - Must stop
|
||||||
|
|
||||||
|
|
||||||
|
input_number:
|
||||||
|
victron_evcs_probe_minutes:
|
||||||
|
name: Victron EVCS - Durée sonde
|
||||||
|
min: 1
|
||||||
|
max: 10
|
||||||
|
step: 1
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: min
|
||||||
|
|
||||||
|
victron_evcs_probe_retry_minutes:
|
||||||
|
name: Victron EVCS - Retry sonde
|
||||||
|
min: 5
|
||||||
|
max: 180
|
||||||
|
step: 5
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: min
|
||||||
|
|
||||||
|
victron_evcs_probe_current_a:
|
||||||
|
name: Victron EVCS - Courant sonde
|
||||||
|
min: 6
|
||||||
|
max: 16
|
||||||
|
step: 1
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: A
|
||||||
|
|
||||||
|
victron_evcs_grid_battery_soft_a:
|
||||||
|
name: Victron EVCS - Garde batterie réseau soft
|
||||||
|
min: -20
|
||||||
|
max: 10
|
||||||
|
step: 1
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: A
|
||||||
|
|
||||||
|
victron_evcs_grid_battery_hard_a:
|
||||||
|
name: Victron EVCS - Garde batterie réseau hard
|
||||||
|
min: -20
|
||||||
|
max: 10
|
||||||
|
step: 1
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: A
|
||||||
|
|
||||||
|
victron_evcs_morning_probe_pv_avg_min_w:
|
||||||
|
name: Victron EVCS - PV moyen mini matin
|
||||||
|
min: 0
|
||||||
|
max: 5000
|
||||||
|
step: 100
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: W
|
||||||
|
|
||||||
|
victron_evcs_morning_probe_pv_trend_min_w:
|
||||||
|
name: Victron EVCS - Tendance PV mini matin
|
||||||
|
min: -2000
|
||||||
|
max: 2000
|
||||||
|
step: 50
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: W
|
||||||
|
|
||||||
|
victron_evcs_midday_probe_pv_avg_min_w:
|
||||||
|
name: Victron EVCS - PV moyen mini midi
|
||||||
|
min: 0
|
||||||
|
max: 5000
|
||||||
|
step: 100
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: W
|
||||||
|
|
||||||
|
victron_evcs_morning_soc_min:
|
||||||
|
name: Victron EVCS - SOC mini matin
|
||||||
|
min: 0
|
||||||
|
max: 100
|
||||||
|
step: 1
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: "%"
|
||||||
|
|
||||||
|
victron_evcs_midday_soc_min:
|
||||||
|
name: Victron EVCS - SOC mini midi
|
||||||
|
min: 0
|
||||||
|
max: 100
|
||||||
|
step: 1
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: "%"
|
||||||
|
|
||||||
|
victron_evcs_evening_soc_start_min:
|
||||||
|
name: Victron EVCS - SOC start soir
|
||||||
|
min: 0
|
||||||
|
max: 100
|
||||||
|
step: 1
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: "%"
|
||||||
|
|
||||||
|
victron_evcs_evening_soc_stop_min:
|
||||||
|
name: Victron EVCS - SOC stop soir
|
||||||
|
min: 0
|
||||||
|
max: 100
|
||||||
|
step: 1
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: "%"
|
||||||
|
|
||||||
|
victron_evcs_morning_battery_max_discharge_a:
|
||||||
|
name: Victron EVCS - Décharge batt max matin
|
||||||
|
min: -100
|
||||||
|
max: 20
|
||||||
|
step: 1
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: A
|
||||||
|
|
||||||
|
victron_evcs_midday_battery_max_discharge_a:
|
||||||
|
name: Victron EVCS - Décharge batt max midi
|
||||||
|
min: -100
|
||||||
|
max: 20
|
||||||
|
step: 1
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: A
|
||||||
|
|
||||||
|
victron_evcs_evening_battery_max_discharge_a:
|
||||||
|
name: Victron EVCS - Décharge batt max soir
|
||||||
|
min: -100
|
||||||
|
max: 20
|
||||||
|
step: 1
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: A
|
||||||
|
|
||||||
|
|
||||||
|
input_datetime:
|
||||||
|
victron_evcs_hc_night_start:
|
||||||
|
name: Victron EVCS - Début HC nuit
|
||||||
|
has_date: false
|
||||||
|
has_time: true
|
||||||
|
|
||||||
|
victron_evcs_hc_night_stop:
|
||||||
|
name: Victron EVCS - Fin HC nuit
|
||||||
|
has_date: false
|
||||||
|
has_time: true
|
||||||
|
|
||||||
|
victron_evcs_morning_start:
|
||||||
|
name: Victron EVCS - Début matin
|
||||||
|
has_date: false
|
||||||
|
has_time: true
|
||||||
|
|
||||||
|
victron_evcs_morning_stop:
|
||||||
|
name: Victron EVCS - Fin matin
|
||||||
|
has_date: false
|
||||||
|
has_time: true
|
||||||
|
|
||||||
|
victron_evcs_hc_midday_start:
|
||||||
|
name: Victron EVCS - Début HC midi
|
||||||
|
has_date: false
|
||||||
|
has_time: true
|
||||||
|
|
||||||
|
victron_evcs_hc_midday_stop:
|
||||||
|
name: Victron EVCS - Fin HC midi
|
||||||
|
has_date: false
|
||||||
|
has_time: true
|
||||||
|
|
||||||
|
victron_evcs_evening_start:
|
||||||
|
name: Victron EVCS - Début soir
|
||||||
|
has_date: false
|
||||||
|
has_time: true
|
||||||
|
|
||||||
|
victron_evcs_evening_stop:
|
||||||
|
name: Victron EVCS - Fin soir
|
||||||
|
has_date: false
|
||||||
|
has_time: true
|
||||||
|
|
||||||
|
victron_evcs_blocked_until:
|
||||||
|
name: Victron EVCS - Bloqué jusqu'à
|
||||||
|
has_date: true
|
||||||
|
has_time: true
|
||||||
|
|
||||||
|
victron_evcs_probe_started_at:
|
||||||
|
name: Victron EVCS - Sonde démarrée à
|
||||||
|
has_date: true
|
||||||
|
has_time: true
|
||||||
|
|
||||||
|
|
||||||
|
input_text:
|
||||||
|
victron_evcs_last_block_reason:
|
||||||
|
name: Victron EVCS - Dernière raison de blocage
|
||||||
|
max: 255
|
||||||
|
|
||||||
|
victron_evcs_surplus_state:
|
||||||
|
name: Victron EVCS - Surplus state
|
||||||
|
max: 255
|
||||||
|
|
||||||
|
victron_evcs_surplus_current_decision:
|
||||||
|
name: Victron EVCS - Current decision
|
||||||
|
max: 255
|
||||||
|
|
||||||
|
victron_evcs_surplus_reason:
|
||||||
|
name: Victron EVCS - Reason
|
||||||
|
max: 255
|
||||||
|
|
||||||
37
packages/victron_evcs_vehicle_demand_filter.yaml
Executable file
37
packages/victron_evcs_vehicle_demand_filter.yaml
Executable file
@@ -0,0 +1,37 @@
|
|||||||
|
input_number:
|
||||||
|
victron_evcs_delivery_ratio_ema:
|
||||||
|
name: Victron EVCS Delivery Ratio EMA
|
||||||
|
min: 0
|
||||||
|
max: 1
|
||||||
|
step: 0.001
|
||||||
|
mode: box
|
||||||
|
|
||||||
|
victron_evcs_delivery_noise_ema:
|
||||||
|
name: Victron EVCS Delivery Noise EMA
|
||||||
|
min: 0
|
||||||
|
max: 1
|
||||||
|
step: 0.001
|
||||||
|
mode: box
|
||||||
|
|
||||||
|
victron_evcs_no_demand_score_ema:
|
||||||
|
name: Victron EVCS No Demand Score EMA
|
||||||
|
min: 0
|
||||||
|
max: 1
|
||||||
|
step: 0.001
|
||||||
|
mode: box
|
||||||
|
|
||||||
|
input_boolean:
|
||||||
|
victron_evcs_no_demand_semantic_active:
|
||||||
|
name: Victron EVCS No Demand Semantic Active
|
||||||
|
|
||||||
|
input_datetime:
|
||||||
|
victron_evcs_no_demand_since_at:
|
||||||
|
name: Victron EVCS No Demand Since At
|
||||||
|
has_date: true
|
||||||
|
has_time: true
|
||||||
|
|
||||||
|
victron_evcs_no_demand_filter_eval_at:
|
||||||
|
name: Victron EVCS No Demand Filter Eval At
|
||||||
|
has_date: true
|
||||||
|
has_time: true
|
||||||
|
|
||||||
44
packages/victron_evcs_vehicles.yaml
Executable file
44
packages/victron_evcs_vehicles.yaml
Executable file
@@ -0,0 +1,44 @@
|
|||||||
|
# =====================================================
|
||||||
|
# EVCS — VÉHICULES & DÉPART (P9) — créé le 09/08/2026 (HANDOFF §21)
|
||||||
|
# Deux véhicules alternent sur la borne :
|
||||||
|
# - VW : départ tardif (input_datetime.victron_evcs_departure_time, ~08:50),
|
||||||
|
# ne publie pas franchement "charged" (statut 3 rare)
|
||||||
|
# - JEEP : départ tôt (06:30), publie "charged" franchement
|
||||||
|
# Le sélecteur dit au contrôleur QUELLE heure de départ utiliser.
|
||||||
|
# P9 : si le toggle est ON, le réseau est autorisé HORS fenêtre HC dans les
|
||||||
|
# 120 min précédant le départ pour finir la charge du véhicule
|
||||||
|
# (arrêt automatique via VDF/statut + états collants anti-rebond).
|
||||||
|
# =====================================================
|
||||||
|
|
||||||
|
# ⚠️ AUCUN `initial:` SUR LES REGLAGES MANUELS (06/09/2026).
|
||||||
|
# Dans Home Assistant, declarer `initial:` DESACTIVE la restauration d'etat :
|
||||||
|
# le helper est force a cette valeur a CHAQUE demarrage. Un reglage fait a la
|
||||||
|
# main est donc perdu au premier redemarrage, en silence.
|
||||||
|
# Constate deux fois sur le selecteur de vehicule (04/09 puis 06/09 : JEEP
|
||||||
|
# repasse a VW), et diagnostique le 06/09 en comparant avec
|
||||||
|
# `input_select.victron_evcs_strategy`, cree par l'interface donc sans
|
||||||
|
# `initial:`, qui survivait a tous les redemarrages.
|
||||||
|
# Les helpers de RUNTIME, eux, gardent leur `initial:` : ils sont reecrits par
|
||||||
|
# les workflows au cycle suivant, et repartir d'un etat connu y est voulu.
|
||||||
|
# Contrepartie assumee : sur une installation neuve, sans etat a restaurer, un
|
||||||
|
# input_select prend sa premiere option, un input_number son `min` et un
|
||||||
|
# input_datetime 00:00.
|
||||||
|
|
||||||
|
input_select:
|
||||||
|
victron_evcs_vehicle:
|
||||||
|
name: EVCS - Véhicule branché
|
||||||
|
options:
|
||||||
|
- VW
|
||||||
|
- JEEP
|
||||||
|
icon: mdi:car-multiple
|
||||||
|
|
||||||
|
input_datetime:
|
||||||
|
victron_evcs_departure_time_jeep:
|
||||||
|
name: EVCS - Heure départ JEEP
|
||||||
|
has_date: false
|
||||||
|
has_time: true
|
||||||
|
|
||||||
|
input_boolean:
|
||||||
|
victron_evcs_allow_grid_departure_urgent:
|
||||||
|
name: EVCS - Réseau avant départ (P9)
|
||||||
|
icon: mdi:car-clock
|
||||||
65
packages/victron_grid_charge_dwell.yaml
Executable file
65
packages/victron_grid_charge_dwell.yaml
Executable file
@@ -0,0 +1,65 @@
|
|||||||
|
# =====================================================
|
||||||
|
# RELACHEMENT DU CONTACTEUR SUR UNE DUREE (06/09/2026)
|
||||||
|
# =====================================================
|
||||||
|
# La regle posee le 05/09 ferme le contacteur EDF quand la maison demande plus
|
||||||
|
# de 80 % de ce que le parc sait delivrer, et le relachait des que la charge
|
||||||
|
# repassait sous 50 % — sur un SEUL echantillon.
|
||||||
|
#
|
||||||
|
# Mesure de la soiree du 05/09 (maison, pas d'une minute, seuil 2550 W) :
|
||||||
|
#
|
||||||
|
# pendant la cuisson 20:33 -> 21:37 13 accalmies, la plus longue 5 min
|
||||||
|
# apres la cuisson 21:40 -> 01:00 une seule accalmie 201 min
|
||||||
|
#
|
||||||
|
# La distribution est franchement bimodale : un creux de 20 minutes n'existe
|
||||||
|
# pas tant que ca cuisine. Le relachement instantane offrait donc 13 occasions
|
||||||
|
# de rendre le reseau au milieu du service, et chaque aller-retour du
|
||||||
|
# contacteur coute 50 a 150 Wh de transitoire.
|
||||||
|
#
|
||||||
|
# Ces deux durees sont des RESULTATS DE MESURE, pas des reglages de confort :
|
||||||
|
# a re-mesurer si les habitudes du foyer changent
|
||||||
|
# (cf. HANDOFF, soiree du 05-06/09).
|
||||||
|
|
||||||
|
input_number:
|
||||||
|
|
||||||
|
victron_grid_charge_dwell_long_min:
|
||||||
|
name: Grid - Relachement charge (reserve deja condamnee)
|
||||||
|
min: 0
|
||||||
|
max: 120
|
||||||
|
step: 1
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: min
|
||||||
|
icon: mdi:timer-sand
|
||||||
|
# Milieu du fosse entre 5 min et 201 min, marge x4 sur la plus longue
|
||||||
|
# accalmie de cuisson observee. S'applique quand le bilan energetique dit
|
||||||
|
# que la batterie touchera son plancher avant l'ouverture des heures
|
||||||
|
# creuses : l'energie reseau du soir est due de toute facon, tenir le
|
||||||
|
# contacteur ne fait qu'en changer l'heure.
|
||||||
|
initial: 20
|
||||||
|
|
||||||
|
victron_grid_charge_dwell_court_min:
|
||||||
|
name: Grid - Relachement charge (reserve suffisante)
|
||||||
|
min: 0
|
||||||
|
max: 120
|
||||||
|
step: 1
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: min
|
||||||
|
icon: mdi:timer-outline
|
||||||
|
# Juste au-dessus de la plus longue accalmie mesuree pendant la cuisson
|
||||||
|
# (5 min). S'applique quand la batterie passerait la nuit toute seule :
|
||||||
|
# chaque kWh reseau du soir deplace alors un kWh d'heures creuses vers des
|
||||||
|
# heures pleines, donc on rend le reseau des que c'est sur.
|
||||||
|
initial: 6
|
||||||
|
|
||||||
|
input_datetime:
|
||||||
|
|
||||||
|
# Derniere fois ou la maison a ATTEINT le seuil de relachement.
|
||||||
|
# Ecrit par le workflow d'hysteresis a chaque cycle ou la charge est haute,
|
||||||
|
# quel que soit l'etat du contacteur : il suit la MAISON, grandeur que le
|
||||||
|
# contacteur ne modifie pas. C'est ce qui empeche la decision de detruire sa
|
||||||
|
# propre cause — le piege des quatre oscillateurs deja corriges.
|
||||||
|
# Ne se regle pas a la main.
|
||||||
|
victron_grid_charge_high_last_at:
|
||||||
|
name: Grid - Derniere charge maison haute
|
||||||
|
has_date: true
|
||||||
|
has_time: true
|
||||||
|
icon: mdi:home-lightning-bolt-outline
|
||||||
133
packages/victron_vebus_mqtt.yaml
Executable file
133
packages/victron_vebus_mqtt.yaml
Executable file
@@ -0,0 +1,133 @@
|
|||||||
|
mqtt:
|
||||||
|
sensor:
|
||||||
|
- name: "Victron VE.Bus State"
|
||||||
|
unique_id: victron_vebus_state
|
||||||
|
state_topic: "N/c0619ab34ac5/vebus/276/State"
|
||||||
|
value_template: "{{ value_json.value if value_json is defined and value_json.value is defined }}"
|
||||||
|
icon: mdi:state-machine
|
||||||
|
|
||||||
|
- name: "Victron VE.Bus Main State"
|
||||||
|
unique_id: victron_vebus_main_state
|
||||||
|
state_topic: "N/c0619ab34ac5/vebus/276/VebusMainState"
|
||||||
|
value_template: "{{ value_json.value if value_json is defined and value_json.value is defined }}"
|
||||||
|
icon: mdi:state-machine
|
||||||
|
|
||||||
|
- name: "Victron VE.Bus AC Out L1 Power"
|
||||||
|
unique_id: victron_vebus_ac_out_l1_power
|
||||||
|
state_topic: "N/c0619ab34ac5/vebus/276/Ac/Out/L1/P"
|
||||||
|
value_template: "{{ value_json.value if value_json is defined and value_json.value is defined }}"
|
||||||
|
unit_of_measurement: "W"
|
||||||
|
device_class: power
|
||||||
|
state_class: measurement
|
||||||
|
|
||||||
|
- name: "Victron VE.Bus AC Out L1 Current"
|
||||||
|
unique_id: victron_vebus_ac_out_l1_current
|
||||||
|
state_topic: "N/c0619ab34ac5/vebus/276/Ac/Out/L1/I"
|
||||||
|
value_template: "{{ value_json.value if value_json is defined and value_json.value is defined }}"
|
||||||
|
unit_of_measurement: "A"
|
||||||
|
device_class: current
|
||||||
|
state_class: measurement
|
||||||
|
|
||||||
|
- name: "Victron VE.Bus AC Out L1 Voltage"
|
||||||
|
unique_id: victron_vebus_ac_out_l1_voltage
|
||||||
|
state_topic: "N/c0619ab34ac5/vebus/276/Ac/Out/L1/V"
|
||||||
|
value_template: "{{ value_json.value if value_json is defined and value_json.value is defined }}"
|
||||||
|
unit_of_measurement: "V"
|
||||||
|
device_class: voltage
|
||||||
|
state_class: measurement
|
||||||
|
|
||||||
|
- name: "Victron VE.Bus Nominal Inverter Power"
|
||||||
|
unique_id: victron_vebus_nominal_inverter_power
|
||||||
|
state_topic: "N/c0619ab34ac5/vebus/276/Ac/Out/L1/NominalInverterPower"
|
||||||
|
value_template: "{{ value_json.value if value_json is defined and value_json.value is defined }}"
|
||||||
|
unit_of_measurement: "W"
|
||||||
|
device_class: power
|
||||||
|
|
||||||
|
- name: "Victron VE.Bus DC Voltage"
|
||||||
|
unique_id: victron_vebus_dc_voltage
|
||||||
|
state_topic: "N/c0619ab34ac5/vebus/276/Dc/0/Voltage"
|
||||||
|
value_template: "{{ value_json.value if value_json is defined and value_json.value is defined }}"
|
||||||
|
unit_of_measurement: "V"
|
||||||
|
device_class: voltage
|
||||||
|
state_class: measurement
|
||||||
|
|
||||||
|
- name: "Victron VE.Bus DC Current"
|
||||||
|
unique_id: victron_vebus_dc_current
|
||||||
|
state_topic: "N/c0619ab34ac5/vebus/276/Dc/0/Current"
|
||||||
|
value_template: "{{ value_json.value if value_json is defined and value_json.value is defined }}"
|
||||||
|
unit_of_measurement: "A"
|
||||||
|
device_class: current
|
||||||
|
state_class: measurement
|
||||||
|
|
||||||
|
- name: "Victron VE.Bus DC Power"
|
||||||
|
unique_id: victron_vebus_dc_power
|
||||||
|
state_topic: "N/c0619ab34ac5/vebus/276/Dc/0/Power"
|
||||||
|
value_template: "{{ value_json.value if value_json is defined and value_json.value is defined }}"
|
||||||
|
unit_of_measurement: "W"
|
||||||
|
device_class: power
|
||||||
|
state_class: measurement
|
||||||
|
|
||||||
|
- name: "Victron VE.Bus UBat Ripple"
|
||||||
|
unique_id: victron_vebus_ubat_ripple
|
||||||
|
state_topic: "N/c0619ab34ac5/vebus/276/Devices/3/Diagnostics/UBatRipple"
|
||||||
|
value_template: "{{ value_json.value if value_json is defined and value_json.value is defined }}"
|
||||||
|
icon: mdi:sine-wave
|
||||||
|
state_class: measurement
|
||||||
|
|
||||||
|
- name: "Victron VE.Bus UBat Terminal"
|
||||||
|
unique_id: victron_vebus_ubat_terminal
|
||||||
|
state_topic: "N/c0619ab34ac5/vebus/276/Devices/3/Diagnostics/UBatTerminal"
|
||||||
|
value_template: "{{ value_json.value if value_json is defined and value_json.value is defined }}"
|
||||||
|
unit_of_measurement: "V"
|
||||||
|
device_class: voltage
|
||||||
|
state_class: measurement
|
||||||
|
|
||||||
|
binary_sensor:
|
||||||
|
- name: "Victron VE.Bus Overload"
|
||||||
|
unique_id: victron_vebus_overload
|
||||||
|
state_topic: "N/c0619ab34ac5/vebus/276/Alarms/Overload"
|
||||||
|
value_template: "{% if value_json is defined and value_json.value is defined %}{{ 'ON' if (value_json.value | int(0)) > 0 else 'OFF' }}{% endif %}"
|
||||||
|
payload_on: "ON"
|
||||||
|
payload_off: "OFF"
|
||||||
|
device_class: problem
|
||||||
|
|
||||||
|
- name: "Victron VE.Bus L1 Overload"
|
||||||
|
unique_id: victron_vebus_l1_overload
|
||||||
|
state_topic: "N/c0619ab34ac5/vebus/276/Alarms/L1/Overload"
|
||||||
|
value_template: "{% if value_json is defined and value_json.value is defined %}{{ 'ON' if (value_json.value | int(0)) > 0 else 'OFF' }}{% endif %}"
|
||||||
|
payload_on: "ON"
|
||||||
|
payload_off: "OFF"
|
||||||
|
device_class: problem
|
||||||
|
|
||||||
|
- name: "Victron VE.Bus Low Battery"
|
||||||
|
unique_id: victron_vebus_low_battery
|
||||||
|
state_topic: "N/c0619ab34ac5/vebus/276/Alarms/LowBattery"
|
||||||
|
value_template: "{% if value_json is defined and value_json.value is defined %}{{ 'ON' if (value_json.value | int(0)) > 0 else 'OFF' }}{% endif %}"
|
||||||
|
payload_on: "ON"
|
||||||
|
payload_off: "OFF"
|
||||||
|
device_class: battery
|
||||||
|
|
||||||
|
- name: "Victron VE.Bus L1 Low Battery"
|
||||||
|
unique_id: victron_vebus_l1_low_battery
|
||||||
|
state_topic: "N/c0619ab34ac5/vebus/276/Alarms/L1/LowBattery"
|
||||||
|
value_template: "{% if value_json is defined and value_json.value is defined %}{{ 'ON' if (value_json.value | int(0)) > 0 else 'OFF' }}{% endif %}"
|
||||||
|
payload_on: "ON"
|
||||||
|
payload_off: "OFF"
|
||||||
|
device_class: battery
|
||||||
|
|
||||||
|
- name: "Victron VE.Bus LED Overload"
|
||||||
|
unique_id: victron_vebus_led_overload
|
||||||
|
state_topic: "N/c0619ab34ac5/vebus/276/Leds/Overload"
|
||||||
|
value_template: "{% if value_json is defined and value_json.value is defined %}{{ 'ON' if (value_json.value | int(0)) > 0 else 'OFF' }}{% endif %}"
|
||||||
|
payload_on: "ON"
|
||||||
|
payload_off: "OFF"
|
||||||
|
device_class: problem
|
||||||
|
|
||||||
|
- name: "Victron VE.Bus LED Low Battery"
|
||||||
|
unique_id: victron_vebus_led_low_battery
|
||||||
|
state_topic: "N/c0619ab34ac5/vebus/276/Leds/LowBattery"
|
||||||
|
value_template: "{% if value_json is defined and value_json.value is defined %}{{ 'ON' if (value_json.value | int(0)) > 0 else 'OFF' }}{% endif %}"
|
||||||
|
payload_on: "ON"
|
||||||
|
payload_off: "OFF"
|
||||||
|
device_class: battery
|
||||||
|
|
||||||
75
packages/victron_water_heater_runtime.yaml
Executable file
75
packages/victron_water_heater_runtime.yaml
Executable file
@@ -0,0 +1,75 @@
|
|||||||
|
input_number:
|
||||||
|
victron_water_heater_energy_total_prev_kwh:
|
||||||
|
name: Victron Water Heater Energy Total Prev kWh
|
||||||
|
min: 0
|
||||||
|
max: 999999
|
||||||
|
step: 0.001
|
||||||
|
mode: box
|
||||||
|
icon: mdi:counter
|
||||||
|
|
||||||
|
victron_water_heater_observed_power_w:
|
||||||
|
name: Victron Water Heater Observed Power
|
||||||
|
min: 0
|
||||||
|
max: 5000
|
||||||
|
step: 1
|
||||||
|
mode: box
|
||||||
|
unit_of_measurement: W
|
||||||
|
icon: mdi:flash
|
||||||
|
|
||||||
|
victron_water_heater_restore_surplus_w:
|
||||||
|
name: Victron Water Heater Restore Surplus
|
||||||
|
min: 0
|
||||||
|
max: 5000
|
||||||
|
step: 50
|
||||||
|
mode: slider
|
||||||
|
unit_of_measurement: W
|
||||||
|
initial: 2500
|
||||||
|
icon: mdi:solar-power
|
||||||
|
|
||||||
|
victron_water_heater_mode_mismatch_delay_min:
|
||||||
|
name: Victron Water Heater Mode Mismatch Delay
|
||||||
|
min: 1
|
||||||
|
max: 60
|
||||||
|
step: 1
|
||||||
|
mode: slider
|
||||||
|
unit_of_measurement: min
|
||||||
|
initial: 15
|
||||||
|
icon: mdi:timer-sand
|
||||||
|
|
||||||
|
input_text:
|
||||||
|
victron_water_heater_observed_regime:
|
||||||
|
name: Victron Water Heater Observed Regime
|
||||||
|
max: 50
|
||||||
|
icon: mdi:eye
|
||||||
|
|
||||||
|
victron_water_heater_pending_user_action:
|
||||||
|
name: Victron Water Heater Pending User Action
|
||||||
|
max: 255
|
||||||
|
icon: mdi:account-alert
|
||||||
|
|
||||||
|
victron_water_heater_forced_off_reason:
|
||||||
|
name: Victron Water Heater Forced Off Reason
|
||||||
|
max: 255
|
||||||
|
icon: mdi:power-plug-off
|
||||||
|
|
||||||
|
input_boolean:
|
||||||
|
victron_water_heater_forced_off_by_advisor:
|
||||||
|
name: Victron Water Heater Forced Off By Advisor
|
||||||
|
icon: mdi:power-cycle
|
||||||
|
|
||||||
|
input_datetime:
|
||||||
|
victron_water_heater_energy_prev_at:
|
||||||
|
name: Victron Water Heater Energy Prev At
|
||||||
|
has_date: true
|
||||||
|
has_time: true
|
||||||
|
|
||||||
|
victron_water_heater_mode_mismatch_since:
|
||||||
|
name: Victron Water Heater Mode Mismatch Since
|
||||||
|
has_date: true
|
||||||
|
has_time: true
|
||||||
|
|
||||||
|
victron_water_heater_forced_off_at:
|
||||||
|
name: Victron Water Heater Forced Off At
|
||||||
|
has_date: true
|
||||||
|
has_time: true
|
||||||
|
|
||||||
Reference in New Issue
Block a user