开发者中心 开发者中心
  • 简体中文
  • English
视频教程
敢为云网站
  • 6.0版本
  • 6.1 版本
视频教程
敢为云网站
  • 平台概述
  • 平台功能
  • 平台安装
  • 开发者指南
  • 项目实战
  • 附录
    • 常用协议说明
    • 接口说明
    • 数据库说明
    • 平台接入能力
    • 如何使用gRPC
    • 敢为公共库
    • 设备禁用配置
    • 内网平台获取外网平台数据
    • 工程调试
      • 常用调试工具
      • 园区数字平台交付指南
        • 产品描述
        • 安装部署
        • 维护说明
        • 交付指南附录
          • K8s常见操作
            • 容器查看
            • 进入容器
            • 重启容器
            • 文件拷贝
            • 查看端口映射
            • 强制删除pod
            • 其他命令
          • 接口脚本
          • 数字园区解决方案资产清单
          • ROMA自定义后端接口脚本
          • 敢为标准北向接口配置
            • 登录ROMA平台
            • 接口调用配置管理
            • 登录ROMA平台
            • 接口配置
            • 配置定时任务
            • Postman调用
          • 通信矩阵
          • 密码存储文件
    • Q&A

交付附录

# 交付附录

# K8s常见操作

# 容器查看

kubectl get pod -n iot -o wide

# 进入容器

kubectl exec  -it 容器名称  bash -n iot

# 重启容器

kubectl delete pod 容器名称 -n iot

或者

kubectl scale deployment iotcenter-euler-v1  --replicas=0 -niot
kubectl scale deployment iotcenter-euler-v1  --replicas=1 -niot

# 文件拷贝

cp命令识别的是容器登录时的路径,不能加绝对路径 拷贝文件到容器

kubectl cp 文件名 容器名:文件名 -n iot

拷贝文件到当前机器

kubectl cp -n iot  容器名:文件名  文件名

# 查看端口映射

kubectl get svc  -n iot

# 强制删除pod

在dashboard界面删除容器,发现无法删除。使用命令查看发现该pod一直处于terminating的状态 Kubernetes强制删除一直处于Terminating状态的pod。

  • 使用命令获取pod的名字
kubectl get pod -n NAMESPACE |grep Terminating
  • 使用kubectl中的强制删除命令
kubectl delete pod podName -n NAMESPACE --force --grace-period=0

# 其他命令

  • 查询deploy文件
kubectl get  deploy -niot
  • 查询cm 文件
kubectl get  cm -niot
  • 查询pv 文件
kubectl get  pv -niot
  • 查询pvc 文件
kubectl get  pvc -niot
  • 查询Service 文件
kubectl get  Service -niot
  • 更新yaml 文件
kubectl apply -f opengauss-deployment.yaml
  • 导入镜像
docker load <     xxxx.tar

或

 docker load -i xxxx.tar
  • 修改镜像tag:
docker tag  id号  mydockerhub.com:5000/cube-repo-space/xxxx:6.0.1
  • 查看pod 错误日志
kubectl describe pod pod_name -n iot 

或

kubectl describe pod pod_name --namespace iot
  • 指定namespace,如果存在多个namespace
kubectl describe pods/iotcenter-euler-v1-85ddfdcccd-ktgs9 --namespace iot

# 接口脚本

接口脚本下载

# 数字园区解决方案资产清单

数字园区解决方案资产清单下载

# ROMA自定义后端接口脚本

自定义后端接口脚本下载

通常情况下,只需修改脚本中的URL即可,如图所示:

# 敢为标准北向接口配置

# 登录ROMA平台

详情

收集项目ROMA账户信息,登录ROMA平台进行接口配置。(账户信息华为提供) 第一步:登录ROMA平台

第二步:点击【查看控制平台】

第三步:点击【服务集成APIC】

第四步:点击【自定义后端】

# 接口调用配置管理

# 登录ROMA平台

详情

在配置接口前需配置接口后端地址信息。 第一步:进入【自定义后端】页面,点击配置管理。

第二步:点击【添加配置】

  • 进入配置管理页面,点击添加配置。
  • 配置名称:IoTCenterApiAddr 与接口脚本中对应
  • 所属集成应用:敢为应用(sctest1001_敢为IOT)
  • 配置类型:默认
  • 配置值:https://xx.xx.xxx.xx:30380 (IOT平台地址)

配置完成后点击【确认】

# 接口配置

注意

如下接口仅供参考,具体以北向接口文档为准。

# IOT鉴权

详情
# 接口信息
请求方法 POST
请求地址 io/sctest1001__io.ganwei.iot/south/device-management/v2/south/platform/signIn
传输协议 HTTP&HTTPS
接口方式 Restful
# 创建API接口

第一步:点击【创建后端】

第二步:配置鉴权API接口信息

  • 后端名称:IOT鉴权 可自定义命名
  • 集成应用:敢为应用(sctest1001_敢为IOT)
  • 后端请求方法:POST
  • 后端请求路径(可自定义): /io/sctest1001__io.ganwei.iot/south/device-management/v2/south/platform/signIn
  • 后端安全认证:(无认证)

第三步:填写完成后,点击右下角的【立即创建】,跳转至下一页面 选择【新建函数后端】,选择空白模板,弹出确认框,点击【确认】。

第四步:将鉴权脚本复制——》粘贴至编写框中。

第五步:点击右上角导航条处【保存】,再点击【测试】。(测试接口是否可正常使用)

Body传参如下:

{
    "UserName": "yQBNv**********",
    "Password": "**********~$^"
}

响应示例:

{
    "code":"0",
    "message":"Login success."
}

第六步:测试结果正常后,点击右上角【部署】,再点击【发布】

第七步:返回服务集成APIC,点击【API管理】,验证接口是否发布成功。(发布成功后API管理中会生成对应的接口。)

# 配置定时任务

详情

点击【APIC管理】,点击下拉列表,查找【API定时任务】

第一步:【创建API定时任务】

第二步:配置定时任务

任务名称:IOT鉴权(敢为定时任务) 集成应用:sctest1001_敢为IOT 开启时间:自定义 (必须比当前时间晚,不然创建后无法启动) 触发器类型:CALENDAR 调用周期:30分钟 失败重试次数:2 API:点击选择API,选择对应的API接口 Body:(传参)

{
    "UserName": "**********",
    "Password": "**********~$^"
}

以上配置完成后点击【确认】

第三步:启动定时任务

第四步:验证定时任务中是否正常调用接口,点击任务,查看调用日志。

# IOT批量查询终端基础信息

详情
# 接口信息
请求方法 POST
请求地址 /io/sctest1001__io.ganwei.iot/south/device-management/v2/deviceList
传输协议 HTTP&HTTPS
接口方式 Restful
# 创建API接口

第一步:点击【创建后端】

第二步:配置鉴权API接口信息

  • 后端名称:IOT批量查询终端基础信息 可自定义命名
  • 集成应用:敢为应用(sctest1001_敢为IOT)
  • 后端请求方法:POST
  • 后端请求路径(可自定义):/io/sctest1001__io.ganwei.iot/south/device-management/v2/deviceList
  • 后端安全认证:(无认证)

第三步:填写完成后,点击右下角的【立即创建】,跳转至下一页面 选择【新建函数后端】,选择空白模板,弹出确认框,点击【确认】。将鉴权脚本复制——》粘贴至编写框中。

第四步:点击右上角导航条处【保存】,再点击【测试】。(测试接口是否可正常使用)

Body传参如下:

{
   "pageNo": 1,
   "pageSize": 100
}

响应示例:

{
    "data":{
        "pageNo":1,
        "pageSize":100,
        "totalCount":8,
        "totalPage":1,
        "list":[
            {
                "terminalId":68,
                "terminalNo":"10014",
                "gatewayId":null,
                "createTime":"2022-09-25T22:35:10",
                "lastModifiedTime":"2022-09-26T11:18:38",
                "productId":2,
                "terminalName":"门禁",
                "terminalTypes":[
                    "门禁系统"
                ],
                "terminalTypeIds":[
                    10
                ],
                "longitude":0,
                "latitude":0,
                "areaName":"",
                "buildName":"",
                "unitName":"****",
                "address":"",
                "extendInfo":null,
                "remark":"",
                "terminalStatus":"HaveAlarm",
                "eventTime":"2022-09-26T16:22:02"
            },
            {
                "terminalId":59,
                "terminalNo":"10006",
                "gatewayId":null,
                "createTime":"2022-09-19T18:55:36",
                "lastModifiedTime":"2022-09-26T13:38:54",
                "productId":1,
                "terminalName":"SPM9511_510100B0010010",
                "terminalTypes":[
                    "能耗电表"
                ],
                "terminalTypeIds":[
                    8
                ],
                "longitude":0,
                "latitude":0,
                "areaName":"",
                "buildName":"",
                "unitName":"",
                "address":"",
                "extendInfo":null,
                "remark":"",
                "terminalStatus":"CommunicationOK",
                "eventTime":"2022-09-26T16:22:02"
            }
        ]
    },
    "code":200,
    "message":"操作成功",
    "succeeded":true
}

第五步:测试结果正常后,点击右上角【部署】,再点击【发布】

第六步:返回服务集成APIC,点击【API管理】,验证接口是否发布成功。(发布成功后API管理中会生成对应的接口。)

注意

创建API接口 自定义后端接口创建及配置与上述“IOT批量查询终端基础信息” 配置相同。

# IOT查询单个终端基础信息
# 接口信息
请求方法 POST
请求地址 /io/sctest1001__io.ganwei.iot/south/device-management/v2/device
传输协议 HTTP&HTTPS
接口方式 Restful
# IOT查询终端分类数据
# 接口信息
请求方法 POST
请求地址 /io/sctest1001__io.ganwei.iot/south/device-management/v2/device/types
传输协议 HTTP&HTTPS
接口方式 Restful
# IOT批量查询终端属性数据
# 接口信息
请求方法 POST
请求地址 /io/sctest1001__io.ganwei.iot/south/device-management/v2/device/propertys
传输协议 HTTP&HTTPS
接口方式 Restful
# IOT查询设备属性历史值
# 接口信息
请求方法 POST
请求地址 /io/sctest1001__io.ganwei.iot/south/device-management/v2/device/property/history
传输协议 HTTP&HTTPS
接口方式 Restful
# IOT查询终端实时事件信息
# 接口信息
请求方法 POST
请求地址 /io/sctest1001__io.ganwei.iot/south/device-management/v2/device/events
传输协议 HTTP&HTTPS
接口方式 Restful

# IOT查询终端历史事件信息

# 接口信息
请求方法 POST
请求地址 /io/sctest1001__io.ganwei.iot/south/device-management/v2/device/events/history
传输协议 HTTP&HTTPS
接口方式 Restful

# IOT终端指令下发

# 接口信息
请求方法 POST
请求地址 /io/sctest1001__io.ganwei.iot/south/device-management/v2/device/property/command
传输协议 HTTP&HTTPS
接口方式 Restful

# IOT终端属性指定日期内是否存在历史记录

接口信息

请求方法 POST
请求地址 /io/sctest1001__io.ganwei.iot/south/device-management/v2/device/property/historyCount
传输协议 HTTP&HTTPS
接口方式 Restful

# Postman调用

详情
# 请求参数
名称 是否必选 类型 位置 说明
X-HW-ID 是 String Header Postman调用认证需要,由ROMA提供,集成实例用户信息(通过ROMA接口需用到)
X-HW-APPKEY 是 String Header Postman调用认证需要,由ROMA提供,集成实例用户信息(通过ROMA接口需用到)
gatewayId 否 String body 网关标识
terminalId 否 Int body 终端标识
terminalName 否 String body 终端名称
terminalTypeIds 否 int body 终端类型Id
terminalStatus 否 String body 查询终端的状态。 NoCommunication:离线 CommunicationOK:正常 HaveAlarm:报警 HaveSetParm:正在设置中 Initial:正在初始化 CheFang:撤防
beginTime 否 String body 查询注册终端信息时间在beginTime之后的记录。平台时间格式:yyyy-MM-ddTHH:mm:ss。
endTime 否 String body 查询注册终端信息时间在endTime之前的记录。 平台时间格式:yyyy-MM-ddTHH:mm:ss。
sort 否 String body 指定返回记录的排序。缺省值:DESC。 ASC:按注册终端的时间升序排列 DESC:按注册终端的时间降序排列。
areaName 否 String body 查询指定区域下的终端,可模糊查询
buildName 否 String body 查询指定建筑中的终端,可模糊查询
unitName 否 String body 查询指定单位的终端,可模糊查询
pageNo 否 Int body 查询的页码,第一页为1,缺省值为1
pageSize 否 Int body
# 响应参数
名称 是否必选 类型 说明
code 是 String 接口请求结果,表示接口是否调用成功,对实际功能调用成功与否不做描述。 成功:200失败:-1
message 是 String 接口请求结果描述。
data 是 Object 查询结果集合
succeeded 是 Bool 接口请求是否成功。成功:true 失败:false

Page

名称 是否必选 类型 说明
pageNo 是 Int 查询的页码
pageSize 是 Int 查询每页信息的数量。
totalCount 是 Int 查询的记录数量。
totalPage 是 Int 查询的总页数。
list 是 List 终端分页列表信息。

Device

名称 是否必选 是否可改 类型 说明
terminalId 是 否 Int 终端ID,用于唯一标识一个终端
terminalNo 是 否 Int 设备ID
gatewayId 是 是 String 网关ID,用于标识一个测站。
createTime 是 否 String 创建终端的时间,时间格式:yyyy-MM-dd HH:mm:sss,如2019-09-27 17:54:10。
lastModifiedTime 是 是 String 最后修改终端的时间。
terminalName 是 是 String 终端名称。
terminalTypes 是 是 String 终端类型v
terminalTypeIds 是 是 String 终端类型Idv
longitude 否 是 String 经度
latitude 否 是 String 纬度
areaName 否 是 String 所属区域名称。
buildName 否 是 String 所在建筑名称。
unitName 否 是 String 所属单位名称。
address 否 是 String 终端的位置信息。
extendInfo 否 是 String 终端的扩展信息。
remark 否 是 String 终端的描述信息。
terminalStatus 否 否 String 终端的状态,共三类 NoCommunication:离线 CommunicationOK:正常 HaveAlarm:报警
eventTime 否 是 DateTime 当前时间
# HTTP请求示例
{
    "pageNo": 1,
    "pageSize": 100
}

# HTTP响应示例
{
    "data":{
        "pageNo":1,
        "pageSize":100,
        "totalCount":8,
        "totalPage":1,
        "list":[
            {
                "terminalId":68,
                "terminalNo":"10014",
                "gatewayId":null,
                "createTime":"2022-09-25T22:35:10",
                "lastModifiedTime":"2022-09-26T11:18:38",
                "productId":2,
                "terminalName":"门禁",
                "terminalTypes":[
                    "门禁系统"
                ],
                "terminalTypeIds":[
                    10
                ],
                "longitude":0,
                "latitude":0,
                "areaName":"",
                "buildName":"",
                "unitName":"海康",
                "address":"",
                "extendInfo":null,
                "remark":"",
                "terminalStatus":"HaveAlarm",
                "eventTime":"2022-09-26T16:22:02"
            },
            {
                "terminalId":59,
                "terminalNo":"10006",
                "gatewayId":null,
                "createTime":"2022-09-19T18:55:36",
                "lastModifiedTime":"2022-09-26T13:38:54",
                "productId":1,
                "terminalName":"SPM9511_510100B0010010",
                "terminalTypes":[
                    "能耗电表"
                ],
                "terminalTypeIds":[
                    8
                ],
                "longitude":0,
                "latitude":0,
                "areaName":"",
                "buildName":"",
                "unitName":"",
                "address":"",
                "extendInfo":null,
                "remark":"",
                "terminalStatus":"CommunicationOK",
                "eventTime":"2022-09-26T16:22:02"
            }
        ]
    },
    "code":200,
    "message":"操作成功",
    "succeeded":true
}

注意

其他接口同理,Header无需再传AuthorizationToken及X-ClientId。都已通过ROMA集成内部调用。

# 通信矩阵

# 密码存储文件

注意

用于MySQL、GaussDB数据库的备份和恢复

密码存储文件下载

上次更新: 12/12/2023, 7:27:04 PM

← 维护说明 Q&A→

目录
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式