Refactor Tuya EnchantedDevice
to use custom configuration
#3414
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Proposed change
This PR refactors the Tuya spell code in
EnchantedDevice
to use theapply_custom_configuration
hook inBaseCustomDevice
(introduced in recent zha/zigpy versions).This allows us to remove the workarounds of "enchantable" clusters where
bind()
was hijacked and called the Tuya spells.With this PR, we can call the Tuya spell code way easier (and slightly earlier).
A bunch of now irrelevant documentation and tests are also removed. The tests can likely be reduced a bit more in future PRs, as we no longer need to test that every device/quirk correctly casts the spell, but it also doesn't hurt anything.
So, if we want to change the "spell tests" further, I'd push that to a future PR.
Additional information
Requires:
Checklist
pre-commit
checks pass / the code has been formatted using Black