Product
Introducing License Enforcement in Socket
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
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
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
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
.
# 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 …
FAQs
MQTT client triggering & reporting shutdown on systemd-based systems
We found that systemctl-mqtt demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Product
We're launching a new set of license analysis and compliance features for analyzing, managing, and complying with licenses across a range of supported languages and ecosystems.
Product
We're excited to introduce Socket Optimize, a powerful CLI command to secure open source dependencies with tested, optimized package overrides.