[0.9.7] - 2026-07-28
Added
- Localization / i18n support (#104, thanks @oscfdezdz / Óscar Fernández Díaz):
- Entities, services, and both Lovelace cards (printer + CFS) are now fully translatable via
strings.json/translations/*.jsonand bundledwww/i18n/*.json, shipping with English and Spanish. - Entity classes use
_attr_translation_keyinstead of hardcoded names; the cards resolve strings throughhass.localizewith a bundled JSON fallback and automatic language fallback while backend translations load.
- Entities, services, and both Lovelace cards (printer + CFS) are now fully translatable via
- Dimmable chamber light (#108, closes #102, thanks @RobertJansen1):
- The chamber LED is now exposed as a brightness-capable light on printers with confirmed PWM support (K2 Pro, K2 Plus), matching the 0–100% slider in the printer's local UI.
- Brightness capability is model-detected (
LED_PIN_BY_MODEL); every other printer keeps the plain on/off light. Because the firmware only reports on/off, the dim level is remembered locally, and the capability migrates onto existing config entries — even while the printer is offline — from cached model info.
- Power-off confirmation on the printer card (#110, closes #101):
- The card's power button now asks for confirmation before turning the printer off (never when turning it on), with a stronger warning while a print is in progress so an accidental tap can't kill a running job.
Changed
- ⚠️ Breaking —
filament_statusnow reports lowercase slugs (#104):- As part of state translation, the Filament Status sensor now reports
normal/runoutinstead ofNormal/Filament Runout. Any automation or template matching the old capitalized values must be updated — the displayed (translated) label is unchanged.
- As part of state translation, the Filament Status sensor now reports
- Print Tuning range raised to 200% (#107, thanks @RobertJansen1):
- The Print Tuning % slider now goes up to 200% (was 100%), matching the feedrate/flowrate hardware limit so the control is actually usable.
- Printer-card display refinements (#110, closes #101, #103):
- The layer readout shows
—/—(consistent with the temperature pills) instead of?/?when the printer is off or idle. - The chamber-temperature pill is hidden automatically when no chamber entity is configured (or it is absent from HA), so chamber-less printers such as the Ender 3 V3 KE no longer render a stray thermometer icon.
- The layer readout shows
Fixed
Current Objectsensor crash-looping the log (#110, closes #106):'int' object has no attribute 'strip'was raised roughly every 5 seconds when the firmware reportscurrentObjectas a non-string. The whitespace check is now guarded so only strings are stripped; all other outputs are unchanged.
- Fluctuating fractional print-time on the card (#110, closes #103):
- Time-remaining rendered many-digit fractional seconds (e.g.
2:25.6789) and reflowed the adjacent telemetry every poll. It is now floored to whole seconds, which also stabilizes the row layout.
- Time-remaining rendered many-digit fractional seconds (e.g.
Internal
- Entity/translation hardening (#104):
KEntitynow requires a non-emptyunique_idand honors class-level translation keys; camera translation keys moved onto the concrete camera classes. - LED-brightness plumbing (#108): added the
LED_PIN_BY_MODELcapability table and brightness-capability caching/migration, plusClassVarand keyword-only-argument cleanups.
New Contributors
- @RobertJansen1 made their first contribution in #107
- @oscfdezdz made their first contribution in #104