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>
___
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).
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() };
}
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
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.