Problème pour modifier la librairie BME280 de ESPHOME en external component

Mon problème

Je voudrai effectuer une modif dans la librairie bme280

Pour cela, j’ai créé un directory « jxl_components » dans config, en suivant le tuto de ESPhome.

J’y ai copié le dossier bme280 de la librairie placée dans (mon projet est dev1)
esphome->config->.esphome->build->dev1->src->esphome->components

je l’ai edité comme je voulais (modif mineure de deux lignes)

j’ai inséré dans dev1.yaml

external_components:
  - source: 
      type: local
      path: jxl_components

# Example configuration entry
sensor:
  - platform: bme280
    temperature:
      name: "BME280 Temperature"
      oversampling: 16x
      accuracy_decimals: 3
    pressure:
      name: "BME280 Pressure"
      accuracy_decimals: 2
    humidity:
      name: "BME280 Humidity"
      accuracy_decimals: 2
    address: 0x76
    update_interval: 5s

Mais il n’est pas content à la compilation.

INFO ESPHome 2023.12.5
INFO Reading configuration /config/dev1.yaml...
Failed config

sensor.bme280: [source <unicode string>:45]
  
  Platform not found: 'sensor.bme280'.

Je suis loin d’être expert. Avez vous une idée du problème ?

Je peux rajouter que quand j’utilise la librairie par défaut de bme280, avec le yaml

sensor:
  - platform: bme280
    temperature:
      name: "BME280 Temperature"
      oversampling: 16x
      accuracy_decimals: 3
    pressure:
      name: "BME280 Pressure"
      accuracy_decimals: 2
    humidity:
      name: "BME280 Humidity"
      accuracy_decimals: 2
    address: 0x76
    update_interval: 5s

tout se passe bien

modif

Voici la modif que je veux faire dans
float BME280Component::read_temperature_(const uint8_t *data, int32_t *t_fine)

//  float temperature = (*t_fine * 5 + 128) >> 8;
//  return temperature / 100.0f;
 return ((float)(*t_fine * 5 + 128)/25600);

Ma configuration

Home assistant et ESPHome sur Synology/Docker


Texte à remplacer par votre configuration

Comment récupérer ma configuration :
Dans votre HA, Menu latéral Paramètres > Système > Corrections puis les trois petits points en haut a droite > Informations Système puis une fois en bas Copier


Bonjour,

Votre dossier « jlx_components » doit se trouver dans le dossier ESPHome présent dans le dossier config (ou homeassistant maintenant) et non dans le dossier config directement

Bonjour,

La moindre des choses pour un premier post c’est de dire bonjour , et/ ou merci non ?

1 « J'aime »

Dans config, j’ai un .esphome

j’ai copié jxl_components dedans, mais cela ne change rien.

je l’ai aussi mis dans
.esphome->build->dev1->.pioenvs->dev1->src->esphome

mais toujours la même chose

Désolé,
Toutes mes excuses
bien sur, je salue l’ensemble du forum, mais les coutumes varient beaucoup d’un forum à l’autre.

Je n’ai aucun problème, au contraire pour être civil, et remercie d’avance toute contribution, quelle qu’elle soit.

Bien amicalement

2 « J'aime »

Après un peu de recherche, j’ai résolu le problème. Mon erreur n’était pas dans le lieu du dossier.

Il faut bien mettre jxl_components dans config. On a donc

config/jxl_compponents

En revanche, il fallait mettre l’ensemble du dossier bme280 de github,
(il me manquait les fichiers .py) soit en réalité

tous les dossiers bme280_base, bme280_i2c, bme280_spi.

ensuite, avec le yaml

external_components:
  - source: 
      type: local
      path: jxl_components
#    components: [ bme280_base, bme280_i2c ]


# Example configuration entry
sensor:
  - platform: bme280_i2c
    temperature:
      name: "BME280 Temperature"
      oversampling: 16x
      accuracy_decimals: 3
    pressure:
      name: "BME280 Pressure"
      accuracy_decimals: 2
    humidity:
      name: "BME280 Humidity"
      accuracy_decimals: 2
    address: 0x76
    update_interval: 5s

J’ai maintenant des températures avec une précision de 0.001°C

Cela marche. J’espère que cela pourra être utile à d’autres.

J’ai essayé aussi la configuration git, mais pour le moment sans succès.

2 « J'aime »

Comment indique-t-on qu’un sujet est résolu ?

J’ai maintenant réussi a utiliser git

external_components:
  - source: 
      type: git
      url: https://github.com/jxl77/esphome/
      ref: dev
    components: [ bme280_base, bme280_i2c ]

auparavant, j’ai fait un fork de esphome sur github

Tant que j’y étais, j’ai fait un pull request de cette modif des bibliothèques BME280 et BMP280

Bon week-end frais

1 « J'aime »

Bonjour à tous,

mon pull request a été accepté. Les modifs sont donc maintenant incluses dans les bibliothèques des BME280 et BMP280 et disponibles pour tous

Amitiés à tous

2 « J'aime »

Well done! (Il faut 20 caractères au minimum)