Skip to main content

Publish file content as MQTT topic compatible with HomeAssistant.

Project description

build PyPI - Python Version

HomeAssistant MQTT filesystem publisher

Publish file content as an MQTT topic compatible with HomeAssistant.

It can be useful, e.g., to publish system metrics from /sys.

Quick start

  1. Install the Python package: pip install hamqtt-fs-publisher. If you want to have support for YAML configuration format install with ruamel or pyyaml extras depending on the YAML library of choice (recommended ruamel, e.g., pip install hamqtt-fs-publisher[ruamel]).
  2. 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 in hamqtt_fs_publisher/configuration.schema.json, which can be used, e.g., with VS Code (the current repository is pre-configured for config.json and config.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.
  3. 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.

Systemd service

If you want to run this script as a systemd service you could copy the example service file from examples/hamqtt_fs_publisher@.service 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>

Supported features

  • 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.

TODO

  • 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hamqtt_fs_publisher-0.1.3.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

hamqtt_fs_publisher-0.1.3-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

Details for the file hamqtt_fs_publisher-0.1.3.tar.gz.

File metadata

  • Download URL: hamqtt_fs_publisher-0.1.3.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.10.6 Linux/5.15.0-1042-azure

File hashes

Hashes for hamqtt_fs_publisher-0.1.3.tar.gz
Algorithm Hash digest
SHA256 e10727526e1960c232cda59dd2556c323489ba4fd11a7de9b5a0a5104dda1fe4
MD5 93fd3982701170c5d1cdaef71517b487
BLAKE2b-256 31d11cb7597be616b0c36f20e32284a7d039165bb93d2055dc2af3c33d9232f4

See more details on using hashes here.

File details

Details for the file hamqtt_fs_publisher-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for hamqtt_fs_publisher-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d64e66d08944e1e8ae35185f6320bbf07280b2955dfc704beeebf92a736faa65
MD5 04f5b46fae987504120c3c8c8032b65b
BLAKE2b-256 f2aae1c6405b0386ed0e6cddfe71876c6086752253fc50bc191197e399a2b281

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page