Check if you (or your phone) is at home and notify your smarthome via mqtt!
Project description
mqtt-presence-checker
Check if you (or your phone) is at home and notify your smarthome via mqtt. You can configure this daemon via a toml file in /etc/mqtt-presence-checker/mqtt-presence-checker.conf.
/etc/mqtt-presence-checker/mqtt-presence-checker.conf:
[main]
cooldown = 10
log = "/var/log/mqtt-presence-checker.log"
[mqtt]
host = "mqtt.example.org"
username = "<username>"
password = "<password>"
topic = "presence-checker/presence"
[mqtt.sensor.door-sensor]
topic = "zigbee2mqtt/door_sensor"
predicate = "lambda x: not x['contact']"
[ping]
hosts = [
'alice.example.org',
'bob.example.org'
]
This is rather rudimentary and might crash or behave strange. Feel free to fork me on github and send a PR if you find any bug!
Install with docker
Run with docker:
docker run \
--cap-add net_raw \
--cap-add net_admin \
--name mqtt-presence-checker \
--restart unless-stopped \
-v /etc/mqtt-presence-checker/:/etc/mqtt-presence-checker/ \
--label io.containers.autoupdate=registry \
-d docker.io/rincewindwizzard/mqtt-presence-checker:latest
You can also configure systemd to create the containers using
$ podman generate systemd --restart-policy=always --new -n -t 1 mqtt-presence-checker > /etc/systemd/system/container-mqtt-presence-checker.service
$ systemctl enable container-mqtt-presence-checker.service
Which results in the following systemd unit:
# container-mqtt-presence-checker.service
# autogenerated by Podman 3.4.4
# Sat Oct 29 17:08:56 UTC 2022
[Unit]
Description=Podman container-mqtt-presence-checker.service
Documentation=man:podman-generate-systemd(1)
Wants=network-online.target
After=network-online.target
RequiresMountsFor=%t/containers
[Service]
Environment=PODMAN_SYSTEMD_UNIT=%n
Restart=always
TimeoutStopSec=61
ExecStartPre=/bin/rm -f %t/%n.ctr-id
ExecStart=/usr/bin/podman run --cidfile=%t/%n.ctr-id --cgroups=no-conmon --rm --sdnotify=conmon --replace --cap-add net_raw --cap-add net_admin --name mqtt-presence-checker -v /etc/mqtt-presence-checker/:/etc/mqtt-presence-checker/ --label io.containers.autoupdate=registry -d docker.io/rincewindwizzard/mqtt-presence-checker:latest
ExecStop=/usr/bin/podman stop --ignore --cidfile=%t/%n.ctr-id
ExecStopPost=/usr/bin/podman rm -f --ignore --cidfile=%t/%n.ctr-id
Type=notify
NotifyAccess=all
[Install]
WantedBy=default.target
Now everytime
$ podman auto-update
is called, the latest container image is redeployed.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file mqtt_presence_checker-0.1.18.tar.gz
.
File metadata
- Download URL: mqtt_presence_checker-0.1.18.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.2 CPython/3.10.4 Linux/5.15.0-52-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e6111ba2c1fb027509d53d5040fe11bb19f6df226b08b2c06c0fe0c0394ba08c |
|
MD5 | dedd913a7ffd9bd63724edeb7fa9d7d5 |
|
BLAKE2b-256 | 6446089fac2fdb24156f8fd03d8e03aa7956b348e1b0ffb50dde75236f4b2b73 |
Provenance
File details
Details for the file mqtt_presence_checker-0.1.18-py3-none-any.whl
.
File metadata
- Download URL: mqtt_presence_checker-0.1.18-py3-none-any.whl
- Upload date:
- Size: 10.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.2 CPython/3.10.4 Linux/5.15.0-52-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | caa107593654177d5ae78f0a57d5be399984baba91ca656f8886ad09b50b99d3 |
|
MD5 | cbcbf16852abbc2c354bbc45ef0b1938 |
|
BLAKE2b-256 | 7e85f391297d25421534633d5d48bef1dbb3e886a47b8c8c134d1d05afe1f4e5 |