gb53smith / esphome

0 stars 0 forks source link

ERROR Unable to load component dht.sensor: #1

Closed aheath70 closed 1 year ago

aheath70 commented 1 year ago

Found your custom DHT component whilst struggling with intermittent NAN results from a DHT22. Hoping that it might solve the issue.

I am getting the following error when trying to install to my ESP8266:

ERROR Unable to load component dht.sensor:
Traceback (most recent call last):
  File "/esphome/esphome/loader.py", line 162, in _lookup_module
    module = importlib.import_module(f"esphome.components.{domain}")
  File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 790, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/config/esphome/.esphome/external_components/de7823b6/esphome/components/dht/sensor.py", line 36, in <module>
    cv.Optional(CONF_TEMPERATURE): sensor.sensor_schema(
TypeError: sensor_schema() takes from 0 to 1 positional arguments but 5 were given
Failed config

sensor.dht: [source /config/esphome/esp1.yaml:89]

  Platform not found: 'sensor.dht'.

I added the following to my YAML file as described in your Home Assistant post.

esphome:
  ...
  platformio_options:
    lib_deps: diaoul/DHTNew@1.0.0

...

external_components:
  - source: github://gb53smith/esphome@dev1
    components: [dht]
gb53smith commented 1 year ago

The esphome syntax has changed since I first experimented with external components. I have updated sensors.py and dht.h to get it working again for you. See yaml/plants.yaml for use example. Reference the external component using this method:

external_components:
### This long form works. refresh option is only needed for changes less than 24 hours old
  - source:
      type: git
      url: https://github.com:/gb53smith/esphome
      ref: main
    components: [dht]
    refresh: 0s

My issue with the older esphome version was unexpected temperature values and not NaN values. My DHT22 device is powered by 3.3V, has a 4K7 ohm pullup resistor on the data signal and a 100 nF capacitor across the power supply.

A esphome developer changed their code to fix my issue so I don't use the external component now. This was an experiment to just plug-in a known good component library from the PlatformIO repository. Esphome developers prefer to copy and modify source code from other sources for better control, I guess.

aheath70 commented 1 year ago

Thanks for the background. I am just trying to confirm if the problems I am having are related the default DHT library being used by ESPHOME or whether it is the cheap DHT sensors I have bought.

When I first built these sensors, I used Arduino and had the same NAN issues that I am having now with ESPHOME. I found an alternate library which resolved the issue on Arduino. I had hope that the DHTNew library might assist with ESPHOME, as one of the notes says "No more NANs".

Anyway, thanks for updating the component. I have updated my YAML as per your instructions. I am now getting the folllowing:-

Processing esp1 (board: nodemcuv2; framework: arduino; platform: platformio/espressif8266 @ 3.2.0)
--------------------------------------------------------------------------------
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
Library Manager: Installing diaoul/DHTNew @ 1.0.0
Warning! Please upgrade to the PlatformIO Core 6
Dependency Graph
|-- <ESPAsyncTCP-esphome> 1.2.3
|-- <ESPAsyncWebServer-esphome> 2.1.0
|   |-- <ESPAsyncTCP-esphome> 1.2.3
|   |-- <Hash> 1.0
|   |-- <ESP8266WiFi> 1.0
|-- <DNSServer> 1.1.1
|-- <ESP8266WiFi> 1.0
|-- <ESP8266mDNS> 1.2
Compiling /data/esp1/.pioenvs/esp1/src/esphome/components/dht/dht.cpp.o
Compiling /data/esp1/.pioenvs/esp1/src/esphome/components/esp8266/core.cpp.o
In file included from src/esphome/components/dht/dht.cpp:1:
src/esphome/components/dht/dht.h:9:10: fatal error: DHTNew.h: No such file or directory

****************************************************************
* Looking for DHTNew.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:DHTNew.h"
* Web  > https://registry.platformio.org/search?q=header:DHTNew.h
*
****************************************************************

    9 | #include "DHTNew.h"
      |          ^~~~~~~~~~
compilation terminated.
*** [/data/esp1/.pioenvs/esp1/src/esphome/components/dht/dht.cpp.o] Error 1
========================== [FAILED] Took 4.17 seconds ==========================
gb53smith commented 1 year ago

Try cleaning build files and run again. Also, use the latest esphome 2022.10.2 Here is my log file. I don't get a warning about "Please upgrade to the PlatformIO Core 6" I also don't see "Updating https://github.com:/gb53smith/esphome@main" ?

INFO Reading configuration /config/esphome/plants.yaml...
INFO Updating https://github.com:/gb53smith/esphome@main
WARNING ESP8266: Pin 10 (9-10) might already be used by the flash interface in QUAD IO flash mode.
INFO Generating C++ source...
INFO Compiling app...
Processing plants (board: nodemcuv2; framework: arduino; platform: platformio/espressif8266 @ 3.2.0)
--------------------------------------------------------------------------------
Library Manager: Installing diaoul/DHTNew @ 1.0.0
INFO Installing diaoul/DHTNew @ 1.0.0
Unpacking  [####################################]  100%
Library Manager: DHTNew@1.0.0 has been installed!
INFO DHTNew@1.0.0 has been installed!
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
Dependency Graph
|-- ESP8266WiFi @ 1.0
|-- ESP8266mDNS @ 1.2
|-- DHTNew @ 1.0.0
Compiling /data/plants/.pioenvs/plants/src/esphome/components/api/api_connection.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/api/api_frame_helper.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/api/api_pb2.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/api/api_pb2_service.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/api/api_server.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/api/list_entities.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/api/proto.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/api/subscribe_state.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/api/user_services.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/dallas/dallas_component.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/dallas/esp_one_wire.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/dht/dht.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/esp8266/core.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/esp8266/gpio.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/esp8266/preferences.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/gpio/switch/gpio_switch.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/logger/logger.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/md5/md5.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/mdns/mdns_component.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/mdns/mdns_esp32_arduino.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/mdns/mdns_esp8266.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/mdns/mdns_esp_idf.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/network/util.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/ota/ota_backend_arduino_esp32.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/ota/ota_backend_arduino_esp8266.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/ota/ota_backend_esp_idf.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/ota/ota_component.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/sensor/automation.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/sensor/filter.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/sensor/sensor.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/socket/bsd_sockets_impl.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/socket/lwip_raw_tcp_impl.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/socket/socket.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/switch/automation.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/switch/switch.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/wifi/wifi_component.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/wifi/wifi_component_esp32_arduino.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/wifi/wifi_component_esp8266.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/components/wifi/wifi_component_esp_idf.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/core/application.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/core/color.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/core/component.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/core/component_iterator.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/core/controller.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/core/entity_base.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/core/helpers.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/core/log.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/core/scheduler.cpp.o
Compiling /data/plants/.pioenvs/plants/src/esphome/core/util.cpp.o
Compiling /data/plants/.pioenvs/plants/src/main.cpp.o
Generating LD script /data/plants/.pioenvs/plants/ld/local.eagle.app.v6.common.ld
Compiling /data/plants/.pioenvs/plants/lib67b/ESP8266WiFi/BearSSLHelpers.cpp.o
Compiling /data/plants/.pioenvs/plants/lib67b/ESP8266WiFi/CertStoreBearSSL.cpp.o
Compiling /data/plants/.pioenvs/plants/lib67b/ESP8266WiFi/ESP8266WiFi.cpp.o
Compiling /data/plants/.pioenvs/plants/lib67b/ESP8266WiFi/ESP8266WiFiAP.cpp.o
Compiling /data/plants/.pioenvs/plants/lib67b/ESP8266WiFi/ESP8266WiFiGeneric.cpp.o
Compiling /data/plants/.pioenvs/plants/lib67b/ESP8266WiFi/ESP8266WiFiGratuitous.cpp.o
Compiling /data/plants/.pioenvs/plants/lib67b/ESP8266WiFi/ESP8266WiFiMulti.cpp.o
Compiling /data/plants/.pioenvs/plants/lib67b/ESP8266WiFi/ESP8266WiFiSTA-WPS.cpp.o
Compiling /data/plants/.pioenvs/plants/lib67b/ESP8266WiFi/ESP8266WiFiSTA.cpp.o
Compiling /data/plants/.pioenvs/plants/lib67b/ESP8266WiFi/ESP8266WiFiScan.cpp.o
Compiling /data/plants/.pioenvs/plants/lib67b/ESP8266WiFi/WiFiClient.cpp.o
Compiling /data/plants/.pioenvs/plants/lib67b/ESP8266WiFi/WiFiClientSecureBearSSL.cpp.o
Compiling /data/plants/.pioenvs/plants/lib67b/ESP8266WiFi/WiFiServer.cpp.o
Compiling /data/plants/.pioenvs/plants/lib67b/ESP8266WiFi/WiFiServerSecureBearSSL.cpp.o
Compiling /data/plants/.pioenvs/plants/lib67b/ESP8266WiFi/WiFiUdp.cpp.o
Compiling /data/plants/.pioenvs/plants/lib67b/ESP8266WiFi/enable_wifi_at_boot_time.cpp.o
Compiling /data/plants/.pioenvs/plants/lib3ff/ESP8266mDNS/ESP8266mDNS.cpp.o
Compiling /data/plants/.pioenvs/plants/lib3ff/ESP8266mDNS/LEAmDNS.cpp.o
Compiling /data/plants/.pioenvs/plants/lib3ff/ESP8266mDNS/LEAmDNS_Control.cpp.o
Archiving /data/plants/.pioenvs/plants/lib67b/libESP8266WiFi.a
Compiling /data/plants/.pioenvs/plants/lib3ff/ESP8266mDNS/LEAmDNS_Helpers.cpp.o
Compiling /data/plants/.pioenvs/plants/lib3ff/ESP8266mDNS/LEAmDNS_Structs.cpp.o
Compiling /data/plants/.pioenvs/plants/lib3ff/ESP8266mDNS/LEAmDNS_Transfer.cpp.o
Compiling /data/plants/.pioenvs/plants/lib274/DHTNew/DHTNew.cpp.o
Archiving /data/plants/.pioenvs/plants/libFrameworkArduinoVariant.a
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/Crypto.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/Esp-frag.cpp.o
Archiving /data/plants/.pioenvs/plants/lib274/libDHTNew.a
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/Esp-version.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/Esp.cpp.o
Archiving /data/plants/.pioenvs/plants/lib3ff/libESP8266mDNS.a
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/FS.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/FSnoop.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/FunctionalInterrupt.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/HardwareSerial.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/IPAddress.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/LwipDhcpServer-NonOS.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/LwipDhcpServer.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/LwipIntf.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/LwipIntfCB.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/MD5Builder.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/Print.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/Schedule.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/StackThunk.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/Stream.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/StreamSend.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/Tone.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/TypeConversion.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/Updater.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/WMath.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/WString.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/abi.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/aes_unwrap.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/base64.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/cbuf.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/cont.S.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/cont_util.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/core_esp8266_app_entry_noextra4k.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/core_esp8266_eboot_command.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/core_esp8266_features.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/core_esp8266_flash_quirks.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/core_esp8266_flash_utils.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/core_esp8266_i2s.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/core_esp8266_main.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/core_esp8266_non32xfer.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/core_esp8266_noniso.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/core_esp8266_phy.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/core_esp8266_postmortem.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/core_esp8266_si2c.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/core_esp8266_sigma_delta.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/core_esp8266_spi_utils.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/core_esp8266_timer.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/core_esp8266_vm.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/core_esp8266_waveform_phase.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/core_esp8266_waveform_pwm.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/core_esp8266_wiring.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/core_esp8266_wiring_analog.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/core_esp8266_wiring_digital.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/core_esp8266_wiring_pulse.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/core_esp8266_wiring_pwm.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/core_esp8266_wiring_shift.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/crc32.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/debug.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/exc-c-wrapper-handler.S.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/exc-sethandler.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/flash_hal.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/gdb_hooks.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/heap.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/hwdt_app_entry.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/libb64/cdecode.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/libb64/cencode.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/libc_replacements.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/mmu_iram.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/reboot_uart_dwnld.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/spiffs/spiffs_cache.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/spiffs/spiffs_check.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/spiffs/spiffs_gc.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/spiffs/spiffs_hydrogen.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/spiffs/spiffs_nucleus.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/spiffs_api.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/sqrt32.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/stdlib_noniso.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/time.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/uart.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/umm_malloc/umm_info.c.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/umm_malloc/umm_integrity.c.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/umm_malloc/umm_local.c.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/umm_malloc/umm_malloc.cpp.o
Compiling /data/plants/.pioenvs/plants/FrameworkArduino/umm_malloc/umm_poison.c.o
Archiving /data/plants/.pioenvs/plants/libFrameworkArduino.a
Linking /data/plants/.pioenvs/plants/firmware.elf
RAM:   [====      ]  37.9% (used 31028 bytes from 81920 bytes)
Flash: [====      ]  35.6% (used 371833 bytes from 1044464 bytes)
Building /data/plants/.pioenvs/plants/firmware.bin
esp8266_copy_factory_bin(["/data/plants/.pioenvs/plants/firmware.bin"], ["/data/plants/.pioenvs/plants/firmware.elf"])
========================= [SUCCESS] Took 52.89 seconds =========================
INFO Successfully compiled program.
INFO Connecting to 192.168.1.104
INFO Uploading /data/plants/.pioenvs/plants/firmware.bin (375984 bytes)
INFO Compressed to 263302 bytes
Uploading: [============================================================] 100% Done...

INFO Waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from 192.168.1.104 using esphome API
WARNING Can't connect to ESPHome API for 192.168.1.104: Timeout while connecting to ('192.168.1.104', 6053)
INFO Trying to reconnect to 192.168.1.104 in the background
INFO Successfully connected to 192.168.1.104
[15:54:44][I][app:102]: ESPHome version 2022.10.2 compiled on Nov 14 2022, 15:53:33
[15:54:44][C][wifi:502]: WiFi:
[15:54:44][C][wifi:360]:   Local MAC: 5C:CF:7F:ED:E5:C2
[15:54:44][C][wifi:361]:   SSID: 'GreenMountain'[redacted]
[15:54:44][C][wifi:362]:   IP Address: 192.168.1.104
[15:54:44][C][wifi:363]:   BSSID: 00:5F:67:95:84:48[redacted]
[15:54:44][C][wifi:365]:   Hostname: 'plants'
[15:54:44][C][wifi:367]:   Signal strength: -53 dB ▂▄▆█
[15:54:44][C][wifi:371]:   Channel: 6
[15:54:44][C][wifi:372]:   Subnet: 255.255.255.0
[15:54:44][C][wifi:373]:   Gateway: 192.168.1.254
[15:54:44][C][wifi:374]:   DNS1: 0.0.0.0
[15:54:44][C][wifi:375]:   DNS2: 0.0.0.0
[15:54:44][C][logger:275]: Logger:
[15:54:44][C][logger:276]:   Level: DEBUG
[15:54:44][C][logger:277]:   Log Baud Rate: 115200
[15:54:44][C][logger:278]:   Hardware UART: UART0
[15:54:44][C][switch.gpio:050]: GPIO Switch 'Plant Light'
[15:54:44][C][switch.gpio:051]:   Pin: GPIO14
[15:54:44][C][switch.gpio:073]:   Restore Mode: Restore (Defaults to OFF)
[15:54:44][C][switch.gpio:050]: GPIO Switch 'Plant Heater'
[15:54:44][C][switch.gpio:051]:   Pin: GPIO12
[15:54:44][C][switch.gpio:073]:   Restore Mode: Restore (Defaults to OFF)
[15:54:44][C][switch.gpio:050]: GPIO Switch 'Plant Dehumidifier'
[15:54:44][C][switch.gpio:051]:   Pin: GPIO13
[15:54:44][C][switch.gpio:073]:   Restore Mode: Restore (Defaults to OFF)
[15:54:44][C][dallas.sensor:075]: DallasComponent:
[15:54:44][C][dallas.sensor:076]:   Pin: GPIO10
[15:54:44][C][dallas.sensor:077]:   Update Interval: 10.0s
[15:54:44][D][dallas.sensor:082]:   Found sensors:
[15:54:44][D][dallas.sensor:084]:     0x1f3c01b556a19a28
[15:54:44][C][dallas.sensor:089]:   Device 'Plants Soil Temperature'
[15:54:44][C][dallas.sensor:089]:     Device Class: 'temperature'
[15:54:44][C][dallas.sensor:089]:     State Class: 'measurement'
[15:54:45][C][dallas.sensor:089]:     Unit of Measurement: '°C'
[15:54:45][C][dallas.sensor:089]:     Accuracy Decimals: 1
[15:54:45][C][dallas.sensor:097]:     Address: 0x1f3c01b556a19a28
[15:54:45][C][dallas.sensor:098]:     Resolution: 12
[15:54:45][C][dht:016]: DHT:
[15:54:45][C][dht:017]:   Pin: 2
[15:54:45][C][dht:021]:   Model: DHT22 (or equivalent)
[15:54:45][C][dht:023]:   Update Interval: 10.0s
[15:54:45][C][dht:024]:   Temperature 'Plants Temperature'
[15:54:45][C][dht:024]:     Device Class: 'temperature'
[15:54:45][C][dht:024]:     State Class: 'measurement'
[15:54:45][C][dht:024]:     Unit of Measurement: '°C'
[15:54:45][C][dht:024]:     Accuracy Decimals: 1
[15:54:45][C][dht:025]:   Humidity 'Plants Humidity'
[15:54:45][C][dht:025]:     Device Class: 'humidity'
[15:54:45][C][dht:025]:     State Class: 'measurement'
[15:54:45][C][dht:025]:     Unit of Measurement: '%'
[15:54:45][C][dht:025]:     Accuracy Decimals: 0
[15:54:45][C][mdns:100]: mDNS:
[15:54:45][C][mdns:101]:   Hostname: plants
[15:54:45][C][ota:089]: Over-The-Air Updates:
[15:54:45][C][ota:090]:   Address: 192.168.1.104:8266
[15:54:45][C][ota:093]:   Using Password.
[15:54:45][C][api:138]: API Server:
[15:54:45][C][api:139]:   Address: 192.168.1.104:6053
[15:54:45][C][api:143]:   Using noise encryption: NO
[15:54:47][D][dht:033]: Got Temperature=13.5°C Humidity=72.8%
[15:54:51][D][dallas.sensor:143]: 'Plants Soil Temperature': Got Temperature=13.3°C
aheath70 commented 1 year ago

Cleaned build files and tried again, and it failed with the same result. The I realised, I was running an old version of the Home Assistant ESPHOME add-on. Not sure what went wrong there as there were no updates pending, but it was dated March of 2022. I went into the HA add-on store, and there was a new version of ESPHOME, so I installed it, and low and behold I had two version of the ESPHOME addon. Anyway, I deleted the old and updated all my devices.

I was able to then flash my ESP with your code. That is the good news. The bad news is that it made no difference to my NAN issue with the DHT. In fact, the upgrade to the latest ESPHOME has made it worse. Previously, I was getting NAN's intermittently. Since the upgrade, I have failed to get a reading.

gb53smith commented 1 year ago

Time to purchase another brand of DHT22. Mine is an AOSONG AM2302 on a PCB with a 4K7 Pullup resistor and a 100 nF power supply bypass capacitor. Works from a 3.3V power supply.

aheath70 commented 1 year ago

Interesting ... mine is the same. At least if the markings on the sensor are to be believed. DHT22 on a PCB. Just not sure it is what it says it is ...

Is your PCB red or blue? Not sure if it makes any material difference, but mine is blue. It looks like it has a pullup resistor and a capacitor on it, but stuffed if I can identify specifics of what they are.

Back to the drawing board me thinks. Thanks for your help. I am feeling deflated now. Wondering whether I might better off throwing out the old ESP8266's and replacing with ESP32's. I have 6 of these sensors around the house and they are all giving a little bit of grief. I don't have spare ESP32's to test on though.

gb53smith commented 1 year ago

My DHT22 is on a RED PCB. It was made by Keyes with part number 140C80. The Keyes part seems to be unavailable now but I saw other products with the same part number. To verify the pullup, connect a 10K ohm resistor to ground on the data line. The voltage should drop from 3.3V to 2.24 V. Check that you can read the ESP8266 pin you are using. Remove the DHT22 and connect a toggle switch with pullup to the same pin. I used GPIO pin 2 which is labeled as D4 on my ESP8266. If you are just reading the DHT22 the ESP8266 should be adequate and the ESP32 overkill. My last ESP8266 purchase was IZOKEE D1 Mini. It is smaller than the older NodeMCU LUA. You cannot supply much current from the 3.3V regulator on the D1 Mini. Mine has a DE=A1D voltage regulator which is good for an extra 50 mA for 3.3V external components.

Not sure it is worth the time to get a non-standard DHT22 working.
If you have an Arduino library that works, it is probably available in PlatformIO. EspHome is built on top of PlatformIO so it is possible to build a wrapper around the PlatformIO library to get it working in EspHome. This repository shows an example of the wrapper technique. Over the years I have used Arduino, PlatformIO and EspHome for my IOT devices that connect to Home Assistant. EspHome is by far the easiest to use and now supports most devices.

aheath70 commented 1 year ago

... it is definitely something with ESPHOME. I decided to try Tasmota on the ESP8266 with the DHT in there - the same one that has been giving me NAN errors, and it has been running all day without a singe issue, happily reporting temperature and humidity. Maybe I will just stick with Tasmota I think. It has survived numerous restarts, reflashing the image multiple times, and it hasn't missed a beat.

I don't expect you to anything about this. You strike me as the kind of person who might like to know.