* 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
* 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