Skip to content

What is it

2Franix edited this page Sep 26, 2014 · 3 revisions

What is Homewatcher?

For impatient people

Put simply, Homewatcher is an opensource Python implementation of a configurable alarm system that can interact with KNX devices through a Linknx server. It is aimed at providing an easy-to-configure alarm system to those KNX users that do not want to bother writing source code. As Linknx, Homewatcher is totally usable without writing a single line of code.

Inspired from Pyknx, Homewatcher is presented as a Python package with a set of additional standalone scripts. Refer to the Standalone Scripts page to learn more about their respective usage.

From the end user's standpoint, the only thing to do is to put together an XML configuration that describes all sensors, the various surveillance modes and what should be done when an alert is raised (send an email, put lights on, trigger a siren, etc.). If you are feeling impatient, feel free to jump to the Getting Started section right now! In most cases, you are only a few minutes away from having Homewatcher up and running.

Out of the box, the hardware side is handled by any KNX device that has a state represented by:

  • a boolean (opening detector, smoke detector, generic binary input)
  • a real value like a temperature sensor for instance

Okay but how does Homewatcher interact with the KNX devices?

First, please note that you do not have to understand how it works if you do not want to. You can simply trust me: write your config and that will work. But if you are willing to know, no secret: the software side consist of a Linknx instance that interacts with the physical devices through the eibd daemon. By means of Pyknx some Python code is executed when objects relevant to the alarm system get changed. Homewatcher is nothing but a set of Python functions embedded in a Pyknxcommunicator instance. The communicator is configured to have those functions called when Linknx objects related to your sensors change. The Python code implements the 'alarm' logic and can in turn change other Linknx objects or ask Linknx to execute an action.

Why not using Linknx directly?

Linknx is itself customizable through its dedicated XML configuration but when it comes to an alarm system, this way of setting things up is not flexible enough (it is too verbose, does not allow for factoring the config among all sensors, it is not easy to check against acceptance test cases, etc).

Licensing

Homewatcher is free software and is distributed under the terms of the GNU Public License version 3. It is provided for convenience and in the sincere hope that it will be useful. But using Homewatcher does not imply any warranty from me. As the developer of the application, I shall not be responsible of any damage or inconvenience due to the use of it.