门禁控制器物模型v1.0
一、物模型简介
1.1 功能类型
功能类型 | 说明 |
---|---|
属性 | 用于描述设备运行时具体信息和状态。例如,环境监测设备所读取的当前环境温度、智能灯开关状态、电风扇风力等级等。属性可分为读写和只读两种类型:读写类型支持读取和设置属性值,只读类型仅支持读取属性值。 |
服务 | 指设备可供外部调用的指令或方法。服务调用中可设置输入和输出参数:输入参数是服务执行时的参数,输出参数是服务执行后的结果。相比属性,服务可通过一条指令实现更复杂的业务逻辑,例如执行某项特定的任务。服务分为异步和同步两种调用方式。 |
事件 | 设备运行时,主动上 报给云端的信息,一般包含需要被外部感知和处理的信息、告警和故障。事件中可包含多个输出参数,事件可以被订阅和推送。 |
1.2 数据类型
数据类型 | 说明 | 示例 |
---|---|---|
int | 整型 | 10 |
float | 单精度浮点型 | 1.1 |
double | 双精度浮点型 | 1.23 |
text | 字符串,对应的数据长度不能超过 10240 字节 | "Hello world!" |
date | 时间戳,格式为 String 类型的 UTC 时间戳,单位:毫秒 | "1635839462000" |
bool | 布尔型,采用 0(false)或 1(true)来定义布尔值,且 0 和 1 为 int32 类型 | 0 表示关、1 表示开 |
enum | 枚举型,定义枚举项的参数值和参数描述,参数值必须为整数 | 整数 0 表示红色,整数 1 表示蓝色,整数 2 表示绿色 |
jsonObject | JSON 对象,定义一个 JSON 结构体,结构体内元素类型支持 int、float、double、text、date、bool 和 enum,不支持结构体嵌套 | { "name":"Tom", "age":10 } |
array | 数组,需声明数组内的元素类型、数组元素个数。元素类型支持 int、float、double、text 或 struct,需确保同一个数组元素类型相同,元素个数限制为 1~512 个 | [1, 2, 3, 4, 5, 6] |
1.3 Topic 定义
固定部分 | 产品 id | 设备 id(可为网关 id,也可为子设备 id) | 固定部分 | 模块 | 响应/动作/gateway(按需) |
---|---|---|---|---|---|
sys | {product_id} | {device_id} | thing | heart:心跳 ntp:校时 properties:属性 service:服务 status:状态 event:事件 | up:上报 set:写值 response:响应 geteway:网关 |
二、Payload 报文定义
2.1 设备属性
属性名称 | 属性 ID | 数据类型 | 读写类型 | 必填 | 数据定义 |
---|---|---|---|---|---|
设备型号 | dev_type | text | 只读 | 是 | 示例:MJ8014_M、MJ8012_M、MJ8011_M、MJ8414_M、MJ8412_M |
设备 IP | ip | text | 读写 | 是 | 数据长度:16 |
MAC 地址 | mac | text | 只读 | 是 | 示例:00:90:C2:11:23:11 |
软件版本号 | soft_version | text | 只读 | 是 | - |
固件版本号 | firmware_version | text | 只读 | 是 | - |
属性上报时间 | upload_time | date | 只读 | 是 | 毫秒级时间戳 |
属性上报标志 | upload_flag | bool | 读写 | 是 | 0-上报,1-不上报 |
设备运行状态 | running_state | int | 读写 | 是 | 详见运行状态定义 |
设备消防状态 | fire_state | bool | 读写 | 否 | 0-无消防,1-有消防 |
门锁状态 | lock_state | array[bool] | 只读 | 否 | 0-门锁关,1-门锁开,[0,1,0,1] 代表 0 号门锁关,1 号门锁开,2 号门锁关,3 号门锁开 |
门磁状态 | mag_state | array[bool] | 只读 | 否 | 0-门磁关,1-门磁开,[0,1,0,1] 代表 0 号门磁关,1 号门磁开,2 号门磁关,3 号门磁开 |
按钮状态 | button_state | array[bool] | 只读 | 否 | 0-按钮关,1-按钮开,[0,1,0,1] 代表 0 号门按钮关,1 号门按钮开,2 号门按钮关,3 号门按钮开 |
防撬状态 | prepri_state | array[bool] | 只读 | 否 | 0-防撬关,1-防撬开,[0,1,0,1] 代表 0 号门防撬关,1 号门防撬开,2 号门防撬关,3 号门防撬开 |
2.2 设备服务
表格内容说明
1.
2.
code=200
,设置/读取失败时,code=460
,且通过 error 返回错误码。通常设置成功时 data 不携带返回信息,服务下发为读取指令时,code=200 且携带相关读取信息。2.2.1 设置设备通讯参数(set_network_param)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
本地 IP 地址 | local_ip | text | 本地 IP 地址 | 输入 | 是 |
子网掩码 | netmask | text | 子网掩码 | 输入 | 是 |
网关参数 | gateway | text | 网关 | 输入 | 是 |
broker 地址 | broker | text | Broker 地址 | 输入 | 是 |
broker 端口 | broker_port | int | Broker 端口号 | 输入 | 是 |
客户端 ID | client_id | text | 客户端 ID | 输入 | 是 |
用户名 | username | text | 连接用户名 | 输入 | 是 |
密码 | password | text | 用户名密码 | 输入 | 是 |
DNS 地址 | dns | text | dns 地址 | 输入 | 是 |
2.2.2 读取设备通讯参数(get_network_param)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
本地 IP 地址 | local_ip | text | 本地 IP 地址 | 输出 | 是 |
子网掩码 | netmask | text | 子网掩码 | 输出 | 是 |
网关参数 | gateway | text | 网关 | 输出 | 是 |
broker 地址 | broker | text | Broker 地址 | 输出 | 是 |
broker 端口 | broker_port | int | Broker 端口号 | 输出 | 是 |
客户端 ID | client_id | text | 客户端 ID | 输出 | 是 |
用户名 | username | text | 连接用户名 | 输出 | 是 |
密码 | password | text | 用户名密码 | 输出 | 是 |
DNS 地址 | dns | text | dns 地址 | 输出 | 是 |
2.2.3 设置门工作参数(set_door_param)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
门号 | door_no | array[enum] | 门号,[0,1,2,3] 代表同时设置 4 个门的参数,enum 从 0 号门开始 | 输入 | 是 |
是否启用超级密码 | super_flag | bool | 0-不启用,1-启用 | 输入 | 否 |
超级密码 | super_pwd | text | 数据长度:16 | 输入 | 否 |
胁迫码是否启用 | duress_flag | bool | 0-不启用,1-启用 | 输入 | 否 |
功能模式 | func_mode | enum | 0:刷卡开门(正常模式);1:卡加密码开门(生物识别加密码);2:多卡开门;3:卡加生物识别开门;4:首卡开门;5:高安全模式 | 输入 | 否 |
验证开门模式 | verify_mode | bool | 0-验证权限、时限开门;1-刷卡直接开门 | 输入 | 否 |
工作模式 | work_mode | enum | 0:常闭状态自动模式;1:常闭模式;2:常开模式 | 输入 | 否 |
开门输出延时 | delay_time | int | 以 100ms 为一个单位,最多 110 分钟 | 输入 | 否 |
开门超时报警 | alarm_time | int | 以秒为单位,1~255 秒,0-超时不报警 | 输入 | 否 |
多卡开门卡号数量 | multi_card_num | int | 2~8 | 输入 | 否 |
2.2.4 读取门工作参数(get_door_param)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
门号 | door_no | array[enum] | 门号,[0,1,2,3] 代表同时设置 4 个门的参数,enum 从 0 号门开始 | 输入 | 是 |
是否启用超级密码 | super_flag | bool | 0-不启用,1-启用 | 输出 | 否 |
超级密码 | super_pwd | text | 数据长度:16 | 输出 | 否 |
是否启用胁迫码 | duress_flag | bool | 0-不启用,1-启用 | 输出 | 否 |
胁迫码 | duress_pwd | text | 数据长度:16 | 输出 | 否 |
功能模式 | func_mode | enum | 0:刷卡开门(正常模式);1:卡加密码开门(生物识别加密码);2:多卡开门;3:卡加生物识别开门;4:首卡开门;5:高安全模式 | 输出 | 否 |
验证开门模式 | verify_mode | bool | 0-验证权限、时限开门;1-刷卡直接开门 | 输出 | 否 |
工作模式 | work_mode | enum | 0:常闭状态自动模式;1:常闭模式;2:常开模式 | 输出 | 否 |
开门输出延时 | delay_time | int | 以 100ms 为一个单位,最多 110 分钟 | 输出 | 否 |
开门超时报警 | alarm_time | int | 以秒为单位,1~255 秒,0-超时不报警 | 输出 | 否 |
多卡开 门卡号数量 | multi_card_num | int | 2~8 | 输出 | 否 |
2.2.5 下发凭证(issue_voucher)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
卡证下发门号 | door_no | array[enum] | 门号,enum 从 0 号门开始 | 输入 | 是 |
凭证类型 | type | enum | 0-卡证,1-人脸,2-二维码 | 输入 | 是 |
凭证号 | voucher_no | text | 数据长度:32 | 输入 | 是 |
凭证有效开始时间 | start_date | date | 毫秒级时间戳 | 输入 | 是 |
凭证有效截止时间 | expire_date | date | 毫秒级时间戳 | 输入 | 是 |
时段组 | seg_group | int | 0~15 | 输入 | 是 |
开门密码 | open_pwd | text | 数据长度:16 | 输入 | 是 |
2.2.6 获取凭证(get_voucher)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
门号 | door_no | array[enum] | 门号,enum 从 0 号门开始 | 输出 | 是 |
凭证类型 | type | enum | 0- 卡证,1-人脸,2-二维码 | 输入/输出 | 是 |
凭证号 | voucher_no | text | 数据长度:32 | 输入/输出 | 是 |
凭证有效开始时间 | start_date | date | 毫秒级时间戳 | 输出 | 是 |
凭证有效截止时间 | expire_date | date | 毫秒级时间戳 | 输出 | 是 |
时段组 | seg_group | int | 0~15 | 输出 | 是 |
开门密码 | open_pwd | text | 数据长度:16 | 输出 | 是 |
2.2.7 删除凭证(del_voucher)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
卡证删除门号 | door_no | array[enum] | 门号,enum 从 0 号门开始 | 输入 | 是 |
凭证类型 | type | enum | 0-卡证,1-人脸,2-二维码 | 输入 | 是 |
凭证号 | voucher_no | text | 数据长度:32 | 输入 | 是 |
2.2.8 远程开门(remote_open)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
远程开门门号 | door_no | array[enum] | 门号,enum 从 0 号门开始 | 输入 | 是 |
远程开门凭证号 | voucher_no | text | 数据长度:32 | 输入 | 否 |
2.2.9 读取时段表(get_time_table)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
块号 | block | int | 块号:取值 0 | 输出 | 是 |
时段表 | time_data | array[text] | 时段数据 [text,text......],详见时段表定义 | 输出 | 是 |
2.2.10 设置时段表(set_time_table)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
块号 | block | int | 块号:取值 0 | 输入 | 是 |
时段表 | time_data | array[text] | 时段数据 [text,text......],详见时段表定义 | 输入 | 是 |
2.2.11 读取用户时段组(get_user_timegroup)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
块号 | block | int | 块号:取值 0~1 | 输出 | 是 |
用户时段组 | user_timegroup | array[text] | 用户时段组,详见用户时段组定义 | 输出 | 是 |
2.2.12 设置用户时段组(set_user_timegroup)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
块号 | block | int | 块号:取值 0~1 | 输入 | 是 |
用户时段组 | user_timegroup | array[text] | 用户时段组,详见用户时段组定义 | 输入 | 是 |
2.2.13 读取设备时段组(get_dev_timegroup)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
块号 | block | int | 块号:取值 0~1 | 输出 | 是 |
设备时段组 | dev_timegroup | array[text] | 设备时段组,详见设备时段组定义 | 输出 | 是 |
2.2.14 设置设备时段组(set_dev_timegroup )
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
块号 | block | int | 块号:取值 0~1 | 输入 | 是 |
设备时段组 | dev_timegroup | array[text] | 设备时段组,详见设备时段组定义 | 输入 | 是 |
2.2.15 读取节假日(get_holiday)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
节假日 | holiday_data | array[text] | 详见节假日定义 | 输出 | 是 |
2.2.16 设置节假日(set_holiday)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
节假日 | holiday_data | array[text] | 详见节假日定义 | 输入 | 是 |
2.2.17 下发系统密钥(set_system_key)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
变更类型 | change_type | enum | 1: 下载类型的密钥全部更新;2: 密钥保持不变 | 输入 | 是 |
加密算法类型 | algorithm_type | enum | 0: 不加密;1:3DES | 输入 | 是 |
密钥总个数 | key_count | int | 下发密钥的总个数 | 输入 | 是 |
加密密钥编号 | key_num | int | 加密密钥编号,0:0 号密钥(默认);1:1 号密钥;2:2 号密钥;3:3 号密钥 | 输入 | 是 |
密钥集 | key_array | array[text] | 密钥数据;[text1,text2,text3]:对应相应的密钥编号 | 输入 | 是 |
2.2.18 FTP 启停(set_ftp)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
是否启用 FTP | flag | bool | 0-不启用,1-启用 | 输入 | 是 |
卡号权限文件 | card_exist | bool | 0-不存在,1-存在 | 输出 | 否 |
虚拟号权限文件 | unicode_exist | bool | 0-不存在,1-存在 | 输出 | 否 |
错误代码 | error | int | 错误代码 | 输出 | 是 |
2.2.19 设置设备读头类型(set_reader_type)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
门号 | door_no | enum | 从 0 号门开始 | 输入 | 是 |
读头类型 | reader_type | enum | 0-刷卡读头,1-人脸读头 | 输入 | 是 |
2.2.20 获取设备读头类型(get_reader_type)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
门号 | door_no | enum | 从 0 号门开始 | 输入/输出 | 是 |
读头类型 | reader_type | enum | 0-刷卡读头,1-人脸读头 | 输出 | 是 |
2.2.21 出厂初始化设备(init_device)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
无 | 无 | 无 | 无 | 无 | 无 |
2.2.22 重启设备(restart_device)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
无 | 无 | 无 | 无 | 无 | 无 |
2.2.23 清空设备数据(clear_device)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
设备数据类型 | data_type | enum | 0: 门禁记录,1: 刷卡记录,3: 门禁权限 | 输入 | 是 |
2.2.24 设置双向进出控制(set_inout)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
双向控制器标志 | flag | bool | 0-不启用;1-启用 | 输入 | 是 |
双向控制 | inout_control | enum | 0:0、1 号门双向进出控制标志;1:2、3 号门双向进出控制标志;2:0、1 号门互锁控制标志;3:2、3 号门互锁控制标志;4:0、1、2 号门互锁控制标志;5:0、1、2、3 号门互锁控制标志 | 输入 | 是 |
2.2.25 获取双向进出控制(get_inout)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
双向控制器标志 | flag | bool | 0-不启用;1-启用 | 输出 | 是 |
双向控制 | inout_control | enum | 0:0、1 号门双向进出控制标志;1:2、3 号门双向进出控制标志;2:0、1 号门互锁控制标志;3:2、3 号门互锁控制标志;4:0、1、2 号门互锁控制标志;5:0、1、2、3 号门互锁控制标志 | 输出 | 是 |
2.2.26 设置设备状态上报参数(set_state_report_para)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
启用标志 | flag | bool | 是否启用设备状态禁止上报模式:0-不启用该功能,设备上报状态;1-启用该功能,需判断时间段,在时间段内,设备不上报状态 | 输入 | 是 |
时间段 | time_seg | array[text] | 4 个时间段 HHMMHHMM:格式为起始时分--结束时分,时间为 BCD 码 [HHMMHHMM,HHMMHHMM,HHMMHHMM,HHMMHHMM] | 输入 | 是 |
2.2.27 获取设备状态上报参数(get_state_report_para)
参数名称 | 参 数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
启用标志 | flag | bool | 是否启用设备状态禁止上报模式:0-不启用该功能,设备上报状态;1-启用该功能,需判断时间段,在时间段内,设备不上报状态 | 输出 | 是 |
时间段 | time_seg | array[text] | 4 个时间段 HHMMHHMM:格式为起始时分--结束时分,时间为 BCD 码 [HHMMHHMM,HHMMHHMM,HHMMHHMM,HHMMHHMM] | 输出 | 是 |
2.2.28 一键开门控制模式参数设置(set_open_mode)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
模式开启标志 | flag | array[bool] | 从 0 号门开始,0-不启用;1-启用,[0,1,1,0] 代表 0 号门不启用,1 号门启用,2 号门启用,3 号门不启用 | 输入 | 是 |
所控制门号 | door_no | array[enum] | 门号,[0,1,2,3] 代表同时设置 4 个门的参数,enum 从 0 号门开始 | 输入 | 是 |
门动作 | door_action | array[bool] | 从 0 号门开始,0-关门;1-开门,[0,1,1,0] 代表 0 号门关门,1 号门开门,2 号门开门,3 号门关门 | 输入 | 是 |
模式持续时长 | dalay_time | array[int] | 从 0 号门开始,(值*100 毫秒) 代表持续时长(最大持续时长为 0 代表永久保持,非 0:0xFFFFFFFF),[12,13,14,15] 代表 0 号门持续时间 1200ms,1 号门 1300ms | 输入 | 是 |
2.2.29 在线验权参数设置(set_online_verification)
参数名称 | 参数 ID | 数据类型 | 数据定义 | 参数类型 | 必填 |
---|---|---|---|---|---|
门号 | door_no | enum | 从 0 号门开始 | 输入 | 是 |
验权方式 | verify_method | enum | 0: 总是由设备判断(设备默认使用这种验权方式);1: 先本地判断无记录(或无权)再发送后台服务判断;2: 根据下发号段,如果凭据号在号段内则发送服务判断,不在号段内则设备判断;3: 总是发送到服务器判断 | 输入 | 是 |
凭据类型 | type | enum | 0: 卡号;1: 用户 ID | 输入 | 是 |
号段一起始 | start_1 | text | 数据长度:32 | 输入 | 是 |
号段一结束 | end_1 | text | 数据长度:32 | 输入 | 是 |
号段二起始 | start_2 | text | 数据长度:32 | 输入 | 是 |
号段二结束 | end_2 | text | 数据长度:32 | 输入 | 是 |
号段三起始 | start_3 | text | 数据长度:32 | 输入 | 是 |
号段三结束 | end_3 | text | 数据长度:32 | 输入 | 是 |