Skip to content

PQA004 — Function not found

A device type declares a function that is neither a framework function nor a custom function of this adapter.

A functions: entry resolves against two sources: the framework catalogue in functions.yaml, and the custom_functions: block of this adapter. Nothing else is in scope.

- type_id: Zone
  functions:
    IntrusionDetektor:      # the function is IntrusionDetector

Why the build refuses this

The Thing loses the capability without a word. No state, no transition methods, no status surface — and the adapter code that was written against them fails to compile somewhere else, or the events the function would publish simply never exist.

How to fix it

Take the name from the framework catalogue, spelled exactly as declared there. The functions registry lists what exists and what each one carries.

If the device really has a capability the catalogue lacks, declare it under custom_functions: with its states, and reference it by that name. A capability that recurs across vendors belongs in the framework catalogue instead — raise it rather than growing a private copy.

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.