mirror of https://github.com/caronc/apprise
Page:
Notify_mqtt
Pages
CLI_Usage
DemoPlugin_Basic
DemoPlugin_WebRequest
Development_API
Development_Apprise_Details
Development_Contribution
Development_LogCapture
Home
Notification_Graveyard
Notify_Custom_Form
Notify_Custom_JSON
Notify_Custom_XML
Notify_Revolt
Notify_africas_talking
Notify_apprise_api
Notify_aprs
Notify_bark
Notify_boxcar
Notify_bulksms
Notify_bulkvs
Notify_burst_sms
Notify_chantify
Notify_clicksend
Notify_d7networks
Notify_dapnet
Notify_dbus
Notify_dingtalk
Notify_discord
Notify_email Fastmail
Notify_email
Notify_emby
Notify_enigma2
Notify_faast
Notify_fcm
Notify_feishu
Notify_flock
Notify_freemobile
Notify_gitter
Notify_gnome
Notify_googlechat
Notify_gotify
Notify_growl
Notify_guilded
Notify_homeassistant
Notify_httpsms
Notify_ifttt
Notify_join
Notify_kavenegar
Notify_kodi
Notify_kumulos
Notify_lametric
Notify_line
Notify_lunasea
Notify_macosx
Notify_mailgun
Notify_mastodon
Notify_matrix
Notify_mattermost
Notify_messagebird
Notify_misskey
Notify_mqtt
Notify_msg91
Notify_msteams
Notify_nexmo
Notify_nextcloud
Notify_nextcloudtalk
Notify_notica
Notify_notifiarr
Notify_notifico
Notify_ntfy
Notify_office365
Notify_onesignal
Notify_opsgenie
Notify_pagerduty
Notify_pagertree
Notify_parseplatform
Notify_plivo
Notify_popcornnotify
Notify_prowl
Notify_pushalot
Notify_pushbullet
Notify_pushdeer
Notify_pushed
Notify_pushjet
Notify_pushme
Notify_pushover
Notify_pushsafer
Notify_pushy
Notify_reddit
Notify_rocketchat
Notify_rsyslog
Notify_ryver
Notify_sendgrid
Notify_serverchan
Notify_ses
Notify_seven
Notify_sfr
Notify_signal
Notify_simplepush
Notify_sinch
Notify_slack
Notify_sms_manager
Notify_smseagle
Notify_smtp2go
Notify_sns
Notify_sparkpost
Notify_splunk
Notify_spontit
Notify_streamlabs
Notify_stride
Notify_synology_chat
Notify_syslog
Notify_techulus
Notify_telegram
Notify_threema
Notify_toasty
Notify_twilio
Notify_twist
Notify_twitter
Notify_voipms
Notify_wecombot
Notify_whatsapp
Notify_windows
Notify_workflows
Notify_wxpusher
Notify_wxteams
Notify_xbmc
Notify_xmpp
Notify_zulip
Sponsors
Troubleshooting
URLBasics
config
config_text
config_yaml
decorator_notify
persistent_storage
showcase
6
Notify_mqtt
Chris Caron edited this page 2024-09-02 16:51:57 -04:00
Table of Contents
MQTT Notifications
- Source: https://mqtt.org/
- Icon Support: No
- Message Format: Text
- Message Limit: 268435455 Characters per Message
MQTT Support requires paho-mqtt (a version less then v2) to work:
pip install "paho-mqtt<2.0"
Syntax
Valid syntax is as follows:
mqtt://{host}/{topic}
mqtt://{host}:{port}/{topic}
mqtt://{user}@{host}:{port}/{topic}
mqtt://{user}:{password}@{host}:{port}/{topic}
For a secure connection, just use mqtts
instead.
mqtts://{host}/{topic}
mqtts://{host}:{port}/{topic}
mqtts://{user}@{host}:{port}/{topic}
mqtts://{user}:{password}@{host}:{port}/{topic}
Secure connections should be referenced using mqtts:// where as insecure connections should be referenced via mqtt://.
Parameter Breakdown
Variable | Required | Description |
---|---|---|
user | no | The user associated with your MQTT server. |
password | no | The password associated with your MQTT server. |
hostname | Yes | The MQTT server you're sending your notification to. |
port | No | The port the MQTT server is listening on. By default the port is 1883 for mqtt:// and 8883 for all mqtts:// references. |
qos | No | The MQTT Quality of Service (Qos) setting. By default this is set to 0 (zero). |
version | No | The MQTT Protocol Version to use. By default this is set to v3.1.1. The other possible values are v3.1 and v5. |
client_id | No | The MQTT client identifier to use when establishing a connection with the server. By default this is not set and a unique ID is generated per message. |
session | No | The MQTT session to maintain (associated with the client_id). If no client_id is specified, then this value is not considered. By default there is no session established and each connection made by apprise is unique. If you wish to enforce a session (associated with a provided client_id) then set this value to True. |
retain | No | The MQTT publisher retain flag. By default this is set to no , but you may optionally over-ride it and set it to yes |
Example
# Assuming we're just running an MQTT Server locally on your box
# Assuming we want to post our message to the topic: `my/topic`
apprise -vvv -b "whatever-payload-want" "mqtt://localhost/my/topic"
Sample Service Setup
I did the following to test this service locally (using docker):
# Pull in Mosquitto (v2.x at the time) - 2021 Sept 16th
docker pull eclipse-mosquitto
# Set up a spot for our configuration
mkdir mosquitto
cd mosquitto
cat << _EOF > mosquitto.conf
persistence false
allow_anonymous true
connection_messages true
log_type all
listener 1883
_EOF
# Now spin up an instance (we can Ctrl-C out of when we're done):
docker run --name mosquitto -p 1883:1883 \
--rm -v $(pwd)/mosquitto.conf:/mosquitto/config/mosquitto.conf \
eclipse-mosquitto
# All apprise testing can be done against this systems IP such as:
apprise -vvv -b "my=payload" "mqtt://localhost/a/simple/topic"
# Here is an example where the 'retain' flag is set:
apprise -vvv -b "my=payload" "mqtt://localhost/a/simple/topic?retain=yes"