NEWS
ESPHome: HTU21D klappt nicht an ESP32
-
Hi
Ich habe ein HTU21D Modul. Wenn ich dieses an einem ESP8266 betreibe funktioniert es wunderbar, an einem ESP 32 funktioniert es aber nicht.
Hier der Log beim ESP8266:
[22:45:43][C][i2c:028]: I2C Bus: [22:45:43][C][i2c:029]: SDA Pin: GPIO12 [22:45:43][C][i2c:030]: SCL Pin: GPIO14 [22:45:43][C][i2c:031]: Frequency: 50000 Hz [22:45:43][I][i2c:033]: Scanning i2c bus for active devices... [22:45:43][I][i2c:040]: Found i2c device at address 0x40 [22:45:43][C][logger:189]: Logger: [22:45:43][C][logger:190]: Level: DEBUG [22:45:43][C][logger:191]: Log Baud Rate: 115200 [22:45:43][C][logger:192]: Hardware UART: UART0 [22:45:43][C][htu21d:027]: HTU21D: [22:45:43][C][htu21d:028]: Address: 0x40 [22:45:43][C][htu21d:032]: Update Interval: 60.0s [22:45:43][C][htu21d:033]: Temperature 'Living Room Temperature' [22:45:43][C][htu21d:033]: Device Class: 'temperature' [22:45:43][C][htu21d:033]: State Class: 'measurement'und beim ESP32:
[22:49:06][C][i2c:028]: I2C Bus: [22:49:06][C][i2c:029]: SDA Pin: GPIO21 [22:49:06][C][i2c:030]: SCL Pin: GPIO22 [22:49:06][C][i2c:031]: Frequency: 50000 Hz [22:49:06][I][i2c:033]: Scanning i2c bus for active devices... [22:49:06][I][i2c:040]: Found i2c device at address 0x40 [22:49:06][C][logger:189]: Logger: [22:49:06][C][logger:190]: Level: DEBUG [22:49:06][C][logger:191]: Log Baud Rate: 115200 [22:49:06][C][logger:192]: Hardware UART: UART0 [22:49:06][C][htu21d:027]: HTU21D: [22:49:06][C][htu21d:028]: Address: 0x40 [22:49:06][E][htu21d:030]: Communication with HTU21D failed!Der yaml Code ist in beiden Fällen gleich (bis auf die Pin Angabe für SCL und SDA), es ist der Beispielcode aus der Doku.
i2c: sda: GPIO21 scl: GPIO22 scan: True id: bus_a sensor: - platform: htu21d temperature: name: "Hobby Temperature" humidity: name: "Hobby Humidity" update_interval: 60sMehr als SCL und SDA einstellen kann ich ja nicht. (und ein I²C Device an Adresse 0x40 wird ja auch in beiden Fällen gefunden).
Wo liegt der Fehler?
Gruß Wolfgang
-
Hi
Ich habe ein HTU21D Modul. Wenn ich dieses an einem ESP8266 betreibe funktioniert es wunderbar, an einem ESP 32 funktioniert es aber nicht.
Hier der Log beim ESP8266:
[22:45:43][C][i2c:028]: I2C Bus: [22:45:43][C][i2c:029]: SDA Pin: GPIO12 [22:45:43][C][i2c:030]: SCL Pin: GPIO14 [22:45:43][C][i2c:031]: Frequency: 50000 Hz [22:45:43][I][i2c:033]: Scanning i2c bus for active devices... [22:45:43][I][i2c:040]: Found i2c device at address 0x40 [22:45:43][C][logger:189]: Logger: [22:45:43][C][logger:190]: Level: DEBUG [22:45:43][C][logger:191]: Log Baud Rate: 115200 [22:45:43][C][logger:192]: Hardware UART: UART0 [22:45:43][C][htu21d:027]: HTU21D: [22:45:43][C][htu21d:028]: Address: 0x40 [22:45:43][C][htu21d:032]: Update Interval: 60.0s [22:45:43][C][htu21d:033]: Temperature 'Living Room Temperature' [22:45:43][C][htu21d:033]: Device Class: 'temperature' [22:45:43][C][htu21d:033]: State Class: 'measurement'und beim ESP32:
[22:49:06][C][i2c:028]: I2C Bus: [22:49:06][C][i2c:029]: SDA Pin: GPIO21 [22:49:06][C][i2c:030]: SCL Pin: GPIO22 [22:49:06][C][i2c:031]: Frequency: 50000 Hz [22:49:06][I][i2c:033]: Scanning i2c bus for active devices... [22:49:06][I][i2c:040]: Found i2c device at address 0x40 [22:49:06][C][logger:189]: Logger: [22:49:06][C][logger:190]: Level: DEBUG [22:49:06][C][logger:191]: Log Baud Rate: 115200 [22:49:06][C][logger:192]: Hardware UART: UART0 [22:49:06][C][htu21d:027]: HTU21D: [22:49:06][C][htu21d:028]: Address: 0x40 [22:49:06][E][htu21d:030]: Communication with HTU21D failed!Der yaml Code ist in beiden Fällen gleich (bis auf die Pin Angabe für SCL und SDA), es ist der Beispielcode aus der Doku.
i2c: sda: GPIO21 scl: GPIO22 scan: True id: bus_a sensor: - platform: htu21d temperature: name: "Hobby Temperature" humidity: name: "Hobby Humidity" update_interval: 60sMehr als SCL und SDA einstellen kann ich ja nicht. (und ein I²C Device an Adresse 0x40 wird ja auch in beiden Fällen gefunden).
Wo liegt der Fehler?
Gruß Wolfgang
@wolfgangfb Müsste im sensor die nicht die Bus id eingetragen werden?
(https://esphome.io/components/i2c.html#i2c) -
@wolfgangfb Müsste im sensor die nicht die Bus id eingetragen werden?
(https://esphome.io/components/i2c.html#i2c)Laut
https://esphome.io/components/sensor/htu21d.html?highlight=htu21dist die ID optional. Der gleiche Code läuft ja im ESP8266.
-
Laut
https://esphome.io/components/sensor/htu21d.html?highlight=htu21dist die ID optional. Der gleiche Code läuft ja im ESP8266.
@wolfgangfb
Hast du es denn mal mit der Bus id getestet? -
@wolfgangfb
Hast du es denn mal mit der Bus id getestet?Hi
Nach dem gefühlt hundertsten Versuch hat der ESP32 auf einmal auch den HTU21D angenommen.
[13:16:49][C][htu21d:027]: HTU21D: [13:16:49][C][htu21d:028]: Address: 0x40 [13:16:49][C][htu21d:032]: Update Interval: 60.0s [13:16:49][C][htu21d:033]: Temperature 'Hobby Temperature' [13:16:49][C][htu21d:033]: Device Class: 'temperature' [13:16:49][C][htu21d:033]: State Class: 'measurement' [13:16:49][C][htu21d:033]: Unit of Measurement: '°C' [13:16:49][C][htu21d:033]: Accuracy Decimals: 1 [13:16:49][C][htu21d:034]: Humidity 'Hobby Humidity' [13:16:49][C][htu21d:034]: Device Class: 'humidity' [13:16:49][C][htu21d:034]: State Class: 'measurement' [13:16:49][C][htu21d:034]: Unit of Measurement: '%' [13:16:49][C][htu21d:034]: Accuracy Decimals: 1geändert habe ich absolut nichts.
-
Hi
Nach dem gefühlt hundertsten Versuch hat der ESP32 auf einmal auch den HTU21D angenommen.
[13:16:49][C][htu21d:027]: HTU21D: [13:16:49][C][htu21d:028]: Address: 0x40 [13:16:49][C][htu21d:032]: Update Interval: 60.0s [13:16:49][C][htu21d:033]: Temperature 'Hobby Temperature' [13:16:49][C][htu21d:033]: Device Class: 'temperature' [13:16:49][C][htu21d:033]: State Class: 'measurement' [13:16:49][C][htu21d:033]: Unit of Measurement: '°C' [13:16:49][C][htu21d:033]: Accuracy Decimals: 1 [13:16:49][C][htu21d:034]: Humidity 'Hobby Humidity' [13:16:49][C][htu21d:034]: Device Class: 'humidity' [13:16:49][C][htu21d:034]: State Class: 'measurement' [13:16:49][C][htu21d:034]: Unit of Measurement: '%' [13:16:49][C][htu21d:034]: Accuracy Decimals: 1geändert habe ich absolut nichts.
So, nachdem der ESP nach einem Neustart den HTU wieder nicht gefunden hat, wollte ich es mit der Bus ID probieren, aber wie? Ich verstehe das so, dass das Kommando "id:" die ID des Sensors festlegt. Wenn ich da die ID des ID des I²C Kanals eintrage kommt
ID bus_a redefined! -
So, nachdem der ESP nach einem Neustart den HTU wieder nicht gefunden hat, wollte ich es mit der Bus ID probieren, aber wie? Ich verstehe das so, dass das Kommando "id:" die ID des Sensors festlegt. Wenn ich da die ID des ID des I²C Kanals eintrage kommt
ID bus_a redefined!@wolfgangfb
sollte so aussehen:i2c_id: bus_a -
@wolfgangfb
sollte so aussehen:i2c_id: bus_aOK, aber leider bleibt es bei dem Problem:
[12:01:09][C][i2c:028]: I2C Bus: [12:01:09][C][i2c:029]: SDA Pin: GPIO21 [12:01:09][C][i2c:030]: SCL Pin: GPIO22 [12:01:09][C][i2c:031]: Frequency: 50000 Hz [12:01:09][I][i2c:033]: Scanning i2c bus for active devices... [12:01:09][I][i2c:040]: Found i2c device at address 0x40 [12:01:09][C][logger:189]: Logger: [12:01:09][C][logger:190]: Level: DEBUG [12:01:09][C][logger:191]: Log Baud Rate: 115200 [12:01:09][C][logger:192]: Hardware UART: UART0 [12:01:09][C][htu21d:027]: HTU21D: [12:01:09][C][htu21d:028]: Address: 0x40 [12:01:09][E][htu21d:030]: Communication with HTU21D failed!Hat noch jemand eine Idee?
-
OK, aber leider bleibt es bei dem Problem:
[12:01:09][C][i2c:028]: I2C Bus: [12:01:09][C][i2c:029]: SDA Pin: GPIO21 [12:01:09][C][i2c:030]: SCL Pin: GPIO22 [12:01:09][C][i2c:031]: Frequency: 50000 Hz [12:01:09][I][i2c:033]: Scanning i2c bus for active devices... [12:01:09][I][i2c:040]: Found i2c device at address 0x40 [12:01:09][C][logger:189]: Logger: [12:01:09][C][logger:190]: Level: DEBUG [12:01:09][C][logger:191]: Log Baud Rate: 115200 [12:01:09][C][logger:192]: Hardware UART: UART0 [12:01:09][C][htu21d:027]: HTU21D: [12:01:09][C][htu21d:028]: Address: 0x40 [12:01:09][E][htu21d:030]: Communication with HTU21D failed!Hat noch jemand eine Idee?