| 
				
					 | 
			4 年之前 | |
|---|---|---|
| .github | 4 年之前 | |
| docs | 5 年之前 | |
| systemctl_mqtt | 5 年之前 | |
| tests | 4 年之前 | |
| .dockerignore | 5 年之前 | |
| .gitignore | 5 年之前 | |
| .isort.cfg | 5 年之前 | |
| .pylintrc | 5 年之前 | |
| CHANGELOG.md | 4 年之前 | |
| COPYING | 5 年之前 | |
| Dockerfile | 4 年之前 | |
| Makefile | 4 年之前 | |
| Pipfile | 4 年之前 | |
| Pipfile.lock | 4 年之前 | |
| README.md | 5 年之前 | |
| docker-apparmor-profile | 5 年之前 | |
| docker-compose.yml | 5 年之前 | |
| mypy.ini | 5 年之前 | |
| setup.py | 4 年之前 | 
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-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 secret …
# or
systemctl-mqtt --mqtt-username me --mqtt-password-file /var/lib/secrets/mqtt/password …
systemctl-mqtt --poweroff-delay-seconds 60 …