Commit Graph

10 Commits

Author SHA1 Message Date
Tim Connors 694691e34a
Refactor and fix PID sensor (PID_USE_LOCAL_SENSOR) read race condition (#22162)
* Refactor and fix PID sensor (PID_USE_LOCAL_SENSOR) read race condition

Refactor PID since it was calling pid.tick willy-nilly upon demand
from MQTT and the web instead of on a periodic basis (and was being
called with time interval of 0 when those times lined up!).  Refactor
web/mqtt display because there was shared code (that code turned out
to be misguided and belonged in Every_Second loop, but now we are also
similar to 39 thermostat)

Logging revealed that the vast majority of the time the sensor JSON
was parsed to obtain current sensor data when using PID local sensor,
it was failing to parse (and it would typically only work for a second
around TELE_PERIOD, but even then, not reliably).  This bug almost
certainly affects xdrv_39_thermostat too, but using
xsns_75_prometheus.ino as a template, we are able to update PV once
per second, which allows us to be a lot more responsive.  There is no
danger of being "too responsive" because that's the point of PID, and
the PID loop already scales feedback by interval between ticks.

* Reduce logging of PID now that query side-effects removed

* Comment out all new logging, but leave present for next debugger
2024-09-20 12:06:41 +02:00
Theo Arends 21c7edcb50 Add display of active drivers using command ``status 4`` 2023-12-27 22:03:56 +01:00
Barbudor f9717ceb7f
fix compile USE_PID (#19890) 2023-10-31 20:42:42 +01:00
Theo Arends 74bcbd898e Fix compilation when webserver disabled 2023-10-06 12:17:37 +02:00
Paul Blacknell aa097e9034
add: shutdown command for PID controller (#19318) 2023-08-16 11:17:54 +02:00
Paul Blacknell 9eb184c30e
Improvements to PID controller driver (#19285)
* add: update DEBUG_THERMOSTAT to only control the virtual switch

Also, debug output is still generated but end user can control this debug level 3

* add: debug output of main controller parameters when thermostat enabled

Also, add units for debug outputs added to make them more intelligible

* Update xdrv_39_thermostat.ino

* add: debug message when sensor is detected as not alive

fix: display thermostat number in debug messages

* add: log message prefix string for thermostat

* Update xdrv_39_thermostat.ino

fix: typos in comments
add: debug messages

* add: debug prefix for thermostat

* add: debug prefix added to output lines

* fix: comment typos and small grammatical changes for clarity

* add: debug prefix 'THE' added to debug output

* add:  display PID status and key info on web output

* fix: remove extraneous comments that included unused code fragments

* add: local sensor handling improvements

add: define a local sensor name
add: define the local sensor measurement parameter
add: limit sensor not seen error message to every 60 seconds to avoid flooding the logs
add: include interval since which sensor data was last updated
fix: properly update the maximum interval time so missing sensor data is properly alerted

* Update xdrv_49_pid.ino
2023-08-10 16:20:06 +02:00
Theo Arends dad059737d Change PID temperature update (#17636) 2023-01-07 16:11:30 +01:00
Theo Arends af733afbe5 Fix PID-Control parameter destruction
Fix PID-Control parameter destruction and replace all atof() by CharToFloat() saving 8k code size (#17618)
2023-01-06 14:58:19 +01:00
Theo Arends c1ea8953cb Refactor uint8_t to uint32_t 2022-11-11 10:44:56 +01:00
Theo Arends c08561f67c Bump version to v11.1.0.4
- Restructure tasmota
2022-06-02 14:17:39 +02:00