Téléinfo via wifi

Edit : plus besoin d’ESPHome Dev, la téléinfo a été intégrée dans la branche de prod.

Pour faire suite à un de mes messages précédent, voici comment j’ai fait avec un D1 mini et le module téléinfo de Charles Hallard.
Je vais essayé de me rappeler de tout ce que j’ai dû faire, j’espère que je ne vais rien oublier.

1. Installation d’Esphome sur HA
Aller dans supervisor/add-on store et installer ESPHome.

2. Création du nouveau node
Voici le yaml de ma config :

substitutions:
  name: teleinfo

esphome:
  name: ${name}
  platform: ESP8266
  board: d1_mini

wifi:
  ssid: "Jcpas"
  password: "********"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Teleinfo Fallback Hotspot"
    password: "********"

web_server:
  port: 80

captive_portal:

# Enable logging
logger:     
  baud_rate: 0   # disable logging via UART, help to avoid numerous crash with ESP_LOGD
  level: INFO   # INFO for less log, put DEBUG to view all the linky's "étiquettes" received  in the logs
  esp8266_store_log_strings_in_flash: False     # recommanded for ESP8266 https://esphome.io/components/sensor/custom.html

# Enable Home Assistant API
api:
  password: "********"

ota:
  password: "********"

# ajout du composant uart pour la communication série avec la sortie TIC du compteur
# GPIO3 = Pin Rx sur Wemos D1
uart:
  id: uart_bus
#  tx_pin: GPIO15
  rx_pin: GPIO3
  baud_rate: 1200
  parity: EVEN
  data_bits: 7

# déclaration des sensors numérique
# les sensors doivent être déclarés dans l'ordre de la fonction lambda
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
    tags:
     - tag_name: "ADCO"
       sensor:
        name: "ADCO"
        unit_of_measurement: ""
        icon: mdi:eye
     - tag_name: "BASE"
       sensor:
        name: "Index"
        unit_of_measurement: "kWh"
        icon: mdi:home-analytics
        filters:
          - multiply: 0.001
     - tag_name: "ISOUSC"
       sensor:
        name: "Intensité souscrite"
        unit_of_measurement: "A"
        icon: mdi:information
     - tag_name: "IMAX"
       sensor:
        name: "Intensité maximale"
        unit_of_measurement: "A"
        icon: mdi:information
     - tag_name: "IINST"
       sensor:
        name: "Intensité"
        unit_of_measurement: "A"
        icon: mdi:power-plug
     - tag_name: "PAPP"
       sensor:
        name: "Puissance"
        unit_of_measurement: "VA"
        icon: mdi:flash
    update_interval: 2s
    historical_mode: true

binary_sensor:
  - platform: status
    name: "Status"

switch:
  - platform: restart
    name: "${name} reboot"

text_sensor:
  - platform: template
    name: ${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() };
      }

Et on sauvegarde.

3. Téléchargement du binary
Compiler le node à l’aide des 3 petits points.
Une fois la compilation terminée, cliquer sur download binary.

4. Premièr upload sur mon Esp
Brancher l’Esp sur le PC à l’aide d’un cable mini USB.
Pour ma part je suis sous Windows 10, j’ai installé esphome-flasher puis envoyé le binary sur l’Esp.

5. Montage du D1 mini sur le Linky
J’ai donc utilisé mon D1 mini et le module téléinfo.
Voici le montage :



6. Récupération de l’appareil sur HA
Une fois l’Esp branché, HA devrait trouver automatiquement l’appareil.
Il suffit ensuite d’ajouter les infos récupérées sur le Dashboard.