J’ai installé influxDB et pour l’instant je n’ai pas encore assez de données mais j’ai pu voir la mise en route de ma PAC
@Jcpas, je te tiens au courant si j’arrive à faire un graph via Grafana de la conso en VA.
Bonjour à tous!
Cherchant une alternative à l’intégration Linky je me suis lancé dans le projet de mettre en place un système de récupération de Téléinfo via wifi il y a quelques semaines. Le temps que tous les composants arrivent, j’ai attaquer le montage hier sur breadboard (les PCB sont en route…).
Mon objectif étant de claquer le bazard dans le tableau électrique tout en utilisant HA j’ai principalement suivi ces deux guides:
https://www.canaletto.fr/post/home-assistant-esp-and-teleinfo
https://forum.jeedom.com/viewtopic.php?f=185&t=21758&sid=7888443669e19baa7f8e33f03ec72b24
Après quelques déboires avec une LED montée à l’envers le système est opérationnel et remonte bien toutes les infos dans HA.
Si à la lecture des deux liens ci-dessus il y a des questions qui vous viennent profitez en tant que j’ai encore tout dans la tête…
@Jcpas, c’est un truc comme ça que tu voudrais My Canaletto | Home Assistant, ESP & Téléinfo
C’est vrai que les graphiques sont classes :
Je ne connais pas utility_meter
, tu pourrais partager ta config que j’essaie de mon côté pour tester avec mes sensors ?
C’est assez simple d’utiliser utiliser utility_meter.
Bien évidemment, les sensors à reprendre sont ceux qui sont déclarés dans les templates.
Le code ci-dessous génère de nouveaux sensors qui reprennent les données cumulées en fonction du cycle défini.
A noter que, toujours à cause de cette fichue LED, j’ai appelé hier après-midi le fournisseur d’electricité pour passer en mode TIC Standard du coup j’ai plus rien depuis 0h00…
Je dois rappeler demain pour repasser en mode Historique…
Mais je sais que ça fonctionne , j’ai eu toutes les remontées attendues avant ce changement de mode de TIC.
Du coup j’ai pas trop eu l’occasion de vérifier toute l’intégration dans HA mais y a pas de raison…
utility_meter:
hourly_energy_consumption:
source: sensor.teleinfo_energy
cycle: hourly
daily_energy_consumption:
source: sensor.teleinfo_energy
cycle: daily
weekly_energy_consumption:
source: sensor.teleinfo_energy
cycle: weekly
monthly_energy_consumption:
source: sensor.teleinfo_energy
cycle: monthly
hourly_energyhp_consumption:
source: sensor.teleinfo_energyhp
cycle: hourly
daily_energyhp_consumption:
source: sensor.teleinfo_energyhp
cycle: daily
weekly_energyhp_consumption:
source: sensor.teleinfo_energyhp
cycle: weekly
monthly_energyhp_consumption:
source: sensor.teleinfo_energyhp
cycle: monthly
hourly_energyhc_consumption:
source: sensor.teleinfo_energyhc
cycle: hourly
daily_energyhc_consumption:
source: sensor.teleinfo_energyhc
cycle: daily
weekly_energyhc_consumption:
source: sensor.teleinfo_energyhc
cycle: weekly
monthly_energyhc_consumption:
source: sensor.teleinfo_energyhc
cycle: monthly
Voici ma config d’utility_meter :
# utility_meter
utility_meter:
consommation_heure:
source: sensor.puissance
cycle: hourly
consommation_jour:
source: sensor.puissance
cycle: daily
consommation_semaine:
source: sensor.puissance
cycle: weekly
consommation_mois:
source: sensor.puissance
cycle: monthly
consommation_annee:
source: sensor.puissance
cycle: yearly
Mon sensor c’est celui qui me renvoi la puissance instantanée en VA.
Mais là ma consommation_heure est à 37910 et il est 9h31 donc ça me ferait aux alentours de 75000 par heure
Il ressemble à quoi le template dans lequel tu déclare le sensor.puissance?
C’est mon sensor de mon ESPHome qui me renvoi la puissance instantanée.
Je pense qu’utility_meter fait un cumul alors qu’il faudrait faire une moyenne.
C’est vrai que ça fait bizarre 128360 VA, j’ai l’impression d’habiter dans une centrale nucléaire :
Mais vos sensors mesurent la puissance soutirée là non? Pas la consommation?
https://fr.wikipedia.org/wiki/Voltamp%C3%A8re
Regardez les sensors ci-dessous qui viennent du site de Canaletto.https://www.canaletto.fr/post/home-assistant-esp-and-teleinfo
Il y a un sensor puissance ET des sensors de consommation (HC / HP / HC+HP).
En tout cas chez moi ça fonctionne comme ça…
#### Teleinfo attributes from Wemos_PitInfo
#
- platform: template
sensors:
#
# Power
teleinfo_puissance:
value_template: '{{ state_attr("sensor.wemos_pitinfo","ENERGY").Power }}'
unit_of_measurement: "W"
#
# EnergyHC
teleinfo_energyhc:
value_template: '{{ state_attr("sensor.wemos_pitinfo","ENERGY").HCHC }}'
unit_of_measurement: "Wh"
#
# EnergyHP
teleinfo_energyhp:
value_template: '{{ state_attr("sensor.wemos_pitinfo","ENERGY").HCHP }}'
unit_of_measurement: "Wh"
#
# Energy Total + attr HP/HC
teleinfo_energy:
value_template: '{{ state_attr("sensor.wemos_pitinfo","ENERGY").HCHC + state_attr("sensor.wemos_pitinfo","ENERGY").HCHP }}'
unit_of_measurement: "Wh"
attribute_templates:
Index HP: >-
{{ state_attr("sensor.wemos_pitinfo","ENERGY").HCHP }}
Index HC: >-
{{ state_attr("sensor.wemos_pitinfo","ENERGY").HCHC }}
@Antoine1, le problème est que dans les trames récupérées, je ne vois pas cette info :
[06:01:08][E][teleinfo:036]: bad crc: got 59 except 56
[06:01:10][D][sensor:092]: 'ADCO': Sending state xxxxxxxxxxx.00000 with 0 decimals of accuracy
[06:01:10][D][sensor:092]: 'Intensité souscrite': Sending state 45.00000 A with 0 decimals of accuracy
[06:01:10][D][sensor:092]: 'Index': Sending state 21651.81250 kWh with 0 decimals of accuracy
[06:01:10][D][sensor:092]: 'Intensité': Sending state 12.00000 A with 0 decimals of accuracy
[06:01:10][D][sensor:092]: 'Intensité maximale': Sending state 90.00000 A with 0 decimals of accuracy
[06:01:10][D][sensor:092]: 'Puissance': Sending state 2870.00000 VA with 0 decimals of accuracy
[06:01:12][D][sensor:092]: 'ADCO': Sending state xxxxxxxxxxx.00000 with 0 decimals of accuracy
[06:01:12][D][sensor:092]: 'Intensité souscrite': Sending state 45.00000 A with 0 decimals of accuracy
[06:01:12][D][sensor:092]: 'Index': Sending state 21651.81250 kWh with 0 decimals of accuracy
[06:01:12][D][sensor:092]: 'Intensité': Sending state 12.00000 A with 0 decimals of accuracy
[06:01:12][D][sensor:092]: 'Intensité maximale': Sending state 90.00000 A with 0 decimals of accuracy
[06:01:12][D][sensor:092]: 'Puissance': Sending state 2890.00000 VA with 0 decimals of accuracy
[06:01:13][D][sensor:092]: 'WiFi Signal Sensor': Sending state -80.00000 dB with 0 decimals of accuracy
[06:01:14][D][sensor:092]: 'ADCO': Sending state xxxxxxxxxxx.00000 with 0 decimals of accuracy
[06:01:14][D][sensor:092]: 'Intensité souscrite': Sending state 45.00000 A with 0 decimals of accuracy
[06:01:14][D][sensor:092]: 'Index': Sending state 21651.81250 kWh with 0 decimals of accuracy
[06:01:14][D][sensor:092]: 'Intensité': Sending state 12.00000 A with 0 decimals of accuracy
Et le firmware de Canaletto est un firmware Tasmota pas ESPHome. Tu utilises Tasmota ?
Avec @Jcpas, on utilise le composant teleinfo qui (je l’espère) sortira un jour avec ESPHome (stable) mais qui est pour l’instant en dev.
Je viens de tomber sur ça dans la doc ESPHome (dev) :
# Example configuration entry
uart:
id: uart_bus
rx_pin: GPIO3
tx_pin: GPIO1
baud_rate: 1200
parity: EVEN
data_bits: 7
sensor:
- platform: teleinfo
tags:
- name: "HCHC"
sensor:
name: "hchc"
unit_of_measurement: "Wh"
icon: mdi:flash
- name: "HCHP"
sensor:
name: "hchp"
unit_of_measurement: "Wh"
icon: mdi:flash
- name: "PAPP"
sensor:
name: "papp"
unit_of_measurement: "VA"
icon: mdi:flash
update_interval: 60s
historical_mode: true
Je vais essayer de l’ajouter à mon code de l’ESP32 puis upload, on verra si ça me rajoute les Wh
…
J’ai ajouté ce bout de yaml à la fin du bloc tags
mais ESPHome (dev) ne voulait pas compiler car name
n’était pas conforme ([name] is an invalid option for [6]. Did you mean [tag_name] ?
):
- name: "HCHC"
sensor:
name: "hchc"
unit_of_measurement: "Wh"
icon: mdi:flash
- name: "HCHP"
sensor:
name: "hchp"
unit_of_measurement: "Wh"
icon: mdi:flash
J’ai donc changé name:
par tag_name:
. Il a accepté de compiler mais pas de trames HCHC ou HCHP visible dans les logs.
Pourtant j’ai vérifié, je suis bien en mode historique
sur mon compteur et via le menu du linky, je vois bien ces 2 infos (HCHC & HCHP)
Je sèche …
J’ai essayé avec cette doc mais l’indentation empêche la compilation :
VA ou W c’est presque équivalent, à peu de chose près.
Le Linky n’envoie pas la consommation instantanée en W mais en VA, d’ailleurs c’est ce qui est visible sur le Linky.
Il n’y a aucune information en W envoyée :
Moi je ne suis pas en heures creuses/heures pleines donc je n’ai pas les HC/HP, j’ai l’étiquette BASE à la place.
Comment Tasmota peut avoir la consommation en W si elle n’est pas fourni par le Linky ?
Y a un calcul à faire ou ils ont simplement estimé que VA = W ?
Il faudrait regarder dans le code pour voir quelle étiquette est récupérée pour le sensor Power.
Mis à part le name → tag_name, ton morceau de code m’a l’air correct.
Tu as essayé en mettant level: DEBUG au lieu de level: INFO ?
Peut être que tu verras plus d’étiquettes.
Je viens de tester un truc, j’ai ajouté un autre sensor en Wh qui récupère les infos du tag BASE
:
- tag_name: "BASE"
sensor:
name: "Index"
unit_of_measurement: "kWh"
icon: mdi:home-analytics
filters:
- multiply: 0.001
- tag_name: "BASE"
sensor:
name: "Index (Wh)"
unit_of_measurement: "Wh"
icon: mdi:home-analytics
le sensor Index
récupère les KWh arrondi alors que Index (Wh)
récupère l’index en Wh non arrondi.
Est-ce que l’on pourrait pas récupérer que la différence entre deux envois, on pourrait alors tracer sur une courbe l’évolution des Wh au lieu des VA ?
Le problème, c’est rattaché ça au temps…
ça dépasse mes compétences là …
Donc si tu as l’étiquette BASE tu ne devrais pas avoir les options heures creuses/heures pleines si ?
Oui ça peut être une piste de comparer l’évolution des index, mais je ne pense pas qu’on soit les premiers à vouloir faire ça.
L’autre piste, plus simple peut être, serait de faire une moyenne parmi les valeurs reçues de conso instantanée.
Effectivement, je vois les options HC/HP mais elle ne doivent pas être actif. C’est pour cela que je reçois pas de trames.
En fait, il faudrait pouvoir récupérer le delta entre 2 index de BASE
non arrondi. Comme cela, on peut avoir l’évolution de la conso en Wh.
Mais pour ça, faut pouvoir stocker dans une variable l’index n-1 pour le comparer à l’index n sous ESPHome.
Quelqu’un saurait faire ça dans le yaml sous ESPHome (dev) ?
Bon je crois avoir compris.
J’ai ajouté dans mon ESP l’index en Wh comme tu as fait plus haut :
- tag_name: "BASE"
sensor:
name: "Index (Wh)"
unit_of_measurement: "Wh"
icon: mdi:home-analytics
J’ai ensuite modifié mon utility_meter pour suivre ce sensor :
utility_meter:
consommation_heure:
source: sensor.index_wh
cycle: hourly
consommation_jour:
source: sensor.index_wh
cycle: daily
consommation_semaine:
source: sensor.index_wh
cycle: weekly
consommation_mois:
source: sensor.index_wh
cycle: monthly
consommation_annee:
source: sensor.index_wh
cycle: yearly
Et ça a l’air de marcher, utility_meter fait déjà la différence de valeurs.
Maintenant il ne me reste plus qu’à trouver comment supprimer l’historique des sensors.
Il faut aussi modifier la paramétrage des sensors, parce que les unités ne sont plus bonnes, HA m’indique les valeurs en VA alors que maintenant elles sont en W.
Je pourrais renommer mes sensors mais ça ne fait pas propre
@Jcpas, si tu utilises la carte Mini Graph Card, tu peux changer l’unité qui s’affiche sur ton graph
Ne fais pas attention au valeur, je viens juste d’appliquer tes modifs à utility_meter
Bon voici ma config d’utility_meter
:
utility_meter
# Téléinfo
consommation_heure:
source: sensor.index_wh
cycle: hourly
consommation_jour:
source: sensor.index
cycle: daily
consommation_semaine:
source: sensor.index
cycle: weekly
consommation_mois:
source: sensor.index
cycle: monthly
consommation_annee:
source: sensor.index
cycle: yearly
Mon graph par heure :
par heure
align_icon: left
color_thresholds:
- color: '#11f13a'
value: 1300
- color: '#f0da11'
value: 1400
- color: '#ef5a0f'
value: 1500
- color: '#ef1d0f'
value: 1600
entities:
- sensor.consommation_heure
unit: Wh
hours_to_show: 1
hour24: true
more_info: false
name: Conso EDF par heure
points_per_hour: 60
animate: true
show:
labels: true
name: true
type: 'custom:mini-graph-card'
mon graph par jour :
par jour
align_icon: left
color_thresholds:
- color: '#11f13a'
value: 32
- color: '#f0da11'
value: 33
- color: '#ef5a0f'
value: 34
- color: '#ef1d0f'
value: 35
entities:
- sensor.consommation_jour
unit: kWh
hours_to_show: 24
hour24: true
more_info: false
name: Conso EDF par jour
points_per_hour: 2
animate: true
show:
labels: true
name: true
type: 'custom:mini-graph-card'
Et par semaine :
par semaine
align_icon: left
color_thresholds:
- color: '#11f13a'
value: 224
- color: '#f0da11'
value: 225
- color: '#ef5a0f'
value: 226
- color: '#ef1d0f'
value: 227
entities:
- sensor.consommation_semaine
unit: kWh
hours_to_show: 168
hour24: true
more_info: false
name: Conso EDF par semaine
points_per_hour: 1
animate: true
show:
labels: true
name: true
type: 'custom:mini-graph-card'
Y a plus qu’à attendre que les données s’accumule pour voir des graphiques cohérents …