IoT MQTT 配置生成

RouterOS → Home Assistant MQTT 传感器脚本生成器,支持自定义传感器项目和参数

Broker 配置
MQTT Broker 连接参数
MQTT
Name
Address
Port
SSL
Username
Password
Client ID
留空 = iotMacEth0,自定义优先
Discovery Prefix
/ {component} /
Will QoS
Retain Will
网络接口监控
选择要监控的接口,自动生成采集代码
speed = 实时速率(kbit/s),traffic = 累计流量(bytes),status = 接口 up/down,link-downs = 断线累计次数
传感器项目
勾选启用 / 点击编辑参数 / 添加自定义项
完整脚本
Config 段
State 段
Subscription 订阅
使用说明

Home Assistant MQTT 对接步骤

1. 在 HA 中安装 Mosquitto Broker 或连接已有 MQTT 服务器

2. 进入 HA → 设置 → 集成 → 搜索 MQTT 并添加

3. 填写 Broker 地址/端口,以及上方设置的用户名/密码

4. 在 RouterOS 中创建 MQTT Broker:

/iot mqtt brokers add name=homeassistant ...

5. 下载或复制脚本到 RouterOS → System → Scripts 执行

6. 脚本首次执行后 HA 将自动发现所有传感器实体

调试与排查

检查 Broker 连接状态:

/iot mqtt brokers print

查看订阅列表:

/iot mqtt subscriptions print detail

调试模式 - 订阅所有 HA MQTT 消息:

/iot mqtt subscriptions add broker=homeassistant topic="homeassistant/#" on-message=":log info (\"Topic: \" . \$msgTopic . \" | Data: \" . \$msgData)"

参考:Mikrotik MQTT DOCS

删除调试订阅:

/iot mqtt subscriptions remove [find topic="homeassistant/#"]

Button / Switch 订阅说明

• Button 和 Switch 需要订阅 MQTT 命令,请在 SUBSCRIPTION 标签页复制订阅代码

• 订阅代码只需在终端执行一次,重启后自动保留

• Switch 状态发布到 homeassistant/switch/mikrotik-{serial}/{key}/state

• Switch 命令监听 homeassistant/switch/mikrotik-{serial}/{key}/command

注意事项:
• RouterOS 需 7.1+ 且已安装 IoT 软件包(iot.npk)
temperaturecpu-temperature 是两个独立的 health 条目,因机型而异,请根据实际机型选择对应项
• Temperature / Bad Blocks / Voltage 传感器仅 RB 硬件 支持
• write-sect-since-reboot / write-sect-total 并非所有机型都有,选用前请在路由器上验证
• 脚本顶部已内置防重复运行保护,请在 System > Scheduler 中手动创建调度(建议 5–30 秒)
• Client ID 留空则每次自动使用 eth0 MAC,可填写固定值避免 Broker 断线重连问题
• 脚本运行一次以后一般就不会执行初始化动作了,如需强制刷新执行下面的
/system script environment remove [find name="configPublished"]
• 如果订阅脚本不动作可以尝试断开再试(或者重启也可能版本问题)
/iot mqtt disconnect broker=homeassistant