A previous release had provenance metadata, but this release does not. View details.
Culligan
A discovery for Culligan smart water products
Water Softener
The Excel sheet contains a listing of endpoints and what is needed for interaction with the Aylanetworks API. This data was gathered from proxy traffic.
The powershell module is a way to interact with the endpoints via Powershell.
The python code is for packageability and publishing to PyPi as a module.
The softener does have an http webpage for wifi status and connect/disconnect. Local control of the device does not seem possible without understanding how Ayla sends commands to the device.
Ayla References
This device is integrated by/with Ayla Networks and (generally) uses their documentation.
Local Wifi Module Doc
Direct doc linked from the reference above: salesforce doc
Installation
From PyPi
pip install culligan
Build from source
pip install build
pip build
pip install culligan
Library Requirements
Requires typical http interaction and datatype packages like requests, aiohttp, ujson, and the ayla-iot-unofficial module to handle devices and communication.
User Requirements
Reqiures a username and password (typically a smart device's app login credentials). The Culligan specific app_id is included in the package (obtained from the Culligan app).
Usage
Class Object
Instantiate a new class object through new_culligan_api() or Culligan() directly.
Access Tokens
The Culligan() object will call sign_in() automatically to obtain Culligan IoT and Ayla access_tokens. Then, it will instantiate an AylaApi() object with the Ayla access_token (no sign_in() required).
Use Culligan for communication with the Culligan IoT domain. Use the Ayla property of the Culligan object for direct communication with Ayla Networks.
Devices
Gather devices by calling the Ayla.get_devices().
By default, calling get_devices() will return a list of class specific device objects with updated properties for use.
See ayla-iot-unofficial/device.py for implemented device classes.
Typical Operation
python3 -m pip install Culligan
import Culligan
USERNAME = 'me@email.com'
PASSWORD = '$7r0nkP@s$w0rD'
CulliganApi = new_culligan_api(username, password)
CulliganApi.sign_in()
CulliganApi.Ayla = CulliganApi.get_ayla_api()
device_list = CulliganApi.Ayla.list_devices()
devices = CulliganApi.Ayla.get_devices()
# Example Water Softener Devices
softener = devices[0]
softener.capacity_remaining_gallons
softener.set_vacation_mode()
License
Metadata
Release files for culligan 1.1.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Loss of provenance
These files do not have provenance metadata, despite files in a prior release including this data.
We recommend further investigation before installing these files. View details.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| culligan-1.1.8.tar.gz | 12.9 kB | Without provenance | Details for culligan-1.1.8.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| culligan-1.1.8-py3-none-any.whl | Python 3 | none | any | Details for culligan-1.1.8-py3-none-any.whl |
Total release size: 24.4 kB
Release files / culligan-1.1.8.tar.gz
Loss of provenance
This file belongs to a release without provenance metadata, despite a prior release including this data.
We recommend further investigation before installing this file. View details.
| Download URL | culligan-1.1.8.tar.gz |
|---|---|
| Size | 12.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c9b11c5892e8507c27b9443a304fa63760e388392fcb9cbba24bf6d450dcf8b7
|
|
BLAKE2b-256 checksum How to use checksums |
bd02454910664a49d8601c67d0e7a2a870bba70da6c3d966aa02adfab8caa48e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / culligan-1.1.8-py3-none-any.whl
Loss of provenance
This file belongs to a release without provenance metadata, despite a prior release including this data.
We recommend further investigation before installing this file. View details.
| Download URL | culligan-1.1.8-py3-none-any.whl |
|---|---|
| Size | 11.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c3ed8e1de8c30e1feddd29c5cfcdf4045ff9abb11a83c56c3072dd20db0231a5
|
|
BLAKE2b-256 checksum How to use checksums |
aa0afe5bfe3f1416dece35f2d7222db8db061987c55f792b4d334f94202d2499
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Security for culligan 1.1.8
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Loss of provenance
A previous release of these files had provenance metadata, but this release does not.
While this could reflect a routine change by the project maintainers, it may also indicate that the release files have been compromised.
Release comparison
- Removed 1.1.6 2 files With provenance
- Added 1.1.8 2 files Without provenance
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.