– Import necessary libraries
local st = require(“st”)
local capabilities = require(“st.capabilities”)
local zigbee = require(“st.zigbee”)
– Define capabilities
local temperatureMeasurement = capabilities.temperatureMeasurement
local illuminanceMeasurement = capabilities.illuminanceMeasurement
local humidityMeasurement = capabilities.relativeHumidityMeasurement
local motionSensor = capabilities.motionSensor
– Define the driver
local function hsm200Driver(driver, device)
– Define the temperature capability
function temperatureMeasurement.temperature(device)
local temp = zigbee.getTemperature(device)
return temp / 100
end
– Define the illuminance capability
function illuminanceMeasurement.illuminance(device)
local lux = zigbee.getIlluminance(device)
return lux
end
– Define the humidity capability
function humidityMeasurement.humidity(device)
local humidity = zigbee.getHumidity(device)
return humidity / 100
end
– Define the motion sensor capability
function motionSensor.motion(device, value)
if value.value == “active” then
return true
else
return false
end
end
end
– Register the driver
local hsm200 = “homeseer hsm200 multi-sensor”
local hsm200DeviceProfile = {
vendor = “HomeSeer”,
model = “HSM200”,
profile = “zigbee”,
product = hsm200,
deviceIds = { “0x1260” },
endpointId = “01”
}
local hsm200Config = {
– No configuration parameters
}
st:registerDriver(hsm200Driver, hsm200DeviceProfile, hsm200Config)