Warning
This documentation is actively being updated as the project evolves and may not be complete in all areas.
HTTP Power Driver¶
jumpstarter-driver-http-power
provides functionality for controlling power via HTTP endpoints and reading power measurements.
Installation¶
pip3 install --extra-index-url https://pkg.jumpstarter.dev/simple/ jumpstarter-driver-http-power
Configuration¶
Example configuration:
export:
http_power:
type: jumpstarter_driver_http_power.driver.HttpPower
config:
name: "device"
power_on:
url: "http://power-controller.local/api/power/on"
method: "POST"
data: "action=on"
power_off:
url: "http://power-controller.local/api/power/off"
method: "POST"
data: "action=off"
power_read:
url: "http://power-controller.local/api/power/status"
method: "GET"
auth:
basic:
user: "admin"
password: "secret"
Example configuration for Shelly Smart Plug:¶
apiVersion: jumpstarter.dev/v1alpha1
kind: ExporterConfig
metadata:
namespace: default
name: demo
endpoint: ""
token: ""
export:
power:
type: jumpstarter_driver_http_power.driver.HttpPower
config:
name: "my-splug"
power_on:
url: "http://192.168.1.65/relay/0?turn=on"
power_off:
url: "http://192.168.1.65/relay/0?turn=off"
auth:
basic:
user: admin
password: something
Config parameters¶
Parameter |
Description |
Type |
Required |
Default |
---|---|---|---|---|
name |
Name of the device, for logging purposes |
str |
no |
“device” |
power_on |
HTTP endpoint config for powering on |
HttpEndpointConfig |
yes |
|
power_off |
HTTP endpoint config for powering off |
HttpEndpointConfig |
yes |
|
power_read |
HTTP endpoint config for reading power measurements |
HttpEndpointConfig |
no |
None |
auth |
Authentication configuration |
HttpAuthConfig |
no |
None |
auth.basic |
Basic authentication credentials |
HttpBasicAuth |
no |
None |
HttpEndpointConfig parameters¶
Parameter |
Description |
Type |
Required |
Default |
---|---|---|---|---|
url |
The HTTP endpoint URL |
str |
yes |
|
method |
HTTP method (GET, POST, PUT, etc.) |
str |
no |
“GET” |
data |
Request body data for POST/PUT/PATCH requests |
str |
no |
None |
HttpBasicAuth parameters¶
Parameter |
Description |
Type |
Required |
Default |
---|---|---|---|---|
user |
Username for basic authentication |
str |
yes |
|
password |
Password for basic authentication |
str |
yes |
API Reference¶
- class jumpstarter_driver_power.client.PowerClient
- cycle(wait: int = 2)
Power cycle the device.
- off() None
Power off the device.
- on() None
Power on the device.
- read() Generator[PowerReading, None, None]
Read power data from the device.
Examples¶
Basic power control:
# Power on the device
http_power_client.on()
# Power off the device
http_power_client.off()
Notes¶
The power reading response parsing is not yet implemented. The driver currently returns dummy values (0.0V, 0.0A).
Authentication is optional and currently supports HTTP Basic Auth only.
All HTTP requests will raise exceptions on HTTP error status codes.