dependabot[bot] f21f450527 build(deps-dev): bump pytest from 8.3.3 to 8.3.4 (#159) | hai 1 semana | |
---|---|---|
.github | hai 1 semana | |
docs | %!s(int64=4) %!d(string=hai) anos | |
systemctl_mqtt | %!s(int64=2) %!d(string=hai) anos | |
tests | %!s(int64=2) %!d(string=hai) anos | |
.dockerignore | %!s(int64=4) %!d(string=hai) anos | |
.gitignore | %!s(int64=4) %!d(string=hai) anos | |
.isort.cfg | %!s(int64=4) %!d(string=hai) anos | |
.pylintrc | %!s(int64=2) %!d(string=hai) anos | |
CHANGELOG.md | hai 1 ano | |
COPYING | %!s(int64=4) %!d(string=hai) anos | |
Dockerfile | %!s(int64=2) %!d(string=hai) anos | |
Makefile | %!s(int64=3) %!d(string=hai) anos | |
Pipfile | hai 1 ano | |
Pipfile.lock | hai 1 semana | |
README.md | hai 1 ano | |
docker-apparmor-profile | %!s(int64=2) %!d(string=hai) anos | |
docker-compose.yml | %!s(int64=4) %!d(string=hai) anos | |
mypy.ini | %!s(int64=4) %!d(string=hai) anos | |
setup.py | hai 1 ano |
MQTT client triggering & reporting shutdown on systemd-based systems
$ pip3 install --user --upgrade systemctl-mqtt
$ systemctl-mqtt --mqtt-host HOSTNAME_OR_IP_ADDRESS
On debian-based systems, dependencies can optionally be installed via:
$ sudo apt-get install --no-install-recommends python3-dbus python3-gi python3-paho-mqtt
Schedule poweroff by sending a MQTT message to topic systemctl/hostname/poweroff
.
$ mosquitto_pub -h MQTT_BROKER -t systemctl/hostname/poweroff -n
systemctl-mqtt
subscribes to logind's PrepareForShutdown
signal.
systemctl halt|poweroff|reboot
triggers a message with payload true
on topic systemctl/hostname/preparing-for-shutdown
.
Lock screen by sending a MQTT message to topic systemctl/hostname/lock-all-sessions
.
$ mosquitto_pub -h MQTT_BROKER -t systemctl/hostname/lock-all-sessions -n
# https://www.home-assistant.io/docs/mqtt/broker/#configuration-variables
mqtt:
broker: BROKER_HOSTNAME_OR_IP_ADDRESS
# credentials, additional options…
script:
poweroff_raspberry_pi:
sequence:
service: mqtt.publish
data:
topic: systemctl/raspberrypi/poweroff
homeassistant:
customize:
script.poweroff_raspberry_pi:
friendly_name: poweroff pi
icon: mdi:power
automation:
- trigger:
platform: mqtt
topic: systemctl/raspberrypi/preparing-for-shutdown
payload: 'true'
action:
service: switch.turn_off
entity_id: switch.desk_lamp
After enabling MQTT device discovery
home assistant will automatically detect a new entity
binary_sensor.hostname_preparing_for_shutdown
.
mqtt:
broker: BROKER_HOSTNAME_OR_IP_ADDRESS
discovery: true # default in home assistant >=v0.117.0
# credentials, additional options…
When using a custom discovery_prefix
pass --homeassistant-discovery-prefix custom-prefix
to systemctl-mqtt
.
docker-compose.yml
.sudo apparmor_parser ./docker-apparmor-profile
sudo docker-compose up --build
Pre-built docker image are available at https://hub.docker.com/r/fphammerle/systemctl-mqtt/tags
Annotation of signed tags docker/*
contains docker image digests: https://github.com/fphammerle/systemctl-mqtt/tags
TLS is enabled by default.
Run systemctl-mqtt --mqtt-disable-tls …
to disable TLS.
systemctl-mqtt --mqtt-username me --mqtt-password secret …
# or
systemctl-mqtt --mqtt-username me --mqtt-password-file /var/lib/secrets/mqtt/password …
systemctl-mqtt --poweroff-delay-seconds 60 …