dlibox

module
v0.0.0-...-db03bfd Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 15, 2020 License: Apache-2.0

README

dlibox

Yet-another-home-automation project

GoDoc Go Report Card

Why another one?

  • Performant
    • When there's a power outage, it boots within 11 seconds on a RPi3.
      • I don't want to wait 3 minutes for Java (OpenHAB) or node.js (node-red) to startup. Go executables start instantaneously.
    • It is designed to run extremely well on single core systems like the C.H.I.P. or the Raspberry Pi Zero.
  • Maintainable
    • Devices can be deployed via github.com/periph/bootstrap.
    • dlibox self-updates every night.
    • The controller and the device (node) are the same Go executable. It can be simply scp'ed if desired.
    • The device has no local configuration beside the MQTT server name, which defaults to the host dlibox so if you setup your controller hostname to dlibox, you litterally have no configuration to do on the devices.
    • Uses a derivative of the Homie convention which is well designed. The tweak is that it's the controller that tells the device what nodes it shall present. This simplifies management.
    • Communicates over MQTT, which is a stable protocol and a stable implementation.
  • Secure
    • No internet connectivity is needed nor used. Everything is local on the LAN. What is in your house stays in your house.
    • Devices deployed via bootstrap apply Debian security updates automatically every night.
  • Usable
    • Web App served directly from the controller. Everything is accessed via this Web App. It is installable on mobile phones to use it like a App. It makes it trivial to make dashboards with old tablets.
  • Featureful
    • Can drive multiple strips of LEDs like the APA-102 in a fully synchronous manner, thanks to github.com/maruel/anim1d. anim1d permits to create complex animations that are synchronized across multiple nodes. This permits very long runs of LEDs strips that are fully synchronized by using multiple computers, one per few hundred LED.
    • Supports general 'home automation' like sensors and displays.
    • Leverages periph.io for all hardware access.

Look at HARDWARE.md for more information about what to buy.

There's an incomplete device implemented in C++ to run on a ESP8266 that will act as an Homie node.

Directories

Path Synopsis
cmd
dlibox
dlibox is an home automation system.
dlibox is an home automation system.
dlibox-lite
dlibox-lite is an home automation system to be used with home assistant and similar MQTT based systems.
dlibox-lite is an home automation system to be used with home assistant and similar MQTT based systems.
Package controller implements the dlibox controller.
Package controller implements the dlibox controller.
alarm
Package alarm defines the alarms based on the time of the day.
Package alarm defines the alarms based on the time of the day.
rules
Package rules defines the generic rules engine.
Package rules defines the generic rules engine.
Package device implements the dlibox device.
Package device implements the dlibox device.
esp
rsc
Package nodes describes the shared nodes definition language between the controller and the devices.
Package nodes describes the shared nodes definition language between the controller and the devices.
Package shared contains shared code between the controller and the device(s).
Package shared contains shared code between the controller and the device(s).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL