Publish file content as an MQTT topic compatible with HomeAssistant.
It can be useful, e.g., to publish system metrics from /sys
.
- Install the Python package:
pip install hamqtt-fs-publisher
. If you want to have support for YAML configuration format install withruamel
orpyyaml
extras depending on the YAML library of choice (recommendedruamel
, e.g.,pip install hamqtt-fs-publisher[ruamel]
). - Create a configuration (example in
examples/config.example.yaml
). It can be in either YAML or JSON format. There is a pre-generated JSON schema inhamqtt_fs_publisher/configuration.schema.json
, which can be used, e.g., with VS Code (the current repository is pre-configured forconfig.json
andconfig.yaml
). Remember to set proper authorization details for the MQTT broker. If you are using the standard Mosquitto broker add-on in Home Assistant, please refer to the official documentation. - Run
hamqtt_fs_publisher --config <config_file_name>
.
Note: The configuration file path could be either a relative/absolute path, or a file under
/etc/hamqtt_fs_publisher
or~/.config/hamqtt_fs_publisher
.
If you want to run this script as a systemd service you could copy the example
service file from examples/[email protected]
to either
/etc/systemd/system/
or ~/.config/systemd/user/
(if you want to run it in
user mode). Then copy the configuration file to one of the standard
configuration directories (i.e., /etc/hamqtt_fs_publisher
or
~/.config/hamqtt_fs_publisher
.)
To enable and start the unit in system mode run:
$ systemd daemon-reload
$ systemd enable --now hamqtt_fs_publisher@<config_file_name>
- Auto-discovery in HomeAssistant.
- Configuration with a simple YAML/JSON file.
- Possibility to create read-only sensor device entities with values taken from a file and published to the MQTT broker periodically with set intervals.
- Add a logger to connect/disconnect events.
- Add an option to read a value on a button push in GUI (not only periodically).
- Add a switch endpoint (i.e., a file writer).
- Add a generic writer endpoint.