telldus/examples/python/live/server/TelldusCore.py

40 lines
1.1 KiB
Python

# -*- coding: utf-8 -*-
import ctypes
class TelldusCore():
def __init__(self):
self.supportedMethods = 0
self.lib = ctypes.cdll.LoadLibrary('libtelldus-core.so')
self.list = []
for i in range(self.lib.tdGetNumberOfDevices()):
id = self.lib.tdGetDeviceId(i)
device = {'id': id}
namePtr = self.lib.tdGetName(id)
device['name'] = ctypes.c_char_p(namePtr).value
self.lib.tdReleaseString(namePtr)
stateValuePtr = self.lib.tdLastSentValue(id)
device['stateValue'] = ctypes.c_char_p(stateValuePtr).value
self.lib.tdReleaseString(stateValuePtr)
self.list.append(device)
def getList(self):
return self.list
def setSupportedMethods(self, supportedMethods):
if (self.supportedMethods == supportedMethods):
return
self.supportedMethods = supportedMethods
for device in self.list:
device['methods'] = self.lib.tdMethods(device['id'], supportedMethods)
device['state'] = self.lib.tdLastSentCommand(device['id'], supportedMethods)
def turnoff(self, id):
self.lib.tdTurnOff(id)
print "Turning off: %i" % id
def turnon(self, id):
self.lib.tdTurnOn(id)
print "Turning on: %i" % id