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.5.0.tar.gz (9.7 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.5.0-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for hubitat_maker_api_client-2.5.0.tar.gz
Algorithm Hash digest
SHA256 cdc4368a7f695c22ddd2f93128581978ce87c2f3b9e903010373e7969efa83bd
MD5 3436c3519544bcf319d0df14f64ec042
BLAKE2b-256 ddc3aa523ce2fb1f90289c1ecdec89790c3123cd38b64b667168b33e4ed67760

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hubitat_maker_api_client-2.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b5d21f907cd972a8d7cd961252a33d18543405c291b0f2f2bb46588ab2d1cdb4
MD5 a0f0b2102b0fecf1036eeae94eb61914
BLAKE2b-256 45230ed9927748986f04645efdcde850c0638e129ea08e4f29498b7f948e7d74

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