For version 2.0.0 the library has been rewritten and methods have changed.
ecowater-softener is a Python library for collecting information from Ecowater water softeners.
Use the package manager pip to install ecowater.
pip install ecowater-softener
Liquids are measured in US Gallons, liquid speeds are measured in US Gallons per Minute (gpm), and weights are measured in Pounds (lbs)
Importing the library
import ecowater_softener
Initialize Ecowater account using username and password credentials
ecowater_account = ecowater_softener.EcowaterAccount('username', 'password')
Retrieve a list of all devices associated with the Ecowater account
devices = ecowater_account.get_devices()
Access the first device from the list of devices
device = devices[0]
Get / Update the devices values (Needs to be ran before accessing data or the data will return None)
device.update()
Get the device model (string)
model = device.model
Get the device serial number (string)
serial_number = device.serial_number
Get the device software version (string)
software_version = device.software_version
Get the signal strength (rssi) (integer)
rssi = device.rssi
Get the device ip address (string)
ip_address = device.ip_address
Get the average daily water usage (integer)
water_use_avg_daily = device.water_use_avg_daily
Get the amount of water used today (integer)
water_use_today = device.water_use_today
Get the current amount of available water (integer)
water_available = device.water_available
Get the current water flow rate (float)
current_water_flow = device.current_water_flow
Get the current salt level as a percentage (float)
salt_level_percentage = device.salt_level_percentage
Get the number of days until the device runs out of salt (integer)
out_of_salt_days = device.out_of_salt_days
Get the estimated date when the device will run out of salt (datetime.date)
out_of_salt_date = device.out_of_salt_date
Get the salt type, either "NaCl" or "KCl" (string)
salt_type = device.salt_type
Get the average amount of rock removed daily (float)
rock_removed_avg_daily = device.rock_removed_avg_daily
Get the total amount of rock removed by the device over its lifetime (float)
rock_removed = device.rock_removed
Get the recharge status, either "None", "Scheduled", or "Recharging" (string)
recharge_status = device.recharge_status
Check if recharge is enabled (boolean)
recharge_enabled = device.recharge_enabled
Check if a recharge is scheduled (boolean)
recharge_scheduled = device.recharge_scheduled
Check if recharging currently (boolean)
recharge_recharging = device.recharge_recharging
Get the number of days since the last recharge was performed (integer)
last_recharge_days = device.last_recharge_days
Get the date of the last recharge (datetime.date)
last_recharge_date = device.last_recharge_date
- Kyle Johnson for his work on using python to interface with Ecowater water softeners. Most of this libraries code was originally built upon code which he wrote. You can read his article regarding scraping data from Ecowater water softeners at https://gnulnx.net/2020/02/18/ecowater-api-scraping/
- @rewardone for creating ayla-iot-unofficial which is used to fetch the data
- Jeff Rescignano for creating sharkiq which ayla-iot-unofficial is based on.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.