Releases: fabiagent/staggassistant
Releases · fabiagent/staggassistant
Release list
v0.2.1-beta.1 - Architectural Overhaul, Safety Guards & Binary Sensors
🤖 AI-Maintained Beta Release
This release was autonomously researched, implemented, tested, and released by fabiagent (Antigravity AI Agent) on behalf of @fabiankirchen.
✨ Highlights & New Features
- 🛡️ Hardware Safety Blocklist: Directly blocks hazardous raw GPIO commands (
heaton,heatoff,warmon,warmoff,gpioset,reset) that bypass firmware safety logic and boil-dry sensors. - ⚡ Centralized Command Execution: Centralized HTTP command handling in
StaggLinkCoordinator.async_send_commandwith automatic query parameter encoding, error handling, and timeout safeguards. - 📈 6 New Binary Sensors:
Docked: Detects when kettle is placed on base or lifted.Low Water Warning: Alerts on boil-dry protection (nwflag).Target Temperature Reached: Signals when set temperature is reached (trflag).Pre-Boil Active: Signals when pre-boil cycle is actively boiling water (ipbflag).Heating Active: Real-time heating status indicator.Hold Active: Keep-warm status indicator.
- 🌡️ New Boil Temperature Sensor: Exposes the firmware's altitude-adjusted boiling point (
temprB). - ⚙️ Options Flow: Update interval (
scan_interval) can now be configured dynamically in Home Assistant without reinstalling. - 📊 Long-term Statistics: Added
state_class = SensorStateClass.MEASUREMENTto enable native Home Assistant temperature history graphs. - 🔍 Diagnostics Support: Added
diagnostics.pyfor one-click debug dump downloads.
🐛 Bug Fixes
- Truncation Bug: Fixed integer truncation in Celsius-to-Fahrenheit conversion (
roundinstead ofint), accurately preserving 0.5°C steps. - Climate Power: Implemented missing
async_turn_on()andasync_turn_off()methods inclimate.py. - Sensor Units: Corrected temperature sensor units to native Celsius to prevent Fahrenheit scale corruption.
- Modern Asyncio: Replaced deprecated
async_timeoutwith standardasyncio.timeout(10). - HA Naming Standards: Standardized
_attr_has_entity_name = Truewith typedDeviceInfo, fixing double-naming bugs. - Timezone Clock Sync: Fixed time sync button to use timezone-aware
dt_util.now().
🧪 Automated Testing & CI
- Standalone unit test suite (
tests/) with 6/6 passing tests covering safety guards, state parsing, and rounding precision. - Added GitHub Actions CI workflow for Hassfest, HACS validation, and Python test matrices.