Skip to content

barleybobs/ecowater-softener

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Ecowater Softener

PyPI PyPI - Python Version PyPI - License GitHub Repo stars

ecowater-softener is a Python library for collecting information from Ecowater water softeners.

Installation

Use the package manager pip to install ecowater.

pip install ecowater-softener

Usage

from ecowater_softener import Ecowater

ecowaterDevice = Ecowater('username', 'password', 'serialnumber')

# returns 'all data other commands can get' as a dictionary
ecowaterDevice.getData()

# returns 'days until the device is out of salt' as an integer
ecowaterDevice.daysUntilOutOfSalt()

# returns 'date when device will run out of salt' as string object
ecowaterDevice.outOfSaltOn()

# returns 'the salt level' as an integer
ecowaterDevice.saltLevel()

# returns 'the salt level in percent' as an integer
ecowaterDevice.saltLevelPercent()

# returns 'the amount of water used today' as an integer
ecowaterDevice.waterUsageToday()

# returns 'the average amount of water used daily' as an integer
ecowaterDevice.waterUsageDailyAverage()

# returns 'the amount of water available' as an integer
ecowaterDevice.waterAvailable()

# returns 'the amount of water flow' as an integer
ecowaterDevice.waterFlow()

# returns 'the units for the water measurements' as a string
ecowaterDevice.waterUnits()

# returns 'true or false depending on whether recharge is enabled'
ecowaterDevice.rechargeEnabled()

# returns 'true or false depending on whether there is a recharge scheduled'
ecowaterDevice.rechargeScheduled()

# returns 'true or false depending on whether the device is online'
ecowaterDevice.deviceStatus()

Using ecowaterDevice.getData() is optimal as it only uses one request and returns all of the data as a dictionary.

E.g. {'daysUntilOutOfSalt': 421, 'outOfSaltOn': datetime.datetime(2025, 5, 5, 0, 0), 'saltLevel': 3, 'saltLevelPercent': 21, 'waterUsageToday': 50, 'waterUsageDailyAverage': 143, 'waterAvailable': 1332, 'waterFlow': 0, 'waterUnits': 'Liters', 'rechargeEnabled': True, 'rechargeScheduled': False, 'deviceStatus': True}

Credits

Thanks to Kyle Johnson for his work on using python to interface with Ecowater water softeners. Most of this libraries code is 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/

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

License

MIT