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.3.0.tar.gz (8.8 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.3.0-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for hubitat_maker_api_client-2.3.0.tar.gz
Algorithm Hash digest
SHA256 47113f39ebb267292f535e0e52fe1f1d451b14c19969fc23a576262d85e60f22
MD5 ca56b0b8ce7d0839c3604eef2e474b87
BLAKE2b-256 853e919f6a571f6550f13ef856680849ebb3b1e37ba75e26c5d24bdb45e094e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hubitat_maker_api_client-2.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d3ea3426260a70ac217f734b48ecee9bb11ce5425844531cfc2a83d532cd049c
MD5 83ef1f88cf269cc8b54d3095b34279db
BLAKE2b-256 807a55ef1e50b72e64ab8f887dc780751c89fa190eafb0330589051fbec84438

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