BMP280 was working, now gives error "Entity is non-numeric"

The code has not changed since it was working but, I have upgraded to esphome 2024.9.1 it still recognises that the BMP280 is there during bus scan but won’t read the temperature and pressure anymore. I connected the BMP280 to an Arduino and tested it - works fine so not a problem with the sensor.

substitutions:
name: av-cupboard-temperature-sensor
friendly_name: av-cupboard-sensor

esphome:
name: ${name}
friendly_name: ${friendly_name}
project:
name: esphome.web
version: dev

esp8266:
board: nodemcuv2
framework:
version: recommended

logger:

api:
encryption:
key: !secret api_av_cupboard_sensor

ota:
platform: esphome
password: !secret ota_av_cupboard_sensor

wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password

ap: {}

captive_portal:

web_server:
port: 80

i2c:
sda: GPIO4
scl: GPIO5
scan: true
id: bus_a

sensor:

  • platform: bmp280_i2c
    i2c_id: bus_a
    address: 0x76
    temperature:
    name: “AV cupboard temperature”
    id: av_cupboard_temperature
    oversampling: 16x
    pressure:
    name: “AV cupboard pressure”
    id: av_cupboard_pressure
    update_interval: 60s

Logs look good but I get no data back or from visiting it’s local web site!
[17:49:27][I][app:100]: ESPHome version 2024.9.1 compiled on Sep 28 2024, 17:06:37
[17:49:27][I][app:102]: Project esphome.web version dev
[17:49:27][C][wifi:600]: WiFi:
[17:49:27][C][wifi:428]: Local MAC: xx:xx:xx:xx:xx:xx
[17:49:27][C][wifi:433]: SSID: [redacted]
[17:49:27][C][wifi:436]: IP Address: x.x.x.x
[17:49:27][C][wifi:439]: BSSID: [redacted]
[17:49:27][C][wifi:441]: Hostname: ‘av-cupboard-temperature-sensor’
[17:49:27][C][wifi:443]: Signal strength: -52 dB ▂▄▆█
[17:49:27][C][wifi:447]: Channel: 11
[17:49:27][C][wifi:448]: Subnet: 255.255.255.0
[17:49:27][C][wifi:449]: Gateway: x.x.x.x
[17:49:27][C][wifi:450]: DNS1: 1.1.1.1
[17:49:27][C][wifi:451]: DNS2: 8.8.8.8
[17:49:27][C][logger:185]: Logger:
[17:49:27][C][logger:186]: Level: DEBUG
[17:49:27][C][logger:188]: Log Baud Rate: 115200
[17:49:27][C][logger:189]: Hardware UART: UART0
[17:49:27][C][i2c.arduino:071]: I2C Bus:
[17:49:27][C][i2c.arduino:072]: SDA Pin: GPIO4
[17:49:27][C][i2c.arduino:073]: SCL Pin: GPIO5
[17:49:27][C][i2c.arduino:074]: Frequency: 50000 Hz
[17:49:27][C][i2c.arduino:086]: Recovery: bus successfully recovered
[17:49:27][I][i2c.arduino:096]: Results from i2c bus scan:
[17:49:27][I][i2c.arduino:102]: Found i2c device at address 0x76
[17:49:27][C][bmp280_i2c.sensor:022]: Address: 0x76
[17:49:27][C][bmp280.sensor:132]: BMP280:
[17:49:27][C][bmp280.sensor:144]: IIR Filter: OFF
[17:49:27][C][bmp280.sensor:145]: Update Interval: 60.0s
[17:49:27][C][bmp280.sensor:147]: Temperature ‘AV cupboard temperature’
[17:49:27][C][bmp280.sensor:147]: Device Class: ‘temperature’
[17:49:27][C][bmp280.sensor:147]: State Class: ‘measurement’
[17:49:27][C][bmp280.sensor:147]: Unit of Measurement: ‘°C’
[17:49:27][C][bmp280.sensor:147]: Accuracy Decimals: 1
[17:49:27][C][bmp280.sensor:148]: Oversampling: 16x
[17:49:27][C][bmp280.sensor:149]: Pressure ‘AV cupboard pressure’
[17:49:27][C][bmp280.sensor:149]: Device Class: ‘pressure’
[17:49:27][C][bmp280.sensor:149]: State Class: ‘measurement’
[17:49:27][C][bmp280.sensor:149]: Unit of Measurement: ‘hPa’
[17:49:27][C][bmp280.sensor:149]: Accuracy Decimals: 1
[17:49:27][C][bmp280.sensor:150]: Oversampling: 16x
[17:49:27][C][captive_portal:089]: Captive Portal:
[17:49:27][C][web_server:145]: Web Server:
[17:49:27][C][web_server:146]: Address: av-cupboard-temperature-sensor.local:80
[17:49:27][C][mdns:116]: mDNS:
[17:49:27][C][mdns:117]: Hostname: av-cupboard-temperature-sensor
[17:49:27][C][esphome.ota:073]: Over-The-Air updates:
[17:49:27][C][esphome.ota:074]: Address: av-cupboard-temperature-sensor.local:8266
[17:49:27][C][esphome.ota:075]: Version: 2
[17:49:27][C][esphome.ota:078]: Password configured
[17:49:27][C][safe_mode:018]: Safe Mode:
[17:49:27][C][safe_mode:019]: Boot considered successful after 60 seconds
[17:49:27][C][safe_mode:021]: Invoke after 10 boot attempts
[17:49:27][C][safe_mode:022]: Remain in safe mode for 300 seconds
[17:49:27][C][api:139]: API Server:
[17:49:27][C][api:140]: Address: av-cupboard-temperature-sensor.local:6053
[17:49:27][C][api:142]: Using noise encryption: YES

Please post your yaml correctly.

substitutions:
  name: av-cupboard-temperature-sensor
  friendly_name: av-cupboard-sensor

esphome:
  name: ${name}
  friendly_name: ${friendly_name}
  project:
    name: esphome.web
    version: dev

esp8266:
  board: nodemcuv2
  framework: 
    version: recommended


# Enable logging
logger:
  level: VERY_VERBOSE

# Enable Home Assistant API
api:
  encryption:
    key: !secret api_av_cupboard_sensor

# Allow Over-The-Air updates
ota:
  platform: esphome
  password: !secret ota_av_cupboard_sensor

# Allow provisioning Wi-Fi via serial
# improv_serial:

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Set up a wifi access point
  ap: {}
  

# In combination with the `ap` this allows the user
# to provision wifi credentials to the device via WiFi AP.
captive_portal:

#dashboard_import:
#  package_import_url: github://esphome/example-configs/esphome-web/esp8266.yaml@main
#  import_full_config: true

# To have a "next url" for improv serial
web_server:
  port: 80

i2c:
  sda: GPIO4
  scl: GPIO5
  scan: true
  id: bus_a

sensor:
  - platform: bmp280_i2c
    i2c_id: bus_a
    address: 0x76
    temperature:
      name: "AV cupboard temperature"
      #id: av_cupboard_temperature
      #oversampling: 16x
    pressure:
      name: "AV cupboard pressure"
      #id: av_cupboard_pressure
    update_interval: 60s

Verbose logs are as follows

[18:26:57][C][logger:185]: Logger:
[18:26:57][C][logger:186]: Level: VERY_VERBOSE
[18:26:57][C][logger:188]: Log Baud Rate: 115200
[18:26:57][C][logger:189]: Hardware UART: UART0
[18:26:57][C][i2c.arduino:071]: I2C Bus:
[18:26:57][C][i2c.arduino:072]: SDA Pin: GPIO4
[18:26:57][C][i2c.arduino:073]: SCL Pin: GPIO5
[18:26:57][C][i2c.arduino:074]: Frequency: 50000 Hz
[18:26:57][C][i2c.arduino:086]: Recovery: bus successfully recovered
[18:26:57][I][i2c.arduino:096]: Results from i2c bus scan:
[18:26:57][I][i2c.arduino:102]: Found i2c device at address 0x76
[18:26:57][C][bmp280_i2c.sensor:022]: Address: 0x76
[18:26:57][C][bmp280.sensor:132]: BMP280:
[18:26:57][C][bmp280.sensor:144]: IIR Filter: OFF
[18:26:57][C][bmp280.sensor:145]: Update Interval: 60.0s
[18:26:57][C][bmp280.sensor:147]: Temperature 'AV cupboard temperature'
[18:26:57][C][bmp280.sensor:147]: Device Class: 'temperature'
[18:26:57][C][bmp280.sensor:147]: State Class: 'measurement'
[18:26:57][C][bmp280.sensor:147]: Unit of Measurement: '°C'
[18:26:57][C][bmp280.sensor:147]: Accuracy Decimals: 1
[18:26:57][C][bmp280.sensor:148]: Oversampling: 16x
[18:26:57][C][bmp280.sensor:149]: Pressure 'AV cupboard pressure'
[18:26:57][C][bmp280.sensor:149]: Device Class: 'pressure'
[18:26:57][C][bmp280.sensor:149]: State Class: 'measurement'
[18:26:57][C][bmp280.sensor:149]: Unit of Measurement: 'hPa'
[18:26:57][C][bmp280.sensor:149]: Accuracy Decimals: 1
[18:26:57][C][bmp280.sensor:150]: Oversampling: 16x
[18:26:57][C][captive_portal:089]: Captive Portal:
[18:26:57][C][web_server:145]: Web Server:
[18:26:57][C][web_server:146]: Address: av-cupboard-temperature-sensor.local:21080
[18:26:57][C][mdns:116]: mDNS:
[18:26:57][C][mdns:117]: Hostname: av-cupboard-temperature-sensor
[18:26:57][V][mdns:118]: Services:
[18:26:57][V][mdns:120]: - _esphomelib, _tcp, 6053
[18:26:57][V][mdns:122]: TXT: friendly_name = av-cupboard-sensor
[18:26:57][V][mdns:122]: TXT: version = 2024.9.1
[18:26:57][V][mdns:122]: TXT: mac = c8c9a3261215
[18:26:57][V][mdns:122]: TXT: platform = ESP8266
[18:26:57][V][mdns:122]: TXT: board = nodemcuv2
[18:26:57][V][mdns:122]: TXT: network = wifi
[18:26:57][V][mdns:122]: TXT: api_encryption = Noise_NNpsk0_25519_ChaChaPoly_SHA256
[18:26:57][V][mdns:122]: TXT: project_name = esphome.web
[18:26:57][V][mdns:122]: TXT: project_version = dev
[18:26:57][V][mdns:120]: - _http, _tcp, 21080
[18:26:57][C][esphome.ota:073]: Over-The-Air updates:
[18:26:57][C][esphome.ota:074]: Address: av-cupboard-temperature-sensor.local:8266
[18:26:57][C][esphome.ota:075]: Version: 2
[18:26:57][C][esphome.ota:078]: Password configured
[18:26:58][C][safe_mode:018]: Safe Mode:
[18:26:58][C][safe_mode:019]: Boot considered successful after 60 seconds
[18:26:58][C][safe_mode:021]: Invoke after 10 boot attempts
[18:26:58][C][safe_mode:022]: Remain in safe mode for 300 seconds
[18:26:58][C][api:139]: API Server:
[18:26:58][C][api:140]: Address: av-cupboard-temperature-sensor.local:6053
[18:26:58][C][api:142]: Using noise encryption: YES
[18:27:05][VV][scheduler:225]: Running interval '' with interval=10000 last_execution=21394 (now=31394)
[18:27:15][VV][scheduler:225]: Running interval '' with interval=10000 last_execution=31394 (now=41395)
[18:27:17][VV][scheduler:225]: Running interval '' with interval=60000 last_execution=4294950473 (now=43177)
[18:27:17][VV][scheduler:225]: Running interval 'update' with interval=60000 last_execution=4294950729 (now=43433)
[18:27:17][V][bmp280.sensor:158]: Sending conversion request...
[18:27:17][VV][i2c.arduino:176]: 0x76 TX F4B5
[18:27:17][VV][i2c.arduino:202]: TX failed: not acknowledged: 2
[18:27:25][VV][scheduler:225]: Running interval '' with interval=10000 last_execution=41394 (now=51399)
[18:27:33][VV][api.service:697]: on_ping_request: PingRequest {}
[18:27:33][VV][api.service:043]: send_ping_response: PingResponse {}
[18:27:35][VV][scheduler:225]: Running interval '' with interval=10000 last_execution=51394 (now=61397)
[18:27:38][I][safe_mode:041]: Boot seems successful; resetting boot loop counter
[18:27:45][VV][scheduler:225]: Running interval '' with interval=10000 last_execution=61394 (now=71394)
[18:27:55][VV][scheduler:225]: Running interval '' with interval=10000 last_execution=71394 (now=81395)
[18:27:57][VV][api.connection:132]: Sending keepalive PING...
[18:27:57][VV][api.service:037]: send_ping_request: PingRequest {}
[18:27:57][VV][api.service:706]: on_ping_response: PingResponse {}
[18:28:05][VV][scheduler:225]: Running interval '' with interval=10000 last_execution=81394 (now=91394)
[18:28:13][VV][api.service:697]: on_ping_request: PingRequest {}
[18:28:13][VV][api.service:043]: send_ping_response: PingResponse {}
[18:28:15][VV][scheduler:225]: Running interval '' with interval=10000 last_execution=91394 (now=101394)
[18:28:17][VV][scheduler:225]: Running interval '' with interval=60000 last_execution=43177 (now=103177)
[18:28:17][VV][scheduler:225]: Running interval 'update' with interval=60000 last_execution=43433 (now=103438)
[18:28:17][V][bmp280.sensor:158]: Sending conversion request...
[18:28:17][VV][i2c.arduino:176]: 0x76 TX F4B5
[18:28:17][VV][i2c.arduino:202]: TX failed: not acknowledged: 2
[18:28:25][VV][scheduler:225]: Running interval '' with interval=10000 last_execution=101394 (now=111394)
[18:28:35][VV][scheduler:225]: Running interval '' with interval=10000 last_execution=111394 (now=121394)
[18:28:45][VV][scheduler:225]: Running interval '' with interval=10000 last_execution=121394 (now=131394)
[18:28:53][VV][api.service:697]: on_ping_request: PingRequest {}
[18:28:53][VV][api.service:043]: send_ping_response: PingResponse {}
[18:28:55][VV][scheduler:225]: Running interval '' with interval=10000 last_execution=131394 (now=141397)
[18:28:57][VV][api.connection:132]: Sending keepalive PING...
[18:28:57][VV][api.service:037]: send_ping_request: PingRequest {}
[18:28:57][VV][api.service:706]: on_ping_response: PingResponse {}
[18:29:05][VV][scheduler:225]: Running interval '' with interval=10000 last_execution=141394 (now=151394)
[18:29:15][VV][scheduler:225]: Running interval '' with interval=10000 last_execution=151394 (now=161394)
[18:29:17][VV][scheduler:225]: Running interval '' with interval=60000 last_execution=103177 (now=163177)
[18:29:17][VV][scheduler:225]: Running interval 'update' with interval=60000 last_execution=103433 (now=163435)

Thanks for that, I can’t find the term “numeric” in either of your logs. Perhaps it needs to run longer for the error to show.

I do see i2c errors though. Please make sure you check your wiring, pullups etc.

You mention upgrading to 2024.9.1. What was the last working version? Does it work if you downgrade esphome?

The error shows in the UI