Hello everyone, i recently mounted a BME680 sensor outside my house inside a Stevenson screen wired up to an ESP32 running an ESPHome firmware. Everything worked perfectly during the indoor tests, but now HomeAssistant shows the sensor values as “Unknown”. From the ESPHome logs i can see that the sensor is detected correctly on the I2C bus and that the connection between the ESP32 and HomeAssistant works fine.
I don’t know what to do… did i fry the sensor? Or is it just power supply issue or something similar? Thanks!
Spiro
July 14, 2026, 2:39pm
2
How is sensor connected to the esp32?
SDA is connected to GPIO21, SCL to GPIO22 and it’s powered via 3.3v pins. The ESP32 is powered from the VIN pin
Karosm
(Karosm)
July 14, 2026, 2:54pm
4
How is the sensor wiring? Length etc..
The sensor wiring is the same as when i tested it indoor. The only different wiring is the ESP32 power supply, which will be about 1 or 2 meters long
Karosm
(Karosm)
July 14, 2026, 3:00pm
6
It’s up to you if you want to describe how your I2C wiring is done…
I mean… i used two cables that goes from the sensor to a screw terminal soldered onto a custom PCB with the ESP; from there they connect to SDA (21) and SCL (22)
armin-gh
(ArminH)
July 14, 2026, 3:09pm
8
Are you using bme680 or bme680_bsec? Showing your YAML might help… or full logs from startup …
Do you see the “unknown” values in the logs on the device or in HA?
I’m using bme680
This is the YAML:
esphome:
name: stazione-meteo
friendly_name: Stazione Meteo
esp32:
board: esp32dev
framework:
type: esp-idf
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "xxxxx"
ota:
- platform: esphome
password: "xxxx"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Stazione-Meteo Fallback Hotspot"
password: "xxxx"
captive_portal:
i2c:
sda: GPIO21
scl: GPIO22
scan: true
id: bus_a
sensor:
- platform: bme680
temperature:
name: "Temperatura esterna"
oversampling: 16x
pressure:
name: "Pressione atmosferica esterna"
humidity:
name: "Umidità esterna"
gas_resistance:
name: "Resistenza gas esterna"
address: 0x77
update_interval: 60s
And this is a full log from ESPHome Builder:
INFO ESPHome 2026.4.3
INFO Reading configuration /config/esphome/stazione-meteo.yaml...
INFO Starting log output from stazione-meteo.local using esphome API
INFO Successfully resolved stazione-meteo.local in 0.103s
INFO Successfully connected to stazione-meteo @ 10.24.30.119 in 0.005s
INFO Successful handshake with stazione-meteo @ 10.24.30.119 in 0.068s
[17:14:14.312][I][app:154]: ESPHome version 2026.4.5 compiled on 2026-07-11 20:14:16 +0200
[17:14:14.312][I][app:161]: ESP32 Chip: ESP32 rev3.1, 2 core(s)
[17:14:14.312][W][app:174]: Chip rev >= 3.0 detected. Set minimum_chip_revision: "3.1" under esp32 > framework > advanced to reduce binary size
[17:14:14.312][W][app:201]: Bootloader supports SRAM1 as IRAM (+40KB). Set sram1_as_iram: true under esp32 > framework > advanced
[17:14:14.318][C][logger:219]: Logger:
[17:14:14.318][C][logger:219]: Max Level: DEBUG
[17:14:14.318][C][logger:219]: Initial Level: DEBUG
[17:14:14.318][C][logger:226]: Log Baud Rate: 115200
[17:14:14.318][C][logger:226]: Hardware UART: UART0
[17:14:14.330][C][logger:235]: Task Log Buffer Size: 768 bytes
[17:14:14.350][C][i2c.idf:092]: I2C Bus:
[17:14:14.350][C][i2c.idf:093]: SDA Pin: GPIO21
[17:14:14.350][C][i2c.idf:093]: SCL Pin: GPIO22
[17:14:14.350][C][i2c.idf:093]: Frequency: 50000 Hz
[17:14:14.350][C][i2c.idf:103]: Recovery: bus successfully recovered
[17:14:14.350][C][i2c.idf:113]: Results from bus scan:
[17:14:14.369][C][i2c.idf:119]: Found device at address 0x77
[17:14:14.369][C][bme680.sensor:214]: BME680:
[17:14:14.369][C][bme680.sensor:215]: Address: 0x77
[17:14:14.369][C][bme680.sensor:219]: IIR Filter: OFF
[17:14:14.377][C][bme680.sensor:451]: Update Interval: 60.0s
[17:14:14.389][C][bme680.sensor:017]: Temperature 'Temperatura esterna'
[17:14:14.389][C][bme680.sensor:017]: State Class: 'measurement'
[17:14:14.389][C][bme680.sensor:017]: Unit of Measurement: '°C'
[17:14:14.389][C][bme680.sensor:017]: Accuracy Decimals: 1
[17:14:14.389][C][bme680.sensor:232]: Device Class: 'temperature'
[17:14:14.389][C][bme680.sensor:223]: Oversampling: 16x
[17:14:14.394][C][bme680.sensor:017]: Pressure 'Pressione atmosferica esterna'
[17:14:14.394][C][bme680.sensor:017]: State Class: 'measurement'
[17:14:14.394][C][bme680.sensor:017]: Unit of Measurement: 'hPa'
[17:14:14.394][C][bme680.sensor:017]: Accuracy Decimals: 1
[17:14:14.412][C][bme680.sensor:232]: Device Class: 'atmospheric_pressure'
[17:14:14.413][C][bme680.sensor:225]: Oversampling: 16x
[17:14:14.413][C][bme680.sensor:017]: Humidity 'Umidità esterna'
[17:14:14.413][C][bme680.sensor:017]: State Class: 'measurement'
[17:14:14.413][C][bme680.sensor:017]: Unit of Measurement: '%'
[17:14:14.413][C][bme680.sensor:017]: Accuracy Decimals: 1
[17:14:14.436][C][bme680.sensor:232]: Device Class: 'humidity'
[17:14:14.469][C][bme680.sensor:227]: Oversampling: 16x
[17:14:14.469][C][bme680.sensor:017]: Gas Resistance 'Resistenza gas esterna'
[17:14:14.469][C][bme680.sensor:017]: State Class: 'measurement'
[17:14:14.469][C][bme680.sensor:017]: Unit of Measurement: 'Ω'
[17:14:14.469][C][bme680.sensor:017]: Accuracy Decimals: 1
[17:14:14.469][C][bme680.sensor:223]: Icon: 'mdi:gas-cylinder'
[17:14:14.469][C][bme680.sensor:232]: Heater temperature=320°C duration=150ms
[17:14:14.491][C][captive_portal:134]: Captive Portal:
[17:14:14.491][C][wifi:1505]: WiFi:
[17:14:14.491][C][wifi:1505]: Local MAC: 04:B2:47:9B:CA:D4
[17:14:14.491][C][wifi:1505]: Connected: YES
[17:14:14.491][C][wifi:1216]: IP Address: 10.24.30.119
[17:14:14.491][C][wifi:1227]: SSID: [redacted]
[17:14:14.491][C][wifi:1227]: BSSID: [redacted]
[17:14:14.491][C][wifi:1227]: Hostname: 'stazione-meteo'
[17:14:14.491][C][wifi:1227]: Signal strength: -68 dB ▂▄▆█
[17:14:14.491][C][wifi:1227]: Channel: 6
[17:14:14.491][C][wifi:1227]: Subnet: 255.255.255.0
[17:14:14.491][C][wifi:1227]: Gateway: 10.24.30.1
[17:14:14.491][C][wifi:1227]: DNS1: 10.24.30.1
[17:14:14.491][C][wifi:1227]: DNS2: 0.0.0.0
[17:14:14.514][C][esphome.ota:071]: Over-The-Air updates:
[17:14:14.514][C][esphome.ota:071]: Address: stazione-meteo.local:3232
[17:14:14.514][C][esphome.ota:071]: Version: 2
[17:14:14.534][C][esphome.ota:078]: Password configured
[17:14:14.534][C][safe_mode:026]: Safe Mode:
[17:14:14.534][C][safe_mode:026]: Successful after: 60s
[17:14:14.534][C][safe_mode:026]: Invoke after: 10 attempts
[17:14:14.534][C][safe_mode:026]: Duration: 300s
[17:14:14.535][C][safe_mode:043]: Bootloader rollback: support unknown
[17:14:14.543][C][web_server.ota:256]: Web Server OTA
[17:14:14.563][C][api:235]: Server:
[17:14:14.563][C][api:235]: Address: stazione-meteo.local:6053
[17:14:14.563][C][api:235]: Listen backlog: 4
[17:14:14.563][C][api:235]: Max connections: 8
[17:14:14.563][C][api:242]: Noise encryption: YES
[17:14:14.563][C][mdns:194]: mDNS:
[17:14:14.563][C][mdns:194]: Hostname: stazione-meteo
The unknown value i see it’s in HA, there isn’t even a part in the logs that says “Sending state”
They’re normal 24AWG silicone cables
Karosm
(Karosm)
July 14, 2026, 3:34pm
12
Your posted log capture is 0.2 seconds long…
Since I doubt your software really cares about indoor/outdoor, your wiring would be still my suspect. One flimsy connection or cold solder joint can behave unexpected when temperature changes. Long I2C wiring is most common failure. Hardware squeezed in some enclosure with wire spaghetti is very common failure… Just wild guesses can be done here…
armin-gh
(ArminH)
July 14, 2026, 3:41pm
13
if you can easily update via OTA, it might be worth to change your YAML to the newer bme68x_bsec2_i2c
did it ever show anything in the logs after the “mdns” output?
Those are the only logs i see when i click “Logs” on the ESPHome builder, even if i stay on that page for a while nothing else useful get added
Karosm
(Karosm)
July 14, 2026, 4:09pm
16
Then your problem isn’t bme680 related. If you press reset button, you get the same log reprinted?
armin-gh
(ArminH)
July 14, 2026, 4:11pm
17
Which might confirm wiring issues… when I disconnect SDA or SCL ( or swap them) there is also no logging from the sensors. But the newer components complain about communication issues, can’t recall if the bme680 component was doing that too
armin-gh
(ArminH)
July 14, 2026, 4:17pm
18
you might add an addtional sensor independent from bme680 like for example Wifi Signal into “sensor”
- platform: wifi_signal
name: "BME680 WiFi Signal"
update_interval: 60s
either you see something every 60 seconds or the ESP32 did stop working
I connected to the serial port via cable and during the ESP boot i get a “BME680 Communication failed” warning. I also checked and the I2C aren’t twisted or anything, the distance they cover might be over 30cm but, again, it’s the same length they had when the sensor was working correctly before i mounted it outside. I’ve also left them loose without cable ties.