Skip to content

ElektraInitiative/opensesame

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
doc
 
 
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 

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 easy, 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:

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:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages