Remote Control

远程控制 - 下行指令

定义

Remote Control(远程控制)指通过平台向设备下发 Downstream Command,实现远程开关、参数调节、重启等操作。基于 Thing Model 物模型服务定义,支持同步/异步调用,是 Remote Maintenance 的核心能力。

实现机制与协议

远程控制通过 MQTT、HTTP、CoAP 等协议下发指令。平台将控制请求封装为符合 Thing Model 物模型的服务调用,经消息路由推送至设备;设备执行后上报结果,平台可更新 Device Shadow 设备影子。支持同步等待(请求-响应)与异步回调;超时与重试策略可配置。敏感控制(如关机、恢复出厂)可要求设备端二次确认或人机交互。

与 DMP 的集成

平台在控制台、API、自动化规则等入口提供远程控制能力。需配合 RBAC 权限控制,限制可执行控制的角色与设备范围;Audit Log 审计日志记录每次控制操作。与 Work Order 工单集成时,运维人员可在工单内直接发起远程控制,操作记录关联工单便于追溯。批量控制支持按分组、标签选择设备,适用于配置统一下发、批量重启等场景。

应用场景

适用于智能家居开关控制、工业设备参数调节、表计远程阀控、车联网远程锁车/启动等。远程控制是设备管理平台「管」与「控」结合的关键,支撑运维自动化与业务远程操作。

服务调用与设备影子期望值的差别

远程控制里有两条完全不同的路径。服务调用要求设备在时限内执行一个动作并返回结果,例如合闸、重启、改一个运行模式。影子里的期望值则表示“希望设备最终处于什么状态”,设备上线后自行对齐,不保证立刻执行。把需要即时回执的动作写成影子属性,界面会显示已保存,设备却要等到下一次同步才动作,操作者会以为指令丢失而再次点击。

服务调用的报文应带指令标识、参数和过期时刻。设备执行前检查过期时刻,过期则拒绝并回写原因,而不是照样动作。回执至少要区分已接受、已执行、执行失败和设备拒绝。只返回网络层送达,平台无法判断继电器有没有动作。需要确认送达质量时,应单独选择服务质量等级,不能把等级 0 的发布当成已经执行。

指令允许下发的在线与权限条件

下发前应同时满足:目标设备当前会话有效、调用者对该设备有相应功能权限和资源范围、该服务在物模型里对这个产品版本存在、参数落在模型约束内。缺任何一条就不应进入发送队列。离线设备若业务允许延后,应明确标成待送达,并给出保留时限;时限过后作废,而不是在数天后设备偶然上线时突然执行旧的关机指令。

批量控制的条件更严。分组里部分设备离线、部分型号没有该服务时,任务应分成可执行和被拒绝两组,并分别给出原因。不能因为多数设备成功就把整批标成成功。涉及安全联锁的动作,例如阀门和接触器,还应要求设备本地条件满足,平台侧的权限不能覆盖现场急停。操作记录要能关联到具体事件推送或审计条目,方便接收方核对是哪一次点击。

超时后重复下发造成的双执行

超时只说明平台在时限内没看到回执,不说明设备没执行。弱网下设备往往已经动作,回执却丢了。操作者立刻重发同一业务,设备会再执行一次:阀门开两次、重启两次、计数器被加两次。每次下发必须携带不变的指令标识;设备见到已执行过的标识,只重放上次结果,不再驱动执行机构。

平台侧的重试也要遵守同一标识,而不是每次点击都生成新标识。新标识表示新的一次业务。界面上应把“等待回执”和“可以安全重试”分成两个状态,在等待期间禁用再次提交。参数相同但目标状态已经达到时,设备应返回“已处于目标状态”,避免把成功误记成未响应。影子同步和手动控制若同时改同一个量,后到达的期望值会覆盖刚执行的结果,两类写入需要约定优先级,不能各自以为自己是最后一次。

控制台应把最近一次指令的标识、参数、发送时刻、有效等级和回执原文留在设备记录里,供下一次操作前查看。没有回执原文时,操作者只能看到“超时”两个字,无法区分设备拒绝、参数非法和链路丢失。对会改变现场安全状态的服务,增加一条本地状态读回:指令显示成功之后,再读一次相关属性,确认与目标一致。读回不一致就保持任务为未确认,禁止自动补发一条新的相反指令去“纠正”,那可能和迟到的第一次执行叠在一起。

相关术语

返回设备管理平台专业术语