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.
- 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
- Java 17+
- Python 3.9+
- Clojure CLI
# 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 -PCreate 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)./start.shFull documentation is available in the docs/ directory:
- Getting Started - Complete setup tutorial
- Configuration - Configuration reference
- Architecture - System design
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
./run-tests.shOr individually:
# Python tests
pytest tests/
# Clojure tests
clojure -M:testContributions are welcome! Please:
- Run tests before submitting PRs
- Follow existing code style
- Update documentation for new features
MIT
