pydoover Documentation
pydoover is the Python SDK for the Doover IoT platform. It provides everything you need to build applications that run on edge devices, process events in the cloud, and interact with the Doover API from standalone scripts.
Install
Install pydoover from PyPI. Python 3.11 or later is required.
pip install pydoover
Or using uv:
uv add pydoover
See the full Installation guide for additional install methods and optional extras.
What pydoover provides
Cloud API clients --- Synchronous and asynchronous clients for the Doover Data and Control APIs. Manage agents, channels, messages, aggregates, notifications, and more from any Python environment.
Docker application framework --- A base class and event loop for building device-side applications that run inside Docker on Doovit hardware. Includes interfaces for hardware I/O (digital, analog), Modbus, and cloud synchronisation via gRPC.
Cloud processor framework --- A base class for serverless, event-driven processing in AWS Lambda. React to channel messages, scheduled events, deployment changes, and ingestion endpoint payloads.
Configuration schema system --- A declarative DSL for defining application settings. Schemas are rendered as configuration forms in the Doover management portal and are available to your app at runtime.
UI element system --- A declarative DSL for building device dashboards. Define variables, interactions (buttons, sliders, switches), containers, and camera views that appear in the Doover customer site.
Tag system --- Typed, persistent key-value state for applications. Tags are declared on a class, backed by cloud-synced channels, and can be bound directly to UI elements.
Utility libraries --- PID controller, Kalman filter with outlier detection, alarm monitoring with grace periods, dictionary diff/merge, async state machines, and more.
What's in this documentation
Getting Started
- Installation --- install methods, optional extras, and verification
- Quick Start --- get a Docker app, cloud processor, or API script running
Core Concepts
- Architecture --- platform architecture, agents, channels, and data flow
- Core Concepts --- channels, messages, aggregates, tags, and events
- Application Lifecycle --- how Docker and processor apps start, run, and shut down
Cloud API
- Overview --- Data and Control client overview
- DataClient --- sync and async Data API clients
- Channels --- channel CRUD and subscriptions
- Messages --- message operations, iteration, and timeseries
- Authentication --- auth profiles, token refresh, and OAuth
Docker Applications
- Overview --- the device-side application framework
- Application Class ---
setup(),main_loop(), shutdown, and event handlers - Platform Interface --- digital/analog I/O and pulse counters
- Modbus Interface --- serial and TCP Modbus
Cloud Processors
- Overview --- the serverless processor framework
- Application Class --- event handlers and lifecycle
- Events --- event types and dispatch
Configuration, Tags, and UI
- Configuration --- schema definition and config elements
- Tags --- typed persistent state and auto-logging triggers
- UI --- declarative dashboards with tag binding
Utilities
- Overview --- PID, Kalman, alarms, diff, state machine, and more