From d3edbad3291c3e0f8f101ead0cfcd1582f8634a0 Mon Sep 17 00:00:00 2001 From: David Beitey Date: Tue, 30 Nov 2021 15:17:14 +0000 Subject: [PATCH] Doc topic_template for mqtt.publish (#18663) --- source/_docs/mqtt/service.markdown | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) 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 need to include either payload or payload_template, but not both. -
+

+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