A Home Assistant custom integration for AquaTru Connect WiFi water purifiers. Monitor your water quality, filter life, usage statistics, and device status directly from Home Assistant.
- Water Quality Monitoring: Real-time TDS (Total Dissolved Solids) readings for tap and filtered water
- Filter Life Tracking: Monitor remaining life for Pre-Filter, RO Filter, and VOC Filter
- Usage Statistics: Track daily, weekly, monthly, and total water consumption
- Savings Calculator: See how much money and plastic bottles you've saved
- Device Status: Real-time status indicators for tank levels, filtering state, and connectivity
- Real-time Updates: MQTT connection for instant TDS and status updates (when available)
Any WiFi-enabled AquaTru purifier that reports to the AquaTru cloud (and works in the AquaTru mobile app) should be compatible. The device's model is detected automatically and shown on its device page in Home Assistant.
- AquaTru Classic Smart (WiFi-enabled)
- AquaTru AD2020 (confirmed working)
- AquaTru AT2050 (untested, may work)
- Open HACS in your Home Assistant instance
- Click the three dots in the top right corner
- Select Custom repositories
- Add
https://github.com/warrenrees/aquatru-connectwith category Integration - Click Add
- Search for "AquaTru" in HACS and install it
- Restart Home Assistant
- Download the latest release from the Releases page
- Extract the
aquatrufolder to your Home Assistantcustom_componentsdirectory:<config_directory>/ └── custom_components/ └── aquatru/ ├── __init__.py ├── api.py ├── binary_sensor.py ├── config_flow.py ├── const.py ├── coordinator.py ├── diagnostics.py ├── entity.py ├── manifest.json ├── mqtt.py ├── sensor.py ├── session.py ├── strings.json └── translations/ └── en.json - Restart Home Assistant
- Go to Settings → Devices & Services
- Click + Add Integration
- Search for "AquaTru Water Purifier"
- Enter your credentials:
- Phone Number: Your phone number without country prefix (e.g.,
5551234567) - Password: Your AquaTru account password
- Country Code: Your two-letter country code (e.g.,
US,CA)
- Phone Number: Your phone number without country prefix (e.g.,
Note: These are the same credentials you use in the AquaTru mobile app.
| Entity | Description | Unit |
|---|---|---|
| Tap Water TDS | TDS reading of incoming tap water | ppm |
| Clean Water TDS | TDS reading of filtered water | ppm |
| TDS Reduction | Percentage of dissolved solids removed | % |
| Pre-Filter Life | Remaining life of the pre-filter | % |
| RO Filter Life | Remaining life of the reverse osmosis filter | % |
| VOC Filter Life | Remaining life of the VOC carbon filter | % |
| Daily Water Usage | Water filtered today | gal |
| Weekly Water Usage | Water filtered this week | gal |
| Monthly Water Usage | Water filtered this month | gal |
| Total Water Filtered | Lifetime water filtered | gal |
| Money Saved | Estimated money saved vs. bottled water | $ |
| Bottles Saved | Estimated plastic bottles saved | bottles |
| Connection Status | Device connection status | connected/disconnected |
| Filtration Time | Total filtration time | seconds |
| WiFi Network | Connected WiFi network name | - |
| WiFi Version | WiFi module firmware version | - |
| MCU Version | Main controller firmware version | - |
| MQTT Status | Real-time connection status | connected/disconnected |
Note: Money Saved and Bottles Saved are estimates calculated from the total water filtered together with the bottle size and price you configured in the AquaTru app, mirroring the app's own figures (the AquaTru cloud does not return a money-saved value directly). Daily/Weekly/Monthly Water Usage reflect the most recent period reported by the cloud.
Note: Water-volume sensors report in gallons natively; Home Assistant automatically converts them to your configured unit system (e.g. liters) for display.
| Entity | Description |
|---|---|
| Filtering | Device is currently filtering water |
| Clean Tank Full | Clean water tank is full |
| Tap Tank Removed | Tap water tank has been removed |
| Tap Tank Low | Tap water tank is nearly empty |
| Clean Tank Removed | Clean water tank has been removed |
| Purifier Synced | Device is synced with cloud |
| Cover Open | Device cover is open |
automation:
- alias: "AquaTru Filter Low Alert"
trigger:
- platform: numeric_state
entity_id: sensor.aquatru_pre_filter_life
below: 10
- platform: numeric_state
entity_id: sensor.aquatru_ro_filter_life
below: 10
- platform: numeric_state
entity_id: sensor.aquatru_voc_filter_life
below: 10
action:
- service: notify.mobile_app
data:
title: "AquaTru Filter Low"
message: "One of your AquaTru filters is below 10%. Time to order a replacement!"automation:
- alias: "AquaTru Clean Tank Full"
trigger:
- platform: state
entity_id: binary_sensor.aquatru_clean_tank_full
to: "on"
action:
- service: notify.mobile_app
data:
title: "AquaTru"
message: "Clean water tank is full!"type: entities
title: AquaTru Water Purifier
entities:
- entity: sensor.aquatru_tap_water_tds
- entity: sensor.aquatru_clean_water_tds
- entity: sensor.aquatru_tds_reduction
- type: divider
- entity: sensor.aquatru_pre_filter_life
- entity: sensor.aquatru_ro_filter_life
- entity: sensor.aquatru_voc_filter_life
- type: divider
- entity: sensor.aquatru_total_water_filtered
- entity: sensor.aquatru_bottles_saved
- entity: sensor.aquatru_money_saved- Verify your credentials work in the official AquaTru mobile app
- Ensure your phone number is entered without the country prefix (e.g.,
5551234567, not+15551234567) - Check that you selected the correct country code
- Ensure your AquaTru device is connected to WiFi and showing as online in the mobile app
- Try restarting Home Assistant
- Check the Home Assistant logs for any error messages
Entity IDs are based on your device name in the AquaTru app. If you rename your device in the app, you may need to remove and re-add the integration.
The integration uses two methods for data updates:
- Cloud Polling: The AquaTru cloud API is polled every 10 minutes for comprehensive device data including filter life, usage statistics, and savings calculations. When MQTT is connected, polling is reduced to every 6 hours as a fallback.
- MQTT Real-time Updates: When available, the integration connects to AquaTru's MQTT service for instant updates to TDS readings and device status. AWS credentials are automatically refreshed every 6 hours.
The MQTT Status sensor indicates whether real-time updates are active.
- Cloud Dependency: This integration requires an active internet connection to communicate with AquaTru's cloud API. Local-only control is not supported.
- Single Device per Entry: Each config entry supports one AquaTru device. If you have multiple devices, add the integration multiple times.
- Usage Statistics: Daily, weekly, and monthly usage are calculated server-side and may lag real usage. When the cloud has not yet reported the current period, the sensor shows the most recent period it has data for.
- MQTT Availability: Real-time MQTT updates depend on AquaTru's AWS IoT infrastructure. If MQTT is unavailable, the integration falls back to cloud polling.
- Filter Reset: Filter life cannot be reset through this integration; use the official AquaTru mobile app.
- Credentials are stored securely in Home Assistant's encrypted storage
- All communication with AquaTru's API uses HTTPS
- No data is sent to third parties
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
This integration is not affiliated with, endorsed by, or connected to AquaTru or Ideal Living LLC. AquaTru is a trademark of Ideal Living LLC.
- Thanks to the Home Assistant community for their excellent documentation
- Built using the Home Assistant custom component architecture