Skip to content

KoiFresh/dieklingel-core

Repository files navigation

🔔 dieKlingel Core

Discover a project aimed at crafting a lightweight, feature-packed doorbell. Enjoy video calling and remote door unlocking, all at a fraction of the usual cost.

📦 Technologies

🦄 Features

dieKlingel is designed to run on a small computer like a Raspberry Pi. It has intergrations for different types of use-cases. We try to keep each use case as easy to configure as possible.

📺 Kiosk

At the hearth of dieKlingel runs a kiosk application which is build with QML which makes it possible to be extended as needed. The kiosk application is desinged to run on small display and give the user the ability to ring the bell, turn on the light or unlock the doo via a passcode on the screen.

📞 SIP

You need mediastreams? You get mediastreams! The SIP intergration allows it, to ring your phone, when some action is going on infront of your door. With the power of Flexisip and the Linphone APP you'll get notifications on your phone even, if you aren't at home.

🕸️ MQTT

How would it be easier to intergrate dieKlingel in your smarthome without coupling it to a decent provider? The mqtt intergration could be connected to an mqtt broker, and publish events on topics, so that other smart devices could react on these. Also states like "online" and "offline" could be gathered via mqtt.

🕹️ GPIO

Do you prefer a physical button instead of the onscreen button? Don't worry, use the gpio pins of your Raspberry Pi as input to react on a button press. An integration which gets extremle powerfull in combination with the Kiosk, just use QML to script the actions on an input event.

🚦 Run the Project

To be able to run the project you have to build it. Start by cloning this repository.

🪜 Install dependencies

Install dependencies which are required to build and/or run the project.

# Buildtime dependencies
sudo make deps:build

# Runtime dependencies
sudo make deps:run

# Development dependencies
sudo make deps:dev

# Or for development, build and runtime
sudo make deps:all

🏗️ Build the core

make build

# Or build a debian package archive
make package

🔧 Install the core

sudo make install

# Or if you build a debian package archive
sudo apt-get install ./build/dieklingel-core_<VERSION>_<ARCH>.deb

🚂 Run the core

Now you should be able to run the core with its default configuration. Don't worry you won't see much, because all integrations are disabled by default.

dieklingel-core

Now its time to enable the integrations you would like to use. The configuration file is called core.js and the core will look in multiple locations and choose the first file wich will be found.

  • $(pwd)/core.js
  • $HOME/.config/core.js
  • $HOME/core.js
  • /etc/dieklingel-core/core.js
  • /usr/share/dieklingel-core/core.js

To configure the core as needed refere to core.js and core.d.ts.

🚅 Run as service

  • 🚀 Start as user service

    systemctl --user start dieklingel-core
  • ✋ Stop as user service

    systemctl --user stop dieklingel-core
  • 🔄 Restart the service

    systemctl --user restart dieklingel-core
  • 🚗 Run after login

    systemctl --user enable dieklingel-core