The library comes with a CLI tool called rctclient that offers some useful subcommands.

The tool is only installed if the click module's present. If installing from pip, the requirement can be pulled in by specifying rctclient[cli].

For certain parameters, the tool supports shell completion. Read more about this at the click documentation. For Bash, the completion can be activated using the following command: eval "$(_RCTCLIENT_COMPLETE=source_bash rctclient)"


rctclient toolbox. Please help yourself with the subcommands.

rctclient [OPTIONS] COMMAND [ARGS]...



Show the version and exit.

-d, --debug

Enable debug output


Enables frame debugging (requires --debug)


Sends a read request. The request is sent to the target "<host>" on the given "<port>" (default: 8899), the response is returned on stdout. Without "verbose" set, the value is returned on standard out, otherwise more information about the object is printed with the value.

Specify either "--id <id>" or "--name <name>". The ID must be in th decimal notation, such as "0x959930BF", the name must exactly match the name of a known object ID such as "battery.soc".

The "<name>" option supports shell autocompletion (if installed).

If "--debug" is set, log output is sent to stderr, so the value can be read from stdout while still catching everything else on stderr.

Timeseries data and the event table will be queried using the current time. Note that the device may send an arbitrary amount of data. For time series data, The output will be a list of "timestamp=value" pairs separated by a comma, the timestamps are in isoformat, and they are not altered or timezone-corrected but passed from the device as-is. Likewise for event table entries, but their values are printed in hexadecimal.


rctclient read-value --host --name temperature.sink_temp_power_reduction
rctclient read-value --host --id 0x90B53336
rctclient read-value [OPTIONS]


-p, --port <port>

Port at which the device listens, default 8899

-h, --host <host>

Required Host address or IP of the device

-i, --id <ID>

Object ID to query, of the form "0xXXXX"

-n, --name <name>

Object name to query

-v, --verbose

Enable verbose output


Starts the simulator. The simulator returns valid, but useless responses to queries. It binds to the address and port passed using "<host>" (default: localhost) and "<port>" (default: 8899) and allows up to five concurrent clients.

The response values (for read queries) is read from the information associated with the queried object ID if set, else a sensible default value (such as 0, False or dummy strings) is computed based on the response data type of the object ID.

rctclient simulator [OPTIONS]


-p, --port <port>

Port to bind the simulator to, defaults to 8899

-h, --host <host>

IP to bind the simulator to, defaults to localhost

-v, --verbose

Enable verbose output