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 prek run --all-files

# setup pre-commit to automatically run linters via git hooks
uv run prek 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" }'