z-wave_device_class_specification中对门锁实现功能的规定

来源:互联网 发布:一件事情做到极致知乎 编辑:程序博客网 时间:2024/05/17 02:09

在Z-Wave中定义了很多类型的门锁,协议中对不同的门锁类型要求强制实现的功能是不同的。对于Z-Wave网关来说,了解这些东西,可以更灵活地提供相应的接口给更上层的应用。

例如:网关需要知道门锁

  • 是否支持user code ?
  • 是否支持schedule ?
  • 是否支持record log ?
  • 是否支持时间设定?
  • 是否支持时区和夏令时设置?
  • 等等;    

网关可以上报这些信息给APP或者server,以便更好地在APP上展示相关的控制功能给用户; 事实上,通过阅读协议,我们看到对于门锁来说record log,schedule并不要求门锁实现。 不过在酒店的应用场景中,可能对user code和schedule就有比较高的需求,例如设定某个密码在某一个时间段内可以打开门锁。


QQ:380939960

z-wave_device_class_specification定义的门锁类型大致如下所示,他们属于Entry Control Generic Device Class

Specific Device Class

Identifiers

Specific Device Class Not Used

SPECIFIC_TYPE_NOT_USED

Door Lock

SPECIFIC_TYPE_DOOR_LOCK

Advanced Door Lock

SPECIFIC_TYPE_ADVANCED_DOOR_LOCK

Secure Keypad Door Lock

SPECIFIC_TYPE_SECURE_KEYPAD_DOOR_LOCK

This device class is used to represent mechanical devices such as lockboxes that have Z-Wave directly integrated in to the device.

SPECIFIC_TYPE_SECURE_LOCKBOX

Secure Keypad

SPECIFIC_TYPE_SECURE_KEYPAD

 

5.6.4.3Advanced Door Lock Specific Device Class

Advanced Door LockSpecific Device Class 继承所有Entry Control Generic Device Class的命令。该设备类用来锁上/打开一个门锁。从下面的定义我们可以知道,这类门锁可以没有本地键盘,不支持加密通讯。

这种设备支持如下的功能:

5.6.4.3.1 Mandatory Command Classes to Support

使用DoorLock Command Class来控制高级门锁设备并监控它的状态。

l  Door Lock Command Class:使用该类命令来控制门锁打开/锁上等;

l  Manufacturer specific Command Class:通过该命令类来告知门锁的制造商,产品ID等特定产品信息

l  Version Command Class:版本命令类可用报告设备使用的库类型,协议版本和应用程序版本;

 

5.6.4.3.1.1 Basic Command Class Implementation

Basic Command Class必须按照下面的要求是实施:

Basic Set =

不能使用该命令来控制门锁,所以必须忽视该命令,该命令不能映射到任何其他命令类;

Basic Get =

Door Lock Operation Get 通过该命令获得锁当前的状态

Basic Report =

Door Lock Operation Report 通过该命令上报锁当前的状态

 

5.6.4.3.2 Recommended Command Classes to Support

建议支持以下命令类:

l  User Code Command Class:用户代码命令类可由应用程序用于配置可解锁门的用户代码,这样用户就可以通过门上的按键输入密码开锁。

l  Alarm Command Class:报警命令类用于上报告警;例如错误的代码输入或门已打开但锁的状态认为为已关闭。

l  Protection Command Class:门锁可以选择性地支持保护功能。 如果支持保护功能,则设备应能够处理与保护相关的命令

l  Battery Command Class:由于通常门锁都是通过电池供电的,所以使用电池命令类可以向控制器报告电池状态。在电量低时提醒用户及时更换电池。

l  Anti-theft Command Class:此设备允许支持防盗命令类;防盗命令类主要针对安装在公共厂商的设备,例如门锁。当别人将门锁偷走,然后添加到新的网关上时,由于有防盗命令类支持;在未经授权重新添加到其他网关上时,门锁无法正常工作。

 

5.6.4.3.3 Mandatory Command Classes to Control

不要求强制关联控制其他设备。

 

5.6.4.4 SecureKeypad Door Lock Specific Device Class

Secure Keypad DoorLock Specific Device Class 继承所有Entry Control Generic Device Class的命令。该门锁类要求加密通讯,带有输入键盘,可以通过Z-Wave命令远程开/关锁,或者在本地通过键盘上输入密码开/关锁。

另外这个门锁类是需要加密通讯的,所以需要支持安全命令类,并且必须支持某些仅封装到安全命令类中的命令类。

5.6.4.4.1 MandatoryCommand Classes to Support

安全键盘门锁专用设备必须支持以下命令类:

•Security Command Class:安全命令类使用AES-128加密消息;提高通讯的安全性,即便无线电波被截取窃听,消息内容也没有那么容易被破解。

•Basic Command Class (secured):加密的基本命令类可用于获取锁的操作模式。

•Door Lock Command Class (secured):加密的门锁命令类用于控制门锁

•User Code Command Class (secured):加密的用户代码命令类用于设置和检索用户代码;这样用户可以通过在键盘上输入密码开/关门锁。

•Manufacturer specific Command Class (unsecure):不加密的制造商特定的命令类用于通告制造商特定信息

•Version Command Class (unsecure):不加密的版本命令类可用于告知设备使用的库类型,协议版本和应用程序版本;

 

5.6.4.4.1.1 BasicCommand Class Implementation

Basic CommandClass必须按照如下方式实现:

Basic Set =

不能使用该命令来控制门锁,所以必须忽视该命令,该命令不能映射到任何其他命令类;

Basic Get =

Door Lock Operation Get 通过该命令获得锁当前的状态

Basic Report =

Door Lock Operation Report 通过该命令上报锁当前的状态

 由于需要进行加密通讯,所以需要忽视接收到的不加密的Basic Command Class command。

 

5.6.4.4.2 Recommended Command Classes to Support

推荐该类门锁支持如下命令类:

l  Alarm Command Class (secure or not secure):报警命令类(加密或不加密)用于上报告警;例如错误的代码输入或门已打开但锁的状态认为为已关闭;

l  Protection Command Class (secure or not secure):保护命令类(加密或不加密)门锁可以选择性地支持保护功能。 如果支持保护功能,则设备应能够处理与保护相关的命令;

l  Battery Command Class (secure or not secure):由于通常门锁都是通过电池供电的,所以使用电池命令类可以向控制器报告电池状态。在电量低时提醒用户及时更换电池;

l  Anti-theft Command Class:此设备允许支持防盗命令类;防盗命令类主要针对安装在公共厂商的设备,例如门锁。当别人将门锁偷走,然后添加到新的网关上时,由于有防盗命令类支持;在未经授权重新添加到其他网关上时,门锁无法正常工作;

 

5.6.4.4.3 Mandatory Command Classes to Control

不要求强制关联控制其他设备。


0 0
原创粉丝点击