Skip to main content

No project description provided

Project description

Domovoy

Domovoy is a powerful application framework designed to drive automations for Home Assistant using Python. If you prefer writing your automations in pure Python rather than YAML, Node Red, or n8n, providing a more flexible and developer-friendly approach to home automation.

Inspired by AppDaemon, Domovoy is a completely new codebase built from the ground up with Python's async/await throughout, resulting in significantly improved resource efficiency and performance.

Key Features

  • ServEnts Integration: When paired with ServEnts (a Home Assistant custom component), Domovoy can create devices and entities directly from Python code, eliminating the need for manually configuring helpers in HA.

  • Type Safety: Full support for Python typing, including typechecking for entities and services on the Home Assistant instance it connects to, catching errors before they happen.

  • Python-First Approach: Write all your automations in Python with full IDE support, and the ability to leverage Python's rich ecosystem of libraries.

  • High Performance: Leverages Python's async/await for efficient, non-blocking operations that make the most of your system resources.

How to run

We prefer to use docker to execut

uv sync
python domovoy/cli.py --config config.yml

Missing Docs

Basic App Template with Config

from dataclasses import dataclass
from domovoy.applications import AppBase, AppConfigBase

# If the App uses a per-instance configuration
@dataclass
class AppNameConfig(AppConfigBase):
    ...


class AppName(AppBase[AppNameConfig]):
    async def initialize(self):
        ...

Basic App Template without Config

from domovoy.applications import AppBase, EmptyAppConfig

# If the App takes no configuration
class AppName(AppBase[EmptyAppConfig]):
    async def initialize(self):
        ...

How to register an app

from domovoy.applications.registration import register_app


register_app(
    app_class=AppName,
    app_name="app_name",
    config=AppNameConfig(

    ),
)

Register multiple instances of the same AppType

from domovoy.applications.registration import register_app_multiple


apps_to_register = {
    "some_app_name_a": SomeConfig(
        ...
    ),
    "some_app_name_b": SomeConfig(
        ...
    ),
    "some_app_name_c": SomeConfig(
        ...
    ),
    ...
}


register_app_multiple(
    app_class=AppName,
    configs=apps_to_register,
)

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

domovoy-0.6.0.tar.gz (125.5 kB view details)

Uploaded Source

Built Distribution

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

domovoy-0.6.0-py3-none-any.whl (82.4 kB view details)

Uploaded Python 3

File details

Details for the file domovoy-0.6.0.tar.gz.

File metadata

  • Download URL: domovoy-0.6.0.tar.gz
  • Upload date:
  • Size: 125.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.22

File hashes

Hashes for domovoy-0.6.0.tar.gz
Algorithm Hash digest
SHA256 6fe427729be982b18c59f463d1f3d74a08f445895d06330b0892cc9d90818d7c
MD5 bdf32902ab88c1d985ba452bef8ef32e
BLAKE2b-256 10b2f42457d77b400208bdb60e4aa513101ade104f7a81424fbbcb36da325f6f

See more details on using hashes here.

File details

Details for the file domovoy-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: domovoy-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 82.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.22

File hashes

Hashes for domovoy-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0a0bd47a26f18e757103d7e7a97711ddc244a71139fb257e9a4bad0044929af5
MD5 7260165b642b3f977074e285a385bb04
BLAKE2b-256 14b77e397c2d8093b8d18fc8ba64170158e2091068c9238acf162855e4092f00

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