Skip to main content

# dlock13

Breakout design (in EAGLE) and source code for our door lock actuator, running on a Raspberry PI(1). Communication with the lock happens over [MQTT](https://en.wikipedia.org/wiki/MQTT). Does not contain user interface, check [door-web](https://github.com/bitraf/door-web) for that.

## MQTT interface

To open the door, send the number of seconds to open to:

/bitraf/door/$door_id/open # Ex: 20

On success, will output values:

/bitraf/door/$door_id/isopen # Ex: true/false /bitraf/door/$door_id/openuntil # Unix timestamp when door will lock again. Ex: 1495469392

On error, will send a string with an error message:

/bitraf/door/$door_id/error # Ex: “Time to open is negative”

Where $door_id is for instance 2floor, frontdoor, 4floor. The /bitraf/door/ prefix is configurable, can be set to /mysystem/doorlocks.

## Code

At [dlock13-msgflo/dlock13.cpp](./dlock13-msgflo/dlock13.cpp).

Impementation is in C++11, using [msgflo-cpp](https://github.com/msgflo/msgflo-cpp).

## Python API

Also provided is a simple Python module which will handle checking the MQTT messages being sent out on success/error.

Installing

pip install dlock13

A command-line tool is included

dlock13-open /bitraf/door/$door_id 60

For how to use programatically, use [dlock13-open](./dlock13-open) as example code.

## Board

![RPI breakout board with components](./doc/rpi-breakout-populated.jpg)

The board has two MOSFETS for driving standard electronic locks. Expansion for two inputs also exists.

Single-sided board with through-hole components, can easily be CNC milled or etched.

![RPi breakout board schematic](./doc/rpi-breakout-schematic.png)

### Pinout

# Function | Connector pin | BCM SoC pin | WiringPi pin | === mosfet1 | 19 | 10 | 12 mosfet2 | 2 | 11 | 14

BCM SoC pin is the on used for /sys/class/gpio/gpioNN and similar.

## Deployment

A systemd service template is normally used to each doorlock: [dlock13@.service](dlock13-msgflo/dlock13@.service).

systemctl status dlock13@2floor

The following environment variables are used. They can be specified in /etc/dlock13/$door_id.conf.

  • MSGFLO_BROKER - the MQTT broker connection details. Ex: mqtt://user:password@mqtt.example.net

  • DLOCK13_PIN - the GPIO pin number to use. Ex: 11

Metadata

Release files for dlock13 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dlock13 0.4.1
File Size Uploaded
dlock13-0.4.1.tar.gz 5.7 kB Details

Release files / dlock13-0.4.1.tar.gz

Download URL dlock13-0.4.1.tar.gz
Size 5.7 kB
Tags Source
SHA-256 checksum
How to use checksums
d06288051b2c1271622d2458e08442dc0ba23d5b36f76489356fcfdd2f791f21
BLAKE2b-256 checksum
How to use checksums
4cc743427bedcc7b1f4e2f7c6e714c8061a9c0805434e760f34b177c19953697
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.4.1 This release

1 release file

0.4.0

1 release file

0.3.0

2 release files

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page