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
Close
Hashes for mqtt_presence_checker-0.1.18.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | e6111ba2c1fb027509d53d5040fe11bb19f6df226b08b2c06c0fe0c0394ba08c |
|
MD5 | dedd913a7ffd9bd63724edeb7fa9d7d5 |
|
BLAKE2b-256 | 6446089fac2fdb24156f8fd03d8e03aa7956b348e1b0ffb50dde75236f4b2b73 |
Close
Hashes for mqtt_presence_checker-0.1.18-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | caa107593654177d5ae78f0a57d5be399984baba91ca656f8886ad09b50b99d3 |
|
MD5 | cbcbf16852abbc2c354bbc45ef0b1938 |
|
BLAKE2b-256 | 7e85f391297d25421534633d5d48bef1dbb3e886a47b8c8c134d1d05afe1f4e5 |