Read document citations, implementation explanations, reported observations and open questions. A candidate package records available evidence and its limits.
Two upstream adaptations for the same model string, at different layers. Raw cluster values and final entity percentages are not interchangeable.
External corroboration · candidate
Same battery intent, different adaptation
Both snapshots account for nonstandard battery reporting, but at different layers. Compare the raw attribute and the final entity value before proposing a numeric binding; do not copy either adjustment twice.
ZHA quirk
supports · code-declaration
The Yale YRD210 PB DB signature selects a replacement DoublingPowerConfigurationCluster. That cluster multiplies battery_percentage_remaining (0x0021) by two.
Declared match: manufacturer: Yale; model: YRD210 PB DB
Zigbee2MQTT converter
supports · code-declaration
The YRD210 PB DB entry uses dontDividePercentage: true. The battery converter therefore skips its default divide-by-two step, when the reported percentage exists and is below 255.
Declared match: model: YRD210 PB DB
Pinned sources, conditions & declared lineage
Curator: github:@infinitywings. No independent EdgeLoom reviewer recorded.
Canonical record ↗
ZHA quirk
The full endpoint/cluster signature must also match; manufacturer/model alone is insufficient for quirk selection.
This is a cluster-attribute adjustment, not a claim that the final HA entity shows twice the battery percentage.
Firmware and downstream ZHA entity normalization are not inspected in this record.
Pinned source ↗YRD210PBDB220TSLL.signature and replacementLocator: not-checked
Pinned source ↗definitions[zigbeeModel includes YRD210 PB DB]Locator: not-checked
Source lineage — not an independence score
zha-yale-d6fcec5 · family: zha-quirks · depends on: none declared in this record
z2m-yale-5750b44 · family: zigbee-herdsman-converters · depends on: none declared in this record
Human-authored candidate observations; no independent EdgeLoom review or physical-device test.
Sources are pinned snapshots, not a claim about the currently installed integration, coordinator or firmware.
Relationship labels are curator interpretations, not computed semantic equivalence. Conflicting observations must remain visible.
Different declared source families are not proof of independence: shared specs, authors or copied knowledge may exist.
No raw device report, final-entity comparison, unit-test result or SDF binding is established.
What you can do next
Compare the exact manufacturer/model and full endpoint/cluster signature.
Report a sanitized raw battery attribute and final entity value, including firmware and platform versions.
Do not apply either adjustment twice or treat this report as a patch recommendation.
Feature evidence
Lock control and observed state
A cluster declaration and a richer exposes declaration are different evidence scopes. No complete cross-platform or SDF mapping has been established.
External corroboration · candidate
Cluster declaration versus exposed state
The matching ZHA quirk retains a DoorLock cluster. Zigbee2MQTT declares separate command/state and actual-state fields. These artifacts alone do not establish equal UI behavior or a complete cross-platform mapping.
ZHA quirk
context · code-declaration
YRD210PBDB220TSLL includes DoorLock in its signature and replacement input clusters. The quirk itself does not define the downstream HA lock entity's states.
Declared match: manufacturer: Yale; model: YRD210 PB DB
Zigbee2MQTT exposes
context · code-declaration
The shared e.lock() constructor declares state as LOCK/UNLOCK with state/set/get access, and lock_state as not_fully_locked/locked/unlocked with state-only access.
Declared match: model: YRD210 PB DB
Pinned sources, conditions & declared lineage
Curator: github:@infinitywings. No independent EdgeLoom reviewer recorded.
Canonical record ↗
ZHA quirk
Endpoint and complete cluster signature must match.
Cluster presence is not whole-platform exposure or hardware success.
Pinned source ↗YRD210PBDB220TSLL.signature and replacement; DoorLock.cluster_idLocator: not-checked