-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IP cluster-based commissioning #6798
Conversation
issue #6792 - the secure session parameter should be made non-optional and passed by reference.connectedhomeip/src/app/CommandSender.h Lines 48 to 52 in 1b2c80a
This comment was generated by todo based on a
|
(cecille): This is very dangerous - need to check against real netif name, ensure no password.connectedhomeip/src/app/clusters/network-commissioning/network-commissioning.cpp Lines 271 to 281 in 1b2c80a
This comment was generated by todo based on a
|
Commissioning complete means we can finalize the admin in our storageconnectedhomeip/src/app/server/RendezvousServer.cpp Lines 60 to 70 in 1b2c80a
This comment was generated by todo based on a
|
remove this once we move all tools / examples onto cluster-based IP commissioning.connectedhomeip/src/app/server/RendezvousServer.cpp Lines 170 to 177 in 1b2c80a
This comment was generated by todo based on a
|
Need to check if we're properly commissioned.connectedhomeip/src/app/server/Server.cpp Lines 459 to 462 in 1b2c80a
This comment was generated by todo based on a
|
(cecille): For IP rendezvous, these need to go through the state machine once they're implemented.connectedhomeip/src/controller/CHIPDeviceController.cpp Lines 1208 to 1211 in 1b2c80a
This comment was generated by todo based on a
|
for softAP, this needs to be network setupconnectedhomeip/src/controller/CHIPDeviceController.cpp Lines 1584 to 1594 in 1b2c80a
This comment was generated by todo based on a
|
once case is working, need to add stages to find and reconnectconnectedhomeip/src/controller/CHIPDeviceController.cpp Lines 1587 to 1597 in 1b2c80a
This comment was generated by todo based on a
|
(cecille): We probably want something better than this for breadcrumbs.connectedhomeip/src/controller/CHIPDeviceController.cpp Lines 1632 to 1642 in 1b2c80a
This comment was generated by todo based on a
|
(cecille): This should be customized per command.connectedhomeip/src/controller/CHIPDeviceController.cpp Lines 1635 to 1645 in 1b2c80a
This comment was generated by todo based on a
|
(cecille): This is NOT the right way to do this - we should consider attaching an im delegate per command orconnectedhomeip/src/controller/CHIPDeviceController.cpp Lines 1641 to 1651 in 1b2c80a
This comment was generated by todo based on a
|
(cecille): Find a way to enumerate the clusters here.connectedhomeip/src/controller/CHIPDeviceController.cpp Lines 1653 to 1663 in 1b2c80a
This comment was generated by todo based on a
|
should get the endpoint information from the descriptor cluster.connectedhomeip/src/controller/CHIPDeviceController.cpp Lines 1656 to 1666 in 1b2c80a
This comment was generated by todo based on a
|
(cecille): Set time as well once the time cluster is implementedconnectedhomeip/src/controller/CHIPDeviceController.cpp Lines 1667 to 1677 in 1b2c80a
This comment was generated by todo based on a
|
(cecille): Worthwhile to keep this around as part of the class?connectedhomeip/src/controller/CHIPDeviceController.cpp Lines 1668 to 1678 in 1b2c80a
This comment was generated by todo based on a
|
(cecille): Where is the country config actually set?connectedhomeip/src/controller/CHIPDeviceController.cpp Lines 1669 to 1679 in 1b2c80a
This comment was generated by todo based on a
|
(cecille): Once this is implemented through the clusters, it should be moved to the proper stage and the callbackconnectedhomeip/src/controller/CHIPDeviceController.cpp Lines 1699 to 1709 in 1b2c80a
This comment was generated by todo based on a
|
Right now, these stages are not implemented as a separate stage because they are no-ops.connectedhomeip/src/controller/CHIPDeviceController.cpp Lines 1710 to 1720 in 1b2c80a
This comment was generated by todo based on a
|
Implementconnectedhomeip/src/controller/CHIPDeviceController.cpp Lines 1716 to 1726 in 1b2c80a
This comment was generated by todo based on a
|
For ethernet, we actually need a scan stage to get the ethernet netif name. Right now, default to using a magicconnectedhomeip/src/controller/CHIPDeviceController.cpp Lines 1720 to 1730 in 1b2c80a
This comment was generated by todo based on a
|
should get the endpoint information from the descriptor cluster.connectedhomeip/src/controller/CHIPDeviceController.cpp Lines 1723 to 1733 in 1b2c80a
This comment was generated by todo based on a
|
Once network credential sending is implemented, attempting to set wifi credential on an ethernet only deviceconnectedhomeip/src/controller/CHIPDeviceController.cpp Lines 1725 to 1735 in 1b2c80a
This comment was generated by todo based on a
|
this is actualy not correct - we must reconnect over CASE to send this command.connectedhomeip/src/controller/CHIPDeviceController.cpp Lines 1744 to 1754 in 1b2c80a
This comment was generated by todo based on a
|
(cecille): This should just specify wifi or thread since we assume at most 1.connectedhomeip/src/include/platform/CHIPDeviceEvent.h Lines 422 to 427 in 1b2c80a
This comment was generated by todo based on a
|
(cecille): This command fails on ESP32, but it's blocking IP cluster-based commissioning so for now just return a successconnectedhomeip/src/platform/DeviceControlServer.cpp Lines 94 to 104 in 1b2c80a
This comment was generated by todo based on a
|
PR project-chip#6798 added another call to "advertiseOpertional()" which starts publishing the opertional node service on a receipt of a valid EnableNetwork command. Consequently, the code which publishes the same service on a change in the network configuration became redundant and actually harmful due to some issues with updating an SRP service.
PR #6798 added another call to "advertiseOpertional()" which starts publishing the opertional node service on a receipt of a valid EnableNetwork command. Consequently, the code which publishes the same service on a change in the network configuration became redundant and actually harmful due to some issues with updating an SRP service.
* Cluster-based commissioning - phase 1. Adds calls to clusters to commission a device properly. This is intended to be used to setup a device that is already on the network, but not already on a CHIP network. Hence, network credentials are not required, but we do need to send all the remaining commissioning information. Challenges: IM cluster commands time out more often than the non-IM commands, even when the device is clearly sending a reply. Need to find the race and get rid of it. Still to do: - add operational credentials into state machine - add more commissioning phases (time set etc.) - add proper scan command for determining ethernet netif name - swap over to CASE before sending commissioning complete command - once we're totally in IM, combine some commands - add post commissioning setup commands (trusted node ids etc.) * Restyled by gn * Address review comments. * Add back some lines lost in a rebase. * Address review comments - remove heap allocation from callbacks - overwrite node ID resolution functions rather than using a delegate * Restyled by gn * Restyled by shfmt Co-authored-by: Restyled.io <[email protected]>
…p#7254) PR project-chip#6798 added another call to "advertiseOpertional()" which starts publishing the opertional node service on a receipt of a valid EnableNetwork command. Consequently, the code which publishes the same service on a change in the network configuration became redundant and actually harmful due to some issues with updating an SRP service.
Problem
Commissioning doesn't currently perform any of the required steps for actually commissioning a device.
Change overview
Adds calls to clusters to perform commissioning required for IP-based devices
Testing
manual (requires controller and device) - chip-device-ctrl and M5 in commissionable node mode.
Start M5 with network credentials, go to Setup->Force wifi commissioning. Use chip-device-ctrl to connect (connect -qr "[qrcode]")
Fixes #5715