Skip to content

Releases: fabiagent/staggassistant

v0.2.1-beta.1 - Architectural Overhaul, Safety Guards & Binary Sensors

Choose a tag to compare

@fabiagent fabiagent released this 11 Sep 22:43

🤖 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_command with 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 (nw flag).
    • Target Temperature Reached: Signals when set temperature is reached (tr flag).
    • Pre-Boil Active: Signals when pre-boil cycle is actively boiling water (ipb flag).
    • 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.MEASUREMENT to enable native Home Assistant temperature history graphs.
  • 🔍 Diagnostics Support: Added diagnostics.py for one-click debug dump downloads.

🐛 Bug Fixes

  • Truncation Bug: Fixed integer truncation in Celsius-to-Fahrenheit conversion (round instead of int), accurately preserving 0.5°C steps.
  • Climate Power: Implemented missing async_turn_on() and async_turn_off() methods in climate.py.
  • Sensor Units: Corrected temperature sensor units to native Celsius to prevent Fahrenheit scale corruption.
  • Modern Asyncio: Replaced deprecated async_timeout with standard asyncio.timeout(10).
  • HA Naming Standards: Standardized _attr_has_entity_name = True with typed DeviceInfo, 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.