Skip to main content

HomeAssistant WS wrapper library

Project description

hass-client

Home Assistant async API wrapper

API Documentation

Example Usage:

from hass_ws import HassWS

async def main():
    client = await HassWS("wss://server.hass", "token")

    print(await client.fetch_states()) # Displays all HASS states
    print(await client.call_service("light", "turn_on")) # Turns on all lights
    async with client.listen_event(type="call_service") as listener:
        async for i in listener:
            print(i)

    await client.close()

HassWS Interface:

await HassWS(server: str, token: str)
  • server: Required, str. Base server URL of HASS instance, including wss:// or ws:// protocol specifier.
  • token: Required, str. Long-lived HASS access token.

Properties/Members:

  • HassWS().ready: Boolean value, True if the client is ready to send commands.
  • HassWS().meta: HassMeta, server metadata. None if not connected.

Methods:

  • await HassWS().close(): Closes the currently active connection. To reconnect, call await HassWS().authenticate()
  • await HassWS().fetch_states() -> HassEntity[]: Returns current states of all entities.
  • await HassWS().fetch_config() -> HassConfig: Returns current server config
  • await HassWS().fetch_services() -> {domain: {service: HassService}}: Returns all available services
  • await HassWS().fetch_panels() -> {name: HassPanel}: Returns all UI panels
  • await HassWS().call_service(domain: str, service: str, target: HassServiceTarget = {}, data: dict = {}) -> bool: Calls a service, returning boolean success value.
  • async with HassWS().listen_event(type: str = None) -> AsyncIterator: Subscribes to an event (or all events, if type = None), and returns an asynchronous iterator for them.

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

hass_websocket_client-0.2.0.tar.gz (5.0 kB view hashes)

Uploaded Source

Built Distribution

hass_websocket_client-0.2.0-py3-none-any.whl (6.4 kB view hashes)

Uploaded Python 3

Supported by

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