0.10.14 — device_trigger.py refactor, session.py thread-safety fix
No breaking changes. Requires boschshcpy==0.4.12.
device_trigger.py: refactoredasync_get_triggersto a table-driven
DEVICE_TRIGGER_TABLE(dev_type -> (CONF_TYPE, subtypes)) for MD/MD2/SD/
SMOKE_DETECTOR2/SMOKE_DETECTION_SYSTEM, replacing five near-identical
dict-literal-construction blocks with one generic loop. Pure clarity
refactor — behavior-preserving (verified against every existing test),
WRC2/SWITCH2 and the SHC scenario-trigger block deliberately left as-is
(different shape, don't fit the table).boschshcpy0.4.12: fixed a thread-safety race insession.py
between the polling thread and cross-thread readers of the device list
(RuntimeError: dictionary changed size during iteration) — see that
project's own changelog. Live-tested on production hardware before this
release (unreleased lib code deployed directly, HA restarted, long-poll
stream verified error-free) prior to being published to PyPI.