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:
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