Getting temperature from ESPhome and BME280 on HA

Hi all!

@tom_l Thanks for pointing me to the formatting section! Way nicer!

I am trying to configure the sensor and… damn I’m so lost ahah :slight_smile:

Home Assistant 0.114.4
ESPHome 1.14.4

Hardware:

  • RPI 4B
  • KeeYees Development Board 2.4 GHz Dual Core WLAN WiFi + Bluetooth 2-In-1 Microcontroller ESP-WROOM-32 Chip CP2102 for ESP32 for Arduino
  • KeeYees BME280 Digital 5V Temperature Humidity Sensor Atmospheric Barometric Pressure Board IIC I2C Breakout for Arduino

Here’s the config :

esphome:
  name: bmepower
  platform: ESP32
  board: esp-wrover-kit

wifi:
  ssid: "ssidname"
  password: "ssidpass"

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

captive_portal:

# Enable logging
logger:

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

ota:
  password: "pass"

# Example of customized configuration.yaml entry
i2c:
  sda: 33
  scl: 36
  scan: false

sensor:
  - platform: bme280
    update_interval: 15s
    temperature:
     name: "TemperatureKitchen"
     force_update: true
    address: 0x77

[I][app:100]: ESPHome version 1.14.4 compiled on Sep 13 2020, 15:53:39
[C][wifi:415]: WiFi:
[C][wifi:283]:   SSID: 

[redacted]
[C][wifi:284]:   IP Address: 192.168.2.182
[C][wifi:286]:   BSSID: 

[redacted]
[C][wifi:287]:   Hostname: 'name'
[C][wifi:291]:   Signal strength: -50 dB ▂▄▆█
[C][wifi:295]:   Channel: 10
[C][wifi:296]:   Subnet: 255.255.255.0
[C][wifi:297]:   Gateway: 192.168.2.1
[C][wifi:298]:   DNS1: 192.168.2.1
[C][wifi:299]:   DNS2: 169.169.169.169
[C][i2c:028]: I2C Bus:
[C][i2c:029]:   SDA Pin: GPIO33
[C][i2c:030]:   SCL Pin: GPIO36
[C][i2c:031]:   Frequency: 50000 Hz
[C][logger:175]: Logger:
[C][logger:176]:   Level: DEBUG
[C][logger:177]:   Log Baud Rate: 115200
[C][logger:178]:   Hardware UART: UART0
[C][bme280.sensor:142]: BME280:
[C][bme280.sensor:143]:   Address: 0x77
[E][bme280.sensor:146]: Communication with BME280 failed!
[C][bme280.sensor:155]:   IIR Filter: OFF
[C][bme280.sensor:156]:   Update Interval: 15.0s
[C][bme280.sensor:158]:   Temperature 'TemperatureKitchen'
[C][bme280.sensor:158]:     Unit of Measurement: '°C'
[C][bme280.sensor:158]:     Accuracy Decimals: 1
[C][bme280.sensor:158]:     Icon: 'mdi:thermometer'
[C][bme280.sensor:159]:     Oversampling: 16x
[C][bme280.sensor:161]:     Oversampling: 16x
[C][bme280.sensor:163]:     Oversampling: 16x
[C][captive_portal:169]: Captive Portal:
[C][ota:029]: Over-The-Air Updates:
[C][ota:030]:   Address: name.local:3232
[C][ota:032]:   Using Password.
[C][api:095]: API Server:
[C][api:096]:   Address: name.local:6053

note: I edited the names and password…

I also tried using the 76, scan true, adressing SDL and SDA. I found some URL on this community but the one that went near, the guy drop off the project… :smiley:

And What after it finally connect to bme280? How to display those results in HA? Do we have to add something in the configuration.yaml ?

I just saw on the back of the ESP32 “NodeMCU”, am I better using NodeMCU instead of Generic ESP32 (wrover module) and rebuild from scratch?

Thanks for any help! :slight_smile:

Welcome to the forum. Please have a read of point 11 here and edit your post accordingly.

1 Like

You didn’t have to delete it. Just edit it so we can read it properly.

Also I am not a mod. Just a home assistant user like you.

1 Like

I tried using another ESP32… using the nodemcu esp32… address 76 or 77, always the same issue… Can’t find the sensor :\ I also tried using the 5V pin on the ESP.

So when you scan the i2c bus for devices does it return anything?

[14:43:03][I][i2c:033]: Scanning i2c bus for active devices...
[14:43:03][I][i2c:049]: Found no i2c devices!
[14:43:03][C][logger:175]: Logger:
[14:43:03][C][logger:176]:   Level: DEBUG
[14:43:03][C][logger:177]:   Log Baud Rate: 115200
[14:43:03][C][logger:178]:   Hardware UART: UART0
[14:43:03][C][bme280.sensor:142]: BME280:
[14:43:03][C][bme280.sensor:143]:   Address: 0x76
[14:43:03][E][bme280.sensor:146]: Communication with BME280 failed!

That’s what I get… I also tried with 0x77, adding sda/sdl pin #… can’t get it working.
I tried adding the -platform before the i2c, after, same results

Are you powering the BME with 5V or 3.3V?

I tried with both, from the ESP’s pins

I know this is a pretty old thread, but I ran into the same issue just now trying to get a few of these old boards working for a different project.

It seems the KeeYee BME280 board is not compatible with the Adafruit (or SparkFun) BME280 libraries. I spent many hours trying to get the board to work with them with no luck.

On the KeeYee website, there is a ZIP file of some tutorial materials. Their site is somewhat broken, you have to log in with their account to download the zip (Expansion joint-Expansion Joint-Guangzhou Liyang Metal Products Co., Ltd):
user: [email protected]
pw: customer666
(I found this info on their general download page - at least they recognized the site is a mess and put that blurb up, otherwise I’d be toast)

In any case, their tutorial code does work. I’m not quite good enough (yet) at C to understand what it’s doing differently. I don’t have a SparkFun or Adafruit BME280 board to see if their code is compatible.

1 Like