Skip to content
/ radiale Public

What if home automation was homoiconic? Just transformations of data? No more YAML!

License

Notifications You must be signed in to change notification settings

xlfe/radiale

Repository files navigation

Radiale Logo

Radiale

What if home-automation was also homoiconic?

The upper or proximal row contains three bones, to which Gegenbaur has applied the terms radiale, intermedium, and ulnare, the first being on the radial or preaxial side of the limb.


Radiale is a home automation system combining Clojure for orchestration and Python for device integrations, connected via Babashka pods.

Features

  • ESPHome device control and monitoring
  • deCONZ Zigbee gateway integration
  • MQTT broker subscription
  • Chromecast device discovery
  • Scheduling with cron, solar events, and delays
  • Event-driven automation with state watching

Quick Start

Prerequisites

  • Java 17+
  • Python 3.9+
  • Clojure CLI

Installation

# Clone the repository
git clone https://github.com/xlfe/radiale.git
cd radiale

# Install Python dependencies
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

# Download Clojure dependencies
clojure -P

Minimal Configuration

Create config/setup.clj:

(ns config.setup
  (:require [radiale.core :as rc]
            [radiale.esp :as esp]))

(def config
  [{:fn esp/discover}])  ; Discover ESPHome devices

(rc/run config)

Run

./start.sh

Documentation

Full documentation is available in the docs/ directory:

How-To Guides

Project Structure

radiale/
├── src/radiale/     # Clojure source (orchestration)
├── radiale/         # Python modules (device integrations)
├── test/radiale/    # Clojure tests
├── tests/radiale/   # Python tests
├── docs/            # Documentation
├── config/          # Your configuration files
├── deps.edn         # Clojure dependencies
└── setup.py         # Python package

Running Tests

./run-tests.sh

Or individually:

# Python tests
pytest tests/

# Clojure tests
clojure -M:test

Contributing

Contributions are welcome! Please:

  1. Run tests before submitting PRs
  2. Follow existing code style
  3. Update documentation for new features

License

MIT

About

What if home automation was homoiconic? Just transformations of data? No more YAML!

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages