MQTT 是大多數智慧家庭和 IoT 設定的骨幹協定。它輕量、可靠,從 Raspberry Pi 到工業感測器都能運作。將 OpenClaw 連接到 MQTT Broker,你就能把對話式 AI 代理變成家中所有連網裝置的自然語言控制器。
MQTT 運作原理(30 秒版本)
MQTT 遵循發布/訂閱模型[1]:
- Broker — 中央訊息伺服器(例如 Mosquitto)
- Topic — 階層式頻道(例如
home/living-room/light/state) - Publish — 向 topic 發送訊息
- Subscribe — 監聽 topic 上的訊息
裝置發布自身狀態並訂閱指令 topic。OpenClaw 訂閱狀態更新並發布指令——同時扮演監聽者和控制者的角色。
設定 MQTT Broker
安裝 Mosquitto
Mosquitto 是最廣泛使用的開源 MQTT Broker[2]。
在 Ubuntu/Debian 上:
sudo apt install mosquitto mosquitto-clients
sudo systemctl enable mosquitto
sudo systemctl start mosquitto
使用 Docker:
services:
mosquitto:
image: eclipse-mosquitto:2
ports:
- "1883:1883"
volumes:
- ./mosquitto/config:/mosquitto/config
- mosquitto_data:/mosquitto/data
restart: unless-stopped
volumes:
mosquitto_data:
設定認證
即使在區域網路上,也絕對不要在沒有認證的情況下運行 MQTT Broker:
# 建立密碼檔案
mosquitto_passwd -c /mosquitto/config/passwordfile openclaw
# mosquitto.conf
listener 1883
allow_anonymous false
password_file /mosquitto/config/passwordfile
更改設定後請重新啟動 Mosquitto。
將 OpenClaw 連接到 MQTT
安裝 MQTT 技能並設定 Broker 連線:
openclaw plugins install mqtt-control
openclaw config set mqtt.broker "mqtt://localhost:1883"
openclaw config set mqtt.username "openclaw"
openclaw config set mqtt.password "your-secure-password"
重新啟動 OpenClaw 以套用設定:
openclaw restart
驗證連線
openclaw mqtt status
你應該會看到 Broker 連線狀態、已訂閱的 topic 和最近的訊息。
將裝置對應到 Topic
大多數智慧裝置都遵循常見的 topic 結構。告訴 OpenClaw 你的裝置資訊,讓它能解讀自然語言指令:
openclaw memory add "我的 MQTT 裝置對照表:
- 客廳燈:topic home/living-room/light,payload ON/OFF
- 臥室燈:topic home/bedroom/light,payload ON/OFF
- 溫控器:topic home/thermostat/set,payload 是溫度數字
- 前門鎖:topic home/front-door/lock,payload LOCK/UNLOCK
- 動態感測器(客廳):topic home/living-room/motion,回報 DETECTED/CLEAR"
現在 OpenClaw 就知道「關掉客廳的燈」在 MQTT 層面意味著什麼:向 home/living-room/light 發布 OFF。
自動化範例
基本裝置控制
裝置對應完成後,自然語言立即可用:
「把所有燈關掉」 「把溫控器設到 21 度」 「鎖上前門」 「客廳的動態感測器有偵測到什麼嗎?」
條件式自動化
OpenClaw 的推理能力不僅限於簡單的開/關:
「如果臥室溫度超過 26 度,開冷氣然後發訊息通知我」
OpenClaw 會訂閱溫度 topic,在超過門檻值時採取行動。
「晚上 11 點以後動態感測器偵測到動靜時,把走廊燈開到 30% 亮度持續 2 分鐘,然後關掉」
場景管理
「建立一個『電影之夜』場景:客廳燈光 15%、打開電視(topic home/tv/power ON)、溫控器設到 22 度」
之後只需:
「啟動電影之夜」
OpenClaw 會記住場景定義,並向所有相關的 topic 發布指令。
能源監控
如果你的智慧插座透過 MQTT 回報耗電量:
「追蹤今天辦公室插座的用電量。一天結束時告訴我總共幾度電」
OpenClaw 訂閱電力 topic,累計讀數,然後報告摘要。
透過 MQTT 整合 Home Assistant
Home Assistant 和 OpenClaw 可以共用同一個 MQTT Broker,建立強大的組合[3]。
架構
裝置 → MQTT Broker ← Home Assistant(自動化、儀表板)
← OpenClaw(自然語言控制)
Home Assistant 和 OpenClaw 都連接到 Mosquitto。Home Assistant 負責裝置探索和複雜的自動化。OpenClaw 提供自然語言介面。
設定方式
- 在 Home Assistant 中啟用 MQTT 整合,並指向你的 Mosquitto Broker。
- 設定 OpenClaw 連接到同一個 Broker。
- Home Assistant 的 MQTT 自動探索會發布裝置的元資料,OpenClaw 可以讀取這些資料。
互補角色
| 任務 | Home Assistant | OpenClaw |
|---|---|---|
| 裝置探索 | 自動(Zigbee2MQTT、Z-Wave) | 手動 topic 對應 |
| 儀表板 | Web UI 搭配圖表 | Telegram 對話 |
| 簡單自動化 | YAML 或視覺化編輯器 | 自然語言 |
| 複雜邏輯 | 不寫腳本的話受限 | 強(AI 推理) |
| 遠端控制 | App 或 Web | 隨時隨地用 Telegram |
用 Home Assistant 做裝置管理和儀表板。用 OpenClaw 透過 Telegram 做智慧的、情境感知的控制。
範例:OpenClaw + Home Assistant
Home Assistant 偵測到窗戶感測器開啟(透過 Zigbee2MQTT)。OpenClaw 正在訂閱該 topic:
OpenClaw:「臥室窗戶剛剛打開了。天氣預報顯示 2 小時後會下雨。要我設一個提醒去關窗嗎?」
這種情境感知——結合感測器資料、天氣預報和個人行程——正是 OpenClaw 超越 Home Assistant 規則式自動化之處。
安全考量
加密 MQTT 流量
使用 TLS 加密 MQTT 連線,特別是 Broker 在區域網路以外可存取的情況:
# mosquitto.conf
listener 8883
certfile /certs/server.crt
keyfile /certs/server.key
cafile /certs/ca.crt
更新 OpenClaw 使用安全連接埠:
openclaw config set mqtt.broker "mqtts://your-broker:8883"
限制 Topic 存取
使用 Mosquitto 的 ACL(存取控制清單)限制 OpenClaw 可以發布的 topic:
# acl_file
user openclaw
topic readwrite home/#
topic deny home/security/#
這可以防止 OpenClaw 意外停用你的安全系統。
獨立的 IoT 網路
如果可能,將你的 IoT 裝置放在獨立的 VLAN 上。MQTT Broker 作為網路之間的橋樑——裝置無法直接存取你的主要網路,你的主要網路也只能透過 MQTT 與裝置通訊。
稽核日誌
啟用 Mosquitto 的日誌記錄以追蹤 OpenClaw 發送的每個指令:
# mosquitto.conf
log_type all
log_dest file /mosquitto/log/mosquitto.log
定期檢查日誌,確保 OpenClaw 只發送預期的指令。
處理不穩定的裝置
IoT 裝置會斷線、延遲,偶爾也會出狀況。幾個小技巧:
- 設定 MQTT QoS 為 1(至少一次傳遞),用於門鎖和警報等重要指令。
- 使用 retained messages 用在狀態 topic 上,這樣即使裝置暫時離線,OpenClaw 也知道最後已知的狀態。
- 加入超時機制 — 告訴 OpenClaw:「如果裝置在 10 秒內沒有回應,告知我它可能離線了。」
- 健康檢查 — 「每天早上檢查所有裝置是否在過去 24 小時內有回應。回報任何看似離線的裝置。」
開始使用
自行託管
- 在你的伺服器上安裝 Mosquitto
- 在 OpenClaw 上安裝 MQTT 技能
- 設定認證和裝置 topic
- 透過 Telegram 開始控制裝置
託管服務
在 ClawTank 上,你的 OpenClaw 實例可以連接到任何外部 MQTT Broker——包括透過 VPN 或 Cloudflare Tunnel 連到在你家中網路上運行的 Broker。你可以享受託管式 OpenClaw 的便利,同時完全掌控本地的 IoT 網路。
MQTT 的裝置互通性結合 OpenClaw 的自然語言推理能力,打造出一個真正理解你意思的智慧家庭控制器——而不只是理解你字面上說了什麼。
