* Update zha.permit schema to support install code
* Move install code to core helpers
* QR code converter for enbrighten
* Fix schemas
* Update test for permit service
* Refactor zha.permit to accept install codes
* Test zha.permit from QR code
* Fix regex for Embrighten QR code
* Add regex for Aqara QR codes
* Add Consciot regex for QR code
* Reuse test params for WS tests
* ZHA WS permit command with install code
* Tests for zha.permit WS service
* Refactor zha.permit and zha.remove service to use ATTR_IEEE for the address
* Make pylint happy
* Deprecate only ieee_address param for now
* start implementation
* handle members correctly
* fix group member info
* align groupable devices with group members
* handle group endpoint adding and removing
* update add group
* update group and group member
* update create group
* remove domain check
* update test
* remove temporary 2nd groupable device api
* update test
* rename validator - review comment
* fix test that was never running
* additional testing
* fix coordinator descriptors
* remove check that was done twice
* update test
* Use AsyncMock()
Co-authored-by: Alexei Chetroi <lexoid@gmail.com>
* add skeleton to retrieve zigbee groups
* get single group
* add a group
* return group members with group
* add comment
* fix group members
* add function to add device to group
* add group members
* add remove from group method
* add api to remove members from group
* add remove groups method
* clean up group add and remove
* fix remove group
* fix remove groups
* add api to get only groupable devices
* change var init
* add tests
* address review comment
* get single device web socket command
* test get single device
* add not found error
* fix handling when device doesn't exist
* add test for zha device not found