There are at least two python libraries for communicating with the Telldus service. One of them is ‘tellcore-py’ which is an active github project (link). Installing the package by using pip (“python install python”):
> pip install tellcore-py
The tellcore library is wrapper of the telldus C/C++ library which communicates directly with the Telldus service (the telldusd – daemon). This service was configured in last blog post and it uses the libusb library to send messages/commands via usb to the Tellstick DUO – see picture below.
+ +---------+ | tellcore.py +-> |telldusd/| | Tellstick DUO |libusb +----> +---------+ | +
However in this case only interesting in a narrow use of the library i.e. turning on and off the switches. Later on if buying sensors it will be interesting collecting data through the use of this library.
Here is a small utility ‘turn.py’ written in python using the library, doing what I need – not more not less:
#!/usr/sbin/python import sys import tellcore.telldus core = tellcore.telldus.TelldusCore() def turn(state, device): devices = [d for d in core.devices() if d.name == device or device == 'all'] for d in devices: m = getattr(d, "turn_" + state) m() if __name__ == "__main__": if len(sys.argv) == 3: turn(sys.argv, sys.argv) else: print "turn "
Trying it out by first setting the executable flag and then running it directly by turning on/off switches
> chmod u+x turn.py > turn on wallswitch3 > turn off all