|
|
před 9 měsíci | |
|---|---|---|
| .github | před 9 měsíci | |
| docs | před 10 měsíci | |
| systemctl_mqtt | před 9 měsíci | |
| tests | před 9 měsíci | |
| .dockerignore | před 5 roky | |
| .gitattributes | před 10 měsíci | |
| .gitignore | před 5 roky | |
| .isort.cfg | před 5 roky | |
| .pylintrc | před 3 roky | |
| CHANGELOG.md | před 9 měsíci | |
| COPYING | před 5 roky | |
| Dockerfile | před 10 měsíci | |
| Makefile | před 4 roky | |
| Pipfile | před 10 měsíci | |
| Pipfile.lock | před 10 měsíci | |
| README.md | před 9 měsíci | |
| docker-apparmor-profile | před 10 měsíci | |
| docker-compose.yml | před 10 měsíci | |
| mypy.ini | před 5 roky | |
| pyproject.toml | před 10 měsíci | |
| setup.py | před 10 měsíci |
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, a subset of dependencies can optionally be installed via:
$ sudo apt-get install --no-install-recommends python3-jeepney 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
$ mosquitto_pub -h MQTT_BROKER -t systemctl/hostname/suspend -n
ActiveState of System Units$ mosquitto_pub --monitor-system-unit foo.service \
--monitor-system-unit bar.service …
enables reports on topic
systemctl/[hostname]/unit/system/[unit_name]/active-state.
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_shutdownbutton.[hostname]_logind_lock_all_sessionsbutton.[hostname]_logind_poweroffbutton.[hostname]_logind_suspendsensor.[hostname]_unit_system_[unit_name]_active_state
for --monitor-system-unit [unit_name]Pass --homeassistant-discovery-prefix custom-prefix to systemctl-mqtt when
using a custom discovery topic prefix.
# 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
docker-compose.yml.sudo apparmor_parser ./docker-apparmor-profilesudo docker-compose up --buildPre-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-file /run/secrets/password …
# or for testing (unsafe):
systemctl-mqtt --mqtt-username me --mqtt-password secret …
systemctl-mqtt --poweroff-delay-seconds 60 …