Port Yale lock quirks to quirks v2 and add lock setting entities - #5262
Port Yale lock quirks to quirks v2 and add lock setting entities#5262cydia2020 wants to merge 14 commits into
Conversation
- Moved to quirk v2 - Exposed a few state sensors
v2 tests are not needed as this is purely declarative
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## dev #5262 +/- ##
=======================================
Coverage 92.60% 92.60%
=======================================
Files 424 424
Lines 14667 14670 +3
=======================================
+ Hits 13582 13585 +3
Misses 1085 1085 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
| ("raw_lang", "expected"), | ||
| [ | ||
| # accounted for mappings | ||
| ("en", "English"), |
There was a problem hiding this comment.
Do we want to hardcode this or does HA have a built-in converter? According to this document, these should be ISO-639-1 two character codes.
There was a problem hiding this comment.
According to Yale's official integrators guide, these are the only three languages that all their locks support, so I think this will do for now.
| fallback_name="Operating mode", | ||
| ) | ||
| .number( | ||
| attribute_name=DoorLock.AttributeDefs.auto_relock_time.name, |
There was a problem hiding this comment.
According to the integrator's guide, this value should be able to be set to 0 to disable auto-relock from Zigbee, however, on my lock, this does not work, the auto-relock time only goes from 10-180, all other values fail.
| .sensor( | ||
| endpoint_id=1, | ||
| cluster_id=DoorLock.cluster_id, | ||
| attribute_name=DoorLock.AttributeDefs.language.name, |
There was a problem hiding this comment.
This should also be set from Zigbee, but the value won't update.
| .sensor( | ||
| endpoint_id=1, | ||
| cluster_id=DoorLock.cluster_id, | ||
| attribute_name=DoorLock.AttributeDefs.sound_volume.name, |
There was a problem hiding this comment.
Same as this, Yale did mention that only 0 and 2 (mute and high vol) can be set on push-button type locks, however from my testing none can be set.
Proposed change
Additional information
Device diagnostics
{ "node_descriptor": "NodeDescriptor(byte1=2, byte2=64, mac_capability_flags=128, manufacturer_code=43690, maximum_buffer_size=82, maximum_incoming_transfer_size=255, server_mask=0, maximum_outgoing_transfer_size=255, descriptor_capability_field=0)", "endpoints": { "1": { "profile_id": 260, "device_type": "0x000a", "in_clusters": [ "0x0000", "0x0001", "0x0009", "0x000a", "0x0020", "0x0101" ], "out_clusters": [ "0x000a", "0x0019" ] } }, "manufacturer": "Yale", "model": "YRD220/240 TSDB", "class": "zigpy.device.Device" }Please see attached:


Checklist
pre-commitchecks pass / the code has been formatted using Black