PQA024 — Identity property not found¶
A type's
identity:names a property the type does not have.
Discovery re-runs. Every run emits the same physical devices again, and the reconciler has to recognise which emitted node is which existing Thing. identity: names the properties that carry that recognition — the stable hardware key, such as a bus address or a port number.
- type_id: Module
identity: [addres] # the property is address
properties:
address:
type: byte
required: true
Why the build refuses this¶
The key has to be persisted to work. Re-pairing compares the identity of a freshly discovered node against the identity of Things already in the tree. A name with no property behind it reads as nothing on both sides.
The failure surfaces as duplication, far from its cause. Unrecognised nodes are imported as new Things, so a second discovery run doubles the tree instead of updating it. By then the operator sees a device list, not a YAML key.
How to fix it¶
Point identity: at properties declared on the type or inherited through extends:. Both are accepted — the check collects the full property set of the inheritance chain.
Pick properties the hardware itself determines. A name or a description is operator-editable and makes a poor key; a bus address is stable across discoveries.
What is not reported¶
identity: type. That keys the node by its type instead of by properties, and has its own rule (PQA026).
A type with no identity:. It is a passthrough type — it takes part in the tree but is not re-paired on its own.
If you disagree with a report¶
Do not suppress it. A wrong report is a bug in the check — report it with the YAML that triggered it.