ref. #2543
search the bus preemptively and create sensor instances based on that
more clean-up for error handling, allow specific device to fail independently
most of the sensor was re-written
- general one-wire operations are part of the system driver now
- split class definitions for digital and temperature sensors
- system timer instead of polling, enforce ordering by forcing specific
instance to handle conversion request, while notifying every other ones
- synchronize readings and conversion requests with the sensor reading
interval, instead of relying on internal polling. now, it happens
right after begin() and pre() instead of previosly (almost) random tick() calls
- auto-detect conversion time based on device resolution / resolution setting
initialization also adds runtime settings (read on boot)
- `dallasPin` to set current one-wire pin
- `dallasParasite` to change from non-powered mode (default is still on)
- `dallasResolution` to force sensor to be operated using 9...12bit res
(0 to keep default one)
birth message should trigger discovery, enabled by default
ref. #1637
clean-up discovery code to properly re-init when something goes wrong
also restore manual discovery trigger from WebUI
instead of one giant read func, use magnitude-specific ones
ref. datasheet, adc read failure should have a different constant,
and does not warrant re-init
sensor loop assumes value(index) value is ok
ref. #2543
move all checks to pre(), value() returns pre-read value
- tick() and pre() are allowed to fail specific device
- pre() would fail the sensor if any of devices fail
- value(index) is never reached unless tick() and pre() succeed
* garland: fix issue with division by zero in first scene setup
* garland: update setters code
* garland: fix web UI
* garland: update scene default settings
* garland: update palettes, add random run animation
* garland: enable and update anim_glow
* garland: update anim_spread
* garland: add anim_crossing
* garland: get rid of redundant variables in main class
* garland: provide anims with all palettes
* garland: unify anim_waves and anim_run to use ColorWave class
* garland: update format for color_wave.h and garland.cpp
* graland: update anim code with clear rands and auto counters
* garland: implement pixel caching for color waves to reduce redundant calculations
* garland: fix anim dolphins out of range issue
* garland: tune anim comets
* garland: combine all wave-based anims; add wave comet anim
* garland: fixes for PR notes
- update library esp8266-oled-ssd1306 to the latest version
- fix thermostat build issues
- simplify and clarify thermostat control logic
- add logs to thermostat control logic