Skip to content

AHT10 works very unreliable #1635

@jeffreykog

Description

@jeffreykog

Operating environment/Installation (Hass.io/Docker/pip/etc.): Pip + virtualenv. Python 3.8.5, esphome 1.15.3

ESP (ESP32/ESP8266, Board/Sonoff): ESP8266, Wemos D1 Mini

ESPHome version (latest production, beta, dev branch): Latest, 1.15.3

Affected component: AHT10 -> https://esphome.io/components/sensor/aht10.html

Description of problem:
When starting the ESP, it correctly measures and reports temperature and humidity. After this first scan the values never change regardless of the update interval. It does report the value every update_interval seconds, but the value is always the same.
After exactly one hour, the text ATH10 Unrealistic humidity (0x0), retrying... is logged, followed by AHT10 is busy, waiting.... After that a new value is measured and reported. Then it follows the same loop again where it always reports the same value until an unrealistic value comes in.

I'm starting to think the module requires an explicit command to re-measure the value and if that isn't sent, the buffer wil keep containing the old value.

Problem-relevant YAML-configuration entries:

sensor:
  - platform: aht10
    temperature:
      name: "Werkkamer Jeffrey Temperatuur"
    humidity:
      name: "Werkkamer Jeffrey Luchtvochtigheid"
    # update_interval: 60s

i2c:
  sda: D2
  scl: D1
  scan: True
  id: bus_a

Logs (if applicable):

< ESP boots >
[19:04:11][I][app:105]: ESPHome version 1.15.3 compiled on Nov 16 2020, 19:03:50
[19:04:11][C][wifi:443]: WiFi:
[19:04:11][C][wifi:303]:   SSID: 'xxx'
[19:04:11][C][wifi:304]:   IP Address: 172.24.139.19
[19:04:11][C][wifi:306]:   BSSID: xxx
[19:04:11][C][wifi:307]:   Hostname: 'sensor_climate_werkkamer_jeffrey'
[19:04:11][C][wifi:311]:   Signal strength: -65 dB ▂▄▆█
[19:04:11][C][wifi:315]:   Channel: 6
[19:04:11][C][wifi:316]:   Subnet: 255.255.255.0
[19:04:11][C][wifi:317]:   Gateway: 172.24.139.1
[19:04:11][C][wifi:318]:   DNS1: 172.24.139.1
[19:04:11][C][wifi:319]:   DNS2: (IP unset)
[19:04:11][C][i2c:028]: I2C Bus:
[19:04:11][C][i2c:029]:   SDA Pin: GPIO4
[19:04:11][C][i2c:030]:   SCL Pin: GPIO5
[19:04:11][C][i2c:031]:   Frequency: 50000 Hz
[19:04:11][I][i2c:033]: Scanning i2c bus for active devices...
[19:04:11][I][i2c:040]: Found i2c device at address 0x38
[19:04:11][C][logger:185]: Logger:
[19:04:11][C][logger:186]:   Level: DEBUG
[19:04:11][C][logger:187]:   Log Baud Rate: 115200
[19:04:11][C][logger:188]:   Hardware UART: UART0
[19:04:11][C][aht10:117]: AHT10:
[19:04:11][C][aht10:118]:   Address: 0x38
[19:04:11][C][aht10:122]:   Temperature 'Werkkamer Jeffrey Temperatuur'
[19:04:11][C][aht10:122]:     Unit of Measurement: '°C'
[19:04:11][C][aht10:122]:     Accuracy Decimals: 2
[19:04:11][C][aht10:122]:     Icon: 'mdi:thermometer'
[19:04:11][C][aht10:123]:   Humidity 'Werkkamer Jeffrey Luchtvochtigheid'
[19:04:11][C][aht10:123]:     Unit of Measurement: '%'
[19:04:11][C][aht10:123]:     Accuracy Decimals: 2
[19:04:11][C][aht10:123]:     Icon: 'mdi:water-percent'
[19:04:11][C][captive_portal:169]: Captive Portal:
[19:04:11][C][ota:029]: Over-The-Air Updates:
[19:04:11][C][ota:030]:   Address: xxxx:8266
[19:04:11][C][ota:032]:   Using Password.
[19:04:11][C][api:095]: API Server:
[19:04:11][C][api:096]:   Address: xxxx:6053
[19:04:42][D][aht10:066]: AHT10 is busy, waiting...
[19:04:42][D][sensor:092]: 'Werkkamer Jeffrey Temperatuur': Sending state 25.57526 °C with 2 decimals of accuracy
[19:04:42][D][sensor:092]: 'Werkkamer Jeffrey Luchtvochtigheid': Sending state 38.65442 % with 2 decimals of accuracy
[19:05:42][D][aht10:073]: ATH10 Unrealistic humidity (0x0), retrying...
[19:05:42][D][aht10:073]: ATH10 Unrealistic humidity (0x0), retrying...
[19:05:42][D][aht10:073]: ATH10 Unrealistic humidity (0x0), retrying...
[19:05:42][D][sensor:092]: 'Werkkamer Jeffrey Temperatuur': Sending state 25.57526 °C with 2 decimals of accuracy
[19:05:42][W][aht10:108]: Invalid humidity! Sensor reported 0% Hum
[19:05:42][D][sensor:092]: 'Werkkamer Jeffrey Luchtvochtigheid': Sending state nan % with 2 decimals of accuracy
[19:06:05][I][ota:046]: Boot seems successful, resetting boot loop counter.
[19:06:42][D][aht10:066]: AHT10 is busy, waiting...
[19:06:42][D][sensor:092]: 'Werkkamer Jeffrey Temperatuur': Sending state 25.52376 °C with 2 decimals of accuracy
[19:06:42][D][sensor:092]: 'Werkkamer Jeffrey Luchtvochtigheid': Sending state 38.69905 % with 2 decimals of accuracy
[19:07:42][D][aht10:073]: ATH10 Unrealistic humidity (0x0), retrying...
[19:07:42][D][aht10:073]: ATH10 Unrealistic humidity (0x0), retrying...
[19:07:42][D][aht10:073]: ATH10 Unrealistic humidity (0x0), retrying...
[19:07:42][D][sensor:092]: 'Werkkamer Jeffrey Temperatuur': Sending state 25.52376 °C with 2 decimals of accuracy
[19:07:42][W][aht10:108]: Invalid humidity! Sensor reported 0% Hum
[19:07:42][D][sensor:092]: 'Werkkamer Jeffrey Luchtvochtigheid': Sending state nan % with 2 decimals of accuracy
[19:08:42][D][aht10:066]: AHT10 is busy, waiting...
[19:08:42][D][sensor:092]: 'Werkkamer Jeffrey Temperatuur': Sending state 25.87318 °C with 2 decimals of accuracy
[19:08:42][D][sensor:092]: 'Werkkamer Jeffrey Luchtvochtigheid': Sending state 38.05161 % with 2 decimals of accuracy
[19:09:42][D][sensor:092]: 'Werkkamer Jeffrey Temperatuur': Sending state 25.87318 °C with 2 decimals of accuracy
[19:09:42][D][sensor:092]: 'Werkkamer Jeffrey Luchtvochtigheid': Sending state 38.05161 % with 2 decimals of accuracy
[19:10:42][D][sensor:092]: 'Werkkamer Jeffrey Temperatuur': Sending state 25.87318 °C with 2 decimals of accuracy
[19:10:42][D][sensor:092]: 'Werkkamer Jeffrey Luchtvochtigheid': Sending state 38.05161 % with 2 decimals of accuracy

< Repeat this exact value for an entire hour >

[20:04:42][D][sensor:092]: 'Werkkamer Jeffrey Temperatuur': Sending state 25.87318 °C with 2 decimals of accuracy
[20:04:42][D][sensor:092]: 'Werkkamer Jeffrey Luchtvochtigheid': Sending state 38.05161 % with 2 decimals of accuracy
[20:05:42][D][sensor:092]: 'Werkkamer Jeffrey Temperatuur': Sending state 25.87318 °C with 2 decimals of accuracy
[20:05:42][D][sensor:092]: 'Werkkamer Jeffrey Luchtvochtigheid': Sending state 38.05161 % with 2 decimals of accuracy
[20:06:42][D][aht10:073]: ATH10 Unrealistic humidity (0x0), retrying...
[20:06:42][D][aht10:066]: AHT10 is busy, waiting...
[20:06:42][D][sensor:092]: 'Werkkamer Jeffrey Temperatuur': Sending state 26.03531 °C with 2 decimals of accuracy
[20:06:42][D][sensor:092]: 'Werkkamer Jeffrey Luchtvochtigheid': Sending state 37.77075 % with 2 decimals of accuracy
[20:07:42][D][sensor:092]: 'Werkkamer Jeffrey Temperatuur': Sending state 26.03531 °C with 2 decimals of accuracy
[20:07:42][D][sensor:092]: 'Werkkamer Jeffrey Luchtvochtigheid': Sending state 37.77075 % with 2 decimals of accuracy

< After an hour the same refresh happens >

Additional information and things you've tried:
I tried with multiple AHT10 modules and also with multiple D1 mini modules to rule a hardware problem out. It looks like an additional request is needed to the module. If any more information is needed i will provide it. I'm happy to help with any debugging

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions