Skip to main content

Async HTTP + WebSocket client for Social Home, used by the Home Assistant integration.

Project description

socialhome-client

Async HTTP + WebSocket client for Social Home, published to PyPI as socialhome-client and consumed by the Home Assistant integration.

Never imports from social_home (core). Safe to install inside Home Assistant Core, which runs on Python 3.13.

Install

pip install socialhome-client

Use

The client groups methods under feature resources — e.g. c.me.get(), c.shopping.add(...), c.bot.create(...) — rather than a flat surface.

import asyncio

from socialhome_client import SocialHomeClient, SocialHomeWsManager


async def main() -> None:
    async with SocialHomeClient("http://homeassistant.local:8099", token="…") as sh:
        me = await sh.me.get()
        print(me.display_name)

        await sh.shopping.add("milk")
        events = await sh.calendar.list_events("cal-1", "2026-05-01", "2026-06-01")
        print(f"{len(events)} events this month")

        ws = SocialHomeWsManager(sh)
        await ws.connect()
        ws.register(
            ["post_created"],
            lambda frame: asyncio.sleep(0, print(frame)),
        )


asyncio.run(main())

Bots

Home Assistant automations can post into a space feed through the bot-bridge. Each bot has its own Bearer token (shown once on create) and posts render with the bot's icon + name instead of a generic "Home Assistant" avatar.

# Admin turns on bot posting for the space, then registers a household bot.
await sh.space.update(space_id, bot_enabled=True)
bot = await sh.bot.create(
    space_id, scope="space", slug="doorbell",
    name="Doorbell", icon="🔔",
)

# Persist bot.token somewhere safe — the backend will not show it again.
await sh.bot.post(
    space_id, bot.token,
    title="Ring", message="Front door",
)

Develop

pip install -e .[dev]
pre-commit install
pytest

Documentation

  • docs/principles.md — design principles (standalone of core, async everywhere, typed responses).
  • docs/architecture.md — HTTP client + feature resources, WebSocket manager, models, exceptions.
  • docs/testing.md — test strategy, 85 % coverage gate, aioresponses + fake-WS patterns.
  • CLAUDE.md, AGENTS.md — guidance for AI assistants working in this repo.

License

Mozilla Public License 2.0.

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

socialhome_client-2026.5.10.tar.gz (37.5 kB view details)

Uploaded Source

Built Distribution

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

socialhome_client-2026.5.10-py3-none-any.whl (23.9 kB view details)

Uploaded Python 3

File details

Details for the file socialhome_client-2026.5.10.tar.gz.

File metadata

  • Download URL: socialhome_client-2026.5.10.tar.gz
  • Upload date:
  • Size: 37.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for socialhome_client-2026.5.10.tar.gz
Algorithm Hash digest
SHA256 a2d3e6fadd4a567e89d8918f2e34dd58969d064fdd2696f92ca4f48b04a78640
MD5 4b22bf2f563afe5a335a8c95c98a9c71
BLAKE2b-256 63f3dbe5f3602c639e2e6f99d3aec46435f1e93ea0ce87cb01da16c0042ef8d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for socialhome_client-2026.5.10.tar.gz:

Publisher: publish.yml on social-home-io/socialhome-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file socialhome_client-2026.5.10-py3-none-any.whl.

File metadata

File hashes

Hashes for socialhome_client-2026.5.10-py3-none-any.whl
Algorithm Hash digest
SHA256 ef55eda7114debc2eedc7b3d6ee4eb3bfa5d90705bbe19ad4f74f53dcf1ff450
MD5 60cbfce5860b63d38ee59ac352f2211f
BLAKE2b-256 8f87f2dc7e0dd0a5ae31d570f741cdd6bc9745d6daf49e92e8b3d200ee058f9d

See more details on using hashes here.

Provenance

The following attestation bundles were made for socialhome_client-2026.5.10-py3-none-any.whl:

Publisher: publish.yml on social-home-io/socialhome-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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