diff --git a/source/_docs/mqtt/service.markdown b/source/_docs/mqtt/service.markdown index f80d37297c7..7d19a98c056 100644 --- a/source/_docs/mqtt/service.markdown +++ b/source/_docs/mqtt/service.markdown @@ -11,14 +11,15 @@ The MQTT integration will register the service `mqtt.publish` which allows publi | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `topic` | no | Topic to publish payload to. +| `topic_template` | no | Template to render as topic to publish payload to. | `payload` | yes | Payload to publish. -| `payload_template` | yes | Template to render as payload value. Ignored if payload given. +| `payload_template` | yes | Template to render as payload value. | `qos` | yes | Quality of Service to use. (default: 0) | `retain` | yes | If message should have the retain flag set. (default: false) -
+You must include either `topic` or `topic_template`, but not both. If providing a payload, you need to include either `payload` or `payload_template`, but not both. +
```yaml topic: home-assistant/light/1/command @@ -34,6 +35,13 @@ payload_template: "{{ states('device_tracker.paulus') }}" {% endraw %} +{% raw %} +```yaml +topic_template: "home-assistant/light/{{ states('sensor.light_active') }}/state" +payload_template: "{{ states('device_tracker.paulus') }}" +``` +{% endraw %} + `payload` must be a string. If you want to send JSON then you need to format/escape it properly. Like: ```yaml