Fabian Peter Hammerle 042f8c2a6e changelog: fix & reword section of v1.1.0 | 1 day ago | |
---|---|---|
.github | 1 day ago | |
docs | 3 weeks ago | |
systemctl_mqtt | 1 day ago | |
tests | 1 day ago | |
.dockerignore | 4 years ago | |
.gitattributes | 3 weeks ago | |
.gitignore | 1 day ago | |
.isort.cfg | 4 years ago | |
.pylintrc | 3 years ago | |
CHANGELOG.md | 1 day ago | |
COPYING | 4 years ago | |
Dockerfile | 3 weeks ago | |
Makefile | 3 years ago | |
Pipfile | 3 weeks ago | |
Pipfile.lock | 1 week ago | |
README.md | 1 day ago | |
docker-apparmor-profile | 1 day ago | |
docker-compose.yml | 2 weeks ago | |
mypy.ini | 4 years ago | |
pyproject.toml | 3 weeks ago | |
setup.py | 2 weeks ago | |
systemd-user.service | 2 weeks ago |
MQTT client triggering & reporting shutdown on systemd-based systems
$ pip3 install --user --upgrade systemctl-mqtt
On debian-based systems, a subset of dependencies can optionally be installed via:
$ sudo apt-get install --no-install-recommends python3-jeepney python3-paho-mqtt
Follow instructions in systemd-user.service to start systemctl-mqtt automatically via systemd.
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
$ systemctl-mqtt --mqtt-host HOSTNAME_OR_IP_ADDRESS
systemctl-mqtt --help
explains all available command-line options / parameters.
TLS is enabled by default.
Run systemctl-mqtt --mqtt-disable-tls …
to disable TLS.
systemctl-mqtt --mqtt-username me --mqtt-password-file /run/secrets/password …
# or for testing (unsafe):
systemctl-mqtt --mqtt-username me --mqtt-password secret …
Schedule poweroff by sending a MQTT message to topic systemctl/hostname/poweroff
.
$ mosquitto_pub -h MQTT_BROKER -t systemctl/hostname/poweroff -n
Adapt delay via: systemctl-mqtt --poweroff-delay-seconds 60 …
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
$ mosquitto_pub -h MQTT_BROKER -t systemctl/hostname/suspend -n
ActiveState
of System Units$ systemctl-mqtt --monitor-system-unit foo.service
enables reports on topic
systemctl/[hostname]/unit/system/[unit_name]/active-state
.
$ systemctl-mqtt --control-system-unit <unit_name>
enables that a system unit can be restarted by a message on topic
systemctl/[hostname]/unit/system/[unit_name]/restart
.
When MQTT Discovery is enabled (default in Home Assistant ≥0.117.0), the following entities will be added automatically:
binary_sensor.[hostname]_logind_preparing_for_shutdown
button.[hostname]_logind_lock_all_sessions
button.[hostname]_logind_poweroff
button.[hostname]_logind_suspend
sensor.[hostname]_unit_system_[unit_name]_active_state
for --monitor-system-unit [unit_name]
button.[hostname]_unit_system_[unit_name]_restart
for --control-system-unit [unit_name]
Pass --homeassistant-discovery-prefix custom-prefix
to systemctl-mqtt
when
using a custom discovery topic prefix.