Setup
Installation
First, create your own dbus2mqtt configuration file or pick one of the examples. Like the home_assistant_media_player.yaml example from this repository.
mkdir -p $HOME/.config/dbus2mqtt
cp .env.example $HOME/.config/dbus2mqtt/.env
curl https://raw.githubusercontent.com/jwnmulder/dbus2mqtt/main/docs/examples/home_assistant_media_player.yaml -o $HOME/.config/dbus2mqtt/config.yaml
Make sure to update the .env file with your correct MQTT connection details. It will look like this
MQTT__HOST=localhost
MQTT__PORT=1883
MQTT__USERNAME=
MQTT__PASSWORD=
Installing dbus2mqtt with pip
python -m pip install dbus2mqtt
cd $HOME/.config/dbus2mqtt
dbus2mqtt --config config.yaml
Docker based setup (with auto start behavior)
sudo docker pull jwnmulder/dbus2mqtt
sudo docker run --detach --name dbus2mqtt \
--volume "$HOME"/.config/dbus2mqtt:"$HOME"/.config/dbus2mqtt \
--volume /run/user:/run/user \
--env DBUS_SESSION_BUS_ADDRESS="$DBUS_SESSION_BUS_ADDRESS" \
--env-file "$HOME"/.config/dbus2mqtt/.env \
-e TZ="Europe/Amsterdam" \
--user $(id -u):$(id -g) \
--privileged \
--restart unless-stopped \
jwnmulder/dbus2mqtt \
--config "$HOME"/.config/dbus2mqtt/config.yaml
# view logs
sudo docker logs dbus2mqtt -f
Timezone
dbus2mqtt uses the local timezone for operations such as now() and scheduled
flows.
When running in Docker, the TZ environment variable is required and must
specify the desired timezone.
When running without Docker, dbus2mqtt uses the system timezone by default. Set TZ to override it.
For example:
TZ=Europe/Amsterdam
Configuration reference
dbus2mqtt leverages jsonargparse which allows configuration via either yaml configuration, CLI or environment variables. Until this is fully documented have a look at the examples in this repository.
dbus2mqtt mqtt config
MQTT connection details can be configured via a mix of environment variables and yaml configuration.
| YAML config key | Env vars | Description |
|---|---|---|
mqtt.host |
MQTT__HOST |
Hostname or IP |
mqtt.port |
MQTT__PORT |
Port, defaults to 1883 |
mqtt.username |
MQTT__USERNAME |
Username |
mqtt.password |
MQTT__PASSWORD |
Password |
mqtt.subscription_topics |
List of topics that dbus2mqtt will subscribe to, defaults to ["dbus2mqtt/#"] |
dbus2mqtt dbus config
| YAML config key | Description |
|---|---|
dbus.bus_type |
One of SESSION or SYSTEM, defaults to SESSION |
dbus.subscriptions |
See subscriptions |
dbus2mqtt flow config
Flows allow for additional actions to be executed on pre-defined triggers. Details can be found on: flows
| YAML config key | Description |
|---|---|
flows |
Global flow definitions, see flows for details |
dbus.subscriptions[].flows |
Subscription specific flow definitions, see flows for details |