跳到主要内容

系统信息、软件升级与配网

4.1 GET /v1/api/systems/device​

公开查询,无参数。响应 data:

{"sn":"SN1234567890","model":"robot-model","version":"3.1.0","device_type":"rk","variant":"standard"}
字段类型说明
snstring业务 SN,识别设备时优先使用
modelstring型号信息
versionstring当前设备软件版本信息;精确软件包版本见 packages
device_typestring当前解析的 Mender 设备类型
variantstring设备变体信息,取值由身份数据决定

4.2 GET /v1/api/systems/health​

受保护,无参数。响应字段:

字段类型说明
statusstring本服务健康标识,正常为 ok
uptime_secondsnumber进程运行秒数
timestampstring服务端时间
provisioningobject,可选配网状态;桥接失败时可能只有 healthy=false, available=false
{"status":"ok","uptime_seconds":3600,"timestamp":"2026-11-13T08:00:00Z","provisioning":{"healthy":false,"available":false}}

4.3 GET /v1/api/systems/hub​

受保护,无参数。返回主机 CPU、内存与日志目录所在磁盘的使用情况。磁盘统计以配置的 server.log_folder 为依据。

字段类型单位 / 含义
hostnamestring主机名
cpu_usagenumberCPU 使用百分比
mem_used_mb、mem_total_mbnumber已用、总内存,MB
disk_pathstring实际统计的磁盘路径
disk_usagenumber磁盘使用百分比
disk_used_bytes、disk_total_bytes、disk_available_bytesinteger磁盘容量,字节
disk_statusstringnormal、warning、critical、unknown;读取失败时部分 disk_* 容量字段可缺失
{"hostname":"orsus-device","cpu_usage":18.5,"mem_used_mb":4096,"mem_total_mb":8192,"disk_path":"/var/log/edge-core","disk_usage":45.0,"disk_used_bytes":45000000000,"disk_total_bytes":100000000000,"disk_available_bytes":55000000000,"disk_status":"normal"}

4.4 GET /v1/api/systems/robot​

受保护,无参数。响应 data:

{"robot_type":"adapter-name","connected":true,"battery":85}

robot_type 来自运动控制适配器;connected 为 boolean;battery 保留下游电量结构,可能为数值、数组或 null。运动控制不可达时可返回 robot_type="unknown"、connected=false、battery=null,外层仍为成功,不应把它当成机器人已连接。

4.5 GET /v1/api/systems/software/packages​

无参数。返回配置白名单内的软件清单,不是主机上全部软件包。响应 data={packages: SoftwarePackage[], generated_at: string}。

SoftwarePackage 字段类型说明
package_name、version、architecturestring包名、版本、架构
statusstringinstalled、not_installed、broken、query_failed
sourcestringdpkg 或 direct
managedboolean是否受软件包管理机制管理
revision、build_time、dirtystring、string、boolean源码修订、构建时间、构建时是否有未提交改动
dpkg_statusstring原始 dpkg 状态
update_modesstring[]可用升级方式,由实际软件清单决定
runtimeobject,可选导航运行时镜像信息,结构见 5.4
errorstring单项查询失败信息
{"packages":[{"package_name":"edge-core","version":"3.1.0","architecture":"arm64","status":"installed","source":"direct","managed":false,"revision":"example-revision","build_time":"2026-11-13T00:00:00Z","dirty":false,"dpkg_status":"","update_modes":[],"error":""}],"generated_at":"2026-11-13T08:00:00Z"}

4.6 软件升级目录与任务接口​

所有接口遵循 2.3 的业务认证规则,依赖已启用且可访问的升级服务。module 从应用目录获取,并须在设备软件白名单内;不要自行假定包名。

方法与路径参数 / 请求响应 data
GET /v1/api/systems/software/applications无{"applications":[SoftwareApplication]}
GET /v1/api/systems/software/applications/{module}/updatespath module: string{"module":"...","current_version":"...","artifacts":[SoftwareArtifact]}
POST /v1/api/systems/software/applications/{module}/updatepath module;JSON 见下表SoftwareUpdateJob
GET /v1/api/systems/software/update-jobs/current无当前 SoftwareUpdateJob,无任务时 null
GET /v1/api/systems/software/update-jobs/{id}path id:正整数SoftwareUpdateJob
POST /v1/api/systems/software/update-jobs/{id}/cancelpath id:正整数,无请求体取消后的 SoftwareUpdateJob

升级请求字段:

字段类型必填说明
artifact_namestring是必须使用查询结果中的完整 name
request_idstring否调用方关联请求标识;省略由端侧生成;幂等语义由升级服务决定
{"artifact_name":"artifact-from-update-list","request_id":"upgrade-20261113-001"}

SoftwareApplication:

字段类型说明
module、current_versionstring模块及当前版本
latestSoftwareArtifact / null目录中的最新候选
update_countinteger可用升级包数量

SoftwareArtifact:

字段类型说明
name、module、versionstringArtifact 标识、模块、版本
device_typesstring[]适用设备类型
payload_type、architecture、created_atstring包载荷类型、架构、创建时间
availableboolean当前可用性
container_image、runtime_versionstring,可选导航镜像与运行时版本
pull_onlyboolean,可选仅拉取镜像;不等于已经切换正在运行的导航环境

SoftwareUpdateJob:

字段类型说明
idintegerOTA 任务 ID
module、artifact_namestring升级目标
statestring升级服务状态原样透传;当前 Core 未定义完整枚举
deployment_id、request_idstring下游部署与调用关联 ID
created_atstring创建时间
error_code、errorstring下游错误代码及文本

未知 module、非法 id、Artifact 不匹配:400/1001;任务不存在:404/1002;下游冲突:409/1007;升级服务未启用、Mender 凭据不可用或下游故障:502/1005。取消是否成功取决于下游任务阶段,不能认为 HTTP 成功就撤回了已经安装的软件。

OTA 集成复用设备现有的 Mender 身份与认证路径;客户端无需新增硬件身份上报接口,也不要用 SN 代替认证凭据。

4.7 配网状态与手动窗口​

方法与路径请求响应
GET /v1/api/systems/provisioning无配网守护进程状态对象
POST /v1/api/systems/provisioning/window无请求体打开手动广播窗口后的状态
DELETE /v1/api/systems/provisioning/window无请求体关闭手动广播窗口后的状态

这些接口只查询或控制配网广播窗口,不在 HTTP 请求中接收 Wi-Fi SSID/密码。窗口时长由配网服务控制,不提供客户端自定义 duration 字段。

主要状态字段:

字段类型说明
available、advertising、session_activeboolean服务可用、正在广播、配网会话活跃
statestring如 initializing、online_idle、offline_wait、advertising、client_connected、scanning、connecting、ap_active、succeeded、failed
protocol_versioninteger配网协议版本
advertising_mode、advertising_reasonsstring、string[]广播模式与原因
boot_window_remaining_secondsinteger开机窗口剩余秒数,不是所有窗口的统一倒计时
bluetooth_adapter、wifi_interfacestring所用设备接口
wifiobjectstate、mode、connected,可含 ssid、ip、gateway、can_restore、previous_ssid、internet_reachable、cloud_reachable
operationobject,可选request_id、type、state、started_at、updated_at,可含 result / error
last_error_code、updated_atstring最近错误、采样更新时间

桥接服务不可达时为 502/1005;不要将健康接口里的 provisioning.healthy=false 解释为整个 Orsus 进程退出。

4.8 CPU 隔离配置​

GET /v1/api/systems/config/cpu-isolation 无参数;PUT /v1/api/systems/config/cpu-isolation 使用以下对象,所有子字段可选,仅修改提供的字段:

{"navigation":{"enabled":true,"cgroup_parent":"business-gs.slice"},"mapping":{"enabled":false,"cgroup_parent":"business-gs.slice"}}

enabled 为 boolean,cgroup_parent 为 string。两接口成功均返回完整的上述配置结构。PUT 会写回配置文件;成功表示配置保存,不保证已运行容器即时重新分配 CPU。当前处理函数没有对现有容器执行重建,应按部署流程让后续启动使用新配置。配置读取或写入失败为 500/1003。