Skip to content

Developer guide

Specifications

Generic DBus specifications:

Running from source

uv run main.py --config config.yaml

Activate Python virtual env

uv sync
source .venv/bin/activate

Linting

# run pre-commit linters
uv run pre-commit run --all-files

# setup pre-commit to automatically run linters via git hooks
uv run pre-commit install

Publishing and subscribing to MQTT messages

Multiple MQTT client exist that can be used for testing, e.g.

Using mqtt-cli

source .env

mqtt() {
  uvx --from mqtt-cli mqtt \
    --host "$MQTT__HOST" \
    --user "$MQTT__USERNAME" \
    --password "$MQTT__PASSWORD" \
    "$@"
}

mqtt --help
mqtt subscribe --topic 'dbus2mqtt/#'
mqtt publish -t dbus2mqtt/org.mpris.MediaPlayer2/command -m '{ "method": "Play" }'