Files
my-vault/01_Projects/Work/Enterprise/AIoT/ref/Device-Addition.md
T

7.9 KiB
Raw Blame History

一、前置准备(必须先完成)

  • 必要资料(向设备方/平台方索取)
    • 接入模式:设备直连 / 网关代理 / 平台采集(本平台去消费对方MQTT/HTTP)
    • 协议与地址:MQTT/HTTP服务地址与端口
    • 认证信息:账号/密码或密钥/签名算法、ClientId要求(若有)
    • Topic清单:含层级规范与变量段说明(设备编码所在层级)
    • 数据样例:真实上报JSON(至少包含设备编码、事件类型、事件时间、示例字段)
    • 物模型草案:关键字段清单、字段类型、枚举值、时间戳格式
  • 平台账号与权限
    • 建议按项目或服务商使用独立账号;确认账号具备网络组件、产品、设备的增改权限

二、总体流程总览

  1. 配置网络组件(MQTT/HTTP
  2. 创建产品与物模型
    • 网关产品(如用网关或平台采集方案)
    • 设备产品(真实设备)
    • 发布产品(自动建表)
  3. 创建设备实例
    • 网关设备(如有)
    • 子设备(N台)
  4. 绑定网络与Topic
  5. 启用与验证(数据入库校验) 说明:
  • 直连设备:可不建网关产品/设备,设备产品直连绑定网络并上报
  • 网关/平台采集:需先建网关产品/网关设备,再建子设备并绑定到网关

三、步骤详解(以“网关代理/平台采集”通用流程为例) 步骤1:配置网络组件

  • 入口:平台-网络管理-新增网络组件
  • 填写项
    • 类型:MQTT(常用)或HTTP
    • 地址/端口:对方提供
    • 认证:账号/密码或密钥/签名(按文档要求)
    • ClientId/连接参数:若对方有格式要求需按要求填写
    • 备注:建议标注项目/厂商名称,便于后续识别
  • 校验要点
    • 先用MQTT客户端连通测试(能订阅到任意公开主题最佳)
    • 认证失败优先检查账号状态、白名单、TLS/证书要求

步骤2:创建网关产品(如使用网关或平台采集)

  • 入口:平台-产品管理-新增产品(类型:网关)
  • 物模型设计建议
    • 必含设备标识字段:如 deviceId 或 sip(用于路由到子设备)
    • 事件类字段:type(枚举)、subType/desc(可选)、eventTimelong时间戳)
    • 其它业务字段:按对方数据样例补充
  • 发布产品
    • 发布后平台自动在时序库创建超级表;未发布将导致后续入库失败
  • 检查
    • 确认字段名与对方数据一致,时间字段勾选为时间列

步骤3:创建设备产品(真实设备)

  • 入口:平台-产品管理-新增产品(类型:设备)
  • 物模型设计建议
    • 不重复设备标识字段(已由网关路由确定)
    • 保留设备侧关注的业务字段,如 type、alertSubType、eventTime 等
    • 将 eventTime 设为时间列;枚举值与对方对齐
  • 发布产品
    • 发布后生成对应设备超级表

步骤4:创建设备实例-网关设备

  • 入口:平台-设备管理-新增设备(选择网关产品)
  • 关键配置
    • 接入方式:网关记录 或 平台记录
      • 网关记录:数据由“网关代理”上报至平台
      • 平台记录:平台主动去对方平台消费(安全帽MQTT消费属此类)
    • 协议:MQTT(并备注厂商/平台名称)
    • 绑定网络组件:选择步骤1创建的网络组件
    • 订阅Topic:填写对方提供的Topic;中间层级不确定用“+”通配
      • 示例:/vendor/helmet/+/alarm
    • 启用:保存后先不启用,待子设备创建完一起启用
  • 校验要点
    • 用MQTT客户端实测该Topic能收到与样例一致的数据
    • Topic变量段确定设备编码位置,便于后续路由

步骤5:创建设备实例-子设备(N台)

  • 入口:平台-设备管理-新增设备(选择步骤3的设备产品)
  • 关键配置
    • 设备编码:与上报数据中的设备标识一致,平台全局唯一
    • 接入方式:网关记录(通过网关代理)
    • 所属网关:选择步骤4的网关设备
    • 其它信息:名称、位置、单位、行业分类等
  • 批量建议
    • 若数量大,先准备模板CSV后批量导入(如平台支持批量)
  • 注意
    • 子设备不绑定网络组件与Topic,由网关设备统一订阅与路由

步骤6:启用与联调

  • 入口:设备列表/网关设备详情
  • 操作
    • 启用网关设备
    • 启用子设备
    • 观察监控页/日志:确认网关连接成功、订阅成功、消息接收正常
  • 入库校验
    • 在平台查询实时/历史数据或直连时序库查询对应表
    • 核对字段映射是否正确、eventTime是否生效排序

四、直连设备(无网关)的差异化步骤

  • 产品:仅需设备产品(可将设备编码作为辅助字段或不存储,视平台实现)
  • 设备实例:接入方式选“直连”,直接绑定网络组件
  • Topic:在设备实例上配置其专属Topic(若每台设备一个Topic),或采用平台方提供的统一Topic+设备编码路由
  • 其余校验同上

五、平台推送(第三方向本平台推送HTTP/MQTT)

  • 网络组件:配置为“平台接收”端点(若平台提供专属接入地址与认证)
  • 安全策略:为对方创建独立账号与密钥,限制可见与写入范围
  • 物模型与设备:与网关模式的设备侧一致
  • 验证:让对方用真实报文调用接入地址,平台查收并入库

六、字段与物模型设计清单(避免入库失败)

  • 必备
    • 路由字段:deviceId/sip(在网关模型中必需)
    • 时间字段:eventTime(long,设为时间列)
    • 类型字段:type(枚举或字符串,保持与对方一致)
  • 不建议
    • 在设备模型中重复定义设备ID(已由路由确定)
    • 使用平台保留关键字作为字段名
  • 变更
    • 发布后字段调整需评估对历史数据表结构影响,慎重变更;必要时新建版本产品

七、Topic与通配符配置指引

  • 常见差异:文档与现场Topic中间多一层(如项目号/渠道号)
  • 处理方法
    • 优先使用“+”单层通配匹配中间层
    • 样例:/v1/device/+/alarm 或 /org/+/helmet/+/event
  • 验证
    • 使用MQTT客户端先订阅通配符Topic,确认能收到期望设备的数据

八、启用后的自检与排障

  • 收不到数据
    • 网络组件未连通或认证失败:检查账号/密码/证书/白名单
    • Topic错误:客户端验证;核对通配层级数量
    • 未启用:确认网关与子设备均为启用状态
  • 入库异常
    • 物模型字段名不一致/类型不匹配:对照样例修正
    • 未发布产品/表未生成:检查发布动作是否成功
    • 时间列未设置:导致排序/查询异常
  • 路由失败
    • 网关模型中未正确解析设备编码
    • 子设备未创建或设备编码不一致(唯一索引冲突或找不到匹配)
  • 性能问题
    • 平台主动采集负载高:优先引导改为对方推送
    • 大批量设备:提前估算队列/缓存资源,必要时分批启用

九、最佳实践与建议

  • 先证后配:先用客户端验证MQTT/HTTP链路与Topic,再在平台录入配置
  • N+1建模:网关产品+网关设备(1)+子设备(N),清晰解耦
  • 简化字段:设备模型只保留必要业务字段;网关模型承载路由与原始结构
  • 命名一致:字段名与对方对齐;枚举提前对表
  • 批量导入:产品发布后,再批量导入设备,减少重复劳动
  • 审计与隔离:项目/厂商独立账号与密钥;便于问题定位与权限控制

十、快速清单(实施现场可打印)

  • 我是否拿到:地址/端口、认证、Topic、真实样例、设备编码列表?
  • 我是否:创建了网络组件、创建并发布了网关/设备产品?
  • 我是否:创建了网关设备并配置了Topic与网络组件?
  • 我是否:为每台设备创建了子设备并与网关绑定,设备编码一致?
  • 我是否:启用设备与网关、用监控与日志确认已接收到消息?
  • 我是否:在平台或库中查到实时/历史数据,字段与时间正确?