register channels with their respective tags, instead of using count
both on backend and frontend
revert to useCCT mireds slider rule, disallow white channels with useWhite
resolve#2554
make use of cse7766 calculation for factor, too
thanks to @Kaan88
remove reactive power ratio from base sensor as well, since it does not
seem to be used anywhere else (...and does not really make sense in most
situations when sensor inputs are using common gain)
* clean-up useless stream read() / flush(), rely on timer and internal state
avoids wdt reset with sensors looping on available()
* fix some instances of `available()` in boolean context to use `>0`
(not everything returns sign, but if it does - we are in trouble)
* util func to read available bytes from the stream using buffered
interface instead of 1 byte at a time
color temperature applies to input values as and / or
- rgb channels scale, when cct mode is enabled w/ color
- white channel(s), moving between warm and cold
remove two rgb scalers applied one after the other in favour of two
distinct variants - we either subtract common value from rgb or use
mireds as a scale for both rgb and ww+cw
restore brightness control as well
* error code is not buffered through our handler object.
while espasync code does strlen, what it returns is mostly random.
(old request parts, weird data, etc.)
* reworked buffer class to avoid an extra allocation on top of the
existing vector data buffer. plus, simple function pointer as well
* correct id=... and element references, partial changes to element
order were not using the new global 'light' container
* separate block for picker, does not seem consistent to depend on json
key order when processing device cfg
* visibility != display; make sure color picker is hidden when there is
no color control, but not visible when color is on but state is off
disarm is *required* by the underlying API, don't miss it on start()
while the func uses a resource lock internally, it does not seem to be the
source of system lock-ups encountered so far
prioritize hw instead of straight up removing the choice to create a sw
object. for example, allow to use either of the swapped UART0 pins when
we already use the main ones
c/p PSTR attribute from Core files
dostring declaration with a macro instead of a scary looking boilerplate
saves varying amount of code space, mostly deals with our key and cmd strings
* make sure we don't apply hsv and brightnesss, only take hue and saturation
when calculating inputs. use value as brightness percentage, wrapping
the original function (which also makes other modules use this codepath)
* deduce interface elements based on both setting and incoming
properties. wrap everything in {light: ...} in both inputs and
outputs, alse allow to update multiple properties at the same time
* add light state toggle when special lights relay is not set up
* remove channel, state and brightness elements through css styling
instead of going to the elements directly. no need to chech whether
certain elements exist