Fixed version of the original integration by @arturzx, compatible with Home Assistant 2024+.
The original integration stopped working with Home Assistant 2024.1+ due to deprecated API calls. This version fixes compatibility issues.
- ✅ Fixed ConfigEntryNotReady error - properly raised before platform setup
- ✅ Retry mechanism - 3 automatic retries with exponential backoff for 502/timeout errors
- ✅ Config flow validation - credentials tested during setup with helpful error messages
- ✅ Updated to use
async_forward_entry_setups(HA 2024+ API) - ✅ Fixed
async_unload_entrywithasync_unload_platforms - ✅ Separated coordinator - cleaner code architecture
- ✅ Better error handling - user-friendly messages for common issues
- ✅ Added HACS support
Original repository: https://github.com/arturzx/homeassistant-iqua-softener
Home Assistant custom integration for Viessmann Aquahome 20 Smart water softener (and compatible EcoWater devices).
The integration connects to EcoWater servers to retrieve real-time water softener data from your iQua-compatible device.
The integration generates nine sensors with 5-minute refresh intervals, including:
- Connection status to Ecowater servers
- Device date/time settings
- Salt level percentage
- Water usage metrics (current flow, daily total, daily average)
- Regeneration and salt depletion forecasts
- Available water before next regeneration cycle
The units displayed are set in the application settings.
- Open HACS in your Home Assistant
- Click on "Integrations"
- Click the three dots menu (⋮) in the top right corner
- Select "Custom repositories"
- Add this repository URL:
https://github.com/corapoid/homeassistant-iqua - Select category: "Integration"
- Click "Add"
- Find "iQua Softener (Fixed for HA 2024+)" in HACS
- Click "Download"
- Restart Home Assistant
- Go to Settings → Devices & Services → Add Integration
- Search for "iQua Softener"
- Enter your iQua app credentials and device serial number (DSN#)
- Note: The serial number field is case-sensitive
- Copy the
custom_components/iqua_softenerfolder to your Home Assistant's config directory - Restart Home Assistant
- Go to Settings → Devices & Services → Add Integration
- Search for "iQua Softener"
- Enter your iQua app credentials and device serial number (DSN#)
- Note: The serial number field is case-sensitive
To configure the integration, you'll need:
- iQua app username (email)
- iQua app password
- Device serial number (DSN#)
- Open the iQua app on your phone
- Go to Settings or tap on your device
- Look for DSN# or Serial Number
- Copy the number exactly as shown (case-sensitive, without spaces or dashes)
- Example format:
7938279241781015orDSN1234567890
After setup, you'll have access to these sensors:
sensor.iqua_[dsn]_state- Connection statussensor.iqua_[dsn]_date_time- Device date/timesensor.iqua_[dsn]_last_regeneration- Last regeneration timestampsensor.iqua_[dsn]_out_of_salt_estimated_day- Estimated salt depletion datesensor.iqua_[dsn]_salt_level- Salt level percentagesensor.iqua_[dsn]_available_water- Available water before regenerationsensor.iqua_[dsn]_water_current_flow- Current water flow ratesensor.iqua_[dsn]_today_water_usage- Today's water usagesensor.iqua_[dsn]_water_usage_daily_average- Daily average water usage
alias: "Alert - Low Salt Level in Water Softener"
trigger:
- platform: numeric_state
entity_id: sensor.iqua_[dsn]_salt_level
below: 20
action:
- service: notify.mobile_app
data:
title: "Uzdatniacz wody"
message: "Niski poziom soli: {{ states('sensor.iqua_[dsn]_salt_level') }}%"alias: "Alert - High Water Usage Today"
trigger:
- platform: numeric_state
entity_id: sensor.iqua_[dsn]_today_water_usage
above: 0.5 # 500 liters (0.5 m³)
action:
- service: notify.mobile_app
data:
title: "Zużycie wody"
message: "Wysokie zużycie dzisiaj: {{ states('sensor.iqua_[dsn]_today_water_usage') }} m³"Before adding the integration to Home Assistant, you can test your credentials using the included test script:
# Run in interactive mode (will prompt for credentials)
python3 test_iqua_api.py
# Or provide credentials as arguments
python3 test_iqua_api.py \
--username your@email.com \
--password yourpassword \
--serial DSN123456789The script will:
- ✅ Test authentication with Ecowater API
- ✅ Show detailed error analysis if it fails
- ✅ Display device data if successful
- ✅ Help diagnose 2FA, wrong credentials, or API issues
- First: Run
test_iqua_api.pyscript to verify credentials work - Verify credentials in the iQua app (try logging in through the app first)
- Check for 2FA: If app asks for email code, API requires 2FA (see issue #26)
- Check if your account is active
- Review Home Assistant logs: Settings → System → Logs → filter "iqua"
- Verify DSN# is correct (no spaces, exact match, case-sensitive)
- Ensure device is visible in the iQua app
- Check if device is online
- Verify internet connection on your HA server
- Restart integration: Settings → Integrations → iQua Softener → Reload
- Check if device works in the iQua app
- Review logs for API errors
This integration works with:
- Viessmann Aquahome 20 Smart
- EcoWater devices compatible with iQua app
- Water softeners using EcoWater cloud API
This project uses an MIT license. See LICENSE file for details.
- Maintainer: @corapoid - Bug fixes, retry mechanism, config flow validation
- Original integration: @arturzx - Initial implementation
- Built with ❤️ using Claude Code