* emon: configure ratios without reboot
* settings: serialize() support
* debug: use vsnprintf from newlib, not from sdk
* settings/experimental: show defaults via `get`
* emon: override base methods, fix defaults
* sensor/emon: expose internal index calculation
- refactor configuration to use the correct index when accessing indexed
sensor methods. store index value on magnitude, refactor loops to
accomodate this new functionality
- rename slot(index) -> description(index), since we use 'slot' as
numeric value
- general conversion from .ino modules into a separate .cpp files
- clean-up internal headers, place libraries into .h. guard .cpp with _SUPPORT flags
- fix some instances of shared variables instead of public methods
- tweak build system to still build a single source file via os environment variable ESPURNA_BUILD_SINGLE_SOURCE
* hlw8012: load hardware-specific ratios
* hlw8012: read energy in pre() callback
* dcz: nvalue should be integer
* sns: fix pressure constrain
* sns: load ratios based on index too
* sns: per-magnitude corrections (still limited by type)
* sns: attach units to index
* ADC_VCC is not macro
* In esp.h ADC_VCC and ADC_TOUT is not macro, so define macro.
* ADC_VCC and ADC_TOUT fixes in utils.ino and sensors.h
* Adding support for I2C temperature and humidity sensor HDC1080 / 831R
* Added HDC1080 to test\build\sensor.h and arduino.h
* added brackets
* Revert ADC_MODE_VALUE to initial values
* Eof newline
* Eof newline
Co-authored-by: Max Prokhorov <prokhorov.max@outlook.com>
- Update sensor classes to support a generic way to store energy values
- Update sensor conversion code to deal with units and not magnitudes
- Add magnitude<->unit for sensors, generic way of defining used unit. Convert from sensor magnitude unit to the one used for display.
- Reset energy value based on index through external means (MQTT, HTTP)
- Rework energy timestamping, update webui with 'last saved' value
While this solves the energy conversion issues and we are finally seeing the real value, what I don't really like:
- KilowattHour and WattHour are separate enum tags, thus sort-of are different types altogether
- Conversion code in Energy object should probably use some generic 'ratio' calculation? (https://en.cppreference.com/w/cpp/numeric/ratio/ratio)
- We are still using runtime checks to do calculations and depend that sensor outputs only one specific value type.
Consider this a fix for energy display / storage and preliminary work on sensor.ino
Further sensor refactoring... soon.
* Sensors: refactor configuration
- move sensor implementaion to the .ino,
remove dependency undef / define from sensor files
- update test/build/sensor.h from SENSOR_SUPPORT
- allow to change sensor config variables externally
- `#include <...>` for global headers and libraries,
fix relative path for math library
* add missing sns <-> i2c dependency
* ledrelay should return relay_none as default
* rollback to original test header
* include debug header when requested (relative)
Operating specifications / Communication and signal
"Data-bus's free status is high voltage level. When communication
between MCU and DHT22 begin, program of MCU will transform data-bus's
voltage level from high to low level and this process must beyond at least
**1ms** to ensure DHT22 could detect MCU's signal, then MCU will wait 20-40us for
DHT22's response."
* Added T6613
* Added T6613
* Added T6613
* Added T6613
* Added T6613
* Added T6613
* Added T6613
* Added T6613
* Added T6613
* Updated copyright string
* Buffer from 6 bytes to 8 bytes
Current gcc-4 does not mark this as warning, but gcc-9 notices the 3 char size requirement. Buffer should be 8
* Use 5000ppm max
* Add Shelly 2.5
* Add ADE7953 sensor support
* Fix compilation
* Use only one instance
* WIP: Not working, I got StoreProhibited exception
* Fix exception
* Fix merge issues
* Apply request review changes
* declare struct before using it
* uninterruptible delay
* try optimized reg_size
* fix types
* Remove gpio 0 input in analog sensor
* Add energy to ADE7953, it is not finished yet
* Add new method to save energy with index
* Finish energy for ADE7953
* Core 2.6.0+ fixes
* fix env -> config, run travis04 job
* don't duplicate free heap in frag data, use single stats struct
* fix dtostrf warnings, bump buffer sizes
* ...and even less words for fragmentation stat
* Testing branch
* Added ability (by define) to scale analog sensor, also with number of decimals (it was formerly zero)
Useful when running on batteries to check the battery voltage just
adding the appropriate resistor
* Reverting DHTSensor.h file
* Trying again to revert DHTSensor.h
* Using macro DEBUG_MSG
* fix method types
* Testing branch
* Added ability (by define) to scale analog sensor, also with number of decimals (it was formerly zero)
Useful when running on batteries to check the battery voltage just
adding the appropriate resistor
* Reverting DHTSensor.h file
* Trying again to revert DHTSensor.h
* Using macro DEBUG_MSG
* fix method types