IoT MQTT 配置生成
RouterOS → Home Assistant MQTT 传感器脚本生成器,支持自定义传感器项目和参数
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)"
删除调试订阅:
/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)
• temperature 和 cpu-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