Skip to main content

Python client library for Kohler Anthem Digital Shower API

Project description

kohler-anthem

Python library for controlling Kohler Anthem digital showers.

DISCLAIMER: This is an unofficial library developed independently for personal use. It is not affiliated with, endorsed by, or supported by Kohler Co. This library was reverse-engineered from the Kohler Konnect mobile app and may break at any time if Kohler modifies their APIs. The author provides no warranty, assumes no liability, and offers no support for this software. Use at your own risk. The author is not responsible for any damage to your devices, property, or any other consequences resulting from the use of this library.

Installation

pip install kohler-anthem

Quick Start

import asyncio
from kohler_anthem import KohlerAnthemClient, KohlerConfig, Outlet

async def main():
    config = KohlerConfig(
        username="user@example.com",
        password="password",
        client_id="...",
        apim_subscription_key="...",
        api_resource="...",
    )

    async with KohlerAnthemClient(config) as client:
        # Discover devices
        customer = await client.get_customer("customer-id")
        device = customer.get_all_devices()[0]

        # Get state
        state = await client.get_device_state(device.device_id)
        print(f"Running: {state.is_running}")

        # Control
        await client.turn_on_outlet(device.device_id, Outlet.SHOWERHEAD, temperature_celsius=38.0)
        await client.turn_off(device.device_id)

asyncio.run(main())

Configuration

Parameter Description
username Kohler account email
password Kohler account password
client_id Azure AD B2C client ID
apim_subscription_key Azure APIM subscription key
api_resource Azure AD B2C API resource ID

Obtaining Credentials

The client_id, api_resource, and apim_subscription_key must be extracted from the Kohler Konnect mobile app. See credential-extraction/ for automated tools and instructions.

Development

make deps    # Install dependencies
make check   # Run lint, typecheck, tests
make help    # Show all targets

See Makefile for all available targets.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kohler_anthem-0.1.2.tar.gz (69.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kohler_anthem-0.1.2-py3-none-any.whl (23.0 kB view details)

Uploaded Python 3

File details

Details for the file kohler_anthem-0.1.2.tar.gz.

File metadata

  • Download URL: kohler_anthem-0.1.2.tar.gz
  • Upload date:
  • Size: 69.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for kohler_anthem-0.1.2.tar.gz
Algorithm Hash digest
SHA256 3ac926ac942f027fcaaa06864ab09876aa6026b0ca46b28f5746fa34505001c8
MD5 f9cff21ae407965c524f09d105b5bc97
BLAKE2b-256 408827d5dc315e58c99b21ea6fc90d7ff9ee93bb3270126467c808101d95f619

See more details on using hashes here.

File details

Details for the file kohler_anthem-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: kohler_anthem-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 23.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for kohler_anthem-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 29d5d7be1ade6acae26d773daf1093bca9bad4546550750e56a8711e340c0881
MD5 4153eceebea4661d15b5bab5152d5e1c
BLAKE2b-256 481275ebd7d67b59f1e7f5b840c8db0f5e7134d2eee7eee3f2e18fee20819f6d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page