Codage tic info linky

Bonjour,
j’ai repris un code et j’essaie quelques modifications en fonction des demandes du logs, mais j’ai toujours la même demande.
merci d’avance pour votre aide.

Mon problème

INFO ESPHome 2026.1.5
INFO Reading configuration /config/esphome/linky.yaml...
INFO Starting log output from 192.168.1.25 using esphome API
INFO Successfully resolved esp-teleinfo @ 192.168.1.25 in 0.001s
WARNING Can't connect to ESPHome API for esp-teleinfo @ 192.168.1.25: Error connecting to [AddrInfo(family=<AddressFamily.AF_INET: 2>, type=<SocketKind.SOCK_STREAM: 1>, proto=6, sockaddr=IPv4Sockaddr(address='192.168.1.25', port=6053))]: [Errno 113] Connect call failed ('192.168.1.25', 6053) (SocketAPIError)
INFO Trying to connect to esp-teleinfo @ 192.168.1.25 in the background

Renseigner votre problème

Ma configuration

esphome:
  name: esp-teleinfo

esp32:
  board: esp-wrover-kit
  framework:
    type: arduino

logger:
  level: debug
  baud_rate: 0

web_server:
  port: 80
  auth:
    username: !secret web_server_username
    password: !secret web_server_password
   
    
 
ota:
  - platform: web_server

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip: 
    static_ip: 192.168.1.25
    gateway: 192.168.1.1
    subnet: 255.255.255.0

api:
  port: 6053
  batch_delay: 50ms  # Reduce latency for real-time applications
  listen_backlog: 2  # Allow 2 pending connections in queue
  max_connections: 6  # Allow up to 6 simultaneous connections
  max_send_queue: 10  # Maximum queued messages per connection before disconnect
  encryption:
    key: ZA5/3P7Ne+/SdcZ+VIIyYBLs1ztm/DPivn+Mal//v8E=
  reboot_timeout: 30min




        


uart:
  id: uart_bus
  rx_pin: GPIO16  
#  tx_pin: GPI17
  baud_rate: 1200
  parity: EVEN
  data_bits: 7

teleinfo:
  id: esp_teleinfo
  update_interval: 60s
  historical_mode: true

binary_sensor:
  - platform: status
    id: teleinfo_status
    name: "Teleinfo Status"

sensor:
  - platform: wifi_signal
    name: "Signal wifi"
    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
    tag_name: "IINST"
    name: "Intensité"
    unit_of_measurement: "A"
    icon: mdi:current-ac

  - platform: teleinfo
    tag_name: "PAPP"
    name: "Puissance"
    unit_of_measurement: "VA"
    icon: mdi:flash

  - platform: teleinfo
    tag_name: "HCHC"
    id: hchc
    name: "Teleinfo index_hc_kwh"
    unit_of_measurement: "kWh"
    device_class: "energy"
    state_class: "total_increasing"
    accuracy_decimals: 3 
    filters:
      - multiply: 0.001
    icon: mdi:gauge

  - platform: teleinfo
    tag_name: "HCHP"
    id: hchp
    unit_of_measurement: "kWh"
    device_class: "energy"
    state_class: "total_increasing"
    name: "Teleinfo index_hp_kwh"
    accuracy_decimals: 3 
    filters:
      - multiply: 0.001
    icon: mdi:gauge

button:
  - platform: restart
    name: "Teleinfo Restart"

text_sensor:
  - platform: teleinfo
    tag_name: "PTEC"
    name: "Tarif actuel"
    icon: mdi:clock-time-nine-outline
  - platform: template
    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() };
      }      

Texte à remplacer par votre configuration

Comment récupérer ma configuration :
Dans votre HA, Menu latéral Paramètres > Système > Corrections puis les trois petits points en haut a droite > Informations Système puis une fois en bas Copier


Il y a une raison à ça ?

C’est pas le framework recommandé (sauf incompatibilité des certaines librairies), donc autant ne rien préciser et donc laisser le compilateur utiliser le framework par défaut (esp-idf)
Je dis pas que c’est ça le problème, mais autant éviter de chercher les embrouilles quand il n’y a pas de raison de les chercher…

Vire aussi tout ce bazar. Avant d’essayer de bricoler je ne sais quoi dans les appels API, faut laisser la config par défaut…

Salut,

D’accord avec @Forhorse sur la partie Api tout ça doit être enlevé en laissant « encryption » et « key ».
Le faire que le port 6053 soit mentionné dans l’erreur est surement lié.

Comme tu as un serveur web activé commence par essayer de te connecter dessus avec un navigateur pour confirmer que l’ip est ok et accessible. Ensuite tu verras les logs de l’appareil qui pourront peut-être en dire plus.

Merci à vous, j’ai modifié le code dans l’api , le port 6053.
Je fais le LOGS et alors là il voit rouge au niveau du texte sensor.
j’avoue que là je n’y connais rien.:unamused_face:
j’ai encore besoin de vos lumières pour comprendre ce que je fais.
Merci d’avance.Texte préformaté

/config/esphome/linky.yaml: In lambda function:
/config/esphome/linky.yaml:136:19: error: ‹ String › was not declared in this scope
136 | return { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +« s »).c_str() };
| ^~~~~~
/config/esphome/linky.yaml:136:115: error: could not convert ‹ {} › from ‹  › to ‹ esphome::optional<std::__cxx11::basic_string > ›
136 | return { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +« s »).c_str() };
| ^
| |
|
/config/esphome/linky.yaml:138:19: error: ‹ String › was not declared in this scope
138 | return { (String(hours) +"h " + String(minutes) +"m "+ String(seconds) +« s »).c_str() };
| ^~~~~~
/config/esphome/linky.yaml:138:94: error: could not convert ‹ {} › from ‹  › to ‹ esphome::optional<std::__cxx11::basic_string > ›
138 | return { (String(hours) +"h " + String(minutes) +"m "+ String(seconds) +« s »).c_str() };
| ^
| |
|
/config/esphome/linky.yaml:140:19: error: ‹ String › was not declared in this scope
140 | return { (String(minutes) +"m "+ String(seconds) +« s »).c_str() };
| ^~~~~~
/config/esphome/linky.yaml:140:72: error: could not convert ‹ {} › from ‹  › to ‹ esphome::optional<std::__cxx11::basic_string > ›
140 | return { (String(minutes) +"m "+ String(seconds) +« s »).c_str() };
| ^
| |
|
/config/esphome/linky.yaml:142:19: error: ‹ String › was not declared in this scope
142 | return { (String(seconds) +« s »).c_str() };
| ^~~~~~
/config/esphome/linky.yaml:142:49: error: could not convert ‹ {} › from ‹  › to ‹ esphome::optional<std::__cxx11::basic_string > ›
142 | return { (String(seconds) +« s »).c_str() };
| ^
| |
|

remet en framework arduino pour l’instant. Le C++ arduino et le C++ esp-idf fait pas appel au même fonctions, il faut « traduire ». J’ai pas le temps de regarder actuellement… mais si quelqu’un d’autre veut le faire je laisse la place.

Salut,
Peux tu partager ton fichier YAML en entier et formaté cela aidera la lecture et le diagnostic.
Ici on doit être sur une erreur de syntaxe.
Je te conseille d’y aller pas à pas et d’enlever le « uptime » déja pour vérifier la partie « Linky » seule et ensuite ajouter au fur et à mesure.
Je te conseille d’utiliser le « nouvel » uptime text sensor pour lequel il n’y a plus besoin d’effectuer toutes ces manipulations

Bon en fait c’est simple, il faut remplacer « String » par « to_string »

merci pour les réponses rapides.
je suis un novice et ne maitrise pas tout.
je vais réfléchir a tout ça.

question procédure, y a-t-il explicative du dialogue avec vous « formatage??? » :thinking:
a plus.

Lorsque je parle de formatage, je pense au forum. Tout ce qui concerne le code doit être mis entre backticks (`).

Le plus simple est d’utiliser l’option Texte préformaté dans l’éditeur et de coller le contenu.

Bonjour à tous et merci pour votre aide.
malheureusement je ne suis pas assez calé pour tout comprendre.
comme je tournais en rond depuis pas mal de temps j’ai tout repris calmement.
j’utilise le logiciel de Mathieu Carbou , mais j’instale un esp32 au lieu d’'un wemos d1 mini32.
mon linky est en historique.
depuis le debut de l’instale de l’esp j’ai un commentaire dans le log qui se connecte au wifi ,seulement en background et ne va pas plus loin.
j’ai certainement loupé quelque chose mais là je ne vois pas.
de plus le progr ne va pas chercher le web.

saisissez ou collez du code ici
```esphome:
  name: linky-test
  friendly_name: Linky test

esp32:
  board: esp32dev
  framework:
    type: arduino
# Enable logging
logger:
   baud_rate: 0   # disable logging via UART, help to avoid numerous crash with ESP_LOGD
   hardware_uart : UART1
   level: NONE
  # esp8266_store_log_strings_in_flash: false

# Enable Home Assistant API
api:
  encryption:
    key: "sr1rkuLj0gJeyZtFv8sq/K9uTiiEn6R3AW08KxCn5og="

ota:
  - platform: esphome
    password: "6d4c74266d995cd12d713189cb7bc22a"

wifi:
  reboot_timeout: 5min
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
         static_ip: "192.168.1.15"
         gateway: "192.168.1.1"
         subnet: "255.255.255.0"
         dns1: 192.168.1.1
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Linky-Test Fallback Hotspot"
    password: "1qoAWUZzxaxd"

captive_portal:

web_server:
  local: true
  port: 80
    #   auth:
    #     username: !secret esphome_web_server_username
    #     password: !secret esphome_web_server_password

# Time: https://esphome.io/components/time.html
time:
  - platform: homeassistant
    timezone: "Europe/Paris"
    id: homeassistant_time

# Status Binary Sensor: https://esphome.io/components/binary_sensor/status.html
binary_sensor:
  - platform: status
    name: "Status"

button:
  - platform: restart
    name: "Restart"

# https://esphome.io/components/uart.html
uart:
  id: uart_bus
  rx_pin: GPIO26
  baud_rate: 1200 
  parity: EVEN
  data_bits: 7
  stop_bits: 1

teleinfo:
  update_interval: 5s
  historical_mode: true 

sensor:
  # WiFi
  - platform: wifi_signal
    name: "WiFi Signal"
    unit_of_measurement: dB
    device_class: signal_strength
    accuracy_decimals: 0
    update_interval: 10s

 # Uptime
  - platform: uptime
    name: "Uptime"
    unit_of_measurement: s
    device_class: duration
    accuracy_decimals: 0
    update_interval: 10s

# # Intensité souscrite
  - platform: teleinfo
    tag_name: "ISOUSC"
    name: "Intensité souscrite"
    unit_of_measurement: A
    device_class: current
    state_class: measurement
  # # Index option Base
  - platform: teleinfo
    tag_name: "BASE"
    name: "Index Base"
    unit_of_measurement: kWh
    device_class: energy
    state_class: total_increasing
    accuracy_decimals: 3
    filters:
      - multiply: 0.001
 
  # # Index option Tempo
  - platform: teleinfo
    tag_name: "BBRHCJB"
    name: "Index Tempo Bleu HC"
    unit_of_measurement: kWh
    device_class: energy
    state_class: total_increasing
    accuracy_decimals: 3
    filters:
      - multiply: 0.001
  - platform: teleinfo
    tag_name: "BBRHPJB"
    name: "Index Tempo Bleu HP"
    unit_of_measurement: kWh
    device_class: energy
    state_class: total_increasing
    accuracy_decimals: 3
    filters:
      - multiply: 0.001
  - platform: teleinfo
    tag_name: "BBRHCJW"
    name: "Index Tempo Blanc HC"
    unit_of_measurement: kWh
    device_class: energy
    state_class: total_increasing
    accuracy_decimals: 3
    filters:
     - multiply: 0.001
  - platform: teleinfo
    tag_name: "BBRHPJW"
    name: "Index Tempo Blanc HP"
    unit_of_measurement: kWh
    device_class: energy
    state_class: total_increasing
    accuracy_decimals: 3
    filters:
      - multiply: 0.001
  - platform: teleinfo
    tag_name: "BBRHCJR"
    name: "Index Tempo Rouge HC"
    unit_of_measurement: kWh
    device_class: energy
    state_class: total_increasing
    accuracy_decimals: 3
    filters:
      - multiply: 0.001
  - platform: teleinfo
    tag_name: "BBRHPJR"
    name: "Index Tempo Rouge HP"
    unit_of_measurement: kWh
    device_class: energy
    state_class: total_increasing
    accuracy_decimals: 3
    filters:
      - multiply: 0.001
   # Intensité Instantanée (monophasé)
  - platform: teleinfo
    tag_name: "IINST"
    name: "Intensité Instantanée"
    unit_of_measurement: A
    device_class: current
    state_class: measurement
  # # Avertissement de Dépassement De Puissance Souscrite
  - platform: teleinfo
    tag_name: "ADPS"
    name: "Intensité Instantanée Dépassement"
    unit_of_measurement: A
    device_class: current
    state_class: measurement
  # # Intensité maximale appelée (monophasé)
  - platform: teleinfo
    tag_name: "IMAX"
    name: "Intensité Maximale"
    unit_of_measurement: A
    device_class: current
    state_class: measurement
  # # Puissance apparente
  - platform: teleinfo
    tag_name: "PAPP"
    name: "Puissance Apparente"
    unit_of_measurement: VA
    state_class: measurement
    device_class: apparent_power


  commentaire du logs

vvINFO ESPHome 2026.2.2
INFO Reading configuration /config/esphome/linky-test.yaml...
INFO Starting log output from 192.168.1.15 using esphome API
INFO Successfully resolved linky-test @ 192.168.1.15 in 0.000s
INFO Successfully connected to linky-test @ 192.168.1.15 in 0.552s
WARNING Can't connect to ESPHome API for linky-test @ 192.168.1.15: linky-test @ 192.168.1.15: The device is using plaintext protocol; Try enabling encryption on the device or turning off encryption on the client (ESPHome Logs 2026.2.2) (EncryptionPlaintextAPIError)
INFO Trying to connect to linky-test @ 192.168.1.15 in the background
INFO Successfully connected to linky-test @ 192.168.1.15 in 0.041s
INFO Successfully connected to linky-test @ 192.168.1.15 in 0.062s
INFO Successfully connected to linky-test @ 192.168.1.15 in 0.019s
INFO Successfully connected to linky-test @ 192.168.1.15 in 0.026s

merci d'avance pour votre aide.`Texte préformaté`

De ce que je comprend du message d’erreur, c’est un problème de clé pour le chiffrement de la connexion à l’API HA.
Donc soit tu supprimes cette clé (des 2 côté) car je continue de penser que dans le cadre d’un réseau domestique ça ne sert à rien à part bouffer des ressources, soit tu t’assures que la clé utilisée est la bonne.

Bonjour Forhorse.
merci pour ton aide.
c’est a peu prêt ce que j’avais compris.
j’ai donc supprimé la clé API et OTA et je me retrouve avec le message suivant deja vu dans mes différents assais, et du coup ne se connecte pas en background.
peu être auras tu une idée``.
nota .: lorsque tu dis des 2 cotes ,quels sont*-ils?
merci de détailler tes solutions , je ne suis pas suffisamment familiarisé avec les applis` pour tout comprendre.

INFO ESPHome 2026.2.2
INFO Reading configuration /config/esphome/linky-test.yaml...
INFO Starting log output from 192.168.1.15 using esphome API
INFO Successfully resolved linky-test @ 192.168.1.15 in 0.000s
WARNING Can't connect to ESPHome API for linky-test @ 192.168.1.15: Error connecting to [AddrInfo(family=<AddressFamily.AF_INET: 2>, type=<SocketKind.SOCK_STREAM: 1>, proto=6, sockaddr=IPv4Sockaddr(address='192.168.1.15', port=6053))]: [Errno 113] Connect call failed ('192.168.1.15', 6053) (SocketAPIError)
INFO Trying to connect to linky-test @ 192.168.1.15 in the background.

Bonne jornée et encore merci.
saisissez ou collez du code ici

Il faut supprimer la clé côté module ESPHome et côté HomeAssistant (pour ce dernier point je ne sais pas comment on fait, je n’utilise JAMAIS de clé API, je vois pas l’intérêt)

salut.
merci pour toutes ces explications.
si je ne me trompe pas les deux appli sont liées ; tu supprime d’un coté et c’est supprimé de l’autre.
bien , ça ne marche pas mieux.
je touche le fond mais je continue a creuser ; ce que fiat tout bon shadock :face_with_raised_eyebrow:
a plus.

Je ne sais pas dans quelle mesure HA et ESPHome Builder sont liés, ni si les mises à jours faite dans ESPHome Builder sont forcement repercutés dans HA.
Il est tout à fait possible d’inclure dans HA un peripherique ESPhome sans avoir ESPHome Builder d’installé (firmware ESPhome compilé sur une autre machine par exemple) donc là clé API est forcement quelque part dans HA.

Salut

Et tu reprenais tout à zéro en commençant par initialiser ton esp à l’aide de new device dans esphome builder ?

Au moins tu verrais déjà si il est bien reconnu et si il se connecte.

Salut Tochy
c’est ce que je suis en train de faire.
bonne jée