Skip to content

ElektraInitiative/opensesame

Repository files navigation

Build badge

Introduction and Goals

Opensesame, or German: "Sesam, öffne dich" is an awesome home automation software with focus on door/garage entry.

PIN entry via buttons

What already works:

  • opening (garage) doors via a novel PIN entry method: you can press and release buttons in any sequence (e.g. press 1, press 2, release 1, release 2)
  • switching on entry lights
  • doorbell
  • fire alert
  • HW-reset with PWR-Switch
  • events are reported to Nextcloud chats in English or German

For what is missing, see TODO.md.

Disclaimer

Currently there is no full beginner-friendly documentation on how to setup the system. If you are interested, please open an issue. Installation is not difficult, though.

As hardware hacking is involved I cannot guarantee that anything will work for you. It works for me, though.

Quality Goals

  1. Robust & Secure: The automation should be exactly as intended. A single failure should not affect other parts of the system. Also on a blackout battery-powered systems should continue working.

  2. Simplicity: Flexibility should be only added if actually needed and even then in a rather static way.

Solution

It is decentralized and runs on several Olimex A20-OLinuXino-LIME2-e16Gs16M with Debian Stable.

Kernel: Linux schreibtisch 5.10.105-olimex #090538 SMP Wed Apr 13 09:06:56 UTC 2022 armv7l GNU/Linux

On each Olimex, the same software runs but differently configured using Elektra.

E.g. to set a new PIN 1234 for "us":

kdb set user:/sw/libelektra/opensesame/#0/current/validator/us "[14, 15, 13, 15, 11, 15, 7, 15]"

Deployment is done via Ansible, see an example.

See spec for available configuration options.

To keep it more simple, the same node cannot be responsible for having the same functionality multiple times.

As implementation language Rust is used.

Hardware

No guarantee for completeness. Better you open an issue before you actually order something.

As base to actually run opensesame you need:

If you want to try it out on your normal PC, we have provided an emulation guide.

Probably you also want for every device:

To open the doors you need:

For PWR Switch (switch off mod-io, sensors etc.) you need:

For smoke detection you need:

To detect if Garage door is at end position:

  • e.g. Basic Switch Hinge Lever Low OP

Furthermore to switch 230V circuits (with the relays of the MOD-IO2) you might need: