Skip to main content

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

jumpstarter_driver_http_power-0.7.3.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jumpstarter_driver_http_power-0.7.3-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file jumpstarter_driver_http_power-0.7.3.tar.gz.

File metadata

File hashes

Hashes for jumpstarter_driver_http_power-0.7.3.tar.gz
Algorithm Hash digest
SHA256 525b292feca29f21ab0f67c83dcf04477f084a461f3bb806c602ef5d57c5fb03
MD5 2fb9b5d5604bd7b27b8868c05989cb2f
BLAKE2b-256 1ecfdf05b5054a1508920b59ae7416f32ea376c722b0ba9f1799f1106c5c6e6d

See more details on using hashes here.

File details

Details for the file jumpstarter_driver_http_power-0.7.3-py3-none-any.whl.

File metadata

File hashes

Hashes for jumpstarter_driver_http_power-0.7.3-py3-none-any.whl
Algorithm Hash digest
SHA256 829184d11f0bbeb2c301343fbc624985a4b9c980e313a928c6b87172b05a04cc
MD5 47cd59c479482c7f3a84740472011e5a
BLAKE2b-256 75bbe6bb12c8e0bf29f644c7a357635eff763a70e8dec7308dd59a13aed2d44a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page