Skip to main content

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.

See Ayla-iot-unofficial

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

MIT

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.

Source distribution (sdist)

Source distribution for culligan 1.1.8
File Size Uploaded
culligan-1.1.8.tar.gz 12.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for culligan 1.1.8
File Interpreter ABI Platform
culligan-1.1.8-py3-none-any.whl Python 3 none any Details

Total release size: 24.4 kB

Release files / culligan-1.1.8.tar.gz

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

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

Release history Release notifications | RSS feed

This release

1.1.8 This release

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page