pydoover CLI
The pydoover CLI provides direct command-line access to device services running on a Doovit or other Doover edge device. It communicates with three gRPC server containers -- Platform Interface, Device Agent, and Modbus Interface -- letting you read I/O, manage channels, control Modbus devices, and perform system operations from the terminal.
The CLI is primarily used for debugging, testing, and device management during development. It gives you immediate access to the same interfaces your Docker applications use programmatically.
Installation
The CLI is included in the pydoover package. Install it with the gRPC extra to enable the required dependencies:
pip install pydoover[grpc]
After installation, the pydoover command is available in your shell.
Basic Usage
The CLI is organised into three subsections, each corresponding to a gRPC service:
pydoover {platform|device_agent|modbus} <command> [arguments]
For example, to read digital input 1 from the Platform Interface:
pydoover platform fetch_di 1
To list messages on a channel via the Device Agent:
pydoover device_agent list_messages telemetry
To read Modbus registers:
pydoover modbus read_registers --modbus_id 1 --start_address 0 --num_registers 10
Subsections
Platform
The Platform Interface provides access to the Doovit's hardware I/O, system information, and device control. Use it to read sensors, set outputs, check system voltage, and manage the device lifecycle.
See CLI Commands for the full list of platform commands.
Device Agent
The Device Agent manages channel data, messages, and aggregates. Use it to inspect channel state, create and list messages, update aggregates, and listen to real-time channel events.
See CLI Commands for the full list of device agent commands.
Modbus
The Modbus Interface manages serial and TCP Modbus bus connections. Use it to open and close buses, read and write registers, and test communication with Modbus devices.
See CLI Commands for the full list of modbus commands.
Connection
The CLI connects to gRPC servers running in Docker containers on the local device. Each interface container exposes a gRPC endpoint that the CLI discovers automatically. You can override the connection URI with the --uri flag:
pydoover platform --uri localhost:50051 fetch_di 1
Debugging
To see full Python tracebacks when a command fails, add the --enable-traceback flag:
pydoover platform fetch_di 1 --enable-traceback
The CLI suppresses gRPC debug logging by default (setting GRPC_VERBOSITY=ERROR). This keeps the output clean for interactive use.
Next Steps
- CLI Commands -- full reference for all commands across all three subsections