Getting started

Edge: Docker Compose

From the repo root:

docker compose up -d --build
  • BACnet core (diy-bacnet-server): JSON-RPC + Swagger at http://localhost:8080/docs.
  • Agents (dueler_*, hvac_agent, mqtt_publisher, …) use BACNET_BACKEND=diy_jsonrpc — see docker-compose.yml.

network_mode: host is used so BACnet/IP can reach the OT LAN reliably from Linux gateways (typical Pi / edge server).


Laptop: local Python

git clone https://github.com/bbartling/easy-aso.git
cd easy-aso
python -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -e ".[dev]"
pytest tests/test_abc.py tests/test_supervisor.py -v

Optional full BACnet-in-Docker check:

pytest tests/test_bacnet.py -v

Supervisor (optional service)

pip install -e ".[platform]"
export SUPERVISOR_DB_PATH=./data/supervisor.sqlite
uvicorn easy_aso.supervisor.app:app --host 0.0.0.0 --port 8090

Open http://127.0.0.1:8090/docs for CRUD on devices/points and latest polled values. Details: Supervisor workflows.


Build this documentation locally

cd docs
bundle install
bundle exec jekyll serve --livereload

Open http://127.0.0.1:4000/easy-aso/.

Published site (GitHub Pages)

Set Settings → Pages → Build and deployment → Source: GitHub Actions.

Workflows (same layout as open-fdd):

Workflow What it does
docs-pages.yml Jekyll → GitHub Pages when docs/** changes on master (repo Settings → Pages → Source: GitHub Actions, same as open-fdd docs-pages.yml)
docs-pdf.yml Regenerates pdf/easy-aso-docs.pdf, opens a PR (LLM text bundle is docs/_build/easy-aso-docs.txt, not tracked)
publish-pypi.yml Publishes the whole package on push tags v*

Public site: https://bbartling.github.io/easy-aso/

PyPI setup for maintainers: PyPI publishing.


MIT · easy-aso · BACnet edge + asyncio supervisor

This site uses Just the Docs, a documentation theme for Jekyll.