ESP passe en OFFLINE après installation com TIC sur LINKY

Bonjour à tous,

J’ai un ESP wroom 32 sous ESPHOME, lorsque je copie et installe le code de l’article de @Argonaute : « Cartes « Energy » et teleinformation (TIC) avec ESPHome », voici ce qui s’affiche :

Linking .pioenvs/esphome-web-7abc5c/firmware.elf
RAM:   [==        ]  16.2% (used 52944 bytes from 327680 bytes)
Flash: [========= ]  87.3% (used 1602217 bytes from 1835008 bytes)
Building .pioenvs/esphome-web-7abc5c/firmware.bin
Creating esp32 image...
Successfully created esp32 image.
esp32_create_combined_bin([".pioenvs/esphome-web-7abc5c/firmware.bin"], [".pioenvs/esphome-web-7abc5c/firmware.elf"])
Wrote 0x198930 bytes to file /data/build/esphome-web-7abc5c/.pioenvs/esphome-web-7abc5c/firmware-factory.bin, ready to flash to offset 0x0
======================== [SUCCESS] Took 160.00 seconds ========================
INFO Successfully compiled program.
INFO Connecting to 192.168.1.16
INFO Uploading /data/build/esphome-web-7abc5c/.pioenvs/esphome-web-7abc5c/firmware.bin (1607984 bytes)
Uploading: [============================================================] 100% Done...

INFO Upload took 19.98 seconds, waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from 192.168.1.16 using esphome API
WARNING Can't connect to ESPHome API for esphome-web-7abc5c @ 192.168.1.16: Timeout while connecting to [AddrInfo(family=<AddressFamily.AF_INET: 2>, type=<SocketKind.SOCK_STREAM: 1>, proto=6, sockaddr=IPv4Sockaddr(address='192.168.1.16', port=6053))] (TimeoutAPIError)
INFO Trying to connect to esphome-web-7abc5c @ 192.168.1.16 in the background

Je perd la communication avec mon ESP.
Voici ce qu’il m’affiche lorsque je lui fait un LOGS.

INFO ESPHome 2024.3.2
INFO Reading configuration /config/esphome/esphome-web-7abc5c.yaml...
INFO Starting log output from esphome-web-7abc5c.local using esphome API
WARNING Can't connect to ESPHome API for esphome-web-7abc5c.local: Error resolving IP address: [Errno -5] No address associated with hostname (APIConnectionError)
INFO Trying to connect to esphome-web-7abc5c.local in the background

Il ne me reste plus qu’a supprimer l’ESP de HA et de lui faire une programmation vierge.
S’avez-vous d’où cela peut venir ?

Merci pour votre aide.

Fred

## Ma configuration
___
## System Information

version | core-2024.4.2
-- | --
installation_type | Home Assistant OS
dev | false
hassio | true
docker | true
user | root
virtualenv | false
python_version | 3.12.2
os_name | Linux
os_version | 6.6.20-haos
arch | aarch64
timezone | Europe/Paris
config_dir | /config

<details><summary>Home Assistant Community Store</summary>

GitHub API | ok
-- | --
GitHub Content | ok
GitHub Web | ok
GitHub API Calls Remaining | 5000
Installed Version | 1.34.0
Stage | running
Available Repositories | 1466
Downloaded Repositories | 4

</details>

<details><summary>Home Assistant Cloud</summary>

logged_in | false
-- | --
can_reach_cert_server | ok
can_reach_cloud_auth | ok
can_reach_cloud | ok

</details>

<details><summary>Home Assistant Supervisor</summary>

host_os | Home Assistant OS 12.1
-- | --
update_channel | stable
supervisor_version | supervisor-2024.04.0
agent_version | 1.6.0
docker_version | 24.0.7
disk_total | 98.7 GB
disk_used | 19.7 GB
healthy | true
supported | true
board | generic-aarch64
supervisor_api | ok
version_api | ok
installed_addons | ESPHome (2024.3.2), File editor (5.8.0), Mosquitto broker (6.4.0), Let's Encrypt (5.0.15), WireGuard (0.10.2), Advanced SSH & Web Terminal (17.2.0)

</details>

<details><summary>Dashboards</summary>

dashboards | 4
-- | --
resources | 2
views | 4
mode | storage

</details>

<details><summary>Recorder</summary>

oldest_recorder_run | 5 avril 2024 à 15:34
-- | --
current_recorder_run | 8 avril 2024 à 19:18
estimated_db_size | 4164.93 MiB
database_engine | sqlite
database_version | 3.44.2

</details>
___


Salut,

Dans tous les cas, je te conseille de mettre l’ESP en IP fixe, pour le retrouver/tester facilement avec un ping (IP fixe à définir sur ton routeur ou ta box internet, en spécifiant l’adresse MAC).

Enfin, Ta config et celle de l’article peuvent être différentes. Bien vérifier que la configuration des paramètres wifi est bonne. Vérifier aussi que le nom utilisé dans le code est bon et que le type d’ESP correspond bien au tien.

Arrive tu à faire marcher l’ESP avec un code minimum (sans le code pour la teleinfo) ?
Quand cela marche, pour bien garder TA config, tu peux recopier le code de teleinfo, sans le code d’entête générique (sans premiers paragraphes : esphome, esp32, ota, wifi. api).

1 « J'aime »

Bonjour Argonaute,
Merci pour ta réponse.
J’essaie dans le week-end de suivre tes conseils.
Bonne journée ensoleillée.

Bonjour,

Je viens de revirginiser mon ESP et l’ai reparamétré grâce à : Web - ESPHome
Mis une IP fixe, comme tu me l’a indiqué, l’ensemble fonctionne bien.
J’y ai installer un programme avec un ADS1115 et un clamp qui fonctionne.
Lorsque je veux installer le programme que tu as créé.
L’ESP passe en OFFLINE.
Et ça sur deux ESP différent.
Il doit y avoir une ligne qui ne lui convient pas.

Voici le code :

substitutions:
  name: esphome-web-7abc5c
  friendly_name: ESP32_LINKY

esphome:
  name: ${name}
  friendly_name: ${friendly_name}
  name_add_mac_suffix: false
  project:
    name: esphome.web
    version: '1.0'

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:

# Allow Over-The-Air updates
ota:

# Allow provisioning Wi-Fi via serial
improv_serial:

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: 192.168.1.16
    gateway: 192.168.1.254
    subnet: 255.255.255.0
  # Set up a wifi access point
  ap: {}

# In combination with the `ap` this allows the user
# to provision wifi credentials to the device via WiFi AP.
captive_portal:

dashboard_import:
  package_import_url: github://esphome/example-configs/esphome-web/esp32.yaml@main
  import_full_config: true

# Sets up Bluetooth LE (Only on ESP32) to allow the user
# to provision wifi credentials to the device.
esp32_improv:
  authorizer: none

# To have a "next url" for improv serial
web_server:

uart:
  id: uart_bus
  rx_pin: GPIO3
#  rx_pin: GPIO16 si UART2 utilisée  
#  tx_pin: GPIO1
  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() };
      }

Voyez vous quelques chose qui ne va pas ?

Je vous remercie, bon dimanche.

Fred

salut
si tu veux utiliser des ADS et des ct clamps je t’invite a regarder le sujet « moniteur de courant »

et surtout d’utiliser l’ADS en mode différentiel
j’ai justement fais un montage +/- identique
ça fonctionne pil poil depuis…

je pense que tu as des conflits d’UART

essaye de supprimer

Allow provisioning Wi-Fi via serial

improv_serial:

il est fortement recommander d’utiliser le deuxieme UART de l’ESP 32
tx_pin: 16
rx_pin: 17

3 « J'aime »

Bonjour jrvrcd,
Je me suis servie de ton code pour faire fonctionner le clamp et le ads1115 et cela fonctionne très bien, merci à toi.
C’était pour tester mon esp qui ne fonctionne pas avec le programme « Linky ».
J’essaie ce soir de changer l’UART.
Je vous tiens au courant.
Bonne journée

Merci à vous :muscle:, tout fonctionne parfaitement.
Il ne me reste plus qu’à injecter le programme Linky et ads115 / clamp sur le même ESP.
Bonne soirée.

Effectivement, je le signale dans l’article : certains ESP anciens doivent utiliser l’UART 2 car lUART0 est utilisé pour les logs et il y a conflit. Je vais mettre à jour l’article pour toujours utiliser le pin 16 / uart2.
Le reste du code a fonctionné ?

Impec, j’ai tout transféré sur le même ESP.
Uniquement Tarif actuel qui affiche TH… ce n’est pas très grave.
J’utilise le montage de F1atb pour la lecture du signal du linky :

Bien sûr, il faut utiliser l’entrée 16 au lieu de 26.
Mon ESP et l’octocoupleur sont à 40m de mon compteur, j’utilise une résistance R3 de 1000 ohms.

Bonne soirée

1 « J'aime »