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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6fe427729be982b18c59f463d1f3d74a08f445895d06330b0892cc9d90818d7c
|
|
| MD5 |
bdf32902ab88c1d985ba452bef8ef32e
|
|
| BLAKE2b-256 |
10b2f42457d77b400208bdb60e4aa513101ade104f7a81424fbbcb36da325f6f
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a0bd47a26f18e757103d7e7a97711ddc244a71139fb257e9a4bad0044929af5
|
|
| MD5 |
7260165b642b3f977074e285a385bb04
|
|
| BLAKE2b-256 |
14b77e397c2d8093b8d18fc8ba64170158e2091068c9238acf162855e4092f00
|