Files
.devcontainer
.github
.theia
.vscode
plugins
sass
source
.well-known
_addons
_cookbook
_data
_docs
authentication
automation
autostart
backend
configuration
ecosystem
frontend
installation
mqtt
birth_will.markdown
broker.markdown
certificate.markdown
discovery.markdown
logging.markdown
processing_json.markdown
service.markdown
testing.markdown
scene
scripts
security
tools
z-wave
asterisk_mbox.markdown
authentication.markdown
automation.markdown
autostart.markdown
backend.markdown
configuration.markdown
ecosystem.markdown
frontend.markdown
glossary.markdown
installation.markdown
mqtt.markdown
quality_scale.markdown
scene.markdown
scripts.markdown
security.markdown
tools.markdown
z-wave.markdown
_faq
_includes
_integrations
_layouts
_lovelace
_posts
addons
android
assets
blog
cloud
code_of_conduct
cookbook
demo
developers
docs
faq
font
getting-started
hassio
help
images
integrations
ios
javascripts
join-chat
latest-release-notes
lovelace
privacy
security
static
stylesheets
tos
CNAME
_headers
_redirects
atom.xml
favicon.png
googlef4f3693c209fe788.html
index.html
robots.txt
service_worker.js
version.json
.editorconfig
.gitattributes
.gitignore
.gitpod.yml
.markdownlint.json
.nvmrc
.powrc
.remarkignore
.remarkrc.js
.ruby-version
.slugignore
CLA.md
CODE_OF_CONDUCT.md
Gemfile
Gemfile.lock
LICENSE.md
README.md
Rakefile
_config.yml
config.rb
config.ru
package-lock.json
package.json
home-assistant.io/source/_docs/mqtt/service.markdown
Luca Angemi b86529d8a2 Update service.markdown ()
* Update service.markdown

notation changed to yaml

* Update source/_docs/mqtt/service.markdown

Co-Authored-By: Franck Nijhof <frenck@frenck.nl>

* Update source/_docs/mqtt/service.markdown

Co-Authored-By: Franck Nijhof <frenck@frenck.nl>
2019-10-15 12:25:13 +02:00

1.5 KiB

title, description, logo
title description logo
MQTT Publish service Instructions on how to setup the MQTT Publish service within Home Assistant. mqtt.png

The MQTT integration will register the service mqtt.publish which allows publishing messages to MQTT topics. There are two ways of specifying your payload. You can either use payload to hard-code a payload or use payload_template to specify a template that will be rendered to generate the payload.

Service mqtt.publish

Service data attribute Optional Description
topic no Topic to publish payload to.
payload yes Payload to publish.
payload_template yes Template to render as payload value. Ignored if payload given.
qos yes Quality of Service to use.
retain yes If message should have the retain flag set. (default: false)
You need to include either payload or payload_template, but not both.
topic: home-assistant/light/1/command
payload: on

{% raw %}

topic: home-assistant/light/1/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:

topic: home-assistant/light/1/state
payload: "{\"Status\":\"off\", \"Data\":\"something\"}"

Example of how to use qos and retain:

topic: home-assistant/light/1/command
payload: on
qos: 2
retain: true