Skip to main content

Control digital loggers web power switch

Project description

DESCRIPTION
This is a python module and a script to mange the
Digital Loggers Web Power switch.

The module provides a python class named
powerswitch that allows managing the web power
switch from python programs.

When run as a script this acts as a command
line utility to manage the DLI Power switch.

SUPPORTED DEVICES
This module has been tested against the following
Digital Loggers Power network power switches:
WebPowerSwitch II
WebPowerSwitch III
WebPowerSwitch IV
WebPowerSwitch V
Ethernet Power Controller III

COMMAND LINE USAGE
Usage: dlipower.py [options] [status|on|off|cycle|get_outlet_name|set_outlet_name] [range] [newname]

Options:
-h, --help show this help message and exit
--hostname=HOSTNAME hostname/ip of the power switch (default none)
--timeout=TIMEOUT Timeout for value for power switch communication
(default none)
--cycletime=CYCLETIME
Delay betwween off/on states for power cycle
operations (default none)
--user=USER userid to connect with (default none)
--password=PASSWORD password (default none)
--save_settings Save the settings to the configuration file
--quiet Suppress error output

Arguments:
range - One or more ports seperated by commas
Example:
1,3,5-9 (Refers to outlets 1,3,5,6,7,8,9)
newname - The name to rename the outlet to

PYTHON USAGE
NAME
dlipower

FILE
dlipower/dlipower.py

DESCRIPTION
###############################################################
Digital Loggers Web Power Switch management
###############################################################
Description: This is both a module and a script

The module provides a python class named
powerswitch that allows managing the web power
switch from python programs.

When run as a script this acts as a command
line utility to manage the DLI Power switch.

This module has been tested against the following
Digital Loggers Power network power switches:
WebPowerSwitch II
WebPowerSwitch III
WebPowerSwitch IV
WebPowerSwitch V
Ethernet Power Controller III

Author: Dwight Hubbard d@dhub.me

CLASSES
powerswitch

class powerswitch
| Powerswitch class to manage the Digital Loggers Web power switch
|
| Methods defined here:
|
| __init__(self, userid=None, password=None, hostname=None, timeout=None, cycletime=None)
|
| command_on_outlets(self, command, outlets)
| If a single outlet is passed, handle it as a single outlet and
| pass back the return code. Otherwise run the operation on multiple
| outlets in parallel the return code will be failure if any operation
| fails. Operations that return a string will return a list of strings.
|
| cycle(self, outlet=0)
| Cycle power to an outlet
| False = Power off Success
| True = Power off Fail
| Note, does not return any status info about the power on part of the operation by design
|
| determine_outlet(self, outlet=None)
| Get the correct outlet number from the outlet passed in, this
| allows specifying the outlet by the name and making sure the
| returned outlet is an int
|
| get_outlet_name(self, outlet=0)
| Return the name of the outlet
|
| geturl(self, url='index.htm')
| Get a URL from the userid/password protected powerswitch page
| Return None on failure
|
| load_configuration(self)
| Return a configuration dictionary
|
| off(self, outlet=0)
| Turn off a power to an outlet
| False = Success
| True = Fail
|
| on(self, outlet=0)
| Turn on power to an outlet
| False = Success
| True = Fail
|
| printstatus(self)
| Print the status off all the outlets as a table to stdout
|
| save_configuration(self)
| Update the configuration file with the object's settings
|
| set_outlet_name(self, outlet=0, name='Unknown')
| Set the name of an outlet
|
| status(self, outlet=1)
| Return the status of an outlet, returned value will be one of: ON, OFF, Unknown
|
| statuslist(self)
| Return the status of all outlets in a list,
| each item will contain 3 items plugnumber, hostname and state
|
| verify(self)
| Verify we can reach the switch, returns true if ok

DATA
CONFIG_DEFAULTS = {'cycletime': 3, 'hostname': '192.168.0.100', 'passw...
CONFIG_FILE = '~/.dlipower.conf'
CYCLETIME = 3
TIMEOUT = 30

PYTHON EXAMPLE
Note, see the example script scripts/example.py for a more detailed example

#!/usr/bin/env python
import dlipower

powerswitch=dlipower.powerswitch(hostname="lpc.digital-loggers.com",userid="admin")

# Print the status of the outlets on the powerswitch
print powerswitch.status()

# Turn off outlet one
powerswitch.off(1)

# Turn on outlet 2
powerswitch.on(2)

# Rename outlet 1
powerswitch.set_outlet_name(1,'Traffic light')

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

dlipower-0.2.40.tar.gz (11.7 kB view details)

Uploaded Source

File details

Details for the file dlipower-0.2.40.tar.gz.

File metadata

  • Download URL: dlipower-0.2.40.tar.gz
  • Upload date:
  • Size: 11.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for dlipower-0.2.40.tar.gz
Algorithm Hash digest
SHA256 a4044421c1e82598b9a44c7b17fbed1d92c7ca3a75a97bef078b8beb25950ee2
MD5 ed0487279a41b18607b36ee5595c80e8
BLAKE2b-256 e6664d9d67aba4f9a6774b6094389e57dabe6bae1af8c49b06476bc29c11637e

See more details on using hashes here.

Supported by

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