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:
Tallagrand Thierry
2026-09-14 02:11:13 +02:00
parent 18d0a7ba08
commit 3f987f1b3d
32 changed files with 8265 additions and 0 deletions

113
packages/evcs_advisor_shadow.yaml Executable file
View 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
View 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
View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

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

View 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