get rid of ptr calculations, use fixed offset & len on the string
cherry-pick char -> int conversion funcs from build .h
adjust datetime struct to be able to use aggregate ctor pre-c++17
> (node:1916) Warning: Closing file descriptor 31 on garbage collection
> (Use `node --trace-warnings ...` to show where the warning was created)
> (node:1916) [DEP0137] DeprecationWarning: Closing a FileHandle object on garbage collection is deprecated. Please close FileHandle objects explicitly using FileHandle.prototype.close(). In the future, an error will be thrown if a file descriptor is closed during garbage collection.
> (node:1916) Warning: Closing file descriptor 32 on garbage collection
per https://nodejs.org/api/deprecations.html#DEP0137
explicitly close after reading
- replace 'pulse #ID TIME TOGGLE' TOGGLE param with 'timer #ID TIME'
- drop timers list command, use 'pulse' or 'timer' interchangeably
- adjust api to use new command string, allow mqtt & http to pulse without 'toggle'
amends 530b64b1
Reference calendar time of other schedules, user-created named events
or the sun{rise,set} (when enabled)
For example
- '15m before sunset'
- '30m after cal#0'
- '1h15m after "foobar"'
Empty time spec is allowed, defaults to '1m'
'before sunrise' is the same as '1m before sunrise'
Internals are reworked to handle a more generalized 'Event' type, based
on the 'time point' and 'event' base classes fron sunrise and sunset
Sunrise and sunset should also track 'last' event as well as 'next
(not currently displayed anywhere, though)
ffs -> clz minus int size, otherwise multiple match order is broken
experiment with future masking, using ffs correctly this time
update tests to handle all branches of closest_delta, both future and past
- distinguish heading and selected menu item, apply menu item
background color after panel item is selected
for now, both heading and :first-child use a different color
- add x3 transition time to stall animation from hover & focus
otherwise, background colors may linger between clicks
Fixing inconsistent handling of group and non-group settings after rewrite.
Assuming most of the time template would be for group, manually reset
dataset field controlling automatic key${id} generation
- 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()