Repository navigation
Major update adding support for kettle firmware 1.2.26+, hardware safety interlocks, integration options, and native bilingual translations (EN/DE).
All changes have been verified and tested on physical kettle hardware prior to this release.
What's Changed
Firmware 1.2.26+ Support (Setup Fix)
- New JSON Endpoint: Firmware 1.2.26 silenced textual output on the internal
/cliendpoint. The integration now reads live temperature and status from the newGET /tempJSON endpoint. Older firmware versions continue to be supported through automatic fallback. - Lift-off Handling: Fixed parsing errors caused by unquoted
NaNreadings when lifting the kettle off the base.
Hardware & Fire Safety Interlocks
- Dry-Boil Guard: Heating is strictly blocked if the kettle reports low or no water (
S_NoWater). An explicit UI error is shown in Home Assistant instead of firing the heating element. - Undocked Kettle Protection: Heating cannot be turned on if the kettle is removed from its base (
is_docked == False). - Safe Target Temperature Slider: Adjusting the target temperature in the dashboard or via automations now only updates the setpoint. It will no longer turn on the heater if the kettle was off.
- Strict Command Allowlist: Outgoing CLI commands are validated against a strict regex allowlist. Raw GPIO actuation, diagnostic bench tests, and wipe commands are blocked client-side.
- Guaranteed Button Release: Simulated long presses (brew timer) now run inside a
try...finally:block, ensuring the button release command (2u) is always delivered even if the connection drops.
Configuration & Integration Options
- Options Flow: You can now configure the polling update interval (5–120 seconds) via Settings > Devices & Services > StaggAssistant > Configure.
- Extended Entities Toggle: Firmware 1.2.26+ blocks reading device settings (hold duration, chime, schedule, altitude) over Wi-Fi. These controls are now disabled by default to avoid cluttering your dashboard with "Unknown" states. You can re-enable them in the integration options anytime.
- Persistent Settings Storage: Cached settings survive Home Assistant restarts using native
Storepersistence and automatically fall back to your Home Assistant configured elevation for boiling point calculations.
Climate Entity Lifecycle
- While holding temperature (
S_Hold) or running pre-boil, the thermostat entity now remains inHEATmode with actionIDLE(orHEATINGwhen actively pulsing). This prevents the UI thermostat card from prematurely turning off while water is kept hot.
Localization
- Added full native translations for all 27 entities, selectors, and states in both English and German.
Credits
- @tomtastic for the reverse-engineering analysis of Firmware 1.2.26.
- @miguelcaravantes for contributing the multi-platform overhaul.
- @radzio for the initial pointer regarding the
/tempJSON endpoint.