Sensor import et export à partir de la consommation nette

Bonjour,

Mon problème

J’ai des panneaux photovoltaïque avec une passerelle Enphase. J’aimerais me faire un tableau Energie digne de ce nom et comme la plupart d’entre vous, j’ai besoin d’un sensor pour avoir l’électricité importée et d’un autre pour l’électricité exportée. J’ai vu pas mal de méthodes (et notamment l’article sur le site, merci à l’auteur!) mais à chaque fois, il y a quelque chose qui ne va pas, avec des données un peu étranges. L’un des problèmes provient que mes données sont en kW et non en W. J’ai essayé de bidouiller, ça fonctionne mieux mais ce n’est pas encore ça.

Néanmoins, la passerelle Enphase me donne la consommation nette actuelle, et je me dis que ce serait sûrement beaucoup plus simplede créer les deux sensors à partir de cette entité.
Ca donnerait, pour l’export:
« Si la consommation nette est inférieur à zéro, alors prendre la consommation nette et la multiplier par -1, sinon alors l’export est égale à zéro »

Et pour l’import:
« Si la consommation nette est supérieur à 0, alors garder ce chiffre, sinon, l’import est égale à zéro ».

Ca me parait simplissime, si ce n’est que je ne sais pas (encore) écrire en yaml. Autant quand je le lis, j’arrive à voir l’idée générale (très grossièrement), autant c’est le syndrome de la page blanche quand je dois écrire.

Je prévois de m’y atteler plus sérieusement mais comme cette demande me semblait simple (mais je peux me tromper), je me demandais si une âme charitable pourrait me donner le code de ces deux capteurs. A la condition que ça ne prenne que quelques minutes, je ne voudrais pas abuser de votre temps.

Et si vous jugez ma demande déplacée, je vous prie de m’excuser. Merci!

Ma configuration


System Information

version core-2024.8.0
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.4
os_name Linux
os_version 6.6.31-haos-raspi
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 4979
Installed Version 1.34.0
Stage running
Available Repositories 1383
Downloaded Repositories 10
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 12.4
update_channel stable
supervisor_version supervisor-2024.08.0
agent_version 1.6.0
docker_version 26.1.4
disk_total 109.3 GB
disk_used 5.0 GB
healthy true
supported true
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization
board rpi4-64
supervisor_api ok
version_api ok
installed_addons ZeroTier One (0.18.0), Mosquitto broker (6.4.1), Zigbee2MQTT (1.39.1-1), Advanced SSH & Web Terminal (18.0.0), File editor (5.8.0)
Dashboards
dashboards 3
resources 7
views 5
mode storage
Recorder
oldest_recorder_run 2 août 2024 à 14:30
current_recorder_run 9 août 2024 à 16:32
estimated_db_size 55.88 MiB
database_engine sqlite
database_version 3.45.3
___

Salut
Et si tu commençais par nous montrer tous les seniors que te remontes ta passerelle en phase ?
La déjà je vois que tu parles du tableau énergie qui demande des unités en wh ou kWh et tu nousarles de w et kW.

Oui, car j’aimerais justement créer une tableau énergie inspiré de l’existant mais avec plus de données. D’où le fait que j’ai d’abord parlé en kW. Je pense avoir compris comment passer des kW aux kWh grâce à la fonction intégrale (expliquée sur le site hacs). Ce sera cependant à vérifier mais pour l’instant je bloque à l’étape précédente (configurer un sensor import et export à partir de la production et consommation instantanée).

Voici la liste des sensors fournis par mon installation:

Je pensais donc partir de la « current net power consumption » qui me donne l’énergie importée et exportée (selon que c’est positif ou négatif) à un instant T.

Tu utilises l’intégration officielle ?
As tu renommer le sensor production d’énergie totale ? Quel est son id ?

Tu n’as normalement aucun calcul d’intégrale a faire tout est là.

Édit je voulais parler du production d’énergie totale et non du consommation

Oui, j’ai l’intégration officielle. Je n’ai rien renommé. Son id est « sensor.envoy_482335135091_production_d_energie_totale »

Donc tu as tout la sous les yeux:


Enjoy lifetime energy production étant ton production d’énergie totale et les 2 autres pas besoin de les traduire.

Il suffit juste de les rentrer dans les champs approprié du dashboard energie

1 « J'aime »

Merci ! Je vais essayer de les rentrer dans le board energy et voir le résultat. Mais je voulais également faire ce type de carte pour avoir l’équilibre en temps (presque) réel:

D’où mon envie d’obtenir des sensors énergie importée et exportée basé sur la production et consommation actuelle.

J’ai essayé avec les templates fournis sur cette page, mais les résultats ne sont pas cohérents, d’où l’idée de partir du « current net power consumption ».

Solar c’est ton production d’énergie actuelle
Conso que je pense être là conso totale de la maison c’est consommation électrique totale
Current net power consumption c’est ton import ou ton export.
N’ayant pas d’enphase je ne sais pas comment réagi cette dernière valeur a savoir si elle devient négative quand tu exportes ou pas.

C’est ça, elle devient négative quand j’exporte. En soit, ce sensor me donne l’information que je veux, sauf que pour un certain nombre de carte ou de config, l’importation et l’exportation sont deux données différentes. Je cherche donc à créer deux sensors différents à partir de ce sensor « current net power consumption », selon qu’il est positif ou négatif. Un sensor « énergie importée » qui serait égal à « current net power consumption » quand celui-ci est positif (et sinon, il est égal à zéro, car cela veut dire que j’exporte). Et un sensor « énergie exportée » qui prend la donnée de « current net power consumption » quand celle-ci est négative et la multiplie par -1 pour obtenir un chiffre positif. Et qui sinon est égal à zéro, car cela veut dire que j’importe.

Désolé, j’espère que ce n’est pas trop confus, j’ai essayé d’être le plus clair possible…
Merci de ta patience en tout cas!

Tu as déjà fait du if else en yaml ?

Non, justement, c’est tout mon problème. ^^" Je l’ai lu dans de nombreux posts, je comprends ce qu’il faudrait faire (l’idée) pour obtenir ce que je cherche, mais je ne maitrise pas la syntaxe. Et je ne trouve pas de guide sur les formules de base à connaitre pour pouvoir le faire seul.

Par l’UI tu crées un template sensor

Paramètres/appareils et service/entrée/template/modéliser un capteur

Tu mets le nom que tu veux (export par exemple)
Dans modèle de l’état :

{% if states('sensor.msunpv_powpv')|float(0) < 0 %}
 {{ states('sensor.msunpv_powpv')|round(3) *-1 }}
{% else %}
  0
{% endif %}

Unité de mesure kW
Classe d’appareil puissance
Classe d’état rien ou mesure (tout dépend si tu veux le mettre dans les stats long terme ou pas) pour moi aucun intérêt.

Pour l’import, la même chose
Avec :

{% if states('sensor.msunpv_powpv')|float(0) > 0 %}
 {{ states('sensor.msunpv_powpv')|round(3) }}
{% else %}
  0
{% endif %}

Bien sûr tu remplaces sensor.msunpv_powpv par ton sensor current net power consumption

1 « J'aime »

Merci beaucoup ! Ça semble fonctionner ! A quoi correspondent « float » et « round »?

Le float c’est pour être sûr que l’on travaille bien avec un chiffre et non pas juste une chaîne de caractère.
Le round(3) pour arrondir a 3 chiffre après la virgule

1 « J'aime »