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
408 lines
14 KiB
YAML
Executable File
408 lines
14 KiB
YAML
Executable File
# Loads default set of integrations. Do not remove.
|
|
default_config:
|
|
|
|
homeassistant:
|
|
packages: !include_dir_named packages
|
|
|
|
# Retention de l'historique brut (24/08/2026) : 10 jours par defaut -> 90 jours.
|
|
# Motif : pouvoir rejouer un incident plusieurs semaines apres coup. Les incidents
|
|
# EDF/EVCS de juillet-aout n'ont pas pu etre reconstitues finement faute d'historique.
|
|
# NB : les statistiques long terme (sommes horaires, base du bilan energetique) sont
|
|
# deja conservees SANS limite et ne dependent pas de ce reglage.
|
|
# Dimensionnement : 10 jours ~= 2,6 Go, donc 90 jours ~= 23 Go (volume1 : 5 To libres).
|
|
|
|
# =====================================================================
|
|
# HISTORISATION LONGUE — InfluxDB sur 10.10.10.22 (ajoute le 04/09/2026)
|
|
# L'historique brut ci-dessous (recorder) tient ~20 jours pour 5 Go ; les
|
|
# statistiques long terme ne gardent que des moyennes horaires. InfluxDB
|
|
# garde le detail, sur la duree, hors de cette machine.
|
|
# Details et mise en service : deploy/historisation/README.md du depot EVCS.
|
|
# =====================================================================
|
|
influxdb:
|
|
# Pourquoi une liste plutôt que « tout » : la maison publie ~1,14 M états par
|
|
# jour, dont l'essentiel n'a aucun rapport avec l'énergie. On garde large sur
|
|
# le périmètre énergie — c'est justement là qu'on ne sait pas d'avance ce
|
|
# dont on aura besoin, comme l'ont montré les modes MPPT le 03/09 — et on
|
|
# laisse le reste de côté.
|
|
include:
|
|
entity_globs:
|
|
- sensor.victron_*
|
|
# Les capteurs propres a la borne (13 entites) : compteur cumulatif,
|
|
# energie et duree de la derniere session, statut. Absents jusqu'au
|
|
# 06/09, ce qui a empeche d'etablir la semantique de
|
|
# `last_session_energy` quand elle a fausse une cloture de session.
|
|
- sensor.evcs_*
|
|
- sensor.mppt_*
|
|
- sensor.airtria_*
|
|
- sensor.gx_device_*
|
|
- sensor.sun_solar_elevation
|
|
- binary_sensor.victron_*
|
|
- switch.edf_*
|
|
- switch.gx_device_*
|
|
- number.gx_device_*
|
|
- input_boolean.victron_evcs_*
|
|
- input_boolean.evcs_*
|
|
- input_number.victron_evcs_*
|
|
- input_number.evcs_*
|
|
- input_select.victron_evcs_*
|
|
- input_text.victron_evcs_*
|
|
- input_text.evcs_*
|
|
exclude:
|
|
entities:
|
|
# Une clé d'API n'a rien à faire dans une base de séries temporelles.
|
|
- input_text.evcs_balance_forecast_api_key
|
|
tags:
|
|
installation: airtria
|
|
|
|
recorder:
|
|
purge_keep_days: 90
|
|
exclude:
|
|
entities:
|
|
# Clé d'API : aucune raison de l'archiver 90 jours dans la base.
|
|
- input_text.evcs_balance_forecast_api_key
|
|
|
|
# Load frontend themes from the themes folder
|
|
frontend:
|
|
themes: !include_dir_merge_named themes
|
|
|
|
automation: !include automations.yaml
|
|
script: !include scripts.yaml
|
|
scene: !include scenes.yaml
|
|
|
|
#gestion MQTT
|
|
mqtt:
|
|
sensor:
|
|
- name: "Victron Max Charge Current Setting"
|
|
unique_id: victron_max_charge_current_setting
|
|
state_topic: "N/c0619ab34ac5/settings/0/Settings/SystemSetup/MaxChargeCurrent"
|
|
value_template: "{{ value_json.value if value_json is defined and value_json.value is defined }}"
|
|
json_attributes_topic: "N/c0619ab34ac5/settings/0/Settings/SystemSetup/MaxChargeCurrent"
|
|
unit_of_measurement: "A"
|
|
icon: mdi:current-dc
|
|
state_class: measurement
|
|
|
|
- name: "Victron Max Charge Voltage Setting"
|
|
unique_id: victron_max_charge_voltage_setting
|
|
state_topic: "N/c0619ab34ac5/settings/0/Settings/SystemSetup/MaxChargeVoltage"
|
|
value_template: "{{ value_json.value if value_json is defined and value_json.value is defined }}"
|
|
json_attributes_topic: "N/c0619ab34ac5/settings/0/Settings/SystemSetup/MaxChargeVoltage"
|
|
unit_of_measurement: "V"
|
|
icon: mdi:flash
|
|
state_class: measurement
|
|
|
|
- name: "Victron Battery SoC Live"
|
|
unique_id: victron_battery_soc_live
|
|
state_topic: "N/c0619ab34ac5/battery/512/Soc"
|
|
value_template: "{{ value_json.value | float(0) if value_json is defined and value_json.value is defined }}"
|
|
unit_of_measurement: "%"
|
|
device_class: battery
|
|
state_class: measurement
|
|
expire_after: 600
|
|
# force_update: true # optionnel (je te conseille de le laisser commenté au début)
|
|
|
|
- name: "Victron Battery SoC"
|
|
unique_id: victron_battery_soc
|
|
state_topic: "N/c0619ab34ac5/battery/512/Soc"
|
|
unit_of_measurement: "%"
|
|
device_class: battery
|
|
value_template: "{{ value_json.value | float(0) if value_json is defined and value_json.value is defined }}"
|
|
expire_after: 600
|
|
force_update: true
|
|
state_class: measurement
|
|
|
|
- name: "Victron Battery Voltage"
|
|
unique_id: victron_battery_voltage
|
|
state_topic: "N/c0619ab34ac5/battery/512/Dc/0/Voltage"
|
|
unit_of_measurement: "V"
|
|
device_class: voltage
|
|
value_template: "{{ value_json.value | float(0) if value_json is defined and value_json.value is defined }}"
|
|
state_class: measurement
|
|
|
|
- name: "Victron Battery Current"
|
|
unique_id: victron_battery_current
|
|
state_topic: "N/c0619ab34ac5/battery/512/Dc/0/Current"
|
|
unit_of_measurement: "A"
|
|
device_class: current
|
|
value_template: "{{ value_json.value | float(0) if value_json is defined and value_json.value is defined }}"
|
|
state_class: measurement
|
|
|
|
- name: "Victron Battery Power"
|
|
unique_id: victron_battery_power
|
|
state_topic: "N/c0619ab34ac5/battery/512/Dc/0/Power"
|
|
unit_of_measurement: "W"
|
|
device_class: power
|
|
value_template: "{{ value_json.value | float(0) if value_json is defined and value_json.value is defined }}"
|
|
state_class: measurement
|
|
|
|
- name: "Victron Battery Temperature"
|
|
unique_id: victron_battery_temperature
|
|
state_topic: "N/c0619ab34ac5/battery/512/Dc/0/Temperature"
|
|
unit_of_measurement: "°C"
|
|
device_class: temperature
|
|
value_template: "{{ value_json.value | float(0) if value_json is defined and value_json.value is defined }}"
|
|
state_class: measurement
|
|
|
|
- name: "Victron PV Power (system)"
|
|
unique_id: victron_pv_power
|
|
state_topic: "N/c0619ab34ac5/system/0/Dc/Pv/Power"
|
|
unit_of_measurement: "W"
|
|
device_class: power
|
|
value_template: "{{ value_json.value | float(0) if value_json is defined and value_json.value is defined }}"
|
|
state_class: measurement
|
|
|
|
- name: "Victron VE.Bus DC Power (system)"
|
|
unique_id: victron_vebus_dc_power
|
|
state_topic: "N/c0619ab34ac5/system/0/Dc/Vebus/Power"
|
|
unit_of_measurement: "W"
|
|
device_class: power
|
|
value_template: "{{ value_json.value | float(0) if value_json is defined and value_json.value is defined }}"
|
|
state_class: measurement
|
|
|
|
- name: "Victron Grid Power L1"
|
|
unique_id: victron_grid_power_l1
|
|
state_topic: "N/c0619ab34ac5/system/0/Ac/Grid/L1/Power"
|
|
unit_of_measurement: "W"
|
|
device_class: power
|
|
value_template: "{{ value_json.value | float(0) if value_json is defined and value_json.value is defined }}"
|
|
state_class: measurement
|
|
|
|
- name: "Victron Consumption Power L1"
|
|
unique_id: victron_consumption_power_l1
|
|
state_topic: "N/c0619ab34ac5/system/0/Ac/Consumption/L1/Power"
|
|
unit_of_measurement: "W"
|
|
device_class: power
|
|
value_template: "{{ value_json.value | float(0) if value_json is defined and value_json.value is defined }}"
|
|
state_class: measurement
|
|
|
|
- name: "Victron VE.Bus State (raw)"
|
|
unique_id: victron_vebus_state_raw
|
|
state_topic: "N/c0619ab34ac5/vebus/276/State"
|
|
value_template: "{{ value_json.value | int(0) if value_json is defined and value_json.value is defined }}"
|
|
|
|
- name: "Victron VE.Bus MainState (raw)"
|
|
unique_id: victron_vebus_mainstate_raw
|
|
state_topic: "N/c0619ab34ac5/vebus/276/VebusMainState"
|
|
value_template: "{{ value_json.value | int(0) if value_json is defined and value_json.value is defined }}"
|
|
|
|
- name: "Victron VE.Bus ChargeState (raw)"
|
|
unique_id: victron_vebus_chargestate_raw
|
|
state_topic: "N/c0619ab34ac5/vebus/276/VebusChargeState"
|
|
value_template: "{{ value_json.value | int(0) if value_json is defined and value_json.value is defined }}"
|
|
|
|
- name: "Victron AC-in1 available"
|
|
unique_id: victron_acin1_available
|
|
state_topic: "N/c0619ab34ac5/vebus/276/Ac/State/AcIn1Available"
|
|
value_template: "{{ value_json.value | int(0) if value_json is defined and value_json.value is defined }}"
|
|
|
|
template:
|
|
- sensor:
|
|
- name: "Victron mode (derived)"
|
|
unique_id: victron_mode_derived
|
|
state: >-
|
|
{% set acin = states('sensor.victron_ac_in1_available')|int(0) %}
|
|
{% set gridw = states('sensor.victron_grid_power_l1')|float(0) %}
|
|
{% set batw = states('sensor.victron_battery_power')|float(0) %}
|
|
|
|
{# Seuils anti-bruit #}
|
|
{% set GRID_ON_W = 50 %}
|
|
{% set BAT_CHG_W = 150 %}
|
|
{% set BAT_DIS_W = -150 %}
|
|
|
|
{% if acin == 0 %}
|
|
{% if batw < BAT_DIS_W %}
|
|
Inverting (on battery)
|
|
{% else %}
|
|
Off-grid (idle/low load)
|
|
{% endif %}
|
|
{% else %}
|
|
{% if batw > BAT_CHG_W %}
|
|
Charging (AC-in)
|
|
{% elif gridw > GRID_ON_W %}
|
|
On grid (passthru/import)
|
|
{% else %}
|
|
Grid available (low import)
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
- name: Victron EVCS Status FR
|
|
unique_id: victron_evcs_status_fr
|
|
icon: mdi:ev-station
|
|
state: >-
|
|
{% set raw = states('sensor.victron_evcs_status_raw') | string %}
|
|
{% set vehicle = is_state('binary_sensor.victron_evcs_vehicle_connected', 'on') %}
|
|
{% set charging_switch = is_state('switch.victron_evcs_charging', 'on') %}
|
|
{% set evcs_power = states('sensor.victron_evcs_ac_power') | float(0) %}
|
|
|
|
{% if raw == '0' and not vehicle %}
|
|
EV déconnecté
|
|
{% elif raw == '2' %}
|
|
Charge en cours
|
|
{% elif raw == '6' and vehicle %}
|
|
Véhicule connecté - en attente
|
|
{% elif charging_switch or evcs_power > 100 %}
|
|
Charge en cours
|
|
{% elif raw in ['unknown', 'unavailable', '', 'none'] %}
|
|
Inconnu
|
|
{% else %}
|
|
Inconnu ({{ raw }})
|
|
{% endif %}
|
|
attributes:
|
|
raw_status: "{{ states('sensor.victron_evcs_status_raw') }}"
|
|
vehicle_connected: "{{ states('binary_sensor.victron_evcs_vehicle_connected') }}"
|
|
charging_switch: "{{ states('switch.victron_evcs_charging') }}"
|
|
evcs_power_w: "{{ states('sensor.victron_evcs_ac_power') }}"
|
|
|
|
- name: Victron EVCS mode FR
|
|
unique_id: victron_evcs_mode_fr
|
|
icon: mdi:tune
|
|
state: >
|
|
{% set raw = states('sensor.victron_evcs_mode_raw') | string %}
|
|
{% set source = states('sensor.victron_evcs_mode') | string %}
|
|
{% set label = source | lower %}
|
|
|
|
{% if raw == '0' or label in ['manuel', 'manual'] %}
|
|
Manuel
|
|
{% elif raw == '1' or label in ['auto', 'automatic', 'automatique'] %}
|
|
Auto
|
|
{% elif raw == '2' or label in ['planifié', 'planifie', 'scheduled', 'schedule'] %}
|
|
Planifié
|
|
{% elif source not in ['unknown', 'unavailable', '', 'none'] %}
|
|
{{ source }}
|
|
{% else %}
|
|
Inconnu
|
|
{% endif %}
|
|
attributes:
|
|
raw_mode: "{{ states('sensor.victron_evcs_mode_raw') }}"
|
|
source_mode: "{{ states('sensor.victron_evcs_mode') }}"
|
|
|
|
sensor:
|
|
- platform: filter
|
|
name: "Victron PV Power 10m Avg"
|
|
unique_id: victron_pv_power_10m_avg
|
|
entity_id: sensor.victron_pv_power_system
|
|
filters:
|
|
- filter: time_simple_moving_average
|
|
window_size: "00:10:00"
|
|
precision: 0
|
|
|
|
|
|
lovelace:
|
|
dashboards:
|
|
bilan-energetique:
|
|
mode: yaml
|
|
title: Bilan énergétique
|
|
icon: mdi:scale-balance
|
|
show_in_sidebar: true
|
|
filename: dashboards/bilan_energetique.yaml
|
|
|
|
victron-master:
|
|
mode: yaml
|
|
title: Victron Master
|
|
icon: mdi:home-battery
|
|
show_in_sidebar: true
|
|
filename: dashboards/victron_master.yaml
|
|
|
|
victron-debug:
|
|
mode: yaml
|
|
title: Victron Debug
|
|
icon: mdi:bug
|
|
show_in_sidebar: true
|
|
require_admin: true
|
|
filename: dashboards/victron_debug.yaml
|
|
|
|
test-cards:
|
|
mode: yaml
|
|
title: Test Cards
|
|
icon: mdi:test-tube
|
|
show_in_sidebar: true
|
|
require_admin: true
|
|
filename: dashboards/test_cards.yaml
|
|
|
|
victron-mobile:
|
|
mode: yaml
|
|
title: Victron Mobile
|
|
icon: mdi:cellphone
|
|
show_in_sidebar: true
|
|
filename: dashboards/victron_mobile.yaml
|
|
|
|
evcs-mobile:
|
|
mode: yaml
|
|
title: EVCS Mobile
|
|
icon: mdi:car-electric
|
|
show_in_sidebar: true
|
|
filename: dashboards/evcs_mobile.yaml
|
|
|
|
evcs-master:
|
|
mode: yaml
|
|
title: EVCS Master
|
|
icon: mdi:car-electric
|
|
show_in_sidebar: true
|
|
filename: dashboards/evcs_master.yaml
|
|
|
|
ecs-pilotage-premium:
|
|
mode: yaml
|
|
title: ECS Pilotage Premium
|
|
icon: mdi:water-boiler
|
|
show_in_sidebar: true
|
|
filename: dashboards/ECS_PILOTAGE_PREMIUM.yaml
|
|
|
|
ecs-debug-reglages-premium:
|
|
mode: yaml
|
|
title: ECS Debug Réglages Premium
|
|
icon: mdi:bug
|
|
show_in_sidebar: true
|
|
require_admin: true
|
|
filename: dashboards/ECS_DEBUG_REGLAGES_PREMIUM.yaml
|
|
|
|
garage-premium-pilotage:
|
|
mode: yaml
|
|
title: Garage Premium Pilotage
|
|
icon: mdi:garage-variant
|
|
show_in_sidebar: true
|
|
filename: dashboards/GARAGE_PREMIUM_PILOTAGE.yaml
|
|
|
|
garage-debug-premium:
|
|
mode: yaml
|
|
title: Garage Debug Premium
|
|
icon: mdi:bug
|
|
show_in_sidebar: true
|
|
require_admin: true
|
|
filename: dashboards/GARAGE_DEBUG_PREMIUM.yaml
|
|
|
|
garage-mobile:
|
|
mode: yaml
|
|
title: Garage Mobile
|
|
icon: mdi:cellphone
|
|
show_in_sidebar: true
|
|
filename: dashboards/GARAGE_MOBILE.yaml
|
|
|
|
sdb-premium-pilotage:
|
|
mode: yaml
|
|
title: SDB Premium Pilotage
|
|
icon: mdi:shower-head
|
|
show_in_sidebar: true
|
|
filename: dashboards/SDB_PREMIUM_PILOTAGE.yaml
|
|
|
|
sdb-debug-premium:
|
|
mode: yaml
|
|
title: SDB Debug Premium
|
|
icon: mdi:bug
|
|
show_in_sidebar: true
|
|
require_admin: true
|
|
filename: dashboards/SDB_DEBUG_PREMIUM.yaml
|
|
|
|
|
|
|
|
# ===== NOUVELLE ENTITÉ V2.0 (Stratégie EVCS) =====
|
|
input_select:
|
|
victron_evcs_strategy:
|
|
name: Stratégie EVCS Surplus
|
|
options:
|
|
- auto_solar
|
|
- auto_solar_plus
|
|
- force_grid_now
|
|
- force_charge_now
|
|
- stop
|
|
initial: "auto_solar_plus"
|
|
|