Bonjour a tous, je chercher depuis quelques temps a avoir le suivi de batterie virtuel USE
je me suis donc crée un suivi personnalisé via HA dont je vous partage la configuration ce qui serai top ces de crée une intégration dans ce sens mais ça dépasse mais compétence.
voici donc mes templates et autre capteur pour le suivi de la batterie USE sur home assistant et dans le Dashboard energie.
pour commencer les sensors :
Code a mettre dans votre sensors.yaml en complétant avec vos propre sensor correspondant
- platform: template
sensors:
energie_batterie:
friendly_name: "Énergie prise de la batterie"
unique_id: "Énergie prise de la batterie"
unit_of_measurement: "kWh"
value_template: >
{% set consommation = states('votre conso journaliere') | float(0) %}
{% set production = states('votre production du jour') | float(0) %}
{% set batterie = states('sensor.niveau_de_batterie_annuelle') | float(0) %}
{% if consommation > production and batterie > 0 %}
{% set energie_utilisee = consommation - production %}
{% if energie_utilisee > batterie %}
{{ batterie }}
{% else %}
{{ energie_utilisee }}
{% endif %}
{% else %}
{{ 0 }}
{% endif %}
energie_mise_batterie:
friendly_name: "Énergie mise dans la batterie"
unique_id: "Énergie mise dans la batterie"
unit_of_measurement: "kWh"
value_template: >
{% set consommation = states('votre conso journaliere') | float(0) %}
{% set production = states('votre retour reseau') | float(0) %}
{% set batterie = states('sensor.niveau_de_batterie_annuelle') | float(0) %}
{% set capacite_max_batterie = 10000 %}
{% if production > consommation %}
{% set energie_ajoutee = production - consommation %}
{% if (batterie + energie_ajoutee) > capacite_max_batterie %}
{{ capacite_max_batterie - batterie }}
{% else %}
{{ energie_ajoutee }}
{% endif %}
{% else %}
{{ 0 }}
{% endif %}
energie_reseau:
friendly_name: "Énergie tirée du réseau"
unique_id: "energie_tiree_du_reseau"
unit_of_measurement: "kWh"
value_template: >
{% set consommation = states('votre conso journaliere') | float(0) %}
{% set production = states('votre production du jour') | float(0) %}
{% set batterie = states('sensor.niveau_de_batterie_annuelle') | float(0) %}
{% if consommation > production and batterie == 0 %}
{{ consommation - production }}
{% else %}
{{ 0 }}
{% endif %}
niveau_de_batterie_mensuel:
friendly_name: "Niveau de batterie mensuel"
unique_id: "niveau_de_batterie_mensuel"
unit_of_measurement: "kWh"
value_template: >
{% set production = states('votre production mensuel') | float(0) %}
{% set consommation = states('votre conso mensuel') | float(0) %}
{% set capacite_max = 2000 %}
{% set niveau_batterie = production - consommation %}
{{ niveau_batterie }}
niveau_de_batterie_annuelle:
friendly_name: "Niveau de batterie annuelle"
unique_id: "niveau_de_batterie_annuelle"
unit_of_measurement: "kWh"
value_template: >
{% set capacite_max = 20000 %}
{% set niveau_batterie_initial = states('input_number.niveau_de_batterie_mois_precedent') | float(0) %}
{% set production = states('votre production mensuel') | float(0) %}
{% set consommation = states('votre conso mensuel') | float(0) %}
{% set production = max(0, production) %}
{% set consommation = max(0, consommation) %}
{% set niveau_batterie = niveau_batterie_initial + (production - consommation) %}
{% if niveau_batterie < 0 %}
{{ 0 }}
{% elif niveau_batterie > capacite_max %}
{{ capacite_max }}
{% else %}
{{ niveau_batterie }}
{% endif %}
template a crée via ha :
- sensor:
- name: "Production mensuelle"
unit_of_measurement: "kWh"
state_class: "total_increasing"
device_class: "energy"
state: >
{{ state_attr('votre sensor production mensuel') | default(0) | float }}
- sensor:
- name: "Retour réseau"
unit_of_measurement: "kWh"
state: >
{% set consommation = states('votre conso maison total production + reseau ') | float %}
{% set production = states('votre production journalière') | float %}
{% if production > consommation %}
{{ production - consommation }} # Retour positif
{% elif production < consommation %}
{{ -(consommation - production) }} # Retour négatif
{% else %}
0 # Aucun retour
{% endif %}
- sensor:
- name: "Recharge batterie mensuel"
unit_of_measurement: "kWh"
device_class: "energy"
state_class: "measurement"
state: >
{% set production = states('votre production mensuel') %}
{% set consommation = states('votre consomation mensuel') %}
{% set production_value = production if production != 'unknown' else 0 %}
{% set consommation_value = consommation if consommation != 'unknown' else 0 %}
{% set energie_dispo = production_value | float - consommation_value | float %}
{{ energie_dispo }}
le plus important pour le suivi mensuel
crée un imput number reprenant le niveau de batterie du mois précédent
crée une automatisation pour la mise a jour mensuel de cette imput:
alias: Mise à jour du niveau de batterie mensuel
description: ""
triggers:
- at: "00:00:00"
trigger: time
conditions:
- condition: template
value_template: "{{ now().day == 1 }}"
actions:
- data:
entity_id: input_number.niveau_de_batterie_mois_precedent
value: "{{ states('sensor.niveau_de_batterie_annuelle') | float }}"
action: input_number.set_value
mode: single
ensuite crée des « compteur de service public » pour intégrer dans le dashboard énergie
a savoir un compteur pour :
« Energie pris dans le reseau » a mettre dans consommation réseau
« Energie pris dans la batterie " et " un retour réseau » a mettre dans la partie batterie de stockage
pour le lovelace je me sert de la carte vertical-stack
capture d’ecran:
Si besoin j’essaierai d’apporter plus de précision au cas ou