硬件监测API
约 1727 字大约 6 分钟
2021-05-27
这里针对硬件监测软件进行API说明。通信协议支持 MQTT 协议和 Websocket 协议。
Websocket 协议,请参考开机卡API 开机卡API。
准备
| 名称 | 必填 | 说明 | 获取途径 | 
|---|---|---|---|
| token | 是 | 设备token | 您要控制的设备->右上角齿轮->网络信息->TOKEN | 
| key | 是 | 用户key | 我的->关于->开发->Key | 
| secret | 是 | 用户TOKEN | 我的->关于->开发->Secret | 
以上参数也可以从硬件监测软件目录下的 config.json 文件中获取。

config.json
{
   ...
    "Device": {
        "UserToken": "xxxx...",
        "DeviceType": "pcHealth1",//设备类型
        "DeviceToken": "7f68d81a6f1d********cb7487860e212c",//设备 token
        "AuthKey": "d82ebc98453ded********d8c73149dda745ed0b2",// 用户 key
        "AuthSecret": "69e6328bcc805********884347561e50de40311e" // 用户 secret
    },
    ...
}连接服务器
| 名称 | 必填 | 说明 | 
|---|---|---|
| host | broker.iot.sumsg.com | 服务器地址 | 
| port | 1315 | 端口 | 
| client ID | 客户端 ID | win_自定义字符串 | 
| Username | 用户名 | 准备中提到的 key | 
| Password | 密码 | 准备中提到的 secret | 
| ssl | true | 使用 SSL, 必须为 true | 
| MQTT Version | 3.1.1 | 支持的MQTT 版本 | 
| Clean Session | true | |
| Last will Topic | 主题 | 同订阅主题 | 
| Last will Payload | 遗言 | 
使用MQTTX客户端连接图示:

使用MQTTX客户端订阅图示:

订阅主题
格式: /su/设备类型/设备token/server
QoS: 0
如果在开机卡中绑定的设备类型是 pcSw3 , 直接绑定的设备类型是 pcHealth1
示例:
开机卡中绑定订阅主题
su/pcSw3/7f68d81a6f1d********cb7487860e212c/server直接绑定订阅主题
su/pcHealth1/7f68d81a6f1d********cb7487860e212c/server订阅成功后,默认会发送首页数据:
参考: 获取APP首页数据
发布主题
同 订阅主题
设备验证字段
生成格式: md5(token + productName + "M2PC")
md5("7f68d81a6f1d********cb7487860e212cpcHealth1M2PC");获取指定数据
提示
该指令执行一次, 以后会按该指令返回数据, 不需要重复执行。
{
  "t": "M2PC",// 指令
  "s": "start", // 数据开始
  "type": "all", // 参考: 指令类型
  "tk": "参考[设备验证字段]计算方法" // 设备验证字段
}指令类型
| type | 说明 | 
|---|---|
| home | 获取APP首页数据 | 
| all | 获取所有数据 | 
| cpu | 获取CPU数据 | 
| gpu | 获取GPU数据 | 
| hdd | 获取硬盘数据 | 
| mbd | 获取主板数据 | 
| net | 获取网络数据 | 
| ram | 获取内存数据 | 
| batt | 获取电池数据 | 
| os | 获取操作系统数据 | 
获取APP首页数据
发送数据:
{"t":"M", "tk":"设备验证字段"}接收数据:
{
     "t": "M",//数据类型
     "ps": 1,//开机状态 0 为关机, 1 为开机
     "cpu": 19.1,//CPU使用率(0-100)%
     "ram": 51,//内存使用率(0-100)%
     "hdd": [
          83.25,//硬盘使用率(0-100)%
          2365087,//硬盘总大小
          0//硬盘温度(默认第一个磁盘)
     ]
}获取所有数据
发送数据:
{"t":"M2PC", "s":"start", "type":"all", "tk":"设备验证字段"}接收数据:
{
     "t": "PC2M",//数据类型
     "v": "1.0.2.8", //PC客户端版本号
     "pf": "windows", //系统平台 (macos, windows, linux)
     "CPU": [
          36.33, //CPU使用率(0-100)%
          68 //CPU温度 单位摄氏度
     ],
     "GPU": [
          1, //GPU使用率(0-100)%
          52 //GPU温度 单位摄氏度
     ],
     "RAM": [
          51,// 内存使用率(0-100)%
          24,// 内存总大小 单位G
          12 // 内存剩余大小 单位G
     ],
     "HDD": [
          83.24,// 硬盘使用率(0-100)%
          2365087, // 硬盘总大小 单位MB
          396300, // 硬盘剩余大小 单位MB
          0,// 硬盘读写速度 单位MB/s
          0 // 硬盘读写时间 单位ms
     ],
     "Network": [
          19196123648, /// 网络接收字节数
          23611559936 // 网络发送字节数
     ],
     "MBD": [
          56 // 主板温度
     ],
     "Uptime": [
          796752, // 运行时间 单位秒
          0, // 5 分钟负载
          0, // 10 分钟负载
          0, // 15 分钟负载
          "Microsoft Windows NT 10.0.22000.0", // 操作系统版本
          "6.0.36" // 操作系统版本号
     ]
}获取CPU数据
发送数据:
{"t":"M2PC", "s":"start", "type":"cpu", "tk":"设备验证字段"}接收数据:
{
     "t": "PC2M",// 命令
     "v": "1.0.2.8", // 版本
     "pf": "windows", // 操作系统
     "CPU": [
          {
               "Name": "Intel Core i7-4790K", // cpu 名称
               "CoreNum": 0, // cpu 核心数
               "Kernel": "64",// cpu 架构
               "Temp": 60, // cpu 温度
               "Power": 35.24, // cpu 功耗 单位W
               "Load": 14.47 // cpu 负载
          }
     ]
}获取GPU数据
发送数据:
{"t":"M2PC", "s":"start", "type":"gpu", "tk":"设备验证字段"}接收数据:
{
     "t": "PC2M",// 类型
     "v": "1.0.2.8", // 版本
     "pf": "windows", // 操作系统
     "GPU": [
          {
               "Name": "NVIDIA GeForce RTX 2070 SUPER", // gpu 名称
               "Temp": 52,// gpu 温度
               "Power": 0,// gpu 功耗 单位W
               "Load": 1, // gpu 负载
               "Memory": {
                    "Total": 8192, // 总内存
                    "Free": 7470, // 可用内存
                    "Used": 721 // 使用内存
               }
          }
     ]
}获取硬盘数据
发送数据:
{"t":"M2PC", "s":"start", "type":"hdd", "tk":"设备验证字段"}接收数据:
{
     "t": "PC2M",
     "v": "1.0.2.8",
     "pf": "windows",
     "HDD": [
          {
               "Letter": "C", // 盘符
               "Label": "windows11", // 盘符标签
               "Format": "NTFS", // 盘符格式
               "Health": "good", // 硬盘健康状态
               "Total": 457360, // 硬盘总大小
               "Free": 216710, // 硬盘可用大小
               "Name": "/", // 硬盘名称
               "Temp": -99, // 温度 -99 表示不支持
               "PHO": -99 // 硬盘使用时间 -99 表示不支持
          },
          ...
     ]
}获取主板数据
发送数据:
{"t":"M2PC", "s":"start", "type":"mbd", "tk":"设备验证字段"}接收数据:
{
     "t": "PC2M",
     "v": "1.0.2.8",
     "pf": "windows",
     "MBD": [
          {
               "Name": "ASUS Z97-K R2.0", // 主板名称
               "Temp": 55, // 主板温度
               "Fan": [ 
                    1715, // 风扇转速1
                    895, // 风扇转速2
                    959, // 风扇转速3 
                    0, // 风扇转速4
                    0, // 风扇转速5
                    0 // 风扇转速6
               ]
          }
     ]
}获取网络数据
发送数据:
{"t":"M2PC", "s":"start", "type":"net", "tk":"设备验证字段"}接收数据:
{
     "t": "PC2M",
     "v": "1.0.2.8",
     "pf": "windows",
     "Network": [
          {
               "Name": "以太网 3",
               "Upload": 1634204160,// 上传速度 单位字节/秒
               "Download": 9632109568 // 下载速度 单位字节/秒
          },
          {
               "Name": "以太网 4",
               "Upload": 0,
               "Download": 0
          }
     ]
}获取内存数据
发送数据:
{"t":"M2PC", "s":"start", "type":"ram", "tk":"设备验证字段"}接收数据:
{
     "t": "PC2M",
     "v": "1.0.2.8",
     "pf": "windows",
     "RAM": [
          52, //  内存使用率 单位 %
          24, //  内存总大小 单位 GB
          12 //  内存可使用大小 单位 GB
     ]
}获取电池数据
发送数据:
{"t":"M2PC", "s":"start", "type":"batt", "tk":"设备验证字段"}接收数据:
{
     "t": "PC2M",
     "v": "1.0.2.8",
     "pf": "windows",
     "Network": [
          {
               "isCharging": true, // 是否正在充电
               "per": 12,//  电量百分比
               "fullyCharged":  false ,// 是否已充满电
               "health": 99, // 电池健康度
               "cycleCount": 300, // 电池充电次数
               "acConnected": true, // 是否连接电源
               "acWatts": 30, // 电源瓦特数
          },
          ...
     ]
}解绑设备
执行该指令, 设备将被解绑
{
  "t": "M2PC",// 指令
  "s": "unbind", // 指令类型
  "tk": "参考[设备验证字段]计算方法" // 设备验证字段
}