Mon module de téléinformation (TIC) wifi vers MQTT pour compteur linky et autres

Lorsque je branche mon module sur le 5v via une prise USB, j’ai bien Intensite: nan A > HP: nan > HC: nan > Conso: nana VA qui tourne en boucle donc tout va bien. :ok_hand:

Ensuite depuis mon smartphone, je détecte bien un hotspot mais qui porte le nom de Teleinfokit_AP mais pas TeleInfoKit comme sur ta doc (voir Quel est le mot de passe du Hotspot wifi ? de la FAQ TeleInfoKit – 342apps)

Le nom du réseau diffusé est « TeleInfoKit ». Le mot de passe est « givememydata »

J’ai donc essayé avec le mot de passe givememydata mais j’ai un retour de la connexion au hotspot qui m’indique que le mot de passe est erroné. Est-ce que le hotspot sous ESPHome est configuré différemment ?

edit :
Après recherches sur ton github, j’ai trouvé dans le fichier teleinfokit.yml (fichier utilisé pour le flashage sous ESPHome) le nom de l’AP WiFi :

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_key

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Teleinfokit_AP"
    password: !secret ap_key

Pourrais-tu me donner la valeur du secret ap_key que tu as utilisé s’il te plait, c’est ce qu’il me manque pour me connecter au hotspot :grin:.

Ah aussi, à l’arrière du boitier, je n’ai qu’un seul QRCode, celui avec l’adresse MAC qui me renvoie ce JSON :

{
  "id":"xx:xx:xx:xx:xx:xx",
  "BoardType":"teleinfokit",
  "HwVersion":"2.2",
  "SerialNumber":"#Axxxxxx",
  "Connectivity": {"MacAddress":"xx:xx:xx:xx:xx:xx"},
  "TagUrl":"https://342app.net/t/1.0.0.0"
}

Salut Sylvain_G,

Sans vouloir m’avancer, et n’utilisant pas l’add-on esphome mais une install en dur dans un venv python.

Je pense que tu dois créer un fichier secrets.yaml au niveau de l’add-on et créer la clé ap_key qui va bien.

https://forum.hacf.fr/t/installer-esphome-sur-home-assistant-et-creer-votre-premiere-configuration/223

En gros sauf contradiction de NicoP4, je pense que tu es libre de mettre le password que tu veux.

Et désolé d’avance si je me trompe :wink:

Si je ne me trompes pas, le fichier secret.yaml est utilisé lors du flashage et à la mise à jour du firmware sous ESPHome.
Le problème que j’ai, c’est que le module que je viens de recevoir a été flashé par @NicoP4 et que je ne connais pas le mot de passe qu’il a utilisé pour le hotspot WiFi. Je ne peux donc pas m’y connecter pour modifier la configuration pour qu’il se connecte à mon réseau et envoyer ces données sur mon broker MQTT.

C’est pas ça ?

Non normalement tu fais du coup simplement la clé du meme nom en mettant le pass que tu veux dans le fichier secret d’esphome.
Le Esphome flashé a en stock comme mot de passe ap_key que tu dois définir dans ton fichier secret.

J’ai testé mais c’est la configuration du firmware flashé via PlatformIO alors que, forcément il a fallut que je demande une curiosité :grin:, j’ai une version flashé via ESPHome.
Le nom de l’AP par exemple, n’est pas le même, TeleInfoKit pour platformio et Teleinfokit_AP pour ESPHome. Donc je suppose que le mot de passe aussi est différent :thinking: :grin:.

Perso je vais flasher pour la version Esphome demain.

Les problèmes au reboot sont de retour. A chaque fois que je reboot je passe en inconnu et je ne veux plus y passer des heures pour que ça régliez au prochain reboot de HA. La ca fait depuis 11h ce matin et ça ne veut pas repartir malgré reboot du module, reboot de HA, reboot mqtt. :confused:

As tu eu le temps de regarder ?

Car c’est certain que ce serait bien d’avoir ce tag… :innocent:

Hello,

Pour ce qui est du firmware ESPHome, je pense avoir tout ce qu’il faut maintenant pour que les sensors puissent être ajoutés au Energy dashboard de HA.

  • Remontée directement en KwH (à voir quelle précision resterait appropriée niveaux décimal)
  • state classe measurement et total_increasing
  • Class energy

@NicoP4 si tu as un moment pour jeter un oeil aux PRs ?
Et si d’autres utilisateurs du firmware ESPHome pouvaient donner un avis sur tout ça SVP :slight_smile:

Est-ce que ça ne pourrait pas être intéressant de remonter tout ça de la même façon sur les firmwares natif et ESPHome ?
Avec auto-discovery comme ça au final plus rien à configurer côté HA, tout remonterait tout seul.
Je n’ai rien touché d’autre que ESPHome, ne pouvant pas tester :wink:
Et peut-être que finalement les autres n’y verraient pas le même intérêt :slight_smile: mais je me dit que remonter directement les valeurs en kwh est plus approprié qu’en Wh ainsi qu’avec les bonnes classes de sensor.

Par contre, j’ai une curiosité : je comparre régulièrement ce que MyEnedis remonte comme valeur et j’ai parfois une petite différence dans le prix calculé quand les valeurs remontées par le Teleinfokit sont les mêmes :slight_smile:

Hello tout le monde!

J’ai du retard à rattraper désolé je n’ai pas eu beaucoup de temps libre ces derniers jours :pensive:
Je vais essayer de faire le tour de tout ça !

Alors premier point sur le mot de passe wifi avec le firmware ESPHome : par défaut c’est pas de wifi000

Gros manque d’info de ma part sur le firmware ESPHome, j’ai axé toute la doc sur le firmware custom que j’ai fait, et ça manque cruellement pour l’ESPHome. Je le proposais comme une alternative vraiment distincte du mien du coup c’est moins poussé.

Et j’aurais du mettre au moins le même mot de passe par défaut pour le Hotspot wifi :man_facepalming:
Je vais le corriger sur le GitHub et sur les modules que je flasherai en ESPHome, ce sera plus simple

Bref le firmware ESPHome est détaillé sur cette page du GitHub : teleinfokit-board/esphome at main · 342apps/teleinfokit-board · GitHub

@Strangex tu as raison, le firmware ESPHome est personnalisable pour pouvoir y mettre ce que tu veux en mot de passe Hotspot, et @Sylvain_G tu as raison aussi, il faut déjà qu’il soit connecté au réseau pour faire la maj !

Pour résumer

  • firmware TeleInfoKit: Hotspot TeleInfoKit, mdp givememydata
  • firmware ESPHome: Hotspot Teleinfokit_AP, mdp pas de wifi000 (pour les derniers modules que j’ai flashés en ESPHome depuis mi-juillet jusqu’à aujourd’hui)

Et j’homogénéise le tout pour les prochains et je mets l’accent sur les différences entre firmwares ESPHome et TeleInfoKit dans la doc !

@Strangex je te contacte d’ici la fin de semaine pour tes soucis de reboot

@Nardol J’ai bien tes PRs dans ma liste de taches, faut que j’arrive à trouver du temps pour les intégrer, c’est pas simple en ce moment désolé. Et un grand merci pour tes contributions :slight_smile:

@Clemalex yes je dois aussi creuser le sujet du flag ‹ retained ›, c’est vrai que ce serait bien pour les redémarrages de HA ! c’est dans le backlog :slight_smile:

1 « J'aime »

J’ai pu me connecter au hotspot avec Teleinfokit_AP mdp pas de wifi000 mais comment accéder à la page de configuration du module ?
J’ai essayé depuis mon chrome de mon smartphone connecté au hotspot avec :

  • 192.168.4.2
  • http://192.168.4.2
  • https://192.168.4.2

Mais j’ai systématiquement « Site inaccessible »

Edit :
J’ai trouvé : en fait, l’IP a entrer dans la barre d’adresse est 192.168.4.1 et pas 4.2 :unamused:

Edit 2 :
Bon, dans l’interface qui s’est affichée sur mon smartphone (avec une liste des wifi disponible, un champ SSID, un champ passe, un bouton SAVE, une zone Updates OTA , … de mémoire, j’ai oublié de faire une capture), j’ai cliqué sur le SSID de mon WiFi dans la liste, ce qui a rempli le champ SSID, puis j’ai renseigné mon pass et j’ai cliqué sur SAVE.
Ensuite le hotspot a disparu et j’ai vu apparaitre un nouveau device avec l’IP 192.168.0.6.
Et je ne peux pas me connecter dessus via mon navigateur.

Comment faire pour qu’il soit visible sous ESPHome, pour par exemple le reflasher avec mes secrets ?

Bonjour
Je me permet de remercier Nicolas pour le boîtier
J’ai eut le même soucis pour le mot de passe avec la version esp home
J’ai donc ouvert le boîtier démonté l’esp puis flasher celui- avec ma version modifiée et un adaptateur . Celle du github et le rajout d’une sonde de température en I2C plus IP fixe .
Pour la page web j’ai rajouté
Web serveur

teleinfokit.yaml
substitutions:
  device_ip: 192.168.0.XX
esphome:
  name: teleinfokit
  platform: ESP8266
  board: esp01_1m

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_key
  manual_ip:
    static_ip:  ${device_ip}
    gateway: 192.168.0.XX
    subnet: 255.255.255.0
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Teleinfokit_AP"
    password: !secret ap_key

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     #  :doc:`recommanded for ESP8266 </components/sensor/custom>`

# Enable Home Assistant API
api:
  password: !secret api_pass

ota:
  password: !secret ota_pass
  id: my_ota
################web serveur###################
web_server:
  port: 80
##########################################
uart:
  id: uart_bus
  rx_pin: GPIO3
  baud_rate: 1200
  parity: EVEN
  data_bits: 7

teleinfo:
  id: myteleinfo
  update_interval: 30s
  historical_mode: true

sensor:
  - platform: teleinfo
    tag_name: "HCHC"
    id: hchc
    name: "Index Heures Creuses"
    unit_of_measurement: "Wh"
    icon: mdi:flash
    device_class: energy
    state_class: measurement
    teleinfo_id: myteleinfo
  - platform: teleinfo
    tag_name: "HCHP"
    id: hchp
    name: "Index Heures Pleines"
    unit_of_measurement: "Wh"
    icon: mdi:flash
    device_class: energy
    state_class: measurement
    teleinfo_id: myteleinfo
  - platform: teleinfo
    tag_name: "PAPP"
    id: papp
    name: "Puissance Actuelle"
    unit_of_measurement: "VA"
    icon: mdi:flash
    teleinfo_id: myteleinfo
  - platform: teleinfo
    tag_name: "IINST"
    id: iinst
    name: "Intensité Actuelle"
    unit_of_measurement: "A"
    icon: mdi:flash
    teleinfo_id: myteleinfo
# section capteur temperature###################################

#  - platform: bme280
#    temperature:
#      name: "teleinfokit_temperature"
#      id: teleinfokit_temperature
#      oversampling: 16x
#    pressure:
#      name: "teleinfokit_pressure"
#      id: teleinfokit_pressure
#    humidity:
#      name: "teleinfokit_humidity"
#      id: teleinfokit_humidity
#    address: 0x76

#section mouvement############################################
#  - platform: hmc5883l
#    address: 0x68
#    field_strength_x:
#      name: "HMC5883L Field Strength X"
#    field_strength_y:
#      name: "HMC5883L Field Strength Y"
#    field_strength_z:
#      name: "HMC5883L Field Strength Z"
#    heading:
#      name: "HMC5883L Heading"
#    oversampling: 1x
#    range: 130uT
#    update_interval: 60s
##################################################################
i2c:
  sda: GPIO0
  scl: GPIO2
  scan: True
  id: bus_a
font:
  - file: "arial.ttf"
    id: arial_font
    size: 16

display:
  - platform: ssd1306_i2c
    model: "SSD1306 128x32"
    id: oled
    rotation: 180°
    address: 0x3C
    pages:
      - id: page1
        lambda: |-
          it.printf(0, 0, id(arial_font), "Conso: %.0f VA", id(papp).state);
      - id: page2
        lambda: |-
          it.printf(0, 0, id(arial_font), "Intensite: %.0f A", id(iinst).state);
      - id: page3
        lambda: |-
          it.printf(0, 0, id(arial_font), "HP: %.0f", id(hchp).state);
      - id: page4
        lambda: |-
          it.printf(0, 0, id(arial_font), "HC: %.0f", id(hchc).state);
# affichage sonde bme##############################
#      - id: page5
#        lambda: |-
#          it.printf(0, 0, id(arial_font), "Temp: %.1f", id(teleinfokit_temperature).state);
#      - id: page6
#        lambda: |-
#          it.printf(0, 0, id(arial_font), "Pression: %.0f", id(teleinfokit_pressure).state);
#      - id: page7
#        lambda: |-
#          it.printf(0, 0, id(arial_font), "humidite: %.0f", id(teleinfokit_humidity).state);
######################################################
interval:
  - interval: 5s
    then:
      - display.page.show_next: oled
      - component.update: oled

binary_sensor:
  - platform: gpio
    internal: true
    pin:
      number: GPIO1
      mode: INPUT_PULLUP
      inverted: True
    name: teleinfokit_switch
    on_click:
      min_length: 50ms
      max_length: 350ms
      then:
        - lambda: if (id(oled).is_on()) id(oled).turn_off(); else id(oled).turn_on();
secret.yaml

wifi_ssid: « ssidwifi »
wifi_key: « mdpwifi »
ap_key: « mdpapwifi »
api_pass: «  »
ota_pass: «  »

J’ai remonté le boîtier
Et voilà fonctionnelle
Stephane

Ah ah, ça m’intéresse :flushed:
Peux-tu me dire que type d’adaptateur as-tu utilisé ?

Qu’est-ce que tu as modifié sur ta version, juste les secrets ou autre chose ?

bonjour oui bien sure

le ftdi en 3.3v et inversion rx/tx

et le montage pour flasher


extrait de ce site: Getting Started with the ESP8266. One of the drivers behind the explosive… | by Alasdair Allan | Medium

je crée un fichier secret.yaml et un fichier teleinfokit.yaml dans l’addon esphome.

une fois vérifié compilé et téléchargé je l’ai transféré sur l’esp avec le logiciel:

et voila
stephane

Hello @Sylvain_G

Pour que je comprenne bien, lorsque tu t’es conencté au wifi, ton smartphone ne t’a pas redirigé automatiquement vers la page de configuration ?
Normalement cela devrait être le cas, après la c’est ESPHome qui gère le tout donc je maitrise moins mais lorsque je testais chez moi ça s’affichait bien.
Des retours d’autres utilisateur d’ESPHome (pas forcément de mon module d’ailleurs) sur ce point ?

Ensuite une fois qu’il est connecté au Wifi il n’y a rien de plus à faire, il devrait être vu grace à ton intégration ESPHome dans Home Assistant et tu auras accès aux données de consommation.

En revanche c’est normal qu’il ne te propose rien si tu vas directement sur l’IP du module : comme expliqué le firmware ESPHome est plus « basique » et n’offre pas de dashboard web comme mon firmware dédié.

Pour le reflasher, maintenant que tu es bien sur ton wifi, pas besoin d’adaptateur USB. Tu peux utiliser la CLI de ESPHome, ou bien l’addon dans Home Assistant : https://forum.hacf.fr/t/installer-esphome-sur-home-assistant-et-creer-votre-premiere-configuration/223

Oui, c’est bien ça.

Je ne vois pas comment faire pour le mettre à jour via OTA sous ESPHome puisque je n’ai pas de device « teleinfokit » dans la liste des devices ESPHome. Voici ce que j’ai sous ESPHome :


Bon ils sont tous les deux offline mais c’est normal, ils sont débranchés… :unamused:

Pour essayer de flasher mon module via ESPHome en WiFi, j’ai recréé un device teleinfokit (en cliquant sur le + en bas à droite de la fenêtre. Une fois le nom de la configuration définit à teleinfokit et le WiFi et password WiFi défini, j’ai passé la connexion. J’ai défini une une plateforme ESP8266 puis j’ai édité le code en y mettant :

teleinfokit.yaml
# ESPHome configuration file for teleinfokit module https://342apps.net/module-teleinfokit/

esphome:
  name: teleinfokit
  platform: ESP8266
  board: esp01_1m

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_pass

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Teleinfokit_AP"
    password: !secret ap_pass

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     #  :doc:`recommanded for ESP8266 </components/sensor/custom>`

# Enable Home Assistant API
api:
  password: !secret api_pass

ota:
  password: !secret ota_pass
  id: my_ota


uart:
  id: uart_bus
  rx_pin: GPIO3
  baud_rate: 1200
  parity: EVEN
  data_bits: 7

teleinfo:
  id: myteleinfo
  update_interval: 30s
  historical_mode: true

sensor:
  - platform: teleinfo
    tag_name: "HCHC"
    id: hchc
    name: "Index Heures Creuses"
    unit_of_measurement: "Wh"
    icon: mdi:flash
    device_class: energy
    state_class: measurement
    teleinfo_id: myteleinfo
  - platform: teleinfo
    tag_name: "HCHP"
    id: hchp
    name: "Index Heures Pleines"
    unit_of_measurement: "Wh"
    icon: mdi:flash
    device_class: energy
    state_class: measurement
    teleinfo_id: myteleinfo
  - platform: teleinfo
    tag_name: "PAPP"
    id: papp
    name: "Puissance Actuelle"
    unit_of_measurement: "VA"
    icon: mdi:flash
    teleinfo_id: myteleinfo
  - platform: teleinfo
    tag_name: "IINST"
    id: iinst
    name: "Intensité Actuelle"
    unit_of_measurement: "A"
    icon: mdi:flash
    teleinfo_id: myteleinfo

i2c:
  sda: GPIO0
  scl: GPIO2

font:
  - file: "arial.ttf"
    id: arial_font
    size: 16

display:
  - platform: ssd1306_i2c
    model: "SSD1306 128x32"
    id: oled
    rotation: 180°
    address: 0x3C
    pages:
      - id: page1
        lambda: |-
          it.printf(0, 0, id(arial_font), "Conso: %.0f VA", id(papp).state);
      - id: page2
        lambda: |-
          it.printf(0, 0, id(arial_font), "Intensite: %.0f A", id(iinst).state);
      - id: page3
        lambda: |-
          it.printf(0, 0, id(arial_font), "HP: %.0f", id(hchp).state);
      - id: page4
        lambda: |-
          it.printf(0, 0, id(arial_font), "HC: %.0f", id(hchc).state);
interval:
  - interval: 5s
    then:
      - display.page.show_next: oled
      - component.update: oled

binary_sensor:
  - platform: gpio
    pin:
      number: GPIO1
      mode: INPUT_PULLUP
      inverted: True
    name: teleinfokit_switch
    on_click:
      min_length: 50ms
      max_length: 350ms
      then:
        - lambda: if (id(oled).is_on()) id(oled).turn_off(); else id(oled).turn_on();

C’est un copier coller du code du github de NicoP4 en modifiant les xxx_key en xxx_pass car ce sont déjà des secrets qui sont définis dans mon fichier secrets.
Un clic sur VALIDATE ne me donne pas d’erreur.
Un clic sur INSTALL puis sur Manual Download pour pouvoir récupérer les fichiers et les utiliser via ESPHome Flasher me donne :

Résultat du manual download
INFO Reading configuration /config/esphome/teleinfokit.yaml...
INFO Generating C++ source...
INFO Compiling app...
INFO Running:  platformio run -d /config/esphome/teleinfokit
Processing teleinfokit (board: esp01_1m; framework: arduino; platform: platformio/espressif8266@2.6.2)
--------------------------------------------------------------------------------
HARDWARE: ESP8266 80MHz, 80KB RAM, 1MB Flash
PACKAGES: 
 - framework-arduinoespressif8266 3.20704.0 (2.7.4) 
 - tool-esptool 1.413.0 (4.13) 
 - tool-esptoolpy 1.20800.0 (2.8.0) 
 - toolchain-xtensa 2.40802.200502 (4.8.2)
Library Manager: Installing Update
Library Manager: Already installed, built-in library
Dependency Graph
|-- <ESPAsyncTCP-esphome> 1.2.3
|   |-- <ESP8266WiFi> 1.0
|-- <ESPAsyncWebServer-esphome> 1.3.0
|   |-- <ESPAsyncTCP-esphome> 1.2.3
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <Hash> 1.0
|   |-- <ESP8266WiFi> 1.0
|-- <ESP8266WiFi> 1.0
|-- <ESP8266mDNS> 1.2
|   |-- <ESP8266WiFi> 1.0
|-- <Wire> 1.0
|-- <noise-c> 0.1.1
|-- <DNSServer> 1.1.1
|   |-- <ESP8266WiFi> 1.0
Compiling /data/teleinfokit/.pioenvs/teleinfokit/src/esphome/components/api/api_connection.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
Compiling /data/teleinfokit/.pioenvs/teleinfokit/src/esphome/components/api/api_frame_helper.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
Compiling /data/teleinfokit/.pioenvs/teleinfokit/src/esphome/components/api/api_pb2.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
*** [/data/teleinfokit/.pioenvs/teleinfokit/src/esphome/components/api/api_connection.cpp.o] Error 127
Compiling /data/teleinfokit/.pioenvs/teleinfokit/src/esphome/components/api/api_pb2_service.cpp.o
*** [/data/teleinfokit/.pioenvs/teleinfokit/src/esphome/components/api/api_frame_helper.cpp.o] Error 127
*** [/data/teleinfokit/.pioenvs/teleinfokit/src/esphome/components/api/api_pb2.cpp.o] Error 127
sh: 1: xtensa-lx106-elf-g++: not found
*** [/data/teleinfokit/.pioenvs/teleinfokit/src/esphome/components/api/api_pb2_service.cpp.o] Error 127
========================== [FAILED] Took 3.64 seconds ==========================

Pour les pro d’ESPHome, vous avez une idée de ce qui manque ?

P.S. sur le tuto d’ESPHome https://forum.hacf.fr/t/installer-esphome-sur-home-assistant-et-creer-votre-premiere-configuration/223, lorsqu’on clique sur les 3 petits points on peut voir Compile alors sur mon ESPHome je ne vois pas cette entrée :
image
C’est normal, c’est suite à une montée de version d’ESPHome ou c’est mon installation qui est pourrie ?

@NicoP4, pour mettre à jour mon module avec mes secrets je vais avoir besoin du pass OTA, peux tu me dire ce que tu as mis lors du flashage s’il te plaît

@Sylvain_G normalement c’est le fichier proposé dans l’exemple du repo que j’ai utilisé, donc passe_MAJ

Je dois avoir un problème avec ESPHome … :thinking:

Voici ce que j’ai comme :

teleinfokit.yaml
# ESPHome configuration file for teleinfokit module https://342apps.net/module-teleinfokit/

esphome:
  name: teleinfokit
  platform: ESP8266
  board: esp01_1m

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_pass

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "TeleInfoKit"
    password: !secret ap_key

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     #  :doc:`recommanded for ESP8266 </components/sensor/custom>`

# Enable Home Assistant API
api:
  password: !secret api_key

ota:
  password: !secret ota_key
  id: my_ota


uart:
  id: uart_bus
  rx_pin: GPIO3
  baud_rate: 1200
  parity: EVEN
  data_bits: 7

teleinfo:
  id: myteleinfo
  update_interval: 30s
  historical_mode: true

sensor:
  - platform: teleinfo
    tag_name: "HCHC"
    id: hchc
    name: "Index Heures Creuses"
    unit_of_measurement: "Wh"
    icon: mdi:flash
    device_class: energy
    state_class: measurement
    teleinfo_id: myteleinfo
  - platform: teleinfo
    tag_name: "HCHP"
    id: hchp
    name: "Index Heures Pleines"
    unit_of_measurement: "Wh"
    icon: mdi:flash
    device_class: energy
    state_class: measurement
    teleinfo_id: myteleinfo
  - platform: teleinfo
    tag_name: "PAPP"
    id: papp
    name: "Puissance Actuelle"
    unit_of_measurement: "VA"
    icon: mdi:flash
    teleinfo_id: myteleinfo
  - platform: teleinfo
    tag_name: "IINST"
    id: iinst
    name: "Intensité Actuelle"
    unit_of_measurement: "A"
    icon: mdi:flash
    teleinfo_id: myteleinfo

i2c:
  sda: GPIO0
  scl: GPIO2

font:
  - file: "arial.ttf"
    id: arial_font
    size: 16

display:
  - platform: ssd1306_i2c
    model: "SSD1306 128x32"
    id: oled
    rotation: 180°
    address: 0x3C
    pages:
      - id: page1
        lambda: |-
          it.printf(0, 0, id(arial_font), "Conso: %.0f VA", id(papp).state);
      - id: page2
        lambda: |-
          it.printf(0, 0, id(arial_font), "Intensite: %.0f A", id(iinst).state);
      - id: page3
        lambda: |-
          it.printf(0, 0, id(arial_font), "HP: %.0f", id(hchp).state);
      - id: page4
        lambda: |-
          it.printf(0, 0, id(arial_font), "HC: %.0f", id(hchc).state);

interval:
  - interval: 5s
    then:
      - display.page.show_next: oled
      - component.update: oled

binary_sensor:
  - platform: gpio
    pin:
      number: GPIO1
      mode: INPUT_PULLUP
      inverted: True
    name: teleinfokit_switch
    on_click:
      min_length: 50ms
      max_length: 350ms
      then:
        - lambda: if (id(oled).is_on()) id(oled).turn_off(); else id(oled).turn_on();
secrets.yaml
wifi_ssid: "Mon SSID WiFi"
wifi_pass: "Mon Pass WiFi"

ap_key: "givememydata"
api_key: "Welcome_HA"
ota_key: "passe_MAJ"
...

Et voici ce que j’ai quand je fait INSTALL > Wirelessly :

Logs
INFO Reading configuration /config/esphome/teleinfokit.yaml...
INFO Generating C++ source...
INFO Compiling app...
INFO Running:  platformio run -d /config/esphome/teleinfokit
Processing teleinfokit (board: esp01_1m; framework: arduino; platform: platformio/espressif8266@2.6.2)
--------------------------------------------------------------------------------
HARDWARE: ESP8266 80MHz, 80KB RAM, 1MB Flash
PACKAGES: 
 - framework-arduinoespressif8266 3.20704.0 (2.7.4) 
 - tool-esptool 1.413.0 (4.13) 
 - tool-esptoolpy 1.20800.0 (2.8.0) 
 - toolchain-xtensa 2.40802.200502 (4.8.2)
Library Manager: Installing Update
Library Manager: Already installed, built-in library
Dependency Graph
|-- <ESPAsyncTCP-esphome> 1.2.3
|   |-- <ESP8266WiFi> 1.0
|-- <ESPAsyncWebServer-esphome> 1.3.0
|   |-- <ESPAsyncTCP-esphome> 1.2.3
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <Hash> 1.0
|   |-- <ESP8266WiFi> 1.0
|-- <ESP8266WiFi> 1.0
|-- <ESP8266mDNS> 1.2
|   |-- <ESP8266WiFi> 1.0
|-- <Wire> 1.0
|-- <noise-c> 0.1.1
|-- <DNSServer> 1.1.1
|   |-- <ESP8266WiFi> 1.0
Compiling /data/teleinfokit/.pioenvs/teleinfokit/src/esphome/components/api/api_connection.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
Compiling /data/teleinfokit/.pioenvs/teleinfokit/src/esphome/components/api/api_frame_helper.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
Compiling /data/teleinfokit/.pioenvs/teleinfokit/src/esphome/components/api/api_pb2.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
*** [/data/teleinfokit/.pioenvs/teleinfokit/src/esphome/components/api/api_connection.cpp.o] Error 127
Compiling /data/teleinfokit/.pioenvs/teleinfokit/src/esphome/components/api/api_pb2_service.cpp.o
*** [/data/teleinfokit/.pioenvs/teleinfokit/src/esphome/components/api/api_frame_helper.cpp.o] Error 127
*** [/data/teleinfokit/.pioenvs/teleinfokit/src/esphome/components/api/api_pb2.cpp.o] Error 127
sh: 1: xtensa-lx106-elf-g++: not found
*** [/data/teleinfokit/.pioenvs/teleinfokit/src/esphome/components/api/api_pb2_service.cpp.o] Error 127
========================== [FAILED] Took 3.69 seconds ==========================

Qu’est-ce que c’est que ce problème : sh: 1: xtensa-lx106-elf-g++: not found ?

J’ai beau cherché sur le net mais beaucoup de personne en parle sans émettre une solution …

J’ai essayé de désinstallé/réinstallé ESPHome et nada, rien de mieux … :thinking: ça sent pas bon …

Si ça peut aider à la résolution :

  • j’ai recréé un device teleinfokit_test (en cliquant sur le + en bas à droite de la fenêtre). Une fois le nom de la configuration définit à teleinfokit_tets et le WiFi défini, j’ai passé la connexion. J’ai défini une une plateforme ESP8266 => erreur à la compilation
  • idem que le point précédent mais en définissant une plateforme ESP32 => La compilation fonctionne.

ça a l’air de venir de la plateforme sous ESPHome. Si @maint_stef tu pouvais confirmer que tu as le même problème et si non, peux tu me donner la version de ton addon ESPHome ?

Apparemment, je ne suis pas le seul à avoir ce problème : xtensa-lx106-elf-g++: not found · Issue #1386 · esphome/issues · GitHub

Si quelqu’un à une solution, je suis preneur car je n’arrive pas à mettre à jour mon tout nouveau module :sob:

Voici les tests que j’ai fait :

  1. J’ai désinstallé ESPHome depuis HA
  2. J’ai supprimé du répertoire config (via le partage réseau) le répertoire esphome (en le sauvegardant auparavant :grin: évidemment)
  3. J’ai relancé HA
  4. J’ai installé ESPHome depuis HA
  5. J’ai créé un nouveau device esp8266-test via le bouton + en bas à droite avec :
    5.1. comme Name : esp8266-test
    5.2. comme Wi-Fi SSID : le SSID de mon réseau WiFi
    5.3. Pas de Wi-Fi password pour l’instant
  6. J’ai cliqué sur NEXT
  7. Puis sur SKIP THIS STEP dans la fenêtre Installation
  8. J’ai choisi ESP8266 dans la fenêtre Select your ESP device puis NEXT
  9. Une fenêtre Configuration created! s’est affichée.
  10. Sur le nouveau device créé esp8266-test, j’ai cliqué sur VALIDATE, résultat pas d’erreur
  11. Dans la fenêtre ouverte de validation, j’ai cliqué sur INSTALL
  12. Puis sur Manual download, résultat des erreurs sh: 1: xtensa-lx106-elf-g++: not found
logs
INFO Reading configuration /config/esphome/esp8266-test-2.yaml...
INFO Generating C++ source...
INFO Core config or version changed, cleaning build files...
INFO Compiling app...
INFO Running:  platformio run -d /config/esphome/esp8266-test-2
Processing esp8266-test-2 (board: esp01_1m; framework: arduino; platform: platformio/espressif8266@2.6.2)
--------------------------------------------------------------------------------
HARDWARE: ESP8266 80MHz, 80KB RAM, 1MB Flash
PACKAGES: 
 - framework-arduinoespressif8266 3.20704.0 (2.7.4) 
 - tool-esptool 1.413.0 (4.13) 
 - tool-esptoolpy 1.20800.0 (2.8.0) 
 - toolchain-xtensa 2.40802.200502 (4.8.2)
Library Manager: Installing Update
Library Manager: Already installed, built-in library
Dependency Graph
|-- <ESPAsyncTCP-esphome> 1.2.3
|   |-- <ESP8266WiFi> 1.0
|-- <ESPAsyncWebServer-esphome> 1.3.0
|   |-- <ESPAsyncTCP-esphome> 1.2.3
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <Hash> 1.0
|   |-- <ESP8266WiFi> 1.0
|-- <ESP8266WiFi> 1.0
|-- <ESP8266mDNS> 1.2
|   |-- <ESP8266WiFi> 1.0
|-- <noise-c> 0.1.1
|-- <DNSServer> 1.1.1
|   |-- <ESP8266WiFi> 1.0
Compiling /data/esp8266-test-2/.pioenvs/esp8266-test-2/src/esphome/components/api/api_connection.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
Compiling /data/esp8266-test-2/.pioenvs/esp8266-test-2/src/esphome/components/api/api_frame_helper.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
Compiling /data/esp8266-test-2/.pioenvs/esp8266-test-2/src/esphome/components/api/api_pb2.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
*** [/data/esp8266-test-2/.pioenvs/esp8266-test-2/src/esphome/components/api/api_connection.cpp.o] Error 127
Compiling /data/esp8266-test-2/.pioenvs/esp8266-test-2/src/esphome/components/api/api_pb2_service.cpp.o
*** [/data/esp8266-test-2/.pioenvs/esp8266-test-2/src/esphome/components/api/api_frame_helper.cpp.o] Error 127
*** [/data/esp8266-test-2/.pioenvs/esp8266-test-2/src/esphome/components/api/api_pb2.cpp.o] Error 127
sh: 1: xtensa-lx106-elf-g++: not found
*** [/data/esp8266-test-2/.pioenvs/esp8266-test-2/src/esphome/components/api/api_pb2_service.cpp.o] Error 127
========================== [FAILED] Took 3.51 seconds ==========================

J’ai essayé une solution de contournement détaillée dans l’issue :

  1. Sur le nouveau device créé esp8266-test, j’ai cliqué sur EDIT
  2. J’ai ajouté arduino_version: 2.5.1 dans le bloc esphome: comme ceci
esp8266-test.yaml
esphome:
  arduino_version: 2.5.1
  name: esp8266-test-2
  platform: ESP8266
  board: esp01_1m

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:
  password: "xxx"

wifi:
  ssid: "xxx"
  password: ""

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp8266-Test-2 Fallback Hotspot"
    password: "xxx"

captive_portal:
  1. Un clic sur SAVE
  2. Dans la fenêtre ouverte, j’ai cliqué sur INSTALL
  3. Puis sur Manual download, résultat pas d’erreur, j’obtiens mon fichier bin compilé !! :champagne:

Ce qui me plait dans ce contournement, c’est que je peux modifier device par device.

Maintenant, je vais essayé d’appliquer cette solution au code du teleinfokit …