iot软件包从RouterOS 6.48.3开始使用,iot软件包需要单独添加,安装过程略过。
添加MQTT服务器服务器
命令行添加MQTT服务器
/iot mqtt brokers
add address=broker-cn.emqx.io name=broker-cn.emqx.io
MQTT服务器推荐使用https://www.emqx.com/简单易用
测试MQTT
MQTT客户端
Windows MQTTX 客户端: Download
macOS MQTT X客户端:Download
在线客户端免安装(存在安全分析):Online Client
新建MQTT服务器,这里我们使用免费的测试服务器。
broker-cn.emqx.io
端口1883
创建服务器
添加订阅
提交MQTT数据
查看数据
数据上报脚本,上报的数据格式为json。
:global cpul [/system resource get cpu-load]
:global memt [/system resource get total-memory]
:global memf [/system resource get free-memory]
:global diskt [/system resource get total-hdd-space]
:global diskf [/system resource get free-hdd-space]
:global uptime [/system resource get uptime]
:global Wan [/ip address get [/ip address find interface=Wan] address];:set Wan [:pick $Wan 0 ([len $Wan] -3)]
:global Lan [/ip address get [/ip address find interface=Lan] address];:set Lan [:pick $Lan 0 ([len $Lan] -3)]
:global DDNS [ip cloud get dns-name]
:global PublicIP [ip cloud get public-address]
:global sysver [/system resource get version]
:global sysid [/sys identity get name]
:global boardsn
:if (!([/system resource get architecture-name] ~"x86")) do={
:do {:set boardsn [/system routerboard get serial-number]} on-error={:set boardsn "unknow"}
} else={
:set boardsn "unknow"
}
:if ($board ~"^CHR") do={:set boardsn [/system license get system-id]}
/iot mqtt publish broker=broker-cn.emqx.io topic="MT/Test" message="{\"Uptime\":\"$uptime\",\"PublicIP\":\"$PublicIP\",\"WanIP\":\"$Wan\",\"LanIP\":\"$Lan\"
,\"DDNS\":\"$DDNS\",\"Version\": \"$sysver\",\"Hostname\": \"$sysid\",\"SN\":\"$boardsn\",\"CPU_Load\": \"$cpul\",\"Memory\": \"$memt\",\"Memory_Free\": \"$memf\",\"Disk\": \"$diskt\",\"Disk_Free\": \"$diskf\"}"
创建定时上报任务
上报效果