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

Overview

Ecowater Softner

PyPI PyPI - Python Version PyPI - License GitHub Repo stars

ecowater-softner 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 'days until the device is out of salt' as an integer
ecowaterDevice.daysUntilOutOfSalt()

# returns 'date when device will run out of salt' as datetime 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()

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

You might also like...
isort is a Python utility / library to sort imports alphabetically, and automatically separated into sections and by type.
isort is a Python utility / library to sort imports alphabetically, and automatically separated into sections and by type.

isort is a Python utility / library to sort imports alphabetically, and automatically separated into sections and by type. It provides a command line utility, Python library and plugins for various editors to quickly sort all your imports.

A Python library for reading, writing and visualizing the OMEGA Format
A Python library for reading, writing and visualizing the OMEGA Format

A Python library for reading, writing and visualizing the OMEGA Format, targeted towards storing reference and perception data in the automotive context on an object list basis with a focus on an urban use case.

RapidFuzz is a fast string matching library for Python and C++

RapidFuzz is a fast string matching library for Python and C++, which is using the string similarity calculations from FuzzyWuzzy

pydsinternals - A Python native library containing necessary classes, functions and structures to interact with Windows Active Directory.
pydsinternals - A Python native library containing necessary classes, functions and structures to interact with Windows Active Directory.

pydsinternals - Directory Services Internals Library A Python native library containing necessary classes, functions and structures to interact with W

Library for processing molecules and reactions in python way

Chython [ˈkʌɪθ(ə)n] Library for processing molecules and reactions in python way. Features: Read/write/convert formats: MDL .RDF (.RXN) and .SDF (.MOL

A tiny Python library for generating public IDs from integers

pids Create short public identifiers based on integer IDs. Installation pip install pids Usage from pids import pid public_id = pid.from_int(1234) #

A simple gpsd client and python library.

gpsdclient A small and simple gpsd client and library Installation Needs Python 3 (no other dependencies). If you want to use the library, use pip: pi

Helpful functions for use alongside the rich Python library.

🔧 Rich Tools A python package with helpful functions for use alongside with the rich python library. 󠀠󠀠 The current features are: Convert a Pandas

A small python library that helps you to generate localization strings for your mobile projects.

LocalizationUtiltiy A small python library that helps you to generate localization strings for your mobile projects. This small script aims to help yo

Comments
  • Reuse Established Connection

    Reuse Established Connection

    Currently each function to query status (e.g. saltLevel, saltLevelPercent, waterUnits) makes a call to _get() and subsequently establishes a new server connection/login. This not only makes querying multiple server status values time consuming, the vendor may identify this resource strain and take decisive action.

    Is it possible to re-use an already established server connection to query every X number of seconds for updated status values, or is the connection forcibly closed after every server query?

    Alternatively, a more conservative server resources approach might be to create class variables for each status value of interest, updating ALL of the class variables via a single call to _get() once they are determined stale. The server call to "/Dashboard/UpdateFrequentData" already returns all possible status values. Use this single call to update the class variables.

    Perhaps 'staleness' could be given by a user defined value? Function calls for each status value of interest (e.g. saltLevel, saltLevelPercent) would simply return the current value of the class variable (if not stale, else obtain new values from server).

    Thank you for the effort given to this and I greatly look forward to a future HomeAssistant integration.

    enhancement 
    opened by mblauser 3
Releases(v1.0.0)
This is a python table of data implementation with styles, colors

Table This is a python table of data implementation with styles, colors Example Table adapts to the lack of data Lambda color features Full power of l

Урядов Алексей 5 Nov 09, 2021
Entropy-controlled contexts in Python

Python module ordered ordered module is the opposite to random - it maintains order in the program. import random x = 5 def increase(): global x

HyperC 36 Nov 03, 2022
Link-tree - Script that iterate over the links found in each page

link-tree Script that iterate over the links found in each page, recursively fin

Rodrigo Stramantinoli 2 Jan 05, 2022
python script to generate color coded resistor images

Resistor image generator I got nerdsniped into making this. It's not finished at all, and the code is messy. The end goal it generate a whole E-series

MichD 1 Nov 12, 2021
PyGMT - A Python interface for the Generic Mapping Tools

PyGMT A Python interface for the Generic Mapping Tools Documentation (development version) | Contact | Try Online Why PyGMT? A beautiful map is worth

The Generic Mapping Tools (GMT) 564 Dec 28, 2022
Customized python validations.

A customized python validations.

Wilfred V. Pine 2 Apr 20, 2022
Macro recording and metaprogramming in Python

macro-kit is a package for efficient macro recording and metaprogramming in Python using abstract syntax tree (AST).

8 Aug 31, 2022
Patch the pclntable from Go binaries

Pretrain and Fine-tune a T5 model with Flax on GCP This tutorial details how pretrain and fine-tune a FlaxT5 model from HuggingFace using a TPU VM ava

6 Oct 05, 2022
Two fast AUC calculation implementations for python

fastauc Two fast AUC calculation implementations for python: python-based is approximately 5X faster than the default sklearn.metrics.roc_auc_score()

Vsevolod Kompantsev 26 Dec 11, 2022
A random cats photos python module

A random cats photos python module

Fayas Noushad 6 Dec 01, 2021
Yet another retry utility in Python

Yet another retry utility in Python, avereno being the Malagasy word for retry.

Haute École d'Informatique de Madagascar 4 Nov 02, 2021
extract gene TSS/TES site form gencode/ensembl/gencode database GTF file and export bed format file.

GetTsite python Package extract gene TSS/TES site form gencode/ensembl/gencode database GTF file and export bed format file. Install $ pip install Get

laojunjun 7 Nov 21, 2022
A toolkit for writing and executing automation scripts for Final Fantasy XIV

XIV Scripter This is a tool for scripting out series of actions in FFXIV. It allows for custom actions to be defined in config.yaml as well as custom

Jacob Beel 1 Dec 09, 2021
🦩 A Python tool to create comment-free Jupyter notebooks.

Pelikan Pelikan lets you convert notebooks to comment-free notebooks. In other words, It removes Python block and inline comments from source cells in

Hakan Özler 7 Nov 20, 2021
A tool for testing improper put method vulnerability

Putter-CUP A tool for testing improper put method vulnerability Usage :- python3 put.py -f live-subs.txt Result :- The result in txt file "result.txt"

Zahir Tariq 6 Aug 06, 2021
Modest utility collection for development with AIOHTTP framework.

aiohttp-things Modest utility collection for development with AIOHTTP framework. Documentation https://aiohttp-things.readthedocs.io Installation Inst

Ruslan Ilyasovich Gilfanov 0 Dec 11, 2022
Michael Vinyard's utilities

Install vintools To download this package from pypi: pip install vintools Install the development package To download and install the developmen

Michael Vinyard 2 May 22, 2022
Runes - Simple Cookies You Can Extend (similar to Macaroons)

Runes - Simple Cookies You Can Extend (similar to Macaroons) is a paper called "Macaroons: Cookies with Context

Rusty Russell 22 Dec 11, 2022
Random Number Generator Analysis With Python

Random-Number-Generator-Analysis Governor's Honors Program Project to determine

Jack Prewitt 2 Jan 23, 2022
Python program for analyzing the output files of phonopy.

PhononTools Description Python program to analyze the results generated by phonopy. Using the .yaml and .dat files that phonopy generates one can plot

Harry LaBollita 8 Nov 27, 2022