A highly optimized custom component for Home Assistant that effortlessly integrates Candy, Haier, and Simply-Fi connected home appliances.
Fully compliant with strictly-typed Home Assistant (>= 2024.x) development standards, it features Zero-Configuration Automatic Decryptionβmaking setup purely plug-and-play.
- Supported appliances:
- π§Ί Washing Machine
- π«οΈ Tumble Dryer
- πͺ Dishwasher
- π³ Oven
- Zero-Config Decryption: Say goodbye to manually extracting encryption keys. This integration boasts a natively built-in sliding-window/known-plaintext algorithm that unlocks your device seamlessly in fractions of a second during setup.
- Strict HA Compatibility: Follows the rigorous MyPy styling standards enforced by Home Assistant 2025.
- Uses the local device API for real-time responsiveness.
- Creates dedicated, native semantic sensors (e.g., remaining time, current status, machine cycle) and exposes granular information cleanly as sensor attributes.
- Install HACS.
- Go to the HACS integrations page, search for
Candy Simply-Fiand download it. - Restart Home Assistant.
- Go to Settings > Devices & Services, click Add integration and search for
Candy. - Enter the IP Address of your appliance.
- The integration will automatically authenticate, decrypt if necessary, and assign the appliance to your dashboard!
- Copy the
custom_components/candyfolder into your Home Assistant'scustom_componentsdirectory. - Restart Home Assistant and add
Candyvia the UI.
Are you a developer, or do you want to inspect what raw JSON your specific appliance is throwing over your network? We've got you covered:
Inside the tools/ folder of this repository, you'll find the standalone simplyfi.py script. You can run it effortlessly from any terminal independent from Home Assistant!
python3 tools/simplyfi.py <YOUR_APPLIANCE_IP_ADDRESS>This is incredibly useful for validating your appliance network reachability or diagnosing new payloads.
Not sure what IP address your Candy appliance has? Run this one-liner from any terminal on the same local network as your device.
Prerequisite: replace
192.168.1with your actual subnet if different (check your router settings).
# Scan the entire subnet for Candy Simply-Fi appliances
for i in $(seq 1 254); do
result=$(curl -s --max-time 1 "http://192.168.1.$i/http-read.json?encrypted=0" 2>/dev/null)
[ -n "$result" ] && echo "192.168.1.$i: $result"
doneThe script probes every host on the subnet for the Candy local API endpoint. Any appliance that responds will print its IP address alongside its raw JSON status β for example:
192.168.1.79: { "statusLavatrice": { "WiFiStatus": "1", ... } }
Use that IP when configuring the integration in Home Assistant.
Absolutely! If you have an appliance that is not supported yet (or you notice odd readings), head over to the Discussions section. Open a new thread or comment to an existing one with the following information:
- The raw status API response of your device (Please use the provided
tools/simplyfi.pyinside this repo to query your IP and get the full JSON). - A brief, intuitive explanation of what you think each field correlates to based on the machine's state (e.g., The
SpinSpfield reads "8", meaning Spin speed 800 RPM in my model).
If you want to contribute, test features or build new integrations, the environment is fully automated.
Setup the development environment using our rapid bash scripts:
make setupUse the Makefile for all standard operations:
make setup # Setup development environment and venv
make check # Run all checks (lint + test)
make lint # Run ruff spacing and mypy static type checking
make format # Format python code to meet standard
make test # Run tests with coverage
make clean # Deep clean cache foldersWe rely on Github rigorous standards to maintain 100% Home Assistant compliance. You can install our native pre-commit hooks that format and protect every single push:
make pre-commit-installPlease, if You want support this kind of projects:
Many Thanks,
Fabio Mauro
