ESP8266 est allergique aux données

Bonjour,

j’ai bricolé un 8266 d1_mini pour lire les données d’un port TIC d’un compteur sagem

esphome:
  name: tic-01
  friendly_name: tic-01

esp8266:
  board: d1_mini

# Enable logging
logger:
  logs:
    component: ERROR
    
# Enable Home Assistant API
api:
  encryption:
    key: "llgqJDufeEhSKP9pnuIUKBFHqubwVrLIw71x6mzSftE="

ota:
  - platform: esphome  
    password: !secret ota_password
  
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Tic-01 Fallback Hotspot"
    password: !secret ap_password

captive_portal:

web_server:
  port: 80
  version: 3

# Sync time with Home Assistant.
time:
  - platform: homeassistant
    id: homeassistant_time
        
binary_sensor:
# statut
  - platform: gpio
    pin: D4 #gpio02
    name: "Heures Pleines"
  - platform: status
    name: "Statut Voyant Tic-01"
  - platform: status
    name: "wLinky Status"

button:
  - platform: restart
    name: "Redémarrage Voyant Tic-01"

light:
  - platform: binary
    name: "Voyant Tic-01"
    icon: "mdi:led-on"
    output: light_output

output:
  - id: light_output
    platform: gpio
    pin: GPIO04 #marqué d2

uart:
  id: uart_bus
  rx_pin: GPIO5 #marqué d1
  baud_rate: 1200
  parity: EVEN
  data_bits: 7
  stop_bits: 1
  # debug:
  #   direction: RX
  #   dummy_receiver: true
  #   after:
  #     delimiter: "\r\n"
  #   sequence:
  #     - lambda: |-
  #         UARTDebug::log_string(direction, bytes);  //Still log the data
          
  #         int sensorID=0;
  #         float sensorTEMP=0; 

  #         std::string str(bytes.begin(), bytes.end());

teleinfo:
  update_interval: 10s
  historical_mode: True

sensor:
  - platform: teleinfo
    tag_name: "HCHC"
    name: "wLinky Index heures creuses"
    unit_of_measurement: "Wh"
    icon: mdi:gauge
    id: heures_creuses
    
  - platform: teleinfo
    tag_name: "HCHP"
    name: "Linky Index heures pleines"
    unit_of_measurement: "Wh"
    icon: mdi:gauge
    id: heures_pleines
    
  - platform: teleinfo
    tag_name: "PAPP"
    name: "Linky Puissance Apparente"
    unit_of_measurement: "VA"
    icon: mdi:flash
 
text_sensor:  
  - platform: teleinfo
    tag_name: "PTEC"
    name: "Linky Tarif en cours"
    icon: mdi:clock-time-nine-outline

bon c’est pas colossal come code, mais l’esp reboote très régulièrement…
genre:


c’est pas viable.

GPIO4 → led rouge + resistance vestige d’un ancien montage
GPIO5 → module PTInfo V1.5 (https://www.tindie.com/products/Hallard/pitinfo/) de @hallard
GPIO02 → contact sec heures/pleines / Heures creuses du compteur, l’autre borne étant le gnd de l’esp.


image du compteur

si je débranche le gpio5, l’esp ne reboote plus et tient plusieurs jours d’affilée.
si je demande toutes les infos que peut me donner le mode historique et avec un update_interval à 5s, le module ne réussit meme pas à booter, il plante aussitôt.
je penche pour un problème de buffer ou quelque chose dans le genre…

à votre avis ?

Bonjour @bentou
Pourquoi utiliser ces anciens modèles plutôt que des ESP32 ?
Ça irait peut être mieux :grin:
Bob

1 « J'aime »

ça marche très bien sur un ESP8266 (c’est ce que j’ai chez moi depuis des années)

JUSTE il faut se souvenir que l’ESP8266 n’a qu’un seul UART et que celui est utilisé par defaut pour le debug. Si on veut l’utiliser pour autre chose (ici la reception des trames TIC) il faut DESACTIVER la console série.

logger:
  level: DEBUG
  baud_rate: 0

Et RX sur le GPIO5 c’est pas bon pour utiliser l’UART materiel, il faut utiliser le GPIO13

1 « J'aime »

Parceque j’ai pas l’impression de lui demander la lune et que j’en ai une grosse poignée tout neufs dans un tiroir. :wink:

1 « J'aime »

testé et approuvé, ca marche bien mieux comme cà, avant je ne pouvais même pas envoyer une config via OTA dans avoir à débrancher le fil Data…

Hello,

2 fois plus petit et moins cher !

1 « J'aime »

Bon, c’est définitivement validé.

au début j’avais pas pigé pourquoi le champ ADCO n’était pas le meme que sur mon zLinky…

simplement parce que ce compteur a sa propre vie et c’est lui qui donne les infos, pas le compteur linky.
ce compteur a été mis par l’ancien proprio entre le réseau de la maison et la pompe à chaleur.
il ne compte donc pas tout et ne remonte pas les mêmes infos que le compteur principal.

edit :
après une quinzaines d’heures, l’ESP est toujours vivant: :+1:

Sur un tout autre projet, où j’utilisais le module tuya dans esphome pour communiquer avec le mcu du même nom, ça laguait, une commande sur 3 passait et le module devenait injoignable. En mettant le logger avec baud_rate=0 , ça m’avait tout rétabli !