Skip to content

Releases: bigmoby/home-assistant-candy

v1.2.2

Choose a tag to compare

@bigmoby bigmoby released this 25 Jun 17:07

๐Ÿ› Bug Fix

Fix: Integration fails to load when appliance is off at HA startup

In v1.2.1, if Home Assistant restarted while the appliance was powered off, the integration
could not complete its first coordinator poll and entered a retry loop โ€” causing all sensors
to appear as "unavailable" with the warning:

"Questa entitร  non viene piรน fornita dall'integrazione candy"
(This entity is no longer provided by the candy integration)

Root cause: On the first poll after startup, last_known_status was None (no previous
successful poll in memory). A timeout from the offline device therefore could not trigger
the "Off" heuristic introduced in v1.2.1, resulting in UpdateFailed โ†’
ConfigEntryNotReady โ†’ integration not loaded โ†’ entities missing.

Fix: The integration now reads Home Assistant's own entity registry and state machine
at startup to determine the previously registered device type. It pre-populates
last_known_status with a synthetic "Off" status before the first poll โ€” allowing the
integration to load successfully even when the appliance is powered off.

Startup behavior after this fix

Scenario Before v1.2.2 After v1.2.2
HA restarts, appliance off after finished cycle โŒ Integration fails to load โœ… Sensors show "Off"
HA restarts, appliance on โœ… Works normally โœ… Works normally
Appliance goes offline during HA session (after Finished/Idle) โœ… Sensors show "Off" โœ… Sensors show "Off"
Appliance goes offline during active cycle โœ… Sensors show "unavailable" โœ… Sensors show "unavailable"

Followup fix for issue #1 reported by @nelsonamen

Full Changelog: v1.2.1...v1.2.2

v1.2.1

Choose a tag to compare

@bigmoby bigmoby released this 25 Jun 16:24

๐Ÿ› Bug Fixes & โœจ Improvements

New: Program sensor for all appliances

Each supported appliance now exposes a dedicated program sensor that shows the currently selected program number directly in Home Assistant:

Sensor Entity ID Appliance
Wash program sensor.wash_program Washing machine
Dryer program sensor.dryer_program Tumble dryer
Oven program sensor.oven_program Oven
Dishwasher program sensor.dishwasher_program Dishwasher

Fix: Graceful "Off" state when device is powered down

Previously, when an appliance was turned off after completing a cycle, all sensors would enter an error "unavailable" state โ€” even though the device was simply switched off by the user.

Starting from this release, the integration uses a heuristic to infer the device state:

  • โœ… If the last known state was Finished or Idle โ†’ sensors display "Off"
  • โš ๏ธ If the device goes offline during an active cycle โ†’ sensors still display "unavailable" (possible network issue)

This behavior closely matches what users expect from smart appliance integrations.

Fix: Faster offline detection

The internal API client now retries failed requests 3 times instead of 10, reducing the time to detect an offline device from several minutes down to ~15 seconds.

Fix: Improved log level for expected timeouts

Network timeouts caused by a powered-off device are now logged as WARNING instead of ERROR, reducing noise in the Home Assistant log.


Fixes issue #1 reported by @nelsonamen โ€” "Error fetching candy data: Error communicating with API: TimeoutError()"

Full Changelog: v1.2.0...v1.2.1

v1.2.0

Choose a tag to compare

@bigmoby bigmoby released this 14 Apr 16:07

๐Ÿš€ Introduction of LAN Auto-Discovery & Full Localization!

This release brings a massive improvement to the user onboarding experience and completely replaces hardcoded sensor names with the modern Home Assistant native translation engine. Plus, a completely overhauled, rock-solid CI/CD pipeline!

โœจ New Features

  • LAN Auto-Discovery: The integration now performs an automatic, asynchronous parallel scan of your local subnet (max 15s) during the configuration setup. If multiple Candy devices are found, you'll be greeted with a convenient selection list! For specific network setups, the manual IP entry fallback is always available.
  • Full Localization Support (Entity Translations): Wave goodbye to hardcoded English python labels. All sensors, options and entities for Washing Machines and Dishwashers natively support the modern Home Assistant strings.json multi-language system.
  • Complete UI translations: The entire UI (Setup & Discovery wizard) and all the entities are now fully translated in English and Italian ๐Ÿ‡ฎ๐Ÿ‡น!

๐Ÿ› Bug Fixes & Stability

  • Fixed manifest.json dependencies: Explicitly added the network core component to comply with strict hassfest (Official HA validation bot) requirements.
  • Fixed systematic mypy type-checker issues regarding custom attributes like device_class.

๐Ÿงฐ Under the Hood (Maintenance)

  • GitHub Actions Overhaul: Completely modernized the GitHub Actions Continuous Integration pipeline (lint, test, validate and release workflows).
  • CI tests now natively use Python 3.13, Node.js 24 compatibility (bypassing GitHub deprecation warnings) and run the HACS Check to ensure 100% adherence to community standards.
  • Added clear reference to the original author and origins inside LICENSE.md.

Installation Note: If you are upgrading from older manual versions, your entities will automatically migrate and map to the new translated Home Assistant ID system!

Full Changelog: https://github.com/bigmoby/home-assistant-candy/commits/v1.2.0