Doc topic_template for mqtt.publish (#18663)

This commit is contained in:
David Beitey 2021-11-30 15:17:14 +00:00 committed by GitHub
parent e0aaa6f725
commit d3edbad329
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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)
<div class='note'>
You need to include either payload or payload_template, but not both.
</div>
<p class='note'>
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.
</p>
```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