Python wrapper for Telldus' home automation library
Project description
tellcore-py is a Python wrapper for Telldus’ home automation library Telldus Core.
Documentation: https://tellcore-py.readthedocs.org/
Official home page: https://github.com/erijo/tellcore-py
Python package index: https://pypi.python.org/pypi/tellcore-py
Please report any problem as a GitHub issue report.
Features
Wraps the C-interface with a python interface (with classes and exceptions).
Automatically frees memory for returned strings.
Throws an exception (TelldusError) in case a library function returns an error.
Supports python 3 with automatic handling of strings (i.e. converting between bytes used by the C-library and strings as used by python).
Takes care of making callbacks from the library thread-safe.
Unit tested.
Besides being useful with the regular Python implementation (a.k.a. CPython), it also works with pypy.
Open source (GPLv3+).
Works on Linux, Mac OS X and Windows.
Requirements
Python 2.7, 3.2+ or pypy
Installation
$ pip install tellcore-py
Can also be installed by cloning the GIP repository or downloading the ZIP archive from GitHub and unpacking it. Then change directory to tellcore-py and run:
$ python setup.py install
Users
Tellprox - A local server to use in place of Telldus Live
tellive-py - A Python wrapper for Telldus Live
Example
A simple example for adding a new “lamp” device, turning it on and then turning all devices off.
from tellcore.telldus import TelldusCore
core = TelldusCore()
lamp = core.add_device("lamp", "arctech", "selflearning-switch", house=12345, unit=1)
lamp.turn_on()
for device in core.devices():
device.turn_off()
More examples can be found in the bin directory.
Changelog
See changelog section in documentation.
Internals
At the bottom there is the Library class which is a ctypes wrapper and closely matches the API of the underlying Telldus Core library. The library class takes care of freeing memory returned from the base library and converts errors returned to TelldusException. The library class is not intended to be used directly.
Instead, the TelldusCore class provides a more python-ish API on top of the library class. This class is used for e.g. adding new devices, or enumerating the existing devices, sensors and/or controllers. E.g. calling the devices() method returns a list of Device instances. The Device class in turn has methods for turning the device on, off, etc.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.