esphome / issues

Issue Tracker for ESPHome
https://esphome.io/
290 stars 36 forks source link

i2c error after updating esphome to 2022.12 #3941

Open raidnet-ms opened 1 year ago

raidnet-ms commented 1 year ago

The problem

After updating esphome and the firmware on a device using ccs811 and aht10 sensors, they are not working anymore.

In the logs I get errors from i2c

Which version of ESPHome has the issue?

2022.12.x

What type of installation are you using?

Home Assistant Add-on

Which version of Home Assistant has the issue?

2022.12.x

What platform are you using?

ESP8266

Board

d1mini

Component causing the issue

ccs811 and aht10

Example YAML snippet

i2c: # used by ccs811 and aht10
  sda: D2
  scl: D1
#  scan: false

switch:
  - platform: gpio
    name: wake css811
    pin: D3

uart: # used by pm1006 only rx needed
  rx_pin: D7
  baud_rate: 9600

sensor:
  - platform: aht10
    update_interval: 10s
#    address: 0x38
    temperature:
      name: "Ikea Temp"
      id: temp
      filters:
        - calibrate_linear:
            - 0.0 -> 0.0
            - 21.15 -> 20.2

    humidity:
      name: "Ikea umidità"
      id: hum
      filters:
        - calibrate_linear:
            - 0.0 -> 0.0
            - 38.29 -> 48

  - platform: ccs811
#    update_interval: 60s
#    version:
#      name: versione
#    address: 0x5A
    eco2:
      name: "eCO2 Value"
      id: eco2
      filters:
        - median:
        - throttle: 60s
        - heartbeat: 60s
    tvoc:
      name: "Total Volatile Organic Compound"      
      id: tvoc
      filters:
        - median:
        - throttle: 60s
        - heartbeat: 60s
    temperature: temp
    humidity: hum
    baseline: 0xBFBD

  # Ikea Vindriktning PM2.5 sensor
  - platform: pm1006
    pm_2_5:
      name: "Particolato PM25"
      filters:
        - sliding_window_moving_average:
            window_size: 10
            send_every: 10

Anything in the logs that might be useful for us?

[09:09:11][C][logger:293]: Logger:
[09:09:11][C][logger:294]:   Level: DEBUG
[09:09:11][C][logger:295]:   Log Baud Rate: 115200
[09:09:11][C][logger:296]:   Hardware UART: UART0
[09:09:11][C][i2c.arduino:052]: I2C Bus:
[09:09:12][C][i2c.arduino:053]:   SDA Pin: GPIO4
[09:09:12][C][i2c.arduino:054]:   SCL Pin: GPIO5
[09:09:12][C][i2c.arduino:055]:   Frequency: 50000 Hz
[09:09:12][C][i2c.arduino:064]:   Recovery: failed, SDA is held low on the bus
[09:09:12][I][i2c.arduino:068]: Results from i2c bus scan:
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x08
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x09
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x0A
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x0B
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x0C
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x0D
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x0E
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x0F
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x10
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x11
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x12
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x13
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x14
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x15
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x16
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x17
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x18
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x19
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x1A
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x1B
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x1C
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x1D
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x1E
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x1F
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x20
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x21
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x22
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x23
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x24
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x25
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x26
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x27
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x28
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x29
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x2A
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x2B
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x2C
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x2D
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x2E
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x2F
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x30
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x31
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x32
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x33
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x34
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x35
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x36
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x37
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x38
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x39
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x3A
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x3B
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x3C
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x3D
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x3E
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x3F
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x40
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x41
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x42
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x43
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x44
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x45
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x46
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x47
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x48
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x49
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x4A
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x4B
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x4C
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x4D
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x4E
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x4F
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x50
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x51
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x52
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x53
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x54
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x55
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x56
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x57
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x58
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x59
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x5A
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x5B
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x5C
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x5D
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x5E
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x5F
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x60
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x61
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x62
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x63
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x64
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x65
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x66
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x67
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x68
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x69
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x6A
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x6B
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x6C
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x6D
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x6E
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x6F
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x70
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x71
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x72
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x73
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x74
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x75
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x76
[09:09:12][E][i2c.arduino:076]: Unknown error at address 0x77
[09:09:12][C][uart.arduino_esp8266:102]: UART Bus:
[09:09:12][C][uart.arduino_esp8266:104]:   RX Pin: GPIO13
[09:09:12][C][uart.arduino_esp8266:106]:   RX Buffer Size: 256
[09:09:12][C][uart.arduino_esp8266:108]:   Baud Rate: 9600 baud
[09:09:12][C][uart.arduino_esp8266:109]:   Data Bits: 8
[09:09:12][C][uart.arduino_esp8266:110]:   Parity: NONE
[09:09:12][C][uart.arduino_esp8266:111]:   Stop bits: 1
[09:09:12][C][uart.arduino_esp8266:115]:   Using software serial
[09:09:12][C][switch.gpio:076]: GPIO Switch 'wake css811'
[09:09:12][C][switch.gpio:098]:   Restore Mode: restore defaults to OFF
[09:09:12][C][switch.gpio:031]:   Pin: GPIO0
[09:09:12][C][template.text_sensor:021]: Template Sensor 'Livingroom IAQ'
[09:09:12][C][template.text_sensor:021]:   Icon: 'mdi:air-filter'
[09:09:12][C][status:034]: Status Binary Sensor 'Ikea air quality status'
[09:09:12][C][status:034]:   Device Class: 'connectivity'
[09:09:12][C][restart.button:017]: Restart Button 'Riavvia Ikea air quality'
[09:09:12][C][shutdown.button:018]: Shutdown Button 'Spegni Ikea air quality'
[09:09:12][C][shutdown.button:018]:   Icon: 'mdi:power'
[09:09:12][C][safe_mode.button:022]: Safe Mode Button 'Riavvia Ikea air quality in Safe Mode'
[09:09:12][C][safe_mode.button:022]:   Icon: 'mdi:restart-alert'
[09:09:12][C][aht10:136]: AHT10:
[09:09:12][C][aht10:137]:   Address: 0x38
[09:09:12][E][aht10:139]: Communication with AHT10 failed!
[09:09:12][C][aht10:141]:   Temperature 'Ikea Temperatura'
[09:09:12][C][aht10:141]:     Device Class: 'temperature'
[09:09:12][C][aht10:141]:     State Class: 'measurement'
[09:09:12][C][aht10:141]:     Unit of Measurement: '°C'
[09:09:12][C][aht10:141]:     Accuracy Decimals: 2
[09:09:12][C][aht10:142]:   Humidity 'Ikea umidità'
[09:09:12][C][aht10:142]:     Device Class: 'humidity'
[09:09:12][C][aht10:142]:     State Class: 'measurement'
[09:09:12][C][aht10:142]:     Unit of Measurement: '%'
[09:09:12][C][aht10:142]:     Accuracy Decimals: 2
[09:09:12][C][ccs811:152]: CCS811
[09:09:12][C][ccs811:153]:   Address: 0x5A
[09:09:12][C][ccs811:154]:   Update Interval: 60.0s
[09:09:12][C][ccs811:155]:   CO2 Sensor 'eCO2 Value'
[09:09:12][C][ccs811:155]:     Device Class: 'carbon_dioxide'
[09:09:12][C][ccs811:155]:     State Class: 'measurement'
[09:09:12][C][ccs811:155]:     Unit of Measurement: 'ppm'
[09:09:12][C][ccs811:155]:     Accuracy Decimals: 0
[09:09:12][C][ccs811:155]:     Icon: 'mdi:molecule-co2'
[09:09:12][C][ccs811:156]:   TVOC Sensor 'Total Volatile Organic Compound'
[09:09:12][C][ccs811:156]:     Device Class: 'volatile_organic_compounds'
[09:09:12][C][ccs811:156]:     State Class: 'measurement'
[09:09:12][C][ccs811:156]:     Unit of Measurement: 'ppb'
[09:09:12][C][ccs811:156]:     Accuracy Decimals: 0
[09:09:12][C][ccs811:156]:     Icon: 'mdi:radiator'
[09:09:13][C][ccs811:159]:   Baseline: BFBD
[09:09:13][W][ccs811:166]: Communication failed! Is the sensor connected?
[09:09:13][C][pm1006:017]: PM1006:
[09:09:13][C][pm1006:018]:   PM2.5 'Particolato PM25'
[09:09:13][C][pm1006:018]:     Device Class: 'pm25'
[09:09:13][C][pm1006:018]:     State Class: 'measurement'
[09:09:13][C][pm1006:018]:     Unit of Measurement: 'µg/m³'
[09:09:13][C][pm1006:018]:     Accuracy Decimals: 0
[09:09:13][C][pm1006:018]:     Icon: 'mdi:blur'
[09:09:13][C][pm1006:019]:   Update Interval: never
[09:09:13][C][captive_portal:088]: Captive Portal:

[09:09:13][C][ota:093]: Over-The-Air Updates:

[09:09:13][C][ota:097]:   Using Password.
[09:09:13][C][api:138]: API Server:

[09:09:13][C][api:143]:   Using noise encryption: NO

[09:09:13][C][wifi_signal.sensor:009]:   Device Class: 'signal_strength'
[09:09:13][C][wifi_signal.sensor:009]:   State Class: 'measurement'
[09:09:13][C][wifi_signal.sensor:009]:   Unit of Measurement: 'dBm'
[09:09:13][C][wifi_signal.sensor:009]:   Accuracy Decimals: 0

Additional information

esphome 2022.11.x was working perfectly. I had some issues with aht10 on esphome 2022.10.x, but not related to i2c connection. The sensor was going timeout after few hours while with 2022.11 I had absolute no issues.

ssieb commented 1 year ago

Recovery: failed, SDA is held low on the bus You didn't change anything?

raidnet-ms commented 1 year ago

Hi ssieb, sorry I posted the issue before completing all fields. now I edited it properly. I changed nothing, not the hardware, not the firmware. Esphome got the update automatically while yesterday I updated the firmware and suddenly I noticed sensors on i2c stopped working.

ssieb commented 1 year ago

Actually, this looks like it might be a general gpio issue. We're investigating.

raidnet-ms commented 1 year ago

Let me know if you need any test. I'm going to check if i get this problem on other hardware.

raidnet-ms commented 1 year ago

with scan set to false I get only errors from both sensors:

[09:26:18][E][aht10:139]: Communication with AHT10 failed! [09:26:18][W][ccs811:166]: Communication failed! Is the sensor connected?

and no scan errors of course.

emefff commented 1 year ago

Could it be related to https://github.com/esphome/issues/issues/3909 (change of timing)?

ssieb commented 1 year ago

No, that's specific to the Dallas. This appears to be a general problem with reading a gpio that switches state. i2c on 8266 is software.

emefff commented 1 year ago

Oh, you are right, sorry. https://github.com/esphome/esphome/commit/8fd93122545bfbc76a2e7df66a619191e66a5b10 is dallas specific, I remembered incorrectly.

ReinhardvdBerg commented 1 year ago

I'm also having a similar issue with i2c to a ina219 on a RP2040 Pico W, this causes the board to not start:

i2c: sda: GPIO6 scl: GPIO7

I also can't say if it worked previously because this is the first time setting it up.

tomaspre commented 1 year ago

I have the same issue on Pi Pico W. When I configure I2C, the board will connect to wifi, but any communication with it is not possible (even over serial), and, of course, HA won't discover/connect to the Pico. The moment I disable I2C, these problems go away. The exact same config worked fine on 2022.03 with a D1 Mini.

raidnet-ms commented 1 year ago

Is the d1 working with 2022.12.3?

tomaspre commented 1 year ago

The D1 Mini's regulator died, so I can't test that. The idea was to slowly move to Picos all around the house since ESPs and regulators are a never-ending horror story. :-(

SteveShirvo commented 1 year ago

Same issue here, identical logs to raidnet-ms. Has there been any solution found??

AlpineWhite commented 1 year ago

Bumping this.

I do not have any issues on 8266 D1 Mini V4.0 devices, but all of my ESP32s (standard wroom, s2 wrover, s2 wroom) will:

With i2c scanning enabled:

With I2c scanning disabled:

tomaspre commented 1 year ago

Bumping too. Still the same issue on RPi Pico W, updating to the latest ESPHome release did not help.