Skip to main content

Hubitat Maker API Client

Project description

hubitat_maker_api_client

This library facilitates access to Hubitat's Maker API. A key innovation is the HubitatCachingClient, which is capable of maintaining a cache of all your devices in a data store of your choice. This can allow you to query device state more efficiently than using the Maker API directly. HubitatCachingClient can be attached to a process that listens to Hubitat's /eventsocket to update the cached device states in real time.

Quick Start

Install

pip install hubitat-maker-api-client

This sample code demonstrates how to configure a HubitatCachingClient using your HOST, APP_ID, ACCESS_TOKEN and HUB_ID along with your custom implementation of DeviceCache.

from hubitat_maker_api_client import DeviceCache, HubitatAPIClient, HubitatCachingClient


class YourDeviceCache(DeviceCache):
   # Override methods for reading and writing
   # device state to your own datastore


_api_client = HubitatAPIClient(
    host=<HOST>,
    app_id=<APP_ID>,
    access_token=<ACCESS_TOKEN>,
    hub_id=<HUB_ID>,
)

client = HubitatCachingClient(
    api_client=_api_client,
    device_cache=YourDeviceCache(),
)


for switch in client.get_on_switches():
    client.turn_off_switch(switch)
    print(f'Turned off {switch}')

This sample code demonstrates how to update device state on your HubitatCachingClient by listening to Hubitat's /eventsocket.

import asyncio
import websockets
from hubitat_maker_api_client import HubitatEvent

async def listen(uri: str) -> None:
    async with websockets.connect(uri) as websocket:
        while True:
            message = await websocket.recv()
            event = HubitatEvent(json.loads(message))
            client.update_from_hubitat_event(event)

asyncio.get_event_loop().run_until_complete(listen('ws://<HOST_IP>/eventsocket'))

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

hubitat_maker_api_client-2.4.0.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

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

hubitat_maker_api_client-2.4.0-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file hubitat_maker_api_client-2.4.0.tar.gz.

File metadata

File hashes

Hashes for hubitat_maker_api_client-2.4.0.tar.gz
Algorithm Hash digest
SHA256 d455f6baef8fcd281f5c7f6dabbfe66fa0ec68755428b856d9a1f64f35ad9c53
MD5 3a3545072fe84c46be9bb2cae5881f0b
BLAKE2b-256 c09df0048415dc66c42e09dfff7753414d5cfa1ebca08648e8e2fff791bb8e8b

See more details on using hashes here.

File details

Details for the file hubitat_maker_api_client-2.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for hubitat_maker_api_client-2.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6455db9075975ad32f641d2529306bee76a353c8af1e77799f66caedbcb3372d
MD5 3b75e818a2ef587db28216a85047f29a
BLAKE2b-256 05265c6bb10f1024f8ab4e49db1f0d286b343622efff06fb86ccd66cca8851c1

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