Wemos Teleinfo et ESP Home
-
Après m'être battu pendant quelque temps avec un D1 mini 8266, le wemos shield et ESPHome, le D1 rebootant de manière aléatoire, voici ma config ESPHome enfin stable.
Spoiler : j'avais récupéré d'une autre config teleinfo la ligne "tx_pin: GPIO1", une fois commentée, la configuration est stable.
Disclaimer : Tous les informations disponibles dans le mode standard du Linky ne sont pas reprises dans la config ci-dessous. La config est pour un Linky monophasé.
esphome: name: "esp82-01" esp8266: board: nodemcuv2 #d1_mini # Enable logging logger: level: DEBUG hardware_uart: UART1 #baud_rate: 0 # Enable Home Assistant API api: ota: wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Esp82-01" password: !secret wifi_fallback_password captive_portal: uart: id: uart_bus rx_pin: GPIO13 #tx_pin: GPIO1 # Was crashing when tx_pin was set baud_rate: 9600 parity: EVEN data_bits: 7 teleinfo: id: myteleinfo update_interval: 15s historical_mode: false 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 tag_name: "IRMS1" name: "Intensite Inst." unit_of_measurement: "A" icon: mdi:current-ac teleinfo_id: myteleinfo - platform: teleinfo tag_name: "URMS1" name: "Tension Inst." unit_of_measurement: "V" icon: mdi:current-ac teleinfo_id: myteleinfo - platform: teleinfo tag_name: "SINSTS" name: "Puissance Inst." device_class: power unit_of_measurement: "VA" icon: mdi:flash teleinfo_id: myteleinfo - platform: teleinfo tag_name: "EASF01" name: "Index heures creuses" unit_of_measurement: "kWh" accuracy_decimals: 3 device_class: energy state_class: "total_increasing" icon: mdi:gauge teleinfo_id: myteleinfo id: heures_creuses filters: - multiply: 0.001 - platform: teleinfo tag_name: "EASF02" name: "Index heures pleines" unit_of_measurement: "kWh" accuracy_decimals: 3 device_class: energy state_class: "total_increasing" icon: mdi:gauge teleinfo_id: myteleinfo id: heures_pleines filters: - multiply: 0.001 text_sensor: - platform: template name: Uptime update_interval: 30s 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() }; } - platform: teleinfo tag_name: "LTARF" name: "Tarif en cours" icon: mdi:clock-time-nine-outline
-
@yannlieb un grand merci pour ce retour.
-
Bonjour,
Pour ma part, les reboot intempestifs, semblaient plutôt du au logger série. C'est la conf suivante qui a corrigé le problème :
logger: baud_rate: 0
(HA 2022.12.7, esphome 2022.11.3 en mode mqtt)
J'ajoute que je suis en mode historique et que tout fonctionne très bien avec une conf dans ce genre :
uart: id: uart_bus rx_pin: GPIO13 # tx_pin: GPIO12 # n'a pas corrigé les reboots baud_rate: 1200 parity: EVEN data_bits: 7 teleinfo: id: linky update_interval: 60s historical_mode: true sensor: - platform: teleinfo tag_name: "HCHC" name: "${name} Heures Creuses" unit_of_measurement: "Wh" icon: mdi:flash teleinfo_id: linky state_class: total_increasing device_class: energy - platform: teleinfo tag_name: "PAPP" name: "${name} Puissance Apparente" unit_of_measurement: "VA" icon: mdi:flash teleinfo_id: linky device_class: power etc... pour les autres tags
Et en bonus, voici un exemple de conf pour gérer la led:
light: - platform: neopixelbus type: GRB variant: WS2812 pin: GPIO14 num_leds: 1 name: "${name} status" effects: - pulse: name: "Fast Pulse" transition_length: 0.5s update_interval: 0.5s - pulse: name: "Slow Pulse" update_interval: 2s
-
@jerome-labidurie merci pour le retour
Attention en ESP8266 il n'y a qu'un seul hardware serial (pour ça que je banni au profit de l'ESP32 beaucoup plus souple et performant)
Donc si t'as un logger série classique sur RX/TX et la téléinfo sur RX (même sur GPIO13 c'est relié a la même uart hard) et bien clairement ça merde. De plus, tu ne peux pas uploader le soft si la téléinfo est branchée car elle fait conflit.