ESPHome / Linky Mode Standard

Bonjour,
J’ai installé via ESPHome sur un ESP32 le programme pour recevoir les informations TIC de mon Linky.
En mode historique tout fonctionnait correctement
Je suis passé en mode standard et depuis plus rien.
Suite au passage en mode standard j’ai modifié:

  • « baud_rate: 1200 » en « baud_rate: 9600 »
  • « historical_mode: true » en « historical_mode: false »
    tous les tag_name pour les faire correspondre à ceux du mode standard
uart:
  id: uart_bus
  rx_pin: GPIO16
  baud_rate: 9600
  parity: EVEN
  data_bits: 7

teleinfo:
  id: myteleinfo
  update_interval: 60s
  historical_mode: false

J’ai branché un FTDI sur l’entrée RX2 (GPIO16) et j’obtiens bien les informations sur le PC en 9600 bauds

Avez vous une piste pour résoudre ce problème ?

J’ai hésité à faire comme toi car apparemment le mode standard apporte plus d’informations, mais je n’ai rien trouvé sur le net la dessus. Du coup je suis resté en mode historique.
Ça m’embête car j’ai un contrat zen avec des heures pleines et creuse en semaine et en week-end. Pas encore trouvé comment récupérer ces info du linky, j’ai tout essayé à l’aide de la seul doc du linky, tout les codes HC/HP n’ont jamais fonctionné.
Donc à moins de trouver quelqu’un qui à déjà optenu quelque chose de cette manière, je vais suivre attentivement ton post.

j’ai utiliser ce tuto indiqué dans ce post : [Partage] LINKY, esp ou weemos directement sur la prise TIC HP/HC ou Tarif BASE - Home Assistant - Tutoriels & Partages / ESPHome - Home Assistant Communauté Francophone (hacf.fr) si cela peut aider :slight_smile:

Bonjour,
je suis en mode « Standard » avec un wemos et tout fonctionne bien. Voici ma config pour aider.

#2.0 
#20211122
substitutions:
  name: teleinfo
  freq: 60s
  freqsys: 300s
  
esphome:
  name: ${name}
  platform: ESP8266
  board: d1_mini

wifi:
  fast_connect: on
  networks:
  - ssid: !secret ssid
    password: !secret wifi_password
  #- ssid: !secret ssid2
  #  password: !secret wifi_password

  # Optional manual IP
  manual_ip:
    static_ip: 192.168.x.x
    gateway: 192.168.x.x
    subnet: 255.255.255.0

    
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Teleinfo Fallback Hotspot"
    password: "777XXX777XXX"

captive_portal:

# Enable logging
logger: 
#  hardware_uart : UART1
  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

# read time and timezone Home Assistant
time:
  - platform: homeassistant
    timezone: "Europe/Paris"
    id: ha_time

# Enable Home Assistant API
api:

ota:

web_server:
  port: 80

# ajout du composant uart pour la communication série avec la sortie TIC du compteur
# GPIO3 = Pin Rx sur Wemos D1
# Example configuration entry

uart:
  id: uart_bus
  rx_pin: GPIO3
  tx_pin: GPIO1
  baud_rate: 9600
  parity: EVEN
  data_bits: 7

teleinfo:
  id: myteleinfo
  update_interval: ${freq}
  historical_mode: false

sensor:
  - platform: teleinfo
    tag_name: "ADSC" #Adresse Secondaire du Compteur
    name: "${name}-ADSC"
    unit_of_measurement: ""
    icon: mdi:eye
    teleinfo_id: myteleinfo
 
  - platform: teleinfo
    tag_name: "PREF" #Puissance app. de référence
    name: "${name}-Intensité-souscrite"
    unit_of_measurement: "kVA"
    icon: mdi:information
    teleinfo_id: myteleinfo
    
  - platform: teleinfo
    tag_name: "EAST" #Energie active soutirée totale
    name: "${name}-Index-Wh"
    unit_of_measurement: "Wh"
    icon: mdi:home-analytics
    teleinfo_id: myteleinfo

  - platform: teleinfo
    tag_name: "EAST" #Energie active soutirée totale calcul kWh
    name: "${name}-Index-kWh"
    unit_of_measurement: "kWh"
    icon: mdi:home-analytics
    accuracy_decimals: 2
    filters:
      - multiply: 0.001
    teleinfo_id: myteleinfo

  - platform: teleinfo
    tag_name: "SINSTS" #Puissance app. Instantanée soutirée
    name: "${name}-Puissance"
    unit_of_measurement: "VA"
    icon: mdi:flash
    teleinfo_id: myteleinfo

  - platform: teleinfo
    tag_name: "SINSTS" #Puissance app. Instantanée soutirée
    name: "${name}-puissance-apparente-kva"
    unit_of_measurement: "kVA"
    icon: mdi:flash
    accuracy_decimals: 1
    filters:
      - multiply: 0.001
    teleinfo_id: myteleinfo    

  - platform: teleinfo
    tag_name: "EAIT" #Energie active injectée totale
    name: "${name}-energie-active-injectee-totale-Wh"
    unit_of_measurement: "Wh"
    icon: mdi:flash
    teleinfo_id: myteleinfo

  - platform: teleinfo
    tag_name: "EAIT" #Energie active injectée totale
    name: "${name}-energie-active-injectee-totale-kWh"
    unit_of_measurement: "kWh"
    icon: mdi:flash
    accuracy_decimals: 2
    filters:
      - multiply: 0.001
    teleinfo_id: myteleinfo

  - platform: teleinfo
    tag_name: "SINSTI" #Puissance app. Instantanée injectée
    name: "${name}-puissance-apparente-intantanee-injectee"
    unit_of_measurement: "VA"
    icon: mdi:flash
    teleinfo_id: myteleinfo

  - platform: wifi_signal
    name: "${name}-WiFi Signal Sensor"
    update_interval: ${freqsys}
    unit_of_measurement: dB
    accuracy_decimals: 0
    force_update: false
    icon: mdi:wifi
    
  - platform: uptime
    id: uptime_seconds
    name: "${name}-Uptime Sensor"
    update_interval: 60s
    unit_of_measurement: s
    accuracy_decimals: 0
    force_update: false
    icon: mdi:timer

binary_sensor:
  - platform: status
    name: "${name}-Status"

switch:
  - platform: restart
    name: "${name}-reboot"

text_sensor:
  - platform: template
    name: ${name}-Uptime
    update_interval: ${freqsys}
    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() };
      }


2 « J'aime »

Un grand merci pour cette config que j’ai reprise intégralement à quelques variantes près pour l’adapter à l’ESP32.

teleinfo-circuit

En fait le problème ne venait pas du fichier yaml, mais du circuit de démodulation des signaux de téléinfo.

J’ai du passer la valeur de la résistance de pulldown sur la grille du MOSFET à 4,7k.
Je suis arrivé à cela par tâtonnement. Difficile de faire mieux et de comprendre pourquoi sans oscilloscope.
A noter que ce circuit fonctionnait très bien en mode historique (en 1200 bauds)

Et donc en mode standard ça apporte quoi de plus ou de différent ? :thinking:
J’ai pas encore trop compris la différence entre les deux sur ce que le linky envoie. C’est juste une connection de meilleur qualité ? :thinking:
Car j’ai essayé tout les tag name en mode historique seul les classiques fonctionnent. En mode standard j’aurais peut être plus de chance de trouver les options de mon contrat zen ? :thinking:

La qualité de la connexion est la même entre les 2 modes.

Le mode « historique » correspond au mode de téléinformation utilisé avant le linky.
Pour garder la compatibilité avec les systèmes existants, c’est le mode « historique » qui est paramétré par défaut sur les linky
Dans ce mode la transmission se fait en 1200 bauds.

Le mode « standard » est similaire mais il y a plus d’informations disponibles et la transmission se fait en 9600 bauds.
Ce mode n’est pas compatible avec les systèmes existants sans modifications.

Pour ce qui est des informations disponibles dans les 2 modes, tout ce trouve ici : http://www.enedis.fr/sites/default/files/Enedis-NOI-CPT_54E.pdf

Bonne lecture :grinning:

Donc mon wemos sur pitinfo ça fonctionnera pas en mode standard ? :thinking:

Wemos et pitinfo ? Ou autre chose que le pitinfo ?

Bonjour,
Je me permet de demander si vous arrivez a avoir les informations d’injection EAIT ?
J’ai essayé plusieurs module téléinfo (pas encore avec ESPHOME) et je n’ai pas de donnée sur l’injection. Je suis bien en mode standard avec le linky. J’ai des panneaux en autoconso total sans injection
Merci par avance
Stéphane

1 « J'aime »