I have some Lowes Iris window/door sensors that are detected as model CentraLite 3320-L. These work well - they detect open/close, report temperature, and report battery level.
The device signature is:
{
"node_descriptor": "NodeDescriptor(byte1=2, byte2=64, mac_capability_flags=128, manufacturer_code=49887, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=0, maximum_outgoing_transfer_size=82, descriptor_capability_field=0)",
"endpoints": {
"1": {
"profile_id": 260,
"device_type": "0x0402",
"in_clusters": [
"0x0000",
"0x0001",
"0x0003",
"0x0020",
"0x0402",
"0x0500",
"0x0b05"
],
"out_clusters": [
"0x0019"
]
},
"2": {
"profile_id": 49887,
"device_type": "0x000c",
"in_clusters": [
"0x0000",
"0x0003",
"0x0b05",
"0xfc0f"
],
"out_clusters": [
"0x0003"
]
}
},
"manufacturer": "CentraLite",
"model": "3320-L",
"class": "zhaquirks.centralite.ias.CentraLiteIASSensor"
}
I also have some very similar sensors (almost identical physically and seem to function the same) that are branded Sylvania Smart+ and are detected as model CentraLite Contact Sensor-A. These also work well, except they don’t report the battery level. I get a battery level entity, but it always shows a status of Unavailable
. The device signature is:
{
"node_descriptor": "NodeDescriptor(byte1=2, byte2=64, mac_capability_flags=128, manufacturer_code=4174, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=0, maximum_outgoing_transfer_size=82, descriptor_capability_field=0)",
"endpoints": {
"1": {
"profile_id": 260,
"device_type": "0x0402",
"in_clusters": [
"0x0000",
"0x0001",
"0x0003",
"0x0020",
"0x0402",
"0x0500",
"0x0b05"
],
"out_clusters": [
"0x0019"
]
},
"2": {
"profile_id": 49887,
"device_type": "0x000c",
"in_clusters": [
"0x0000",
"0x0001",
"0x0003",
"0x0b05",
"0xfc0f"
],
"out_clusters": [
"0x0003"
]
}
},
"manufacturer": "CentraLite",
"model": "Contact Sensor-A",
"class": "zigpy.device.Device"
}
The only differences in the device signatures (other than the detected model, of course) are
- The
manufacturer_code
entry in the node descriptor is different - I’m assuming this is how the different device model is detected.
- On the Contact Sensor-A Endpoint #2 has an extra in cluster with id 0x0001
- The Contact Sensor-A uses the default Zigbee device quirk, but the 3320-L uses a CentraLite-specific one.
How would I go about getting the battery sensor working on the CentraLite Contact Sensor-A sensors?
I’m wondering if it’s as simple as telling ZHA to use the CentralLite-specific quirk for that sensor as well. Can anyone point me to how I could do that to test this?