Merci je vais regarder ça !
Ok, ça à l’air de fonctionner pour le tri.
Je post le yaml que j’ai modifié :
substitutions:
name: teleinfo
esphome:
name: ${name}
platform: ESP8266
board: d1_mini
wifi:
ssid: "MonReseauWifi"
password: "CestPasMonMotDePass"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Teleinfo Fallback Hotspot"
password: "DurDur"
web_server:
port: 80
captive_portal:
# Enable logging
logger:
baud_rate: 0 # disable logging via UART, help to avoid numerous crash with ESP_LOGD
level: INFO # INFO for less log, put DEBUG to view all the linky's "étiquettes" received in the logs
esp8266_store_log_strings_in_flash: False # recommanded for ESP8266 https://esphome.io/components/sensor/custom.html
# Enable Home Assistant API
api:
password: "Coucou"
ota:
password: "CPaMoi"
# ajout du composant uart pour la communication série avec la sortie TIC du compteur
# GPIO3 = Pin Rx sur Wemos D1
uart:
id: uart_bus
# tx_pin: GPIO15
rx_pin: GPIO3
baud_rate: 1200
parity: EVEN
data_bits: 7
# déclaration des sensors numérique
# les sensors doivent être déclarés dans l'ordre de la fonction lambda
sensor:
- platform: wifi_signal
name: "WiFi Signal Sensor"
update_interval: 60s
unit_of_measurement: dB
accuracy_decimals: 0
force_update: false
icon: mdi:wifi
- platform: uptime
id: uptime_seconds
name: "Uptime Sensor"
update_interval: 60s
unit_of_measurement: s
accuracy_decimals: 0
force_update: false
icon: mdi:timer
- platform: teleinfo
tags:
- tag_name: "ADCO"
sensor:
name: "ADCO"
unit_of_measurement: ""
icon: mdi:eye
- tag_name: "BASE"
sensor:
name: "Index"
unit_of_measurement: "kWh"
icon: mdi:home-analytics
filters:
- multiply: 0.001
- tag_name: "ISOUSC"
sensor:
name: "Intensité souscrite"
unit_of_measurement: "A"
icon: mdi:information
- tag_name: "IMAX1"
sensor:
name: "Intensité Max Phase 1"
unit_of_measurement: "A"
icon: mdi:information
- tag_name: "IMAX2"
sensor:
name: "Intensité Max Phase 2"
unit_of_measurement: "A"
icon: mdi:information
- tag_name: "IMAX3"
sensor:
name: "Intensité Max Phase 3"
unit_of_measurement: "A"
icon: mdi:information
- tag_name: "IINST1"
sensor:
name: "Intensité Phase 1"
unit_of_measurement: "A"
icon: mdi:power-plug
- tag_name: "IINST2"
sensor:
name: "Intensité Phase 2"
unit_of_measurement: "A"
icon: mdi:power-plug
- tag_name: "IINST3"
sensor:
name: "Intensité Phase 3"
unit_of_measurement: "A"
icon: mdi:power-plug
- tag_name: "PMAX"
sensor:
name: "Puissance Max Atteinte"
unit_of_measurement: "W"
icon: mdi:flash
- tag_name: "PAPP"
sensor:
name: "Puissance apparente triphasée"
unit_of_measurement: "VA"
icon: mdi:flash
update_interval: 2s
historical_mode: true
binary_sensor:
- platform: status
name: "Status"
switch:
- platform: restart
name: "${name} reboot"
text_sensor:
- platform: template
name: ${name} - Uptime
update_interval: 60s
icon: mdi:clock-start
lambda: |-
int seconds = (id(uptime_seconds).state);
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
seconds = seconds % 60;
if ( days ) {
return { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
} else if ( hours ) {
return { (String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
} else if ( minutes ) {
return { (String(minutes) +"m "+ String(seconds) +"s").c_str() };
} else {
return { (String(seconds) +"s").c_str() };
}
En revanche, ça me parait pas trop précis sur l’intensité consommé sur chaque phase (Il y a un moyen d’avoir du chiffre après la virgule ou c’est vraiment juste ça ?). Et, l’intensité max par phase me parait bizarre.
J’ai bien un 9kVA donc 15A. Mais 60A par phase me parait beaucoup…
Si tu modifies le level en mettant DEBUG, tu pourras voir les trames brutes en cliquant sur « LOGS » dans ESPHome il me semble.
Tu pourras voir si la valeur brute est arrondie ou pas.
Bon, c’est mis en Debug.
Je ne vois pas les trames brutes.
Apparemment c’est de toute façon tout ce qu’on peut avoir, j’ai mis un « accuracy_decimals: 2 » sur les lignes pour l’intensité sans grand effet…
Oui à priori le Linky nous envoie un entier.
Merci @Schmurtz pour l’info des apexCharts c’est top !!
J’aimerais aussi faire un tableau avec ces données. Je vais voir si on peut utiliser la custom card Linky.
Merci @Jcpas et désolé pour la réponse tardive, effectivement je n’avait pas l’étiquette HCHC et HCHP, je les ai ajouté mais l’info ne remonte pas.
Mon code :
substitutions:
name: teleinfo
esphome:
name: ${name}
platform: ESP8266
board: d1_mini
wifi:
ssid: "Livebox"
password: "pass"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Teleinfo Fallback Hotspot"
password: "tototeleinfo"
web_server:
port: 80
captive_portal:
# Enable logging
logger:
baud_rate: 0 # disable logging via UART, help to avoid numerous crash with ESP_LOGD
level: DEBUG # INFO for less log, put DEBUG to view all the linky's "étiquettes" received in the logs
esp8266_store_log_strings_in_flash: False # recommanded for ESP8266 https://esphome.io/components/sensor/custom.html
# Enable Home Assistant API
api:
password: "toto"
ota:
password: "toto"
# ajout du composant uart pour la communication série avec la sortie TIC du compteur
# GPIO3 = Pin Rx sur Wemos D1
uart:
id: uart_bus
# tx_pin: GPIO15
rx_pin: GPIO3
baud_rate: 1200
parity: EVEN
data_bits: 7
# déclaration des sensors numérique
# les sensors doivent être déclarés dans l'ordre de la fonction lambda
sensor:
- platform: wifi_signal
name: "WiFi Signal Sensor"
update_interval: 60s
unit_of_measurement: dB
accuracy_decimals: 0
force_update: false
icon: mdi:wifi
- platform: uptime
id: uptime_seconds
name: "Uptime Sensor"
update_interval: 60s
unit_of_measurement: s
accuracy_decimals: 0
force_update: false
icon: mdi:timer
- platform: teleinfo
tags:
- tag_name: "ADCO"
sensor:
name: "ADCO"
unit_of_measurement: ""
icon: mdi:eye
- tag_name: "BASE"
sensor:
name: "Index"
unit_of_measurement: "kWh"
icon: mdi:home-analytics
filters:
- multiply: 0.001
- tag_name: "ISOUSC"
sensor:
name: "Intensité souscrite"
unit_of_measurement: "A"
icon: mdi:information
- tag_name: "IMAX"
sensor:
name: "Intensité maximale"
unit_of_measurement: "A"
icon: mdi:information
- tag_name: "IINST"
sensor:
name: "Intensité"
unit_of_measurement: "A"
icon: mdi:power-plug
- tag_name: "PAPP"
sensor:
name: "Puissance"
unit_of_measurement: "VA"
icon: mdi:flash
- tag_name: "HC"
sensor:
name: "Heure creuse"
unit_of_measurement: "Wh"
icon: mdi:flash
- tag_name: "HP"
sensor:
name: "Heure pleine"
unit_of_measurement: "Wh"
icon: mdi:flash
update_interval: 10s
historical_mode: true
binary_sensor:
- platform: status
name: "Status"
switch:
- platform: restart
name: "${name} reboot"
text_sensor:
- platform: template
name: ${name} - Uptime
update_interval: 60s
icon: mdi:clock-start
lambda: |-
int seconds = (id(uptime_seconds).state);
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
seconds = seconds % 60;
if ( days ) {
return { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
} else if ( hours ) {
return { (String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
} else if ( minutes ) {
return { (String(minutes) +"m "+ String(seconds) +"s").c_str() };
} else {
return { (String(seconds) +"s").c_str() };
}
Je ne vois pas où se trouve le problème.
Je ne suis pas avec le linky mais le compteur électronique de la génération précédente.
Merci pour votre aide.
Bonjour
Les étiquettes HC et HP
Sont a remplacer dans ton code par HCHP et HCHC
Regardes mon message du 9 février
Merci @jrvrcd
Je savais que c’était HCHC et HCHP mais trop la tête dans le guidon et je suis passé à côté de ça .
Je récupère bien les indice heure creuse et heure pleine maintenant.
Aurais tu une solution pour remonter par graphe journalier, hebdomadaire, mensuel et annuelle
, La consommation et le coût stp ?
Bonjour
pour le moment je ne fait que collecter les informations, la mise en forme… désolé mais je ne suis pas expert
cependant il y a de tres belles realisations ( regarde du coté de ENEDIS) et surtout de la custom card apexcharts-card ( necessite HACS ) il y a un post a ce sujet
pour ma part je ne fais que des utility_meter
regarde le post de Schmurtz du 5 fevrier
Tu peux déjà créer des utility_meter, ensuite tu pourras faire des graphes sur ces données comme j’ai mis un peu plus haut avec apexcharts.
Tiens du coup ça me faite tiquer ce que tu marque.
Pourquoi utiliser les données de utility_meter ?
ça, ça marche direct :
type: 'custom:apexcharts-card'
graph_span: 30d
header:
show: true
title: Consomation en kWh par jour
series:
- entity: sensor.index
type: column
name: Conso ju jour
group_by:
func: delta
duration: 1d
J’avais déjà les utility_meter créés donc je ne me suis même pas posé la question.
J’ai essayé ce que tu as mis mais j’ai une différence entre les deux méthodes, même si c’est assez proche (sauf pour le premier jour) :
L’utilisation des utility_meter
permet également d’avoir une entité dédiée au suivi, consultable mais surtout exploitable pour des calculs (par exemple créer grâce à l’entité utility_meter
une entité représentant la tendance du mois, de l’année directement sans avoir à afficher un graphique.
Ok pour avoir une conso chiffré utilisable ailleurs.
Un petit ajout de span devrait régler le soucis, sinon ça doit être en glissant je pense :
type: 'custom:apexcharts-card'
graph_span: 30d
header:
show: true
title: Consomation en kWh par jour
span:
end: day
series:
- entity: sensor.index
type: column
name: Conso ju jour
group_by:
func: delta
duration: 1d
Voici le PCB que je compte lancer en fabrication via JLCPCB pour suivre la téléinfo via un ESP32 :
Et voici le schéma avec les composants :
N’hésitez pas à faire des commentaires si vous avez des idées, je suis preneur
Pour info, je devrais avoir des PCB en rab, si ça intéresse quelqu’un !
Salut,
J’en ai fabriqué un qui fonctionne très bien, mais avec un Wemos D1 mini Pro afin de pouvoir rentrer l’ensemble du module dans le boitier du compteur linky.
Comme tu peux le voir j’ai remplacé la résistance R1 de 4K7 par une 1K en entrée, sinon cela ne fonctionnait pas.
Bonjour,
Finalement vous avez des PCN en rab ?
Ça pourrait m’intéresser
Cdlt
Philippe
@Pbranly, c’est commandé, je suis en attente.
D’ici 15 jours je pense …