JavaScript is disabled or not working. Turn On JavaScript and get awesome text here with every click.

KaithemAutomation: Python based home automation

Kaithem automation is a flexible web-based automation system that lets you create events, dynamic HTML pages, log data, manage multiple users and, control which users can access pages, and more.

Kaithem is not exactly a traditional home automation system. It's more of a web based IDE with HTTPS encryption full user and group management and an integrated library for common automation tasks(Like figuring out if it's after sunset or not). A thread pool based architecture that makes it easy to run or schedule tasks in the background, A message bus that makes event logging as simple as one line of code

You can set up "Events" which fire on a trigger condition. You can define functions and classes and whatever else in them because they act like python modules. You can edit and save them without affecting other modules on the system. You can write HTML pages(In the Mako template language), and restrict access to them with the permission system

Everything is saved in a JSON file based backend, and nothing is saved to disk until you say so or until the configurable autosave kicks in. Even logs are saved in RAM until they are dumped to a file(optionally compressed with gz or bz2). This means you won't wear out flash based devices and you can run from read-only media without a problem. If you want more protection, just set autosave to save every minute. If you have data that needs to be written as it happens, it's all python and you are free to use SQLite.

Kaithem is still new and should not be used for anything needing extreme reliability, but it has been used in a few projects, and an instance is running 24/7 on a raspi at my house and seems pretty stable.

Kaithem should run on python 2.7+ or 3+ and maybe 2.6, and includes all required dependancies. For sound you should install mplayer or SoX. You may get a security certificate error when acessing the web UI, this is because Kaithem includes a dummy certificate for testing. You should get a real certificate if security is at all important to you, or else keep your server off the public internet. Kaithem supports unencrypted access to anything the special user __guest__ can access

The game in the video is served from a Raspberry Pi running Kaithem.


And lots more. Check it out at github