arendst / Tasmota

Alternative firmware for ESP8266 and ESP32 based devices with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX. Full documentation at
https://tasmota.github.io/docs
GNU General Public License v3.0
21.97k stars 4.77k forks source link

Two SONOFF MS01 sensors don't work in Tasmota32 #16001

Closed bob-tm closed 2 years ago

bob-tm commented 2 years ago

PROBLEM DESCRIPTION

Two SONOFF MS01 sensors don't work in Tasmota32 12.0.2.3

  1. I connect two sensors to ESP32 board to GPIO 2 and GPIO 4. MS01_4 = valid result. MS01_2 = null.
  2. I reconnect sensor from GPIO2 to GPIO12. In this configuration MS01_4 = null; MS01_12 = valid result.
  3. I reconnect sensor from GPIO4 to GPIO13. Now MS01_12=null; MS01_13 = valid result. So MS01 sensor with lower GPIO always display null.

I swap sensors each other, check all wires. Always sensor with lower GPIO = null. Stable Tasmota32 12.0.2 do not detect sensors at all.

Everything works fine with ESP8266 running 12.0.2.2, I can not find Tasmota32 12.0.2.2 to check it.

REQUESTED INFORMATION

Make sure your have performed every step and checked the applicable boxes before submitting your issue. Thank you!

- [ ] If using rules, provide the output of this command: `Backlog Rule1; Rule2; Rule3`:
```lua
  Rules output here:
- [x] Set `weblog` to 4 and then, when you experience your issue, provide the output of the Console log:
```lua
  Console output here:

15:21:11.680 DHT: Timeout waiting for start signal high pulse
15:21:11.689 DHT: Read 430A0FA07C
15:21:11.691 DHT: Checksum failure 43 0A 0F A0 7C =? FC
15:21:12.003 HTP: Consoles
15:21:13.888 HTP: Console
15:21:15.662 DHT: Timeout waiting for start signal high pulse
15:21:15.671 DHT: Read 430A0F207C
15:21:19.705 DHT: Timeout waiting for start signal high pulse
15:21:19.716 DHT: Read 432A0F205C
15:21:19.718 DHT: Checksum failure 43 2A 0F 20 5C =? 9C
15:21:23.706 DHT: Timeout waiting for start signal high pulse
15:21:23.715 DHT: Read 432A07A01C
15:21:23.717 DHT: Checksum failure 43 2A 07 A0 1C =? 14
15:21:27.694 DHT: Timeout waiting for start signal high pulse
15:21:27.703 DHT: Read 436A0FA05C
15:21:30.684 WIF: Checking connection...
15:21:31.691 DHT: Timeout waiting for start signal high pulse
15:21:31.700 DHT: Read 430A0FA07C
15:21:31.702 DHT: Checksum failure 43 0A 0F A0 7C =? FC

TO REPRODUCE

Steps to reproduce the behavior: Connect two sensors to ESP32 with latest firmware

EXPECTED BEHAVIOUR

A clear and concise description of what you expected to happen.

SCREENSHOTS

If applicable, add screenshots to help explain your problem.

ADDITIONAL CONTEXT

Add any other context about the problem here.

(Please, remember to close the issue when the problem has been addressed)

arendst commented 2 years ago

Stable Tasmota32 12.0.2 do not detect sensors at all.

Sonoff sensors (SI7021, THS01 and MS01) on ESP32 are supported starting with version v12.0.2.3. See https://github.com/arendst/Tasmota/blob/development/CHANGELOG.md

For debugging purposes pls connect only one MS01 and provide weblog 4 for over a 1 minute to check if any DHT related messages pop up.

bob-tm commented 2 years ago

I don't have physical access to device right now, so I change GPIO in settings and virtually disconnected it.

Log1. GPIO12 - connected sensor. GPIO13 - connected sensor, but set to NONE in settings. GPIO14 - Second MS01, physically not connected.

16:57:45.605 TFS: File 'autoexec.bat' not found
16:57:46.690 SRC: MQTT
16:57:46.692 CMD: Grp 0, Cmd 'STATUS', Idx 1, Len 1, Pld 1, Data '1'
16:57:46.701 MQT: stat/tasmota_142214/STATUS1 = {"StatusPRM":{"Baudrate":115200,"SerialConfig":"8N1","GroupTopic":"tasmotas","OtaUrl":"http://ota.tasmota.com/tasmota32/tasmota32.bin","RestartReason":"Software reset CPU","Uptime":"0T00:00:06","StartupUTC":"2022-07-16T15:57:40","Sleep":50,"CfgHolder":4617,"BootCount":54,"BCResetTime":"2022-04-12T14:27:52","SaveCount":169}}
16:57:46.744 SRC: MQTT
16:57:46.746 CMD: Grp 0, Cmd 'STATUS', Idx 1, Len 2, Pld 11, Data '11'
16:57:46.752 BRY: GC from 6009 to 3594 bytes, objects freed 29/40 (in 1 ms) - slots from 84/122 to 40/122
16:57:46.765 MQT: stat/tasmota_142214/STATUS11 = {"StatusSTS":{"Time":"2022-07-16T16:57:46","Uptime":"0T00:00:06","UptimeSec":6,"Heap":154,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":53,"MqttCount":1,"Berry":{"HeapUsed":3,"Objects":40},"POWER1":"OFF","POWER2":"OFF","POWER3":"OFF","POWER4":"OFF","Wifi":{"AP":1,"SSId":"/dev/null","BSSId":"52:FF:20:2B:F3:37","Channel":12,"Mode":"11n","RSSI":100,"Signal":-43,"LinkCount":1,"Downtime":"0T00:00:04"}}}
16:57:46.802 SRC: MQTT
16:57:46.805 CMD: Grp 0, Cmd 'STATE', Idx 1, Len 0, Pld -99, Data ''
16:57:46.809 BRY: GC from 4054 to 3594 bytes, objects freed 1/40 (in 1 ms) - slots from 41/122 to 40/122
16:57:46.817 MQT: stat/tasmota_142214/RESULT = {"Time":"2022-07-16T16:57:46","Uptime":"0T00:00:06","UptimeSec":6,"Heap":152,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":57,"MqttCount":1,"Berry":{"HeapUsed":3,"Objects":40},"POWER1":"OFF","POWER2":"OFF","POWER3":"OFF","POWER4":"OFF","Wifi":{"AP":1,"SSId":"/dev/null","BSSId":"52:FF:20:2B:F3:37","Channel":12,"Mode":"11n","RSSI":100,"Signal":-43,"LinkCount":1,"Downtime":"0T00:00:04"}}
16:57:46.859 SRC: MQTT
16:57:46.862 CMD: Grp 0, Cmd 'STATUS', Idx 1, Len 2, Pld 10, Data '10'
16:57:46.877 MQT: stat/tasmota_142214/STATUS10 = {"StatusSNS":{"Time":"2022-07-16T16:57:46","MS01-12":{"Humidity":null,"Raw":0},"MS01-14":{"Humidity":null,"Raw":0},"ESP32":{"Temperature":61.7},"TempUnit":"C"}}
16:57:47.109 HTP: Consoles
16:57:47.847 QPC: Reset
16:57:47.904 DHT: Timeout waiting for start signal high pulse
16:57:47.957 DHT: Timeout waiting for start signal high pulse
16:57:48.420 HTP: Console
16:57:49.881 APP: Boot Count 55
16:57:49.886 BRY: GC from 4322 to 3594 bytes, objects freed 3/40 (in 1 ms) - slots from 43/122 to 40/122
16:57:49.899 MQT: tele/tasmota_142214/STATE = {"Time":"2022-07-16T16:57:49","Uptime":"0T00:00:09","UptimeSec":9,"Heap":155,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":50,"MqttCount":1,"Berry":{"HeapUsed":3,"Objects":40},"POWER1":"OFF","POWER2":"OFF","POWER3":"OFF","POWER4":"OFF","Wifi":{"AP":1,"SSId":"/dev/null","BSSId":"52:FF:20:2B:F3:37","Channel":12,"Mode":"11n","RSSI":100,"Signal":-44,"LinkCount":1,"Downtime":"0T00:00:04"}}
16:57:49.917 MQT: tele/tasmota_142214/SENSOR = {"Time":"2022-07-16T16:57:49","MS01-12":{"Humidity":null,"Raw":0},"MS01-14":{"Humidity":null,"Raw":0},"ESP32":{"Temperature":61.1},"TempUnit":"C"}
16:57:50.245 CFG: Saved, Count 170, Bytes 4096
16:57:51.897 DHT: Timeout waiting for start signal high pulse
16:57:51.952 DHT: Timeout waiting for start signal high pulse
16:57:54.904 MQT: tasmota/discovery/1097BD142214/config = {"ip":"192.168.101.33","dn":"fitowall_water_controller","fn":["fitowall_irrigation_pump","fitowall_valve_add_water","fitowall_pump_out","fitowall_valve_remove_water",null,null,null,null],"hn":"smarthome-fitowall-water-contro","mac":"1097BD142214","md":"ESP32-DevKit","ty":0,"if":0,"ofln":"Offline","onln":"Online","state":["OFF","ON","TOGGLE","HOLD"],"sw":"12.0.2.3","t":"tasmota_142214","ft":"%prefix%/%topic%/","tp":["cmnd","stat","tele"],"rl":[1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"swc":[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"swn":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"btn":[0,0,0,0,0,0,0,0],"so":{"4":0,"11":0,"13":1,"17":0,"20":0,"30":0,"68":0,"73":0,"82":0,"114":0,"117":0},"lk":0,"lt_st":0,"sho":[0,0,0,0],"sht":[[0,0,0],[0,0,0],[0,0,0],[0,0,0]],"ver":1} (retained)
16:57:54.937 MQT: tasmota/discovery/1097BD142214/sensors = {"sn":{"Time":"2022-07-16T16:57:54","MS01-12":{"Humidity":null,"Raw":0},"MS01-14":{"Humidity":null,"Raw":0},"ESP32":{"Temperature":61.1},"TempUnit":"C"},"ver":1} (retained)
16:57:55.914 DHT: Timeout waiting for start signal high pulse
16:57:55.969 DHT: Timeout waiting for start signal high pulse
16:57:56.287 SRC: MQTT
16:57:56.292 CMD: Grp 0, Cmd 'STATE', Idx 1, Len 0, Pld -99, Data ''
16:57:56.298 BRY: GC from 4410 to 3594 bytes, objects freed 4/40 (in 0 ms) - slots from 41/122 to 40/122
16:57:56.311 MQT: stat/tasmota_142214/RESULT = {"Time":"2022-07-16T16:57:56","Uptime":"0T00:00:16","UptimeSec":16,"Heap":154,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":44,"MqttCount":1,"Berry":{"HeapUsed":3,"Objects":40},"POWER1":"OFF","POWER2":"OFF","POWER3":"OFF","POWER4":"OFF","Wifi":{"AP":1,"SSId":"/dev/null","BSSId":"52:FF:20:2B:F3:37","Channel":12,"Mode":"11n","RSSI":100,"Signal":-43,"LinkCount":1,"Downtime":"0T00:00:04"}}
16:57:56.360 SRC: MQTT
16:57:56.364 CMD: Grp 0, Cmd 'STATUS', Idx 1, Len 2, Pld 10, Data '10'
16:57:56.384 MQT: stat/tasmota_142214/STATUS10 = {"StatusSNS":{"Time":"2022-07-16T16:57:56","MS01-12":{"Humidity":null,"Raw":0},"MS01-14":{"Humidity":null,"Raw":0},"ESP32":{"Temperature":61.7},"TempUnit":"C"}}
16:57:56.425 SRC: MQTT
16:57:56.429 CMD: Grp 0, Cmd 'STATUS', Idx 1, Len 2, Pld 11, Data '11'
16:57:56.436 BRY: GC from 4353 to 3594 bytes, objects freed 4/40 (in 2 ms) - slots from 45/122 to 40/122
16:57:56.449 MQT: stat/tasmota_142214/STATUS11 = {"StatusSTS":{"Time":"2022-07-16T16:57:56","Uptime":"0T00:00:16","UptimeSec":16,"Heap":154,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":53,"MqttCount":1,"Berry":{"HeapUsed":3,"Objects":40},"POWER1":"OFF","POWER2":"OFF","POWER3":"OFF","POWER4":"OFF","Wifi":{"AP":1,"SSId":"/dev/null","BSSId":"52:FF:20:2B:F3:37","Channel":12,"Mode":"11n","RSSI":100,"Signal":-43,"LinkCount":1,"Downtime":"0T00:00:04"}}}
16:57:56.503 SRC: MQTT
16:57:56.507 CMD: Grp 0, Cmd 'STATUS', Idx 1, Len 1, Pld 1, Data '1'
16:57:56.516 MQT: stat/tasmota_142214/STATUS1 = {"StatusPRM":{"Baudrate":115200,"SerialConfig":"8N1","GroupTopic":"tasmotas","OtaUrl":"http://ota.tasmota.com/tasmota32/tasmota32.bin","RestartReason":"Software reset CPU","Uptime":"0T00:00:16","StartupUTC":"2022-07-16T15:57:40","Sleep":50,"CfgHolder":4617,"BootCount":55,"BCResetTime":"2022-04-12T14:27:52","SaveCount":170}}
16:57:59.891 DHT: Timeout waiting for start signal high pulse
16:57:59.945 DHT: Timeout waiting for start signal high pulse
16:58:03.919 DHT: Timeout waiting for start signal high pulse
16:58:03.973 DHT: Timeout waiting for start signal high pulse
16:58:04.946 WIF: Checking connection...
16:58:07.909 DHT: Timeout waiting for start signal high pulse
16:58:07.963 DHT: Timeout waiting for start signal high pulse
16:58:11.894 DHT: Timeout waiting for start signal high pulse
16:58:11.948 DHT: Timeout waiting for start signal high pulse
16:58:15.931 DHT: Timeout waiting for start signal high pulse
16:58:15.986 DHT: Timeout waiting for start signal high pulse
16:58:19.916 DHT: Timeout waiting for start signal high pulse
16:58:19.970 DHT: Timeout waiting for start signal high pulse
16:58:23.892 DHT: Timeout waiting for start signal high pulse
16:58:23.946 DHT: Timeout waiting for start signal high pulse
16:58:24.959 WIF: Checking connection...
16:58:27.931 DHT: Timeout waiting for start signal high pulse
16:58:27.985 DHT: Timeout waiting for start signal high pulse
16:58:31.913 DHT: Timeout waiting for start signal high pulse
16:58:31.967 DHT: Timeout waiting for start signal high pulse
16:58:35.909 DHT: Timeout waiting for start signal high pulse
16:58:35.964 DHT: Timeout waiting for start signal high pulse
16:58:39.894 DHT: Timeout waiting for start signal high pulse
16:58:39.948 DHT: Timeout waiting for start signal high pulse
16:58:43.930 DHT: Timeout waiting for start signal high pulse
16:58:43.986 DHT: Timeout waiting for start signal high pulse
16:58:44.962 WIF: Checking connection...
16:58:47.928 DHT: Timeout waiting for start signal high pulse
16:58:47.984 DHT: Timeout waiting for start signal high pulse
16:58:51.899 DHT: Timeout waiting for start signal high pulse
16:58:51.954 DHT: Timeout waiting for start signal high pulse
16:58:55.931 DHT: Timeout waiting for start signal high pulse
16:58:55.985 DHT: Timeout waiting for start signal high pulse
16:58:59.906 DHT: Timeout waiting for start signal high pulse
16:58:59.960 DHT: Timeout waiting for start signal high pulse
16:59:03.936 DHT: Timeout waiting for start signal high pulse
16:59:03.990 DHT: Timeout waiting for start signal high pulse
16:59:04.966 WIF: Checking connection...
16:59:07.929 DHT: Timeout waiting for start signal high pulse
16:59:07.983 DHT: Timeout waiting for start signal high pulse
16:59:11.912 DHT: Timeout waiting for start signal high pulse
16:59:11.967 DHT: Timeout waiting for start signal high pulse
16:59:15.894 DHT: Timeout waiting for start signal high pulse
16:59:15.949 DHT: Timeout waiting for start signal high pulse
16:59:19.932 DHT: Timeout waiting for start signal high pulse
16:59:19.985 DHT: Timeout waiting for start signal high pulse
16:59:23.907 DHT: Timeout waiting for start signal high pulse
16:59:23.961 DHT: Timeout waiting for start signal high pulse
16:59:24.928 WIF: Checking connection...
16:59:27.887 DHT: Timeout waiting for start signal high pulse
16:59:27.941 DHT: Timeout waiting for start signal high pulse
16:59:31.932 DHT: Timeout waiting for start signal high pulse
16:59:31.986 DHT: Timeout waiting for start signal high pulse
16:59:35.913 DHT: Timeout waiting for start signal high pulse
16:59:35.967 DHT: Timeout waiting for start signal high pulse
16:59:39.897 DHT: Timeout waiting for start signal high pulse
16:59:39.951 DHT: Timeout waiting for start signal high pulse
16:59:43.932 DHT: Timeout waiting for start signal high pulse
16:59:43.986 DHT: Timeout waiting for start signal high pulse
16:59:44.953 WIF: Checking connection...
16:59:47.911 DHT: Timeout waiting for start signal high pulse
16:59:47.965 DHT: Timeout waiting for start signal high pulse
16:59:51.892 DHT: Timeout waiting for start signal high pulse
16:59:51.947 DHT: Timeout waiting for start signal high pulse
16:59:55.930 DHT: Timeout waiting for start signal high pulse
16:59:55.985 DHT: Timeout waiting for start signal high pulse
16:59:59.918 DHT: Timeout waiting for start signal high pulse
16:59:59.973 DHT: Timeout waiting for start signal high pulse
17:00:03.905 DHT: Timeout waiting for start signal high pulse
17:00:03.959 DHT: Timeout waiting for start signal high pulse
17:00:04.681 BRY: GC from 7210 to 3680 bytes, objects freed 31/40 (in 1 ms) - slots from 43/122 to 40/122
17:00:04.928 WIF: Checking connection...
17:00:07.888 DHT: Timeout waiting for start signal high pulse
17:00:07.942 DHT: Timeout waiting for start signal high pulse
17:00:11.921 DHT: Timeout waiting for start signal high pulse
17:00:11.977 DHT: Timeout waiting for start signal high pulse
17:00:15.906 DHT: Timeout waiting for start signal high pulse
17:00:15.960 DHT: Timeout waiting for start signal high pulse
17:00:19.888 DHT: Timeout waiting for start signal high pulse
17:00:19.942 DHT: Timeout waiting for start signal high pulse
17:00:23.912 DHT: Timeout waiting for start signal high pulse
17:00:23.966 DHT: Timeout waiting for start signal high pulse
17:00:24.933 WIF: Checking connection...
17:00:27.896 DHT: Timeout waiting for start signal high pulse
17:00:27.950 DHT: Timeout waiting for start signal high pulse
17:00:31.919 DHT: Timeout waiting for start signal high pulse
17:00:31.973 DHT: Timeout waiting for start signal high pulse
bob-tm commented 2 years ago

Log2. GPIO2 - first MS01, physically not connected. GPIO12 - connected sensor, but set to NONE in settings. GPIO13 - Second MS01, connected.

17:06:19.826 MQT: tele/tasmota_142214/STATE = {"Time":"2022-07-16T17:06:19","Uptime":"0T00:00:10","UptimeSec":10,"Heap":156,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":45,"MqttCount":1,"Berry":{"HeapUsed":3,"Objects":40},"POWER1":"OFF","POWER2":"OFF","POWER3":"OFF","POWER4":"OFF","Wifi":{"AP":1,"SSId":"/dev/null","BSSId":"52:FF:20:2B:F3:37","Channel":12,"Mode":"11n","RSSI":100,"Signal":-44,"LinkCount":1,"Downtime":"0T00:00:04"}}
17:06:19.848 MQT: tele/tasmota_142214/SENSOR = {"Time":"2022-07-16T17:06:19","MS01-02":{"Humidity":null,"Raw":0},"MS01-13":{"Humidity":19.3,"Raw":16387},"ESP32":{"Temperature":62.2},"TempUnit":"C"}
17:06:20.514 CFG: Saved, Count 172, Bytes 4096
17:06:21.881 DHT: Timeout waiting for start signal high pulse
17:06:21.891 DHT: Read 40230FA012
17:06:24.860 MQT: tasmota/discovery/1097BD142214/config = {"ip":"192.168.101.33","dn":"fitowall_water_controller","fn":["fitowall_irrigation_pump","fitowall_valve_add_water","fitowall_pump_out","fitowall_valve_remove_water",null,null,null,null],"hn":"smarthome-fitowall-water-contro","mac":"1097BD142214","md":"ESP32-DevKit","ty":0,"if":0,"ofln":"Offline","onln":"Online","state":["OFF","ON","TOGGLE","HOLD"],"sw":"12.0.2.3","t":"tasmota_142214","ft":"%prefix%/%topic%/","tp":["cmnd","stat","tele"],"rl":[1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"swc":[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"swn":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"btn":[0,0,0,0,0,0,0,0],"so":{"4":0,"11":0,"13":1,"17":0,"20":0,"30":0,"68":0,"73":0,"82":0,"114":0,"117":0},"lk":0,"lt_st":0,"sho":[0,0,0,0],"sht":[[0,0,0],[0,0,0],[0,0,0],[0,0,0]],"ver":1} (retained)
17:06:24.899 MQT: tasmota/discovery/1097BD142214/sensors = {"sn":{"Time":"2022-07-16T17:06:24","MS01-02":{"Humidity":null,"Raw":0},"MS01-13":{"Humidity":19.3,"Raw":16419},"ESP32":{"Temperature":62.2},"TempUnit":"C"},"ver":1} (retained)
17:06:25.883 DHT: Timeout waiting for start signal high pulse
17:06:25.893 DHT: Read 40230F2012
17:06:25.896 DHT: Checksum failure 40 23 0F 20 12 =? 92
17:06:26.015 SRC: MQTT
17:06:26.018 CMD: Grp 0, Cmd 'STATE', Idx 1, Len 0, Pld -99, Data ''
17:06:26.026 BRY: GC from 4423 to 3594 bytes, objects freed 4/40 (in 1 ms) - slots from 41/122 to 40/122
17:06:26.040 MQT: stat/tasmota_142214/RESULT = {"Time":"2022-07-16T17:06:26","Uptime":"0T00:00:17","UptimeSec":17,"Heap":155,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":44,"MqttCount":1,"Berry":{"HeapUsed":3,"Objects":40},"POWER1":"OFF","POWER2":"OFF","POWER3":"OFF","POWER4":"OFF","Wifi":{"AP":1,"SSId":"/dev/null","BSSId":"52:FF:20:2B:F3:37","Channel":12,"Mode":"11n","RSSI":100,"Signal":-44,"LinkCount":1,"Downtime":"0T00:00:04"}}
17:06:26.096 SRC: MQTT
17:06:26.099 CMD: Grp 0, Cmd 'STATUS', Idx 1, Len 2, Pld 10, Data '10'
17:06:26.115 MQT: stat/tasmota_142214/STATUS10 = {"StatusSNS":{"Time":"2022-07-16T17:06:26","MS01-02":{"Humidity":null,"Raw":0},"MS01-13":{"Humidity":19.3,"Raw":16419},"ESP32":{"Temperature":62.2},"TempUnit":"C"}}
17:06:26.152 SRC: MQTT
17:06:26.156 CMD: Grp 0, Cmd 'STATUS', Idx 1, Len 2, Pld 11, Data '11'
17:06:26.164 BRY: GC from 4357 to 3594 bytes, objects freed 4/40 (in 1 ms) - slots from 45/122 to 40/122
17:06:26.180 MQT: stat/tasmota_142214/STATUS11 = {"StatusSTS":{"Time":"2022-07-16T17:06:26","Uptime":"0T00:00:17","UptimeSec":17,"Heap":153,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":52,"MqttCount":1,"Berry":{"HeapUsed":3,"Objects":40},"POWER1":"OFF","POWER2":"OFF","POWER3":"OFF","POWER4":"OFF","Wifi":{"AP":1,"SSId":"/dev/null","BSSId":"52:FF:20:2B:F3:37","Channel":12,"Mode":"11n","RSSI":100,"Signal":-44,"LinkCount":1,"Downtime":"0T00:00:04"}}}
17:06:26.229 SRC: MQTT
17:06:26.233 CMD: Grp 0, Cmd 'STATUS', Idx 1, Len 1, Pld 1, Data '1'
17:06:26.246 MQT: stat/tasmota_142214/STATUS1 = {"StatusPRM":{"Baudrate":115200,"SerialConfig":"8N1","GroupTopic":"tasmotas","OtaUrl":"http://ota.tasmota.com/tasmota32/tasmota32.bin","RestartReason":"Software reset CPU","Uptime":"0T00:00:17","StartupUTC":"2022-07-16T16:06:09","Sleep":50,"CfgHolder":4617,"BootCount":56,"BCResetTime":"2022-04-12T14:27:52","SaveCount":172}}
17:06:29.857 DHT: Timeout waiting for start signal high pulse
17:06:29.867 DHT: Read 40430FA032
17:06:33.875 DHT: Timeout waiting for start signal high pulse
17:06:33.885 DHT: Read 40430F2032
17:06:33.887 DHT: Checksum failure 40 43 0F 20 32 =? B2
17:06:35.054 WIF: Checking connection...
17:06:37.882 DHT: Timeout waiting for start signal high pulse
17:06:37.891 DHT: Read 40430FA032
17:06:41.882 DHT: Timeout waiting for start signal high pulse
17:06:41.936 DHT: Timeout waiting for start signal high pulse
17:06:44.509 HTP: Configuration
17:06:45.887 DHT: Timeout waiting for start signal high pulse
17:06:45.898 DHT: Read 40030F2072
17:06:45.961 HTP: Configure Module
17:06:49.832 DHT: Timeout waiting for start signal high pulse
17:06:49.841 DHT: Read 40430F2032
17:06:49.844 DHT: Checksum failure 40 43 0F 20 32 =? B2
17:06:53.875 DHT: Timeout waiting for start signal high pulse
17:06:53.884 DHT: Read 40230F2012
17:06:53.886 DHT: Checksum failure 40 23 0F 20 12 =? 92
17:06:55.356 WIF: Checking connection...
17:06:57.857 DHT: Timeout waiting for start signal high pulse
17:06:57.866 DHT: Read 40230FA012
17:07:01.836 DHT: Timeout waiting for start signal high pulse
17:07:01.845 DHT: Read 40230FA012
17:07:05.872 DHT: Timeout waiting for start signal high pulse
17:07:05.882 DHT: Read 40230FA012
17:07:09.852 DHT: Timeout waiting for start signal high pulse
17:07:09.861 DHT: Read 40230F2012
17:07:09.863 DHT: Checksum failure 40 23 0F 20 12 =? 92
17:07:10.876 HTP: Configuration
17:07:13.287 HTP: Main Menu
17:07:13.844 DHT: Timeout waiting for start signal high pulse
17:07:13.854 DHT: Read 40230FA012
17:07:14.869 HTP: Consoles
17:07:15.319 WIF: Checking connection...
17:07:16.713 HTP: Console
17:07:17.881 DHT: Timeout waiting for start signal high pulse
17:07:17.891 DHT: Read 40230F2012
17:07:17.893 DHT: Checksum failure 40 23 0F 20 12 =? 92
17:07:21.875 DHT: Timeout waiting for start signal high pulse
17:07:21.884 DHT: Read 40030F20F2
17:07:21.886 DHT: Checksum failure 40 03 0F 20 F2 =? 72
17:07:25.867 DHT: Timeout waiting for start signal high pulse
17:07:25.876 DHT: Read 40030F20F2
17:07:25.878 DHT: Checksum failure 40 03 0F 20 F2 =? 72
17:07:29.869 DHT: Timeout waiting for start signal high pulse
17:07:29.879 DHT: Read 40230F2012
17:07:29.881 DHT: Checksum failure 40 23 0F 20 12 =? 92
17:07:33.856 DHT: Timeout waiting for start signal high pulse
17:07:33.910 DHT: Timeout waiting for start signal high pulse
17:07:35.584 WIF: Checking connection...
17:07:37.849 DHT: Timeout waiting for start signal high pulse
17:07:37.859 DHT: Read 40230F2012
17:07:37.861 DHT: Checksum failure 40 23 0F 20 12 =? 92
17:07:41.844 DHT: Timeout waiting for start signal high pulse
17:07:41.852 DHT: Read 40230FA012
17:07:45.850 DHT: Timeout waiting for start signal high pulse
17:07:45.858 DHT: Read 40230FA012
17:07:49.884 DHT: Timeout waiting for start signal high pulse
17:07:49.891 DHT: Read 40230FA012
17:07:53.358 HTP: Main Menu
17:07:53.863 DHT: Timeout waiting for start signal high pulse
17:07:53.870 DHT: Read 40230F2012
17:07:53.873 DHT: Checksum failure 40 23 0F 20 12 =? 92
17:07:55.554 WIF: Checking connection...
17:07:57.878 DHT: Timeout waiting for start signal high pulse
17:07:57.887 DHT: Read 40230FA012
17:08:01.884 DHT: Timeout waiting for start signal high pulse
17:08:01.893 DHT: Read 40230F2012
17:08:01.895 DHT: Checksum failure 40 23 0F 20 12 =? 92
17:08:05.843 DHT: Timeout waiting for start signal high pulse
17:08:05.852 DHT: Read 40230F2012
17:08:05.855 DHT: Checksum failure 40 23 0F 20 12 =? 92
17:08:09.866 DHT: Timeout waiting for start signal high pulse
17:08:09.875 DHT: Read 40230FA012
17:08:12.516 HTP: Configuration
17:08:13.851 DHT: Timeout waiting for start signal high pulse
17:08:13.861 DHT: Read 40430FA032
17:08:15.580 WIF: Checking connection...
17:08:17.846 DHT: Timeout waiting for start signal high pulse
17:08:17.856 DHT: Read 40430F2032
17:08:17.859 DHT: Checksum failure 40 43 0F 20 32 =? B2
17:08:21.857 DHT: Timeout waiting for start signal high pulse
17:08:21.866 DHT: Read 40430F2032
17:08:21.869 DHT: Checksum failure 40 43 0F 20 32 =? B2
17:08:25.846 DHT: Timeout waiting for start signal high pulse
17:08:25.855 DHT: Read 40430F2032
17:08:25.857 DHT: Checksum failure 40 43 0F 20 32 =? B2
17:08:29.838 DHT: Timeout waiting for start signal high pulse
17:08:29.847 DHT: Read 40430FA032
17:08:29.966 BRY: GC from 7203 to 3684 bytes, objects freed 30/40 (in 2 ms) - slots from 43/122 to 40/122
17:08:33.873 DHT: Timeout waiting for start signal high pulse
17:08:33.884 DHT: Read 40430F2032
17:08:33.886 DHT: Checksum failure 40 43 0F 20 32 =? B2
17:08:35.555 WIF: Checking connection...
17:08:37.877 DHT: Timeout waiting for start signal high pulse
17:08:37.886 DHT: Read 40430F2032
17:08:37.888 DHT: Checksum failure 40 43 0F 20 32 =? B2
17:08:41.876 DHT: Timeout waiting for start signal high pulse
17:08:41.886 DHT: Read 40430FA032
17:08:45.868 DHT: Timeout waiting for start signal high pulse
17:08:45.877 DHT: Read 40430FA032
17:08:49.853 DHT: Timeout waiting for start signal high pulse
17:08:49.862 DHT: Read 40430FA032
17:08:53.849 DHT: Timeout waiting for start signal high pulse
17:08:53.858 DHT: Read 40430FA032
17:08:55.618 WIF: Checking connection...
17:08:57.837 DHT: Timeout waiting for start signal high pulse
17:08:57.846 DHT: Read 40430F2032
17:08:57.848 DHT: Checksum failure 40 43 0F 20 32 =? B2
17:09:01.844 DHT: Timeout waiting for start signal high pulse
17:09:01.855 DHT: Read 40430FA032
17:09:05.895 DHT: Timeout waiting for start signal high pulse
17:09:05.905 DHT: Read 40430FA032
17:09:09.834 DHT: Timeout waiting for start signal high pulse
17:09:09.843 DHT: Read 40430F2032
17:09:09.845 DHT: Checksum failure 40 43 0F 20 32 =? B2
17:09:13.843 DHT: Timeout waiting for start signal high pulse
17:09:13.852 DHT: Read 40430FA032
17:09:15.565 WIF: Checking connection...
17:09:17.844 DHT: Timeout waiting for start signal high pulse
17:09:17.854 DHT: Read 40230FA012
17:09:21.846 DHT: Timeout waiting for start signal high pulse
17:09:21.856 DHT: Read 40230FA012
17:09:25.836 DHT: Timeout waiting for start signal high pulse
17:09:25.846 DHT: Read 40230F2012
17:09:25.849 DHT: Checksum failure 40 23 0F 20 12 =? 92
17:09:29.874 DHT: Timeout waiting for start signal high pulse
17:09:29.883 DHT: Read 40430FA032
17:09:33.867 DHT: Timeout waiting for start signal high pulse
17:09:33.877 DHT: Read 40430F2032
17:09:33.880 DHT: Checksum failure 40 43 0F 20 32 =? B2
17:09:35.599 WIF: Checking connection...
17:09:37.857 DHT: Timeout waiting for start signal high pulse
17:09:37.867 DHT: Read 40630FA052
17:09:41.855 DHT: Timeout waiting for start signal high pulse
17:09:41.864 DHT: Read 40630FA052
arendst commented 2 years ago

Thx.

I'm about to release an updated version with changed timings specifically for the ESP32. I wasn't able to test the MS01 on an ESP32 until today and noticed it doesn't work with the ESP8266 timings. I've changed it and now I see valid readings with one MS01 connected.

Stay tuned...

bob-tm commented 2 years ago

Log3 GPIO12 - connected sensor, but set to NONE in settings. GPIO13 - Second MS01, connected. So Tasmota see only one MS01_13 sensor, and it stop working. GPIO13 = null, but when GPIO12 set as MS01 sensor, GPIO13 reads correct value.

17:20:29.108 SRC: MQTT
17:20:29.111 CMD: Grp 0, Cmd 'STATE', Idx 1, Len 0, Pld -99, Data ''
17:20:29.118 BRY: GC from 4243 to 3594 bytes, objects freed 2/40 (in 1 ms) - slots from 41/122 to 40/122
17:20:29.134 MQT: stat/tasmota_142214/RESULT = {"Time":"2022-07-16T17:20:29","Uptime":"0T00:00:18","UptimeSec":18,"Heap":155,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":39,"MqttCount":1,"Berry":{"HeapUsed":3,"Objects":40},"POWER1":"OFF","POWER2":"OFF","POWER3":"OFF","POWER4":"OFF","Wifi":{"AP":1,"SSId":"/dev/null","BSSId":"52:FF:20:2B:F3:37","Channel":12,"Mode":"11n","RSSI":100,"Signal":-44,"LinkCount":1,"Downtime":"0T00:00:04"}}
17:20:29.190 SRC: MQTT
17:20:29.195 CMD: Grp 0, Cmd 'STATUS', Idx 1, Len 2, Pld 10, Data '10'
17:20:29.214 MQT: stat/tasmota_142214/STATUS10 = {"StatusSNS":{"Time":"2022-07-16T17:20:29","MS01":{"Humidity":null,"Raw":0},"ESP32":{"Temperature":53.3},"TempUnit":"C"}}
17:20:29.254 SRC: MQTT
17:20:29.257 CMD: Grp 0, Cmd 'STATUS', Idx 1, Len 2, Pld 11, Data '11'
17:20:29.265 BRY: GC from 4314 to 3594 bytes, objects freed 4/40 (in 1 ms) - slots from 45/122 to 40/122
17:20:29.278 MQT: stat/tasmota_142214/STATUS11 = {"StatusSTS":{"Time":"2022-07-16T17:20:29","Uptime":"0T00:00:18","UptimeSec":18,"Heap":155,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":50,"MqttCount":1,"Berry":{"HeapUsed":3,"Objects":40},"POWER1":"OFF","POWER2":"OFF","POWER3":"OFF","POWER4":"OFF","Wifi":{"AP":1,"SSId":"/dev/null","BSSId":"52:FF:20:2B:F3:37","Channel":12,"Mode":"11n","RSSI":100,"Signal":-44,"LinkCount":1,"Downtime":"0T00:00:04"}}}
17:20:29.329 SRC: MQTT
17:20:29.334 CMD: Grp 0, Cmd 'STATUS', Idx 1, Len 1, Pld 1, Data '1'
17:20:29.348 MQT: stat/tasmota_142214/STATUS1 = {"StatusPRM":{"Baudrate":115200,"SerialConfig":"8N1","GroupTopic":"tasmotas","OtaUrl":"http://ota.tasmota.com/tasmota32/tasmota32.bin","RestartReason":"Software reset CPU","Uptime":"0T00:00:18","StartupUTC":"2022-07-16T16:20:11","Sleep":50,"CfgHolder":4617,"BootCount":67,"BCResetTime":"2022-04-12T14:27:52","SaveCount":192}}
17:20:31.860 DHT: Timeout waiting for start signal high pulse
17:20:35.887 DHT: Timeout waiting for start signal high pulse
17:20:37.820 WIF: Checking connection...
17:20:39.878 DHT: Timeout waiting for start signal high pulse
17:20:43.877 DHT: Timeout waiting for start signal high pulse
17:20:47.871 DHT: Timeout waiting for start signal high pulse
17:20:51.856 DHT: Timeout waiting for start signal high pulse
17:20:55.861 DHT: Timeout waiting for start signal high pulse
17:20:57.828 WIF: Checking connection...
17:20:59.846 DHT: Timeout waiting for start signal high pulse
17:21:03.888 DHT: Timeout waiting for start signal high pulse
17:21:07.846 DHT: Timeout waiting for start signal high pulse
17:21:08.961 HTP: Main Menu
17:21:10.706 HTP: Consoles
17:21:11.861 DHT: Timeout waiting for start signal high pulse
17:21:12.278 HTP: Console
17:21:15.843 DHT: Timeout waiting for start signal high pulse
17:21:17.817 WIF: Checking connection...
17:21:19.883 DHT: Timeout waiting for start signal high pulse
17:21:23.871 DHT: Timeout waiting for start signal high pulse
17:21:27.850 DHT: Timeout waiting for start signal high pulse
17:21:31.845 DHT: Timeout waiting for start signal high pulse
17:21:35.867 DHT: Timeout waiting for start signal high pulse
17:21:37.842 WIF: Checking connection...
17:21:39.845 DHT: Timeout waiting for start signal high pulse
17:21:43.877 DHT: Timeout waiting for start signal high pulse
17:21:47.877 DHT: Timeout waiting for start signal high pulse
17:21:51.856 DHT: Timeout waiting for start signal high pulse
17:21:55.844 DHT: Timeout waiting for start signal high pulse
17:21:57.811 WIF: Checking connection...
17:21:59.868 DHT: Timeout waiting for start signal high pulse
17:22:03.857 DHT: Timeout waiting for start signal high pulse
17:22:07.849 DHT: Timeout waiting for start signal high pulse
17:22:11.886 DHT: Timeout waiting for start signal high pulse
17:22:15.860 DHT: Timeout waiting for start signal high pulse
17:22:17.827 WIF: Checking connection...
17:22:19.886 DHT: Timeout waiting for start signal high pulse
17:22:23.868 DHT: Timeout waiting for start signal high pulse
17:22:27.852 DHT: Timeout waiting for start signal high pulse
17:22:31.848 DHT: Timeout waiting for start signal high pulse
17:22:35.875 DHT: Timeout waiting for start signal high pulse
17:22:37.849 WIF: Checking connection...
17:22:39.854 DHT: Timeout waiting for start signal high pulse
17:22:43.889 DHT: Timeout waiting for start signal high pulse
17:22:47.876 DHT: Timeout waiting for start signal high pulse
17:22:51.852 DHT: Timeout waiting for start signal high pulse
17:22:55.883 DHT: Timeout waiting for start signal high pulse
17:22:57.853 WIF: Checking connection...
17:22:59.860 DHT: Timeout waiting for start signal high pulse
17:23:03.882 DHT: Timeout waiting for start signal high pulse
17:23:07.875 DHT: Timeout waiting for start signal high pulse
arendst commented 2 years ago

Try latest changes either as self-compile or wait an hour for the compiled development version become available for OTA upload at http://ota.tasmota.com/tasmota32/tasmota32.bin

Let me know what results you get with one and two sensors configured.

sfromis commented 2 years ago

"GPIO12":{"8768":"MS01"},"GPIO13":{"8768":"MS01"},

This config cannot work, as same component number can only be used for one pin.

arendst commented 2 years ago

@sfromis Yes that's true EXCEPT... The DHT driver was the first to support more than one sensor and it's implementation is a bit different from all others.

The above config is fine and should work (at least it works for my two AM2301 configured the same as above). The DHT sensor enumerates the names by gpio name and detects up to four sensors starting from the lowest gpio number.

SO in short, it's OK.

EDIT: See below (only in my driver) debug message at startup:

00:00:00.304 DHT: Pin 17, Type 274, Index 1184
00:00:00.305 DHT: Pin 18, Type 38, Index 1184
00:00:00.306 DHT: Pin 19, Type 38, Index 1184
00:00:00.307 DHT: Pin 22, Type 274, Index 1184

EDIT2: image

bob-tm commented 2 years ago

Works!!! But with some checksum errors

17:48:58.194 SRC: MQTT
17:48:58.197 CMD: Grp 0, Cmd 'STATUS', Idx 1, Len 2, Pld 10, Data '10'
17:48:58.217 MQT: stat/tasmota_142214/STATUS10 = {"StatusSNS":{"Time":"2022-07-16T17:48:58","MS01-12":{"Humidity":19.0,"Raw":16806},"MS01-13":{"Humidity":19.1,"Raw":16709},"ESP32":{"Temperature":53.3},"TempUnit":"C"}}
17:48:58.257 SRC: MQTT
17:48:58.261 CMD: Grp 0, Cmd 'STATUS', Idx 1, Len 2, Pld 11, Data '11'
17:48:58.268 BRY: GC from 4361 to 3594 bytes, objects freed 4/40 (in 1 ms) - slots from 45/122 to 40/122
17:48:58.283 MQT: stat/tasmota_142214/STATUS11 = {"StatusSTS":{"Time":"2022-07-16T17:48:58","Uptime":"0T00:00:17","UptimeSec":17,"Heap":152,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":49,"MqttCount":1,"Berry":{"HeapUsed":3,"Objects":40},"POWER1":"OFF","POWER2":"OFF","POWER3":"OFF","POWER4":"OFF","Wifi":{"AP":1,"SSId":"/dev/null","BSSId":"52:FF:20:2B:F3:37","Channel":12,"Mode":"11n","RSSI":100,"Signal":-41,"LinkCount":1,"Downtime":"0T00:00:04"}}}
17:48:58.333 SRC: MQTT
17:48:58.337 CMD: Grp 0, Cmd 'STATUS', Idx 1, Len 1, Pld 1, Data '1'
17:48:58.349 MQT: stat/tasmota_142214/STATUS1 = {"StatusPRM":{"Baudrate":115200,"SerialConfig":"8N1","GroupTopic":"tasmotas","OtaUrl":"http://ota.tasmota.com/tasmota32/tasmota32.bin","RestartReason":"Software reset CPU","Uptime":"0T00:00:17","StartupUTC":"2022-07-16T16:48:41","Sleep":50,"CfgHolder":4617,"BootCount":69,"BCResetTime":"2022-04-12T14:27:52","SaveCount":197}}
17:49:01.918 DHT: Pin12 read 41A60FA096
17:49:01.928 DHT: Pin13 read 41440FA035
17:49:01.930 DHT: Pin13 checksum failure 41440FA035 =? 34
17:49:02.512 HTP: Main Menu
17:49:05.862 DHT: Pin12 read 41A60FA096
17:49:05.870 DHT: Pin13 read 41650F2055
17:49:05.872 DHT: Pin13 checksum failure 41650F2055 =? D5
17:49:06.399 HTP: Consoles
17:49:06.851 WIF: Checking connection...
17:49:07.996 HTP: Console
17:49:09.905 DHT: Pin12 timeout waiting for high pulse
17:49:09.914 DHT: Pin13 read 41450FA035
17:49:13.901 DHT: Pin12 read 41260FA096
17:49:13.904 DHT: Pin12 checksum failure 41260FA096 =? 16
17:49:13.914 DHT: Pin13 read 41410FA035
17:49:13.916 DHT: Pin13 checksum failure 41410FA035 =? 31
17:49:17.872 DHT: Pin12 read 41A60F2096
17:49:17.875 DHT: Pin12 checksum failure 41A60F2096 =? 16
17:49:17.884 DHT: Pin13 read 41610F2055
17:49:17.886 DHT: Pin13 checksum failure 41610F2055 =? D1
17:49:21.882 DHT: Pin12 read 41A60FA096
17:49:21.890 DHT: Pin13 read 41450F2035
17:49:21.892 DHT: Pin13 checksum failure 41450F2035 =? B5
17:49:25.885 DHT: Pin12 read 41A60FA096
17:49:25.893 DHT: Pin13 read 41450FA031
17:49:25.895 DHT: Pin13 checksum failure 41450FA031 =? 35
17:49:26.876 WIF: Checking connection...
17:49:29.890 DHT: Pin12 read 41A60FA096
17:49:29.897 DHT: Pin13 read 41650FA051
17:49:29.901 DHT: Pin13 checksum failure 41650FA051 =? 55
17:49:33.935 DHT: Pin12 timeout waiting for high pulse
17:49:33.943 DHT: Pin13 read 41440FA035
17:49:33.945 DHT: Pin13 checksum failure 41440FA035 =? 34
17:49:37.886 DHT: Pin12 read 41A60FA016
17:49:37.889 DHT: Pin12 checksum failure 41A60FA016 =? 96
17:49:37.899 DHT: Pin13 read 41450FA035
17:49:41.893 DHT: Pin12 read 41C60FA0B6
17:49:41.904 DHT: Pin13 read 41650FA055
17:49:45.956 DHT: Pin12 timeout waiting for high pulse
17:49:45.965 DHT: Pin13 read 41450FA034
17:49:45.968 DHT: Pin13 checksum failure 41450FA034 =? 35
17:49:46.838 WIF: Checking connection...
17:49:49.895 DHT: Pin12 read 41C60FA0B6
17:49:49.903 DHT: Pin13 read 41450FA035
17:49:53.910 DHT: Pin12 read 41A60FA096
17:49:53.918 DHT: Pin13 read 41650F2055
17:49:53.920 DHT: Pin13 checksum failure 41650F2055 =? D5
17:49:57.869 DHT: Pin12 read 41260FA096
17:49:57.872 DHT: Pin12 checksum failure 41260FA096 =? 16
17:49:57.881 DHT: Pin13 read 41450F2035
17:49:57.883 DHT: Pin13 checksum failure 41450F2035 =? B5
17:50:01.872 DHT: Pin12 read 41C60FA0B6
17:50:01.881 DHT: Pin13 read 01060F2076
17:50:01.885 DHT: Pin13 checksum failure 01060F2076 =? 36
17:50:05.928 DHT: Pin12 timeout waiting for high pulse
17:50:05.938 DHT: Pin13 read 41450FA035
17:50:06.844 WIF: Checking connection...
17:50:09.918 DHT: Pin12 read 41C60FA0B6
17:50:09.926 DHT: Pin13 read 41450FA035
17:50:13.883 DHT: Pin12 read 41A60DA096
17:50:13.886 DHT: Pin12 checksum failure 41A60DA096 =? 94
17:50:13.893 DHT: Pin13 read 41650F2055
17:50:13.895 DHT: Pin13 checksum failure 41650F2055 =? D5
17:50:17.886 DHT: Pin12 read 41A60F2096
17:50:17.889 DHT: Pin12 checksum failure 41A60F2096 =? 16
17:50:17.896 DHT: Pin13 read 41450E2035
17:50:17.898 DHT: Pin13 checksum failure 41450E2035 =? B4
17:50:21.905 DHT: Pin12 read 41A60FA016
17:50:21.908 DHT: Pin12 checksum failure 41A60FA016 =? 96
17:50:21.916 DHT: Pin13 read 416507A055
17:50:21.918 DHT: Pin13 checksum failure 416507A055 =? 4D
17:50:23.197 HTP: Consoles
17:50:24.733 HTP: Main Menu
17:50:25.906 DHT: Pin12 read 41C60F20B6
17:50:25.909 DHT: Pin12 checksum failure 41C60F20B6 =? 36
17:50:25.917 DHT: Pin13 read 41650FA055
17:50:26.833 WIF: Checking connection...
17:50:28.493 HTP: Configuration
17:50:29.880 DHT: Pin12 read 41C60FA036
17:50:29.884 DHT: Pin12 checksum failure 41C60FA036 =? B6
17:50:29.892 DHT: Pin13 read 41450FA035
17:50:31.364 HTP: Main Menu
17:50:33.609 HTP: Consoles
17:50:33.906 DHT: Pin12 read 41A60FA096
17:50:33.916 DHT: Pin13 read 41650FA055
17:50:35.042 HTP: Main Menu
17:50:37.931 DHT: Pin12 timeout waiting for high pulse
17:50:37.942 DHT: Pin13 read 4145032035
17:50:37.944 DHT: Pin13 checksum failure 4145032035 =? A9
17:50:38.318 HTP: Configuration
17:50:40.795 HTP: Main Menu
17:50:41.882 DHT: Pin12 read 41C60FA0B6
17:50:41.891 DHT: Pin13 read 41450FA015
17:50:41.893 DHT: Pin13 checksum failure 41450FA015 =? 35
17:50:42.362 HTP: Consoles
17:50:44.897 HTP: Console
17:50:45.924 DHT: Pin12 timeout waiting for high pulse
17:50:45.933 DHT: Pin13 read 41650FA054
17:50:45.935 DHT: Pin13 checksum failure 41650FA054 =? 55
17:50:47.355 WIF: Checking connection...
17:50:49.878 DHT: Pin12 read 41A60FA096
17:50:49.888 DHT: Pin13 read 416507A055
17:50:49.891 DHT: Pin13 checksum failure 416507A055 =? 4D
17:50:53.881 DHT: Pin12 read 41C60FA0B6
17:50:53.890 DHT: Pin13 read 41450FA035
17:50:57.883 DHT: Pin12 read 41A60FA096
17:50:57.892 DHT: Pin13 read 41650FA055
17:50:58.571 BRY: GC from 7221 to 3688 bytes, objects freed 29/40 (in 1 ms) - slots from 43/122 to 40/122
17:51:01.885 DHT: Pin12 read 41A60FA096
17:51:01.895 DHT: Pin13 read 41410FA035
17:51:01.897 DHT: Pin13 checksum failure 41410FA035 =? 31
17:51:05.888 DHT: Pin12 read 41A60FA016
17:51:05.890 DHT: Pin12 checksum failure 41A60FA016 =? 96
17:51:05.898 DHT: Pin13 read 41450F2035
17:51:05.900 DHT: Pin13 checksum failure 41450F2035 =? B5
17:51:07.379 WIF: Checking connection...
17:51:09.873 DHT: Pin12 read 41A60FA086
17:51:09.876 DHT: Pin12 checksum failure 41A60FA086 =? 96
17:51:09.884 DHT: Pin13 read 41650FA055
17:51:13.928 DHT: Pin12 timeout waiting for high pulse
17:51:13.938 DHT: Pin13 read 41610F2055
17:51:13.942 DHT: Pin13 checksum failure 41610F2055 =? D1
bob-tm commented 2 years ago

Both sensors connected with extended wires (4 meter).

arendst commented 2 years ago

Thx. Long wires may indeed be the cause of the checksum errors. Maybe someone has an idea how to solve this. BTW sonoff does support longer cables but I thought to know not for the MS01.

bob-tm commented 2 years ago

it was sonoff extenders for MS01 (up to 5 meters). But I cut connectors, because they were very glitches

upd: MS01 Soil Moisture Sensor can be extended to 10M.

bob-tm commented 2 years ago

ESP32+MS01 is much more unstable than ESP8266. A lot of checksum errors, so peak values from sensors are lost. I can try different timing settings, to find stable setup.

  1. what values can I try and what dont?
  2. maybe it's possible to change them from web console using temp param?
arendst commented 2 years ago

Checksum errors are detected by wrong pulse lengths during gathering of 80 pulses providing the sensor data. You'll have to analyse the 80 values to find a common value for a zero and a one.

Also notice that the original sonoff th hardware is different from just connecting the sensor to esps. you need to look at the schematics of the th10/16 to find out if they use external pull up resistors. Alas there is no logics for the esp32 based thr3xxD devices but from the pictures I'm quite sure they use external pullup to get a better signal over long wires.

bob-tm commented 2 years ago

pin13: a lot of checksum errors pin12: a lot of timeout errors, sometimes correct values.

07:55:21.943 DHT: Pin12 timeout waiting for high pulse 07:55:25.979 DHT: Pin12 timeout waiting for high pulse 07:55:29.963 DHT: Pin12 timeout waiting for high pulse 07:55:33.962 DHT: Pin12 timeout waiting for high pulse

I will try to add some pull up resistors and check

bob-tm commented 2 years ago
  1. add pull up 6.7k
  2. Moved from gpio12 to pin4 (won't boot with pool up on 12)

It's definitely helps! No more checksum errors! Much less time outs.

Sometimes (up to 5% of readings) time out on lower pin. Swapping sensors do not help. Seems like it depends on CPU Load. Disconnecting sensor from Higher gpio helps a little.

I will monitor sensors in this configuration

bob-tm commented 2 years ago

Peak readings from ESP32 are lower than from ESP8266. I have logs during this peak. No critical errors were detected.

What it can be? And what is correct - from ESP32 (lower) or ESP8266 (higher)?

Screenshot_20220723-102355_Chrome Screenshot_20220723-100324_Chrome

sfromis commented 2 years ago

When it comes to "soil moisture" and such overly simple sensors, asking "what is correct" is not a reasonable question. Neither is "correct" as you cannot measure an "absolute" soil humidity using a little bit of electronics. Values depends a lot on factors like exact electrolytic composition of both soil and the water. Two sensors nearby may not get the same numbers, where you already have so many digits ("precision") that it misleads you to think in "accuracy". Getting a trend up/down and a weak indication of dry/moist/wet is just about what you can expect.

Jason2866 commented 2 years ago

Closing since the issue is fixed.

bob-tm commented 2 years ago

arendst Finally I fix timeouts, for sensor connected for higher pin. Now read loop is going from low pin to high pin and then in reverse - from high to low. It's definitely helps to reduce timeout errors.

My idea was to equalize errors between both sensors, but in result - 10x less errors. I can't understand why this hack is work, but it is!

bool dht_inverse_loop = false;

void DhtEverySecond(void) {

  if (!(TasmotaGlobal.uptime %4)) {  // Every 4 seconds
    uint32_t index_sensor = 0;
    dht_inverse_loop = !dht_inverse_loop;

    for (uint32_t sensor = 0; sensor < dht_sensors; sensor++) {
      if (dht_inverse_loop)
        index_sensor = dht_sensors - sensor-1;
      else
        index_sensor = sensor;

      // DHT11 and AM2301 25mS per sensor, SI7021 5mS per sensor
      if (!DhtRead(index_sensor)) {
        Dht[index_sensor].lastresult++;
        if (Dht[index_sensor].lastresult > DHT_MAX_RETRY) {  // Reset after 8 misses
          Dht[index_sensor].t = NAN;
          Dht[index_sensor].h = NAN;
        }
      }
    }
  }
}