Mon problème
Bonjour,
Je dispose d’une installation solaire Huawei avec onduleur, panneaux solaires, batterie et power meter. J’utilise l’intégration HACS Huawei Solar qui fonctionne très bien.
J’utilise ces infos dans des cartes et des automatisations.
Toutefois, je n’ai pas trouvé dans cette intégration la consommation nette de la maison, càd ce que consomme la maison à l’instant T (que ce soit via le réseau, les batteries ou le solaire).
Pourtant je retrouve bien cette information sur ma carte power-flow-card-plus (en haut à gauche sur l’image précédente) dont voici le yaml :
type: custom:power-flow-card-plus
entities:
battery:
entity: sensor.battery_charge_discharge_power
state_of_charge: sensor.battery_state_of_capacity
color_value: true
invert_state: true
color_icon: true
color_circle: true
grid:
entity: sensor.power_meter_active_power
invert_state: true
color_value: true
color_icon: true
color_circle: true
use_metadata: false
solar:
entity: sensor.inverter_input_power
display_zero_state: true
color_value: true
color_icon: true
display_zero_tolerance: 0
use_metadata: false
home:
color_value: true
clickable_entities: true
display_zero_lines:
mode: show
transparency: 50
grey_color:
- 189
- 189
- 189
use_new_flow_rate_model: true
w_decimals: 0
kw_decimals: 1
min_flow_rate: 2
max_flow_rate: 7
max_expected_power: 2000
min_expected_power: 0.01
watt_threshold: 1000
transparency_zero_lines: 0
Je ne sais pas comment fait la carte power-flow-card-plus pour obtenir la conso nette de la maison car j’ai testé le sensor.power_meter_active_power qui donne une valeur négative quand je consomme mais qui ne prend pas en compte la charge des batteries et l’export/import réseau (en résumé sa valeur est juste uniquement dans le cas où je tire sur le réseau sans production solaire).
J’ai donc essayé via un moyen détourné en créant plusieurs templates sensors dans mon fichier templates.yaml :
# Template Huawei Solar passe la consommation en positif
- name: "Active Power Positive"
unit_of_measurement: "W"
state: "{{ states('sensor.power_meter_active_power') | int(0) | abs }}"
# Templates import et export
- name: "huawei_export_reseau"
unit_of_measurement: "W"
state: >
{% set power = states('sensor.power_meter_active_power') | float %}
{{ power | int if power >= 0 else 0 }}
- name: "huawei_import_reseau"
unit_of_measurement: "W"
state: >
{% set power = states('sensor.power_meter_active_power') | float %}
{{ 0 if power >= 0 else power | abs | int }}
# Templates calcule la Conso Nette de la maison
- name: "consommation_nette_maison"
unit_of_measurement: "W"
state: >
{% set production_solaire = states('sensor.inverter_input_power') | float %}
{% set export_reseau = states('sensor.huawei_export_reseau') | float %}
{% set import_reseau = states('sensor.huawei_import_reseau') | float %}
{% set charge_batterie = states('sensor.battery_charge_discharge_power') | float %}
{% set consommation_nette = production_solaire - export_reseau + import_reseau %}
{% if charge_batterie > 0 %}
{% set consommation_nette = consommation_nette - charge_batterie %}
{% elif charge_batterie < 0 %}
{% set consommation_nette = consommation_nette - charge_batterie %}
{% endif %}
{{ consommation_nette | int if consommation_nette >= 0 else 0 }}
Le template sensor #Templates calcule la Conso Nette de la maison calcule la « consommation_nette_maison », à l’instant T (que ce soit via le réseau, les batteries ou le solaire)
-
Variables initialisées :
production_solaire
: La puissance de production d’énergie solaire, récupérée à partir du capteur ‹ sensor.inverter_input_power ›.export_reseau
: La puissance d’exportation vers le réseau électrique, récupérée à partir du capteur ‹ sensor.huawei_export_reseau ›.import_reseau
: La puissance d’importation depuis le réseau électrique, récupérée à partir du capteur ‹ sensor.huawei_import_reseau ›.charge_batterie
: La puissance de charge ou décharge de la batterie, récupérée à partir du capteur ‹ sensor.battery_charge_discharge_power ›.
-
Calcul de la consommation nette :
consommation_nette
: Cette variable est calculée en soustrayant la puissance exportée vers le réseau (export_reseau
) et en ajoutant la puissance importée depuis le réseau (import_reseau
) à la production solaire (production_solaire
).
-
Gestion de la batterie :
- Si la puissance de charge de la batterie (
charge_batterie
) est positive (la batterie est en train de se charger), alors la puissance de charge est soustraite de laconsommation_nette
. - Si la puissance de charge de la batterie est négative (la batterie est en train de se décharger), alors la puissance de décharge est également soustraite de la
consommation_nette
.
- Si la puissance de charge de la batterie (
-
Vérification de la consommation nette non négative :
- Avant de retourner le résultat final, le template vérifie que la
consommation_nette
est supérieure ou égale à zéro. Si elle est négative, elle est ajustée à zéro.
- Avant de retourner le résultat final, le template vérifie que la
-
Résultat final :
- Le résultat final est la
consommation_nette
convertie en entier (int
), assurant que la valeur retournée est un nombre entier.
- Le résultat final est la
Miracle, il s’avère que ce template est fonctionnel et calcule bien la consommation nette de la maison en tenant compte de la production solaire, de l’exportation et de l’importation d’énergie, ainsi que de la charge ou décharge de la batterie. La valeur finale est rendue positive pour éviter les valeurs négatives.
Ma question est (désolé pour la longueur du post), aurais-je pu faire autrement ? Plus simplement ? Existe-t-il une autre solution ?
Merci de vos lumières
Ma configuration
System Information
version | core-2024.1.6 |
---|---|
installation_type | Home Assistant OS |
dev | false |
hassio | true |
docker | true |
user | root |
virtualenv | false |
python_version | 3.11.6 |
os_name | Linux |
os_version | 6.1.74-haos |
arch | aarch64 |
timezone | Europe/Paris |
config_dir | /config |
Home Assistant Community Store
GitHub API | ok |
---|---|
GitHub Content | ok |
GitHub Web | ok |
GitHub API Calls Remaining | 5000 |
Installed Version | 1.34.0 |
Stage | running |
Available Repositories | 1462 |
Downloaded Repositories | 21 |
HACS Data | ok |
Home Assistant Cloud
logged_in | true |
---|---|
subscription_expiration | 16 janvier 2025 à 01:00 |
relayer_connected | true |
relayer_region | eu-central-1 |
remote_enabled | true |
remote_connected | true |
alexa_enabled | true |
google_enabled | false |
remote_server | eu-central-1-2.ui.nabu.casa |
certificate_status | ready |
instance_id | 9b1354271d894ddab777f6bfe47bce87 |
can_reach_cert_server | ok |
can_reach_cloud_auth | ok |
can_reach_cloud | ok |
Home Assistant Supervisor
host_os | Home Assistant OS 11.5 |
---|---|
update_channel | stable |
supervisor_version | supervisor-2024.01.1 |
agent_version | 1.6.0 |
docker_version | 24.0.7 |
disk_total | 28.0 GB |
disk_used | 10.1 GB |
healthy | true |
supported | true |
board | green |
supervisor_api | ok |
version_api | ok |
installed_addons | Terminal & SSH (9.8.1), Linky (1.2.0), Home Assistant Google Drive Backup (0.112.1), Studio Code Server (5.15.0), Silicon Labs Multiprotocol (2.4.4), Mosquitto broker (6.4.0) |
Dashboards
dashboards | 2 |
---|---|
resources | 21 |
views | 9 |
mode | storage |
Recorder
oldest_recorder_run | 29 janvier 2024 à 08:10 |
---|---|
current_recorder_run | 6 février 2024 à 17:12 |
estimated_db_size | 2211.20 MiB |
database_engine | sqlite |
database_version | 3.41.2 |
Spotify
api_endpoint_reachable | ok |
---|