这是一个奇怪的问题,因为通常您可以获得日志信息,更不用说 Openhab 的内部结构已经完成,但我只提取了 OpenHab Z-wave Bundle 和所有必需的库,以运行模拟多传感器Aeon Labs MultiSensor Model:DSB05-ZWUS
。
我正在使用的控制器是一个AEOTEC Z-Stick S2
,我正在通过在本地机器上使用 Maven 设置的 OSGI 系统启动 OpenHab 包。我已经测试了一个二进制开关来关闭和打开灯,通过发送00或FF的OFF或ON消息非常简单,但是对于多级传感器,您必须向它发送消息以检索信息.
我似乎找不到工作流程,因为没有关于如何获取所有传感器读数的 GUI 示例。我深入研究了代码,据我了解,多级传感器具有包含数字和相应传感器类型的枚举类型。
我能够 getMessage(sensorType) 并返回给我类似这样的信息,例如:SendData (0x13)
, type = Request (0x00
), playload = 0D 02 31 04 01
。我怀疑播放负载是用于确定传感器读数的信息,但我找不到任何资源来解码它。
但是,我能够找到一个 Converter 类:ZWaveMultiLevelSensorConverter.java
它有一个名为的方法,该方法public void handleEvent(ZWaveCommandClassValueEvent event, Item item, Map<String,String> arguments)
对温度读数进行了一次转换,但我不确定参数中会包含什么。
所以我的具体问题是为每种传感器类型(例如:温度)提供读数的具体方法是什么,如果可能的话,代码的工作流程是什么?
资源:https ://github.com/openhab/openhab/tree/master/bundles/binding/org.openhab.binding.zwave