Digital Loggers

Python Scripts





Python-dlipower


Special thanks to our valued customer Dwight Hubbard for these handy Python scripts and examples. 
Best for the legacy (pre 2017) DLI power controllers.

The newest version is on the python pypi repository (https://pypi.python.org/pypi/dlipower/)
The source is on github (https://github.com/dwighthubbard/python-dlipower)

Thanks again, Dwight.

 


Hammock  (Best for WiFI capable controllers)


For those interested only in the WiFi capable power controllers, Hammock https://github.com/kadirpekel/hammock/ is quite
sufficient to obtain a convenient REST API interface.
Sample code:

from hammock import Hammock
from requests.auth import HTTPDigestAuth
import time

auth = HTTPDigestAuth('admin', '1234')
pcr=Hammock("http://192.168.0.100/restapi",append_slash=True,auth=auth,headers={'X-CSRF': 'x'})

print (pcr.auth.users.GET().json())
# [{u'outlet_access': [True, True, True, True, True, True, True, True], u'password': {u'$ref': u'0/password/'}, u'is_allowed': True, u'is_admin': True, u'name': u'admin'}]
print (pcr.auth.users(0).outlet_access.GET().json())
# [True, True, True, True, True, True, True, True]
# Outlets/Relays are zero indexed in the REST API (0-7)
pcr.relay.outlets(0).state.PUT(json=True) # Relay 0 switches on
time.sleep(5)   

outlets=pcr.relay.outlets
# Relay 1 starts switching on
for i in range(1,7):
    outlets(i).state.PUT(json=True)  # outlets 1-7 switch on
    
time.sleep(7)   

for i in range(8):
    outlets(i).state.PUT(json=False)  # all outlets switch off
    
print (pcr.auth.users("is_admin=true").name.GET().json())
# admin