Monorepo con una DSL en Elixir para declarar entidades y automatizaciones de Home Assistant, y todo lo necesario para probarla contra una instancia real.
home_assistant_elixir/— el paquetehome_elixir: la DSL embebida en Elixir que declara entidades (input_boolean,input_number,input_select,alarm_control_panel) y automatizaciones, y las materializa como YAML para Home Assistant. Ver su README y GUIDE.md para la referencia completa.home_assistant_api_client/— cliente Elixir para la REST API de Home Assistant (consultar/cambiar estado de entidades, llamar servicios, plantillas). Lo usahome_assistant_elixirpara los helpersget_*/set_*generados por la DSL.test_projects_home_assistant/— proyecto de ejemplo que consumehome_elixircon casos reales (alarma, luces, persianas, climatización) y tests de integración contra una instancia de Home Assistant real.home_assistant_docker_pruebas/— instancia de Home Assistant en Docker usada como sandbox para esos tests de integración.
Cada subproyecto tiene sus propias dependencias y mix.exs. Para trabajar en la DSL:
cd home_assistant_elixir
mix deps.get
mix testPara levantar el Home Assistant de pruebas:
cd home_assistant_docker_pruebas
docker compose up -d