Using the force-off of light_off during presence detection change would
sometimes cause the response LEDs to disable prematurely, since the
on_state can trigger seemingly at random. Switch to using a separate
handler for this, which will instead execute after a hold ends (and both
our responses leverage holds so this works in all cases).
Permits the user customization of the parameters of the Room Health
Score, enabling fine-grained control over this metric instead of
hardcoding values that may not be suitable for each person or room.
It seems that enehand/Custom_V2_MicroWakeWords completely disappeared,
which broke the original path. Update to using my fork of
JohnnyPrimus/Custom_V2_MicroWakeWords instead, so that this is 100%
stable going forward.
HASS 2025.7 has made it store (and display) a ridiculous number of
decimals instead of just actually respecting accuracy_decimals. So,
manually convert this to an integer since it has no need for decimals.
My testing with the SGP30 sensor proved fruitless, as various sensors
would mis-report (under- and over-) levels and generally not be
consistent with each other or reality. These sensors are simply too
flaky with zero consistency.
Instead, switch to the SGP41, which so far seems more robust and is used
in other tools like the AirGradient One. We leverage their calculations
for VOC Index -> VOC levels, as well as a generalized isobutylene-based
eCO2 calculation.