KDhome
KRYSTIAN DUŻYŃSKI
Project info
Source code GitHub

Overview

Fast, low footprint, fully scriptable and extendable home automation system.

System architecture

System consists of Server, multiple Endpoints and one or more Automation scripts.

Server

An application running on dedicated machine (embedded system for example) which stands as an interface between Endpoints and Automation scripts. Main task of this application is to cover all low-level communication with Endpoints and expose an API for external Automation scripts.

Endpoint

A device which controls real hardware. It is controlled by Automation scripts via Server. Each endpoint provides number of Providers:
  • OutputProvider - provides digital (power) outputs
    can be used to:
    • Turn on/off light bulbs
    • Turn on/off electric sockets
    • Turn on/off any electric device which can be controlled via relays
  • InputProvider - provides digial inputs
    can be used to:
    • Get state of electric switches
    • Get state of reed switches (door/window open indicator)
    • Get state of motion sensors
  • TempProvider - provides reads from temperature sensors
  • IRProvider - provides IR codes for controlling system via remote controllers
  • AnalogProvider - provides volatge reads from analog inputs
  • CounterProvider - provides pulses counter
    can be used to:
    • Count energy/water usage

Automation scripts

Scripts used to process all events incoming from the system and sending automation commands. Example use-cases:

Gallery