Mosquitto on pi cheatsheet / Mosquitto的安裝

Last updated on April 14, 2024 am

第一步 更新Pi

1
2
3
 sudo apt-get update

sudo apt-get upgrade -y

第二步 安裝 mosquitto

安裝:

1
sudo apt-get install mosquitto mosquitto-clients

移除舊init

1
2
3
sudo systemctl stop mosquitto
sudo update-rc.d mosquitto remove
sudo rm /etc/init.d/mosquitto

安裝systemd

1
sudo vi /etc/systemd/system/mosquitto.service

貼進以下服務敘述:

1
2
3
4
5
6
7
8
9
10
11
12
[Unit]
Description=MQTT message broker
After=network.target
Requires=network.target

[Service]
Type=simple
ExecStart=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
Restart=always

[Install]
WantedBy=multi-user.target

服務設定

1
2
sudo systemctl daemon-reload
sudo systemctl enable mosquitto

啟動服務

1
sudo systemctl start mosquitto.service

mosquitto帳密

1
sudo mosquitto_passwd -c /etc/mosquitto/accesslist.txt pi
這會設置pi 這個使用者

mosquitto設定檔

編輯mosquitto設定檔:

1
sudo vi /etc/mosquitto/mosquitto.conf
然後這些內容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
pid_file /var/run/mosquitto.pid

listener 1883

persistence true
persistence_location /var/lib/mosquitto/
persistence_file mosquitto.db

log_dest syslog
log_dest stdout
log_dest topic
log_type error
log_type warning
log_type notice
log_type information
log_timestamp true

log_dest file /var/log/mosquitto/mosquitto.log

connection_messages true
allow_anonymous false

password_file /etc/mosquitto/accesslist.txt
#include_dir /etc/mosquitto/conf.d

重啟服務

1
2
sudo systemctl stop mosquitto
sudo systemctl start mosquitto

第三步 設置Home Assistant

與HA聯接,只要新增以下幾行到 configuration.yaml

1
2
3
4
5
6
mqtt:
broker: localhost
port: 1883
client_id: home-assistant-1
username: !secret mqtt_username
password: !secret mqtt_password

設完重啟HA就可以了。

第四步 測試

首先可以看看服務狀態:

1
sudo systemctl status mosquitto

若要debug,也可以

1
sudo tail -f /var/log/mosquitto/mosquitto.log

Cli測試

打開2個terminal,一個將是publisher; 另一個是subscriber。

subscriber方,來接收這個topic:

1
mosquitto_sub -h localhost -t "sensor/temperature" -u username -P password

publisher方,發佈topic:

1
mosquitto_pub -h localhost -t "sensor/temperature" -m 22.5  -u username -P password

HA服務測試

HA若有成功設置mqtt,會有 mqtt.publish 的服務可呼叫。

References


Mosquitto on pi cheatsheet / Mosquitto的安裝
https://mingster.com/2018/04/17/mosquitto_cheatsheet/
Author
mingster
Posted on
April 17, 2018
Licensed under