hal/plugins/hal-zigbee/src/se/hal/plugin/zigbee/device/ZigbeeHumidityConfig.java

52 lines
1.6 KiB
Java

package se.hal.plugin.zigbee.device;
import com.zsmartsystems.zigbee.zcl.ZclAttribute;
import com.zsmartsystems.zigbee.zcl.clusters.ZclRelativeHumidityMeasurementCluster;
import se.hal.intf.HalDeviceData;
import se.hal.intf.HalSensorConfig;
import se.hal.struct.devicedata.HumiditySensorData;
import se.hal.struct.devicedata.TemperatureSensorData;
/**
* A device configuration for a specific endpoint on a Zigbee device.
*/
public class ZigbeeHumidityConfig extends ZigbeeHalDeviceConfig implements HalSensorConfig {
// --------------------------
// Zigbee Methods
// --------------------------
@Override
public HalDeviceData getDeviceData(ZclAttribute zclAttribute) {
if (zclAttribute.getCluster().getId() == getZigbeeClusterId() &&
zclAttribute.getId() == ZclRelativeHumidityMeasurementCluster.ATTR_MEASUREDVALUE)
return new HumiditySensorData(
((int) zclAttribute.getLastValue()) / 100.0,
zclAttribute.getLastReportTime().getTimeInMillis());
return null;
}
@Override
public int getZigbeeClusterId() {
return ZclRelativeHumidityMeasurementCluster.CLUSTER_ID;
}
// --------------------------
// Hal Methods
// --------------------------
@Override
public long getDataInterval() {
return 0;
}
@Override
public AggregationMethod getAggregationMethod() {
return AggregationMethod.AVERAGE;
}
@Override
public Class<? extends HalDeviceData> getDeviceDataClass() {
return HumiditySensorData.class;
}
}