lha is a light home automation application
The lha application allows to
- enrich your existing gateway such as the Hue bridge
- record and display historical device values such as temperature
- interact between incompatible protocols such as between ZigBee and Z-Wave
- compose advanced automations using Blockly scripts
- create your own Lua extensions
The lha engine manages the extensions including scripts, the things, the scheduler and a web server. The engine records thing property values in dedicated time based log files.
It is a pure Lua application built around a scheduler and an HTTP server based on luajls. It exposes a Web of Things API.
The lha application could be run on small computers such as the Raspberry PI or the WD MyCloud. It could also be run on any Linux distribution or Windows. The application is small, around 5MB, and does not need any dependency.
Available extensions are:
- ConBee II, Dresden elektronik ConBee REST API
The recommended tool is deCONZ using docker - Philips Hue V2, Hue Bridge REST API
The recommended tool is the Hue Bridge - Z-Wave JS WS, Z-Wave JS API
The recommended tool is Z-Wave JS UI using docker - MQTT Broker, provides a light message broker
- Generic
Create virtual things, usefull for scripting - Web Chart
Display thing property values in a time chart - Web Dashboard
Setup tiles with relevant thing properties - Web Scripts
Automatically trigger thing modifications - Share server folders to download and upload files
- Users Management, adds user and permissions
- HTTPS server, provides lha on a secure server
- Self monitoring, based on Lua and libuv
- Ping, Test the reachability of a host on the network
You need to include your devices using the dedicated tool such as deCONZ, Hue App or Z-Wave JS UI Control Panel.
Any device available through ConBee, Hue or Z-Wave JS could be added by enhancing the extension JSON mapping files.
See list of already available devices
An example of a dashboard setup with temperature and motion sensors.
A chart of temperature sensors.
An example of script to send a SMS on an intrusion.
Download the latest release corresponding to your target OS.
Unzip the archive and launch the engine using bin/lua lha.lua -ll info
Open the web interface in a browser. Go to the extension section to add and configure your extensions.
Note that you will need to provide an authorized user to use the ConBee or Hue bridge.
The lha release includes web extensions using the following libraries:
- "vuejs" is licensed under the MIT License see https://vuejs.org/
Reactive, component-oriented view layer for modern web interfaces - "blockly" is licensed under the Apache License 2.0 see https://developers.google.com/blockly/
Blockly is a library from Google for building beginner-friendly block-based programming languages - "Chart.js" is licensed under the MIT License see http://chartjs.org/
Simple yet flexible JavaScript charting for designers & developers - "Moment.js" is licensed under the MIT License see https://momentjs.com/
Parse, validate, manipulate, and display dates and times in JavaScript - "Font Awesome Free" is licensed under multiple licenses see https://fontawesome.com/license/free
The iconic font and CSS framework - "fetch" is licensed under the MIT license see https://github.com/github/fetch/releases
- "promise" is licensed under the MIT license see https://github.com/taylorhakes/promise-polyfill