Skip to content

Commit d933fe8

Browse files
authored
Fix model for CommissioningParameters in client (#516)
1 parent 8a03034 commit d933fe8

File tree

3 files changed

+19
-8
lines changed

3 files changed

+19
-8
lines changed

matter_server/client/client.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
from ..common.models import (
2323
APICommand,
2424
CommandMessage,
25+
CommissioningParameters,
2526
ErrorResultMessage,
2627
EventMessage,
2728
EventType,
@@ -179,14 +180,14 @@ async def open_commissioning_window(
179180
iteration: int = 1000,
180181
option: int = 1,
181182
discriminator: Optional[int] = None,
182-
) -> tuple[int, str]:
183+
) -> CommissioningParameters:
183184
"""
184185
Open a commissioning window to commission a device present on this controller to another.
185186
186187
Returns code to use as discriminator.
187188
"""
188-
return cast(
189-
tuple[int, str],
189+
return dataclass_from_dict(
190+
CommissioningParameters,
190191
await self.send_command(
191192
APICommand.OPEN_COMMISSIONING_WINDOW,
192193
node_id=node_id,

matter_server/common/models.py

+13
Original file line numberDiff line numberDiff line change
@@ -172,3 +172,16 @@ class ServerInfoMessage:
172172
| ErrorResultMessage
173173
| ServerInfoMessage
174174
)
175+
176+
177+
@dataclass
178+
class CommissioningParameters:
179+
"""
180+
Object that is returned on the 'open_commisisoning_window' command.
181+
182+
NOTE: This is just a copy of the dataclass specified in chip.ChipDeviceCtrl
183+
"""
184+
185+
setupPinCode: int # pylint: disable=invalid-name
186+
setupManualCode: str # pylint: disable=invalid-name
187+
setupQRCode: str # pylint: disable=invalid-name

matter_server/server/device_controller.py

+2-5
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,15 @@
1111
import random
1212
from typing import TYPE_CHECKING, Any, Awaitable, Callable, Iterable, TypeVar, cast
1313

14-
from chip.ChipDeviceCtrl import (
15-
CommissionableNode,
16-
CommissioningParameters,
17-
DeviceProxyWrapper,
18-
)
14+
from chip.ChipDeviceCtrl import CommissionableNode, DeviceProxyWrapper
1915
from chip.clusters import Attribute, Objects as Clusters
2016
from chip.clusters.Attribute import ValueDecodeFailure
2117
from chip.clusters.ClusterObjects import ALL_ATTRIBUTES, ALL_CLUSTERS, Cluster
2218
from chip.discovery import CommissionableNode as CommissionableNodeData
2319
from chip.exceptions import ChipStackError
2420

2521
from matter_server.common.helpers.util import convert_ip_address
22+
from matter_server.common.models import CommissioningParameters
2623
from matter_server.server.helpers.attributes import parse_attributes_from_read_result
2724
from matter_server.server.helpers.utils import ping_ip
2825

0 commit comments

Comments
 (0)