Skip to main content

No project description provided

Project description

Domovoy

Documentation Status

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, Domovoy provides 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.

Beta Status: This project is currently in beta. While I've been successfully running my home with Domovoy since 2023, you may still encounter bugs or rough edges. Feedback and contributions are welcome!

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.

  • Hot Reload: Automatic file watching and module reloading during development - make changes to your apps and see them take effect immediately without restarting.

Quickest Start

The fastest way to get started is with the Domovoy Starter Template. This prebuilt template has most of the pieces already in place—just update the config file with your Home Assistant details and run the included docker command.

Quick Start with Docker

The recommended way to run Domovoy is using Docker.

1. Create your configuration directory

mkdir -p ~/domovoy/apps

2. Create a configuration file

Create ~/domovoy/config.yml:

app_suffix: _apps
hass_access_token: YOUR_LONG_LIVED_ACCESS_TOKEN
hass_url: ws://homeassistant.local:8123
app_path: /config/apps
timezone: America/Chicago
install_pip_dependencies: true

Replace:

3. Install ServEnts Integration (Optional)

If you want to create Home Assistant entities directly from your Python code, install the ServEnts custom component in Home Assistant. This allows Domovoy to dynamically create sensors, switches, buttons, and other entities.

4. Run with Docker

docker run -d \
  --name domovoy \
  --restart unless-stopped \
  -v ~/domovoy:/config \
  ghcr.io/carlos-sarmiento/domovoy:latest

5. Create your first app

Create ~/domovoy/apps/my_first_apps.py:

from domovoy.applications import AppBase, EmptyAppConfig
from domovoy.applications.registration import register_app


class MyFirstApp(AppBase[EmptyAppConfig]):
    async def initialize(self):
        self.log.info("Hello from Domovoy!")

        # Listen to state changes
        self.callbacks.listen_state(
            "light.living_room"
            self.on_light_change,
        )

    async def on_light_change(self, entity_id, old, new):
        self.log.info(f"Light changed from {old} to {new}")


register_app(
    app_class=MyFirstApp,
    app_name="my_first_app",
    config=EmptyAppConfig(),
)

Documentation

Full documentation is available at domovoy.readthedocs.io

License

This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.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

domovoy-0.11.0.tar.gz (149.4 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.11.0-py3-none-any.whl (88.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: domovoy-0.11.0.tar.gz
  • Upload date:
  • Size: 149.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for domovoy-0.11.0.tar.gz
Algorithm Hash digest
SHA256 82f51057a10c9d3865d5959a6ad63c4b0b7ae683eb0a55fa28982d695a03c360
MD5 1a014651489d464357a6be41cdf14197
BLAKE2b-256 8bf81ce7e65d1dca3185883c3bd8ddfd8736eee886a5505b8cc13fac46e8e1a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for domovoy-0.11.0.tar.gz:

Publisher: python-publish.yml on carlos-sarmiento/domovoy

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

File details

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

File metadata

  • Download URL: domovoy-0.11.0-py3-none-any.whl
  • Upload date:
  • Size: 88.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for domovoy-0.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 03a13a761fe7db5d970bee6fc57dcb34bd8c88c0d15b8213a894e67cd6871606
MD5 273ff8271066afecaf3aa2f47b84cbf7
BLAKE2b-256 8d885b4ac2a4294f1fb79d2adcc201ec4b4ea1c6c06c9cfe868257e5bffc2616

See more details on using hashes here.

Provenance

The following attestation bundles were made for domovoy-0.11.0-py3-none-any.whl:

Publisher: python-publish.yml on carlos-sarmiento/domovoy

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