watlowlib¶
Async-first Python driver for Watlow
temperature controllers over RS-232 / EIA-485. Speaks both wire
protocols Watlow controllers expose — Standard Bus (BACnet MS/TP
outer framing + a small Watlow attribute service) and Modbus RTU
(via the in-house anymodbus)
— behind a single semantic Controller API that decodes to the same
typed Reading either way.
This site is the reference for the v1 design. The authoritative
architectural document lives at Design; every design
decision in the library should be traceable to a section there. Built
as a sibling to alicatlib
and sartoriuslib:
the same async core, sync facade, multi-device manager, fake
transport, acquisition helpers, typed models, pluggable sinks, and
explicit safety gates.
Where to start¶
- Installation
- Async quickstart — the canonical surface
- Sync quickstart — for scripts and notebooks
- Controllers —
Controller, families, capability flags - Commands — the command surface, safety tiers, protocol-variant dispatch
- Parameters — the cross-protocol parameter registry
- Streaming —
record(...), sinks, backpressure - Logging and acquisition — recorder, sinks, structured log events
- Safety — destructive operations and
confirm=True - Testing —
FakeTransport, fixtures, hardware tiers - Troubleshooting — first-contact, typed errors, diagnostics
- Wire protocols: Standard Bus / Standard Bus findings / Modbus RTU
Status¶
Alpha. The library ships the full transport (real + fake), both
protocol clients (Standard Bus and Modbus RTU), the Controller
facade, multi-port WatlowManager, recorder and record(...) helper,
all first-party sinks (CSV, JSONL, SQLite, InMemory in the base
install; Parquet, Postgres behind extras), the sync facade,
fixture-based testing utilities, and the stable watlow-* CLI plus the
watlow-diag reverse-engineering namespace. The public architecture
is frozen; documentation completion and broader hardware coverage are
in progress. See Design for forward work.
License¶
MIT. See LICENSE.