A power driver for HTTP enabled PDUs or smart sockets, like the Shelly splug
Project description
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
.. autoclass:: jumpstarter_driver_power.client.PowerClient()
:members: on, off, read, cycle
:no-index:
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.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jumpstarter_driver_http_power-0.7.0.tar.gz.
File metadata
- Download URL: jumpstarter_driver_http_power-0.7.0.tar.gz
- Upload date:
- Size: 4.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
08aa1c48863e0fdbd83f576ad4174455028f2a63aa3beeecd7ad80ba85230916
|
|
| MD5 |
5489a4ea137799c5f9384de80b2ceaa2
|
|
| BLAKE2b-256 |
5028f43cb0cfee66b33279151aac241aa664f3fb8c92d82aba5f0b76c354fd17
|
File details
Details for the file jumpstarter_driver_http_power-0.7.0-py3-none-any.whl.
File metadata
- Download URL: jumpstarter_driver_http_power-0.7.0-py3-none-any.whl
- Upload date:
- Size: 5.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8fc17f3e71a3d9de148cf70b045ac8dd53e920411edd0a5e5dc85df7acd6b93
|
|
| MD5 |
de0cd3ccaf4402319d8005850aca5a88
|
|
| BLAKE2b-256 |
493d1944246e11550e93c4460d9afc19ddcf774263ecfba932958eb57f9d7327
|