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