- same as min & max delta, check the value itself before reporting
- refactor more of the report func, revert zero threshold to force the
value to be zero. move condition check to the top, causing every other
filter to check against zero.
- force zero threshold to be >= 0 in ui
- sync with base class, implement required override methods
- make sure last, max, min and sum filters reset() and restart() are the same
- find a real median over the specified reading 'window' vs. averaged medians
of every 3 elements that it was previously
- preserve list of inputs for average and median filters, handle updates
like a circular buffer and return value based on previous readings
(todo might be to have a more efficient storage instead of vector)
resolve#2543
- preserve units for cached values, remove extra process() call for webui data
- reset magnitude filter state when value units change
- min & max delta checks only for report value, remove separate checks for read and report
- zero threshold only affects reports, amend ac993c7b4b
- pending BaseFilter::available() and BaseFilter::ready(), replacing BaseFilter::status()
distinguish readiness between having *some* values and *enough* values
- pending BaseFilter::restart(), separate from BaseFilter::reset(), which
should allow filter to drop existing value when it is not possible otherwise
w/ just continuing normal BaseFilter::update()
move isChanged check to validator, always return both inputs for the given form
add assumeChanged?: boolean to opts, allowes forced check (similar to getData option)
small layout test for password and general forms, resolve#2613
attempt to make 'original' === undefined return consistent value
revert set:/del: merge, do not allow to miss key pruning
allow certain fields to have 'unset' state via 'required' attribute
ensure 'unset' fields cannot be added to data payload
generate ui tooltip when 'unset' field is created in a group or erased by user
ref. #2612