this was working as of 2020-05-23
apt update apt install -y mosquitto mosquitto-clients sudo systemctl enable mosquitto.service
Test the system to ensure it’s working. Start terminal windows…
term 1 – subscriber to the topic “test”
mosquitto_sub -t "test"
term 2 – publish something to the topic “test”
mosquitto_pub -m "message from mosquitto_pub client" -t "test"
Create a user/password
sudo mosquitto_passwd -c /etc/mosquitto/passwd username Password: password
edit the file as root, /etc/mosquitto/conf.d/default.conf:
allow_anonymous false password_file /etc/mosquitto/passwd
Restart
sudo systemctl restart mosquitto
test pub/sub in two terminals.
term-1 $> mosquitto_sub -t "test" -u "username" -P "password" term-2 $> mosquitto_pub -t "test" -u "username" -P "password" -m "message from mosquitto_pub client"
That’s the setup of MQTT
Tasmota portion:
Tasmota is another beast… it wasn’t readily appearant to me when I was looking at the docs.
Tasmota 8.3.1
Enable MQTT support in tasmota:
- Configuration -> Configure Other -> click MQTT Enable
- Configuration -> Configuration MQTT
- Host: the ip of the mqtt server
- Port: should be 1833, unless you overrode it in the config.
- Client leave as is.
- User: the user you created for MQTT
- Password: same password as you created earlier.
- Topic: this should be unique for this device
- Full Topic: %prefix%/%topic%/
Now, it wasn’t immediate appearant to me, what the mqtt topics where:
To turn on/off my device,
topic: "cmnd/aquriumlight/POWER"
payload: "on" / "off"
Groups are possible, the default group is “tasmotas”. The example below would turn on/off all devices listening to tasmotas.
topic: "cmnd/tasmotas/POWER"
payload: "on" / "off"
The device can be part of multiple groups:
issue the command in the console:
grouptopic
23:17:18 MQT: stat/aquariumlight/RESULT = {"GroupTopic1":"tasmotas","GroupTopic2":"","GroupTopic3":"","GroupTopic4":""}
GroupTopic1 is tasmotas, and topics 2-4 are empty.
to change that, in the console:
GroupTopic2 LivingRoom
sending a message to topic: “cmd/LivingRoom/Power” “off” would shut down all devices in LivingRoom.
to upgrade all devices (dangerous)
cmnd/tasmotas/upgrade
After you got the first tasmota devices setup, subsequent devices will be easy with mqtt.
MQTT Explorer
Using MQTT Explorer, it’s a GUI that will allow you easily send and view messages on the queue/topics. I recommend you check them out.
Connect to your mqtt server with the appropriate credentials.
Try out a few things:
EXMAPLE: Set your timezone on all devices to eastern daylight savings time. (GMT-4)
TOPIC: cmnd/tasmotas/timezone
PAYLOAD: -4
EXAMPLE: Set your timezone, and location on all devices to pacific, and location is Googleplex. (GMT-7)
TOPIC: cmnd/tasmotas/Backlog
PAYLOAD: timezone -7; latitude 37.422; longitude -122.084
Leave a Reply