EZO sensor hardware provider for the Anolis runtime.
- Runnable ADPP provider with config parsing, framed stdio transport, and unit tests.
- Serialized I2C execution model with Linux and mock session support.
- Full EZO family coverage (
ph,orp,ec,do,rtd,hum) with fixed signal surfaces. - Safe control functions across families (
find,set_led,sleep). - Startup identity verification with active/excluded inventory diagnostics.
- Mixed-bus validation assets for Windows mock and Linux real hardware.
- Runtime duplicate ownership validation integration landed in
anolis.
Download the latest release binary (Linux x86_64):
VERSION=$(curl -fsSL https://api.github.com/repos/anolishq/anolis-provider-ezo/releases/latest | grep '"tag_name"' | sed 's/.*"v\([^"]*\)".*/\1/')
curl -fsSL "https://github.com/anolishq/anolis-provider-ezo/releases/download/v${VERSION}/anolis-provider-ezo-${VERSION}-linux-x86_64.tar.gz" \
| tar -xz
# binary is at ./bin/anolis-provider-ezoValidate a config file without connecting hardware:
./bin/anolis-provider-ezo --check-config config/example.local.yamlProvider-ezo is started by the Anolis runtime as a subprocess — it is not run directly.
Point your anolis runtime config at it:
# in your anolis-runtime.yaml providers section:
providers:
- id: ezo0
command: ./bin/anolis-provider-ezo
args: ["--config", "./providers/ezo0.yaml"]
timeout_ms: 5000See config/example.local.yaml in the source for a full annotated config. Validation assets
and mixed-bus runbooks are in anolishq/anolis-projects.
No sibling checkouts required — anolis-protocol and ezo-driver resolve automatically at configure time.
For active development of ezo-driver alongside this repo, clone it as a sibling and pass
-DEZO_DRIVER_DIR=../ezo-driver to override the release artifact lookup.
Linux (Debian/Ubuntu):
sudo apt-get update
sudo apt-get install -y build-essential cmake ninja-build git curl zip unzip tar pkg-configWindows (PowerShell):
winget install Kitware.CMake; winget install Ninja-build.Ninja; winget install Git.Git
# Install Visual Studio 2022 with "Desktop development with C++" workloadInstall vcpkg and set VCPKG_ROOT:
git clone https://github.com/microsoft/vcpkg.git "$HOME/vcpkg"
"$HOME/vcpkg/bootstrap-vcpkg.sh"
export VCPKG_ROOT="$HOME/vcpkg"Linux/macOS:
git clone https://github.com/anolishq/anolis-provider-ezo.git
cd anolis-provider-ezo
cmake --preset dev-release
cmake --build --preset dev-release --parallel
ctest --preset dev-releaseLinux hardware build:
cmake --preset dev-linux-hardware-release
cmake --build --preset dev-linux-hardware-release --parallelWindows (MSVC):
cmake --preset dev-windows-release
cmake --build --preset dev-windows-release --parallel
ctest --preset dev-windows-releaseLinux:
./build/dev-release/anolis-provider-ezo --check-config config/example.local.yaml
./build/dev-release/anolis-provider-ezo --config config/example.local.yamlWindows:
.\build\dev-windows-release\Release\anolis-provider-ezo.exe --check-config config\example.local.yaml- Mixed-bus config pack and runbook:
anolis-projects/projects/mixed-bus-dev/in theanolishq/anolis-projectsrepo (clone separately; these are realization assets, not bundled here) - Canonical HTTP validation script:
validation/check_mixed_bus_http.shin that same directory - Validation summary:
docs/mixed-bus-validation.md
For Linux mixed-bus hardware runs:
- Build
anolis-provider-breadwithdev-linux-hardware-release. - Build
anolis-provider-ezowithdev-linux-hardware-release. ../anolis-projects/projects/mixed-bus-dev/config/provider-bread.yamlsetshardware.require_live_session: trueso startup fails fast if bread is built without hardware support.
- docs/index.md
- Planning notes:
working/(gitignored)
Local API docs: run doxygen docs/Doxyfile from the repo root.
Generated output goes to build/docs/doxygen/html/ and remains untracked.