Temperature Usermod returns incorrect value during certain effects


Since version .13 (or so) I’ve notice the that Temperature Usermod returns a value of 31.1 F when certain effects are running… The effects are typically the more movement intense… (example Pacifica, Color Twinkle, Color Waves. )

I’m running 0.13-b5 with 300 LED strip on a ESP32 with 6A power supply (happens on two different models, Mini 32 and AZDelivery ESP32)…

To reproduce: run effect Solid, and check the Info button, Temp will be correct, switch to Effect Pacifica and wait 60 seconds or so, now check Info and temp will read 31.1F, switch back to solid or power off wait 60 seconds and temp will be correct…

Anyone else see this?

It is not effect related but seems to me like OneWire timing issue.
As a developer of usermod I am aware of this (occasional) issue but usually goes away after a reboot (still another reboot may reintroduce it).

Thanks for the reply… I would agree that is not effect related but rather timing as you stated… I kinda thought maybe if the effect took a bit longer to process it would mess some timing up for the usermod…


Perhaps filter out anomalous readings on the next call to update the value in the usermod? If ABS(new reading - old reading) > (value very unlikely to happen in that short period of time, like 2C) then (ignore new reading)… of course written to accept non-anomalous readings and return without updating old reading with a new value.

The problem lies in OneWire protocol being sensitive and DS18B20 sensor requiring request/retrieve logic. If those two are done in too quick or too slow succession it will fail.

The move from DallasTemeprature library looked great at first but looks like it will need revisit.
Still, this is a non-essential feature so low on priority.

Ahh, a very quick change then, to simply ignore any returned value of 31.1F (-0.5C) {unless it gets the same value 3 times in a row}