Skip to content

Conversation

@zaid-google
Copy link
Contributor

@zaid-google zaid-google commented Oct 23, 2025

Summary

This PR creates a new example app, called the all-devices-app. This is an initial example app using the CodeDrivenDataModelProvider and only code driven clusters that have already been converted upstream. This example app is built for linux, and is configurable as a contact sensor or water leak detector at runtime. The devices/ sub-directory contains the device types that can be created (which for now are water leak and contact sensor, but also basic root node device types).

Testing

  • CI should still pass, majority of the code here is in the specific new example
  • Did local testing and was able to commission device
  • Instructions to build/run this new example app locally:
# To build the example app:
./scripts/build/build_examples.py --target linux-x64-all-devices-app build

# Command to run as a contact sensor. Note if no device argument is included here, the app will also start as a contact sensor by default
./out/linux-x64-all-devices-app/all-devices-app --device contact-sensor

# Command to run as a water leak detector
./out/linux-x64-all-devices-app/all-devices-app --device water-leak-detector

# You can also run the app with the --endpoint <endpoint_id> param to select an endpoint id for the device to be registered on.

@github-actions
Copy link

github-actions bot commented Oct 23, 2025

PR #41607: Size comparison from e9cdfa8 to 1f10a27

Full report (29 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, nxp, psoc6, qpg, realtek, stm32)
platform target config section e9cdfa8 1f10a27 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1106622 1106622 0 0.0
RAM 178874 178874 0 0.0
bl702 lighting-app bl702+eth FLASH 661198 661198 0 0.0
RAM 134969 134969 0 0.0
bl702+wifi FLASH 837310 837310 0 0.0
RAM 124405 124405 0 0.0
bl706+mfd+rpc+littlefs FLASH 1070278 1070278 0 0.0
RAM 117261 117261 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 899730 899730 0 0.0
RAM 105524 105524 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 983040 983040 0 0.0
RAM 109740 109740 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 770652 770652 0 0.0
RAM 103304 103304 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 782384 782384 0 0.0
RAM 108472 108472 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 728212 728212 0 0.0
RAM 97364 97364 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 712672 712672 0 0.0
RAM 97580 97580 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 554302 554302 0 0.0
RAM 205736 205736 0 0.0
lock CC3235SF_LAUNCHXL FLASH 587550 587550 0 0.0
RAM 205832 205832 0 0.0
efr32 lock-app BRD4187C FLASH 963160 963160 0 0.0
RAM 126328 126328 0 0.0
BRD4338a FLASH 756744 756744 0 0.0
RAM 256952 256952 0 0.0
window-app BRD4187C FLASH 1058492 1058484 -8 -0.0
RAM 122556 122556 0 0.0
esp32 all-clusters-app c3devkit DRAM 102516 102516 0 0.0
FLASH 1827430 1827430 0 0.0
IRAM 93540 93540 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 933076 933076 0 0.0
RAM 161313 161313 0 0.0
nxp contact mcxw71+release FLASH 691904 691904 0 0.0
RAM 61496 61496 0 0.0
lighting mcxw71+release FLASH 723408 723408 0 0.0
RAM 68140 68140 0 0.0
lock mcxw71+release FLASH 773672 773672 0 0.0
RAM 61932 61932 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1676660 1676660 0 0.0
RAM 213900 213900 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1593276 1593276 0 0.0
RAM 211108 211108 0 0.0
light cy8ckit_062s2_43012 FLASH 1459820 1459820 0 0.0
RAM 197728 197728 0 0.0
lock cy8ckit_062s2_43012 FLASH 1492372 1492372 0 0.0
RAM 225440 225440 0 0.0
qpg lighting-app qpg6200+debug FLASH 837104 837104 0 0.0
RAM 127708 127708 0 0.0
lock-app qpg6200+debug FLASH 773884 773884 0 0.0
RAM 118684 118684 0 0.0
realtek light-switch-app rtl8777g FLASH 706624 706624 0 0.0
RAM 106904 106904 0 0.0
lighting-app rtl8777g FLASH 757712 757712 0 0.0
RAM 127236 127236 0 0.0
stm32 light STM32WB5MM-DK FLASH 470092 470092 0 0.0
RAM 141304 141304 0 0.0

@github-actions
Copy link

github-actions bot commented Nov 3, 2025

PR #41607: Size comparison from f6366d4 to 9afcb3b

Full report (35 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, nxp, psoc6, qpg, realtek, stm32, telink)
platform target config section f6366d4 9afcb3b change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1106076 1106156 80 0.0
RAM 178882 178882 0 0.0
bl702 lighting-app bl702+eth FLASH 661228 661308 80 0.0
RAM 134969 134969 0 0.0
bl702+wifi FLASH 836764 836844 80 0.0
RAM 124405 124405 0 0.0
bl706+mfd+rpc+littlefs FLASH 1070308 1070388 80 0.0
RAM 117277 117277 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 899804 899804 0 0.0
RAM 105540 105540 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 983070 983150 80 0.0
RAM 109756 109756 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 770436 770516 80 0.0
RAM 103304 103304 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 782184 782264 80 0.0
RAM 108472 108472 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 728244 728308 64 0.0
RAM 97364 97364 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 712704 712784 80 0.0
RAM 97580 97580 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 554578 554562 -16 -0.0
RAM 205744 205744 0 0.0
lock CC3235SF_LAUNCHXL FLASH 587378 587346 -32 -0.0
RAM 205840 205840 0 0.0
efr32 lock-app BRD4187C FLASH 963008 963104 96 0.0
RAM 123512 123512 0 0.0
BRD4338a FLASH 757160 757224 64 0.0
RAM 254144 254144 0 0.0
window-app BRD4187C FLASH 1058212 1058276 64 0.0
RAM 119740 119740 0 0.0
esp32 all-clusters-app c3devkit DRAM 102524 102524 0 0.0
FLASH 1836568 1836510 -58 -0.0
IRAM 93540 93540 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 933180 933176 -4 -0.0
RAM 161317 161317 0 0.0
nxp contact mcxw71+release FLASH 691976 691952 -24 -0.0
RAM 61496 61496 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1677556 1677540 -16 -0.0
RAM 213908 213908 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1593980 1593932 -48 -0.0
RAM 211116 211116 0 0.0
light cy8ckit_062s2_43012 FLASH 1460108 1460172 64 0.0
RAM 197736 197736 0 0.0
lock cy8ckit_062s2_43012 FLASH 1492644 1492724 80 0.0
RAM 225448 225448 0 0.0
qpg lighting-app qpg6200+debug FLASH 837216 837400 184 0.0
RAM 127716 127716 0 0.0
lock-app qpg6200+debug FLASH 774028 774212 184 0.0
RAM 118692 118692 0 0.0
realtek light-switch-app rtl8777g FLASH 706456 706528 72 0.0
RAM 106912 106912 0 0.0
lighting-app rtl8777g FLASH 757512 757592 80 0.0
RAM 127244 127244 0 0.0
stm32 light STM32WB5MM-DK FLASH 469892 469972 80 0.0
RAM 141312 141312 0 0.0
telink bridge-app tl7218x FLASH 710554 710514 -40 -0.0
RAM 90544 90544 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 796908 796990 82 0.0
RAM 41008 41008 0 0.0
light-app-ota-shell-factory-data tl7218x FLASH 788108 788190 82 0.0
RAM 93644 93644 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 715028 715110 82 0.0
RAM 51852 51852 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 748324 748406 82 0.0
RAM 70892 70892 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 725180 725262 82 0.0
RAM 34600 34600 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 602540 602622 82 0.0
RAM 108912 108912 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 820712 820798 86 0.0
RAM 92040 92040 0 0.0

@github-actions
Copy link

github-actions bot commented Nov 3, 2025

PR #41607: Size comparison from f6366d4 to 87e732f

Full report (35 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, nxp, psoc6, qpg, realtek, stm32, telink)
platform target config section f6366d4 87e732f change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1106076 1106156 80 0.0
RAM 178882 178882 0 0.0
bl702 lighting-app bl702+eth FLASH 661228 661308 80 0.0
RAM 134969 134969 0 0.0
bl702+wifi FLASH 836764 836844 80 0.0
RAM 124405 124405 0 0.0
bl706+mfd+rpc+littlefs FLASH 1070308 1070388 80 0.0
RAM 117277 117277 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 899804 899804 0 0.0
RAM 105540 105540 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 983070 983150 80 0.0
RAM 109756 109756 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 770436 770516 80 0.0
RAM 103304 103304 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 782184 782264 80 0.0
RAM 108472 108472 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 728244 728308 64 0.0
RAM 97364 97364 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 712704 712784 80 0.0
RAM 97580 97580 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 554578 554562 -16 -0.0
RAM 205744 205744 0 0.0
lock CC3235SF_LAUNCHXL FLASH 587378 587346 -32 -0.0
RAM 205840 205840 0 0.0
efr32 lock-app BRD4187C FLASH 963008 963104 96 0.0
RAM 123512 123512 0 0.0
BRD4338a FLASH 757160 757224 64 0.0
RAM 254144 254144 0 0.0
window-app BRD4187C FLASH 1058212 1058276 64 0.0
RAM 119740 119740 0 0.0
esp32 all-clusters-app c3devkit DRAM 102524 102524 0 0.0
FLASH 1836568 1836510 -58 -0.0
IRAM 93540 93540 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 933180 933176 -4 -0.0
RAM 161317 161317 0 0.0
nxp contact mcxw71+release FLASH 691976 691952 -24 -0.0
RAM 61496 61496 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1677556 1677540 -16 -0.0
RAM 213908 213908 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1593980 1593932 -48 -0.0
RAM 211116 211116 0 0.0
light cy8ckit_062s2_43012 FLASH 1460108 1460172 64 0.0
RAM 197736 197736 0 0.0
lock cy8ckit_062s2_43012 FLASH 1492644 1492708 64 0.0
RAM 225448 225448 0 0.0
qpg lighting-app qpg6200+debug FLASH 837216 837400 184 0.0
RAM 127716 127716 0 0.0
lock-app qpg6200+debug FLASH 774028 774212 184 0.0
RAM 118692 118692 0 0.0
realtek light-switch-app rtl8777g FLASH 706456 706528 72 0.0
RAM 106912 106912 0 0.0
lighting-app rtl8777g FLASH 757512 757592 80 0.0
RAM 127244 127244 0 0.0
stm32 light STM32WB5MM-DK FLASH 469892 469972 80 0.0
RAM 141312 141312 0 0.0
telink bridge-app tl7218x FLASH 710554 710514 -40 -0.0
RAM 90544 90544 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 796908 796990 82 0.0
RAM 41008 41008 0 0.0
light-app-ota-shell-factory-data tl7218x FLASH 788108 788190 82 0.0
RAM 93644 93644 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 715028 715110 82 0.0
RAM 51852 51852 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 748324 748406 82 0.0
RAM 70892 70892 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 725180 725262 82 0.0
RAM 34600 34600 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 602540 602622 82 0.0
RAM 108912 108912 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 820712 820798 86 0.0
RAM 92040 92040 0 0.0

@github-actions
Copy link

github-actions bot commented Nov 4, 2025

PR #41607: Size comparison from f6366d4 to 0256f69

Full report (35 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, nxp, psoc6, qpg, realtek, stm32, telink)
platform target config section f6366d4 0256f69 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1106076 1106156 80 0.0
RAM 178882 178882 0 0.0
bl702 lighting-app bl702+eth FLASH 661228 661308 80 0.0
RAM 134969 134969 0 0.0
bl702+wifi FLASH 836764 836844 80 0.0
RAM 124405 124405 0 0.0
bl706+mfd+rpc+littlefs FLASH 1070308 1070388 80 0.0
RAM 117277 117277 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 899804 899836 32 0.0
RAM 105540 105540 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 983070 983150 80 0.0
RAM 109756 109756 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 770436 770516 80 0.0
RAM 103304 103304 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 782184 782360 176 0.0
RAM 108472 108472 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 728244 728308 64 0.0
RAM 97364 97364 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 712704 712784 80 0.0
RAM 97580 97580 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 554578 554746 168 0.0
RAM 205744 205744 0 0.0
lock CC3235SF_LAUNCHXL FLASH 587378 587626 248 0.0
RAM 205840 205840 0 0.0
efr32 lock-app BRD4187C FLASH 963008 963200 192 0.0
RAM 123512 123512 0 0.0
BRD4338a FLASH 757160 757384 224 0.0
RAM 254144 254152 8 0.0
window-app BRD4187C FLASH 1058212 1058436 224 0.0
RAM 119740 119740 0 0.0
esp32 all-clusters-app c3devkit DRAM 102524 102524 0 0.0
FLASH 1836568 1836510 -58 -0.0
IRAM 93540 93540 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 933180 933176 -4 -0.0
RAM 161317 161317 0 0.0
nxp contact mcxw71+release FLASH 691976 692104 128 0.0
RAM 61496 61496 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1677556 1677668 112 0.0
RAM 213908 213908 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1593980 1594044 64 0.0
RAM 211116 211116 0 0.0
light cy8ckit_062s2_43012 FLASH 1460108 1460284 176 0.0
RAM 197736 197736 0 0.0
lock cy8ckit_062s2_43012 FLASH 1492644 1492964 320 0.0
RAM 225448 225448 0 0.0
qpg lighting-app qpg6200+debug FLASH 837216 837480 264 0.0
RAM 127716 127716 0 0.0
lock-app qpg6200+debug FLASH 774028 774324 296 0.0
RAM 118692 118692 0 0.0
realtek light-switch-app rtl8777g FLASH 706456 706632 176 0.0
RAM 106912 106912 0 0.0
lighting-app rtl8777g FLASH 757512 757592 80 0.0
RAM 127244 127244 0 0.0
stm32 light STM32WB5MM-DK FLASH 469892 469972 80 0.0
RAM 141312 141312 0 0.0
telink bridge-app tl7218x FLASH 710554 710514 -40 -0.0
RAM 90544 90544 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 796908 796990 82 0.0
RAM 41008 41008 0 0.0
light-app-ota-shell-factory-data tl7218x FLASH 788108 788190 82 0.0
RAM 93644 93644 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 715028 715192 164 0.0
RAM 51852 51852 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 748324 748488 164 0.0
RAM 70892 70900 8 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 725180 725344 164 0.0
RAM 34600 34600 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 602540 602622 82 0.0
RAM 108912 108912 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 820712 820798 86 0.0
RAM 92040 92040 0 0.0

@github-actions
Copy link

github-actions bot commented Nov 4, 2025

PR #41607: Size comparison from f6366d4 to c6210d5

Full report (31 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, nrfconnect, nxp, psoc6, qpg, realtek, stm32, telink)
platform target config section f6366d4 c6210d5 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1106076 1106156 80 0.0
RAM 178882 178882 0 0.0
bl702 lighting-app bl702+eth FLASH 661228 661308 80 0.0
RAM 134969 134969 0 0.0
bl702+wifi FLASH 836764 836844 80 0.0
RAM 124405 124405 0 0.0
bl706+mfd+rpc+littlefs FLASH 1070308 1070388 80 0.0
RAM 117277 117277 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 899804 899836 32 0.0
RAM 105540 105540 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 983070 983150 80 0.0
RAM 109756 109756 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 770436 770516 80 0.0
RAM 103304 103304 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 782184 782360 176 0.0
RAM 108472 108472 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 728244 728308 64 0.0
RAM 97364 97364 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 712704 712784 80 0.0
RAM 97580 97580 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 554578 554746 168 0.0
RAM 205744 205744 0 0.0
lock CC3235SF_LAUNCHXL FLASH 587378 587626 248 0.0
RAM 205840 205840 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 933180 933176 -4 -0.0
RAM 161317 161317 0 0.0
nxp contact mcxw71+release FLASH 691976 692104 128 0.0
RAM 61496 61496 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1677556 1677668 112 0.0
RAM 213908 213908 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1593980 1594044 64 0.0
RAM 211116 211116 0 0.0
light cy8ckit_062s2_43012 FLASH 1460108 1460284 176 0.0
RAM 197736 197736 0 0.0
lock cy8ckit_062s2_43012 FLASH 1492644 1492964 320 0.0
RAM 225448 225448 0 0.0
qpg lighting-app qpg6200+debug FLASH 837216 837480 264 0.0
RAM 127716 127716 0 0.0
lock-app qpg6200+debug FLASH 774028 774324 296 0.0
RAM 118692 118692 0 0.0
realtek light-switch-app rtl8777g FLASH 706456 706632 176 0.0
RAM 106912 106912 0 0.0
lighting-app rtl8777g FLASH 757512 757592 80 0.0
RAM 127244 127244 0 0.0
stm32 light STM32WB5MM-DK FLASH 469892 469972 80 0.0
RAM 141312 141312 0 0.0
telink bridge-app tl7218x FLASH 710554 710514 -40 -0.0
RAM 90544 90544 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 796908 796990 82 0.0
RAM 41008 41008 0 0.0
light-app-ota-shell-factory-data tl7218x FLASH 788108 788190 82 0.0
RAM 93644 93644 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 715028 715192 164 0.0
RAM 51852 51852 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 748324 748488 164 0.0
RAM 70892 70900 8 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 725180 725344 164 0.0
RAM 34600 34600 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 602540 602622 82 0.0
RAM 108912 108912 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 820712 820798 86 0.0
RAM 92040 92040 0 0.0

@github-actions
Copy link

github-actions bot commented Nov 4, 2025

PR #41607: Size comparison from f6366d4 to 8f52e9f

Full report (35 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, nxp, psoc6, qpg, realtek, stm32, telink)
platform target config section f6366d4 8f52e9f change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1106076 1106156 80 0.0
RAM 178882 178882 0 0.0
bl702 lighting-app bl702+eth FLASH 661228 661308 80 0.0
RAM 134969 134969 0 0.0
bl702+wifi FLASH 836764 836844 80 0.0
RAM 124405 124405 0 0.0
bl706+mfd+rpc+littlefs FLASH 1070308 1070388 80 0.0
RAM 117277 117277 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 899804 899836 32 0.0
RAM 105540 105540 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 983070 983150 80 0.0
RAM 109756 109756 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 770436 770516 80 0.0
RAM 103304 103304 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 782184 782360 176 0.0
RAM 108472 108472 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 728244 728308 64 0.0
RAM 97364 97364 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 712704 712784 80 0.0
RAM 97580 97580 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 554578 554746 168 0.0
RAM 205744 205744 0 0.0
lock CC3235SF_LAUNCHXL FLASH 587378 587626 248 0.0
RAM 205840 205840 0 0.0
efr32 lock-app BRD4187C FLASH 963008 963200 192 0.0
RAM 123512 123512 0 0.0
BRD4338a FLASH 757160 757384 224 0.0
RAM 254144 254152 8 0.0
window-app BRD4187C FLASH 1058212 1058436 224 0.0
RAM 119740 119740 0 0.0
esp32 all-clusters-app c3devkit DRAM 102524 102524 0 0.0
FLASH 1836568 1836510 -58 -0.0
IRAM 93540 93540 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 933180 933176 -4 -0.0
RAM 161317 161317 0 0.0
nxp contact mcxw71+release FLASH 691976 692104 128 0.0
RAM 61496 61496 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1677556 1677668 112 0.0
RAM 213908 213908 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1593980 1594044 64 0.0
RAM 211116 211116 0 0.0
light cy8ckit_062s2_43012 FLASH 1460108 1460284 176 0.0
RAM 197736 197736 0 0.0
lock cy8ckit_062s2_43012 FLASH 1492644 1492964 320 0.0
RAM 225448 225448 0 0.0
qpg lighting-app qpg6200+debug FLASH 837216 837480 264 0.0
RAM 127716 127716 0 0.0
lock-app qpg6200+debug FLASH 774028 774324 296 0.0
RAM 118692 118692 0 0.0
realtek light-switch-app rtl8777g FLASH 706456 706632 176 0.0
RAM 106912 106912 0 0.0
lighting-app rtl8777g FLASH 757512 757592 80 0.0
RAM 127244 127244 0 0.0
stm32 light STM32WB5MM-DK FLASH 469892 469972 80 0.0
RAM 141312 141312 0 0.0
telink bridge-app tl7218x FLASH 710554 710514 -40 -0.0
RAM 90544 90544 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 796908 796990 82 0.0
RAM 41008 41008 0 0.0
light-app-ota-shell-factory-data tl7218x FLASH 788108 788190 82 0.0
RAM 93644 93644 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 715028 715192 164 0.0
RAM 51852 51852 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 748324 748488 164 0.0
RAM 70892 70900 8 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 725180 725344 164 0.0
RAM 34600 34600 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 602540 602622 82 0.0
RAM 108912 108912 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 820712 820798 86 0.0
RAM 92040 92040 0 0.0

@zaid-google zaid-google marked this pull request as ready for review November 4, 2025 16:41
import("//build_overrides/pigweed.gni")

import("${chip_root}/build/chip/tools.gni")
import("${chip_root}/examples/common/pigweed/rpc_config.gni")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
import("${chip_root}/examples/common/pigweed/rpc_config.gni")

import("//build_overrides/chip.gni")
import("//build_overrides/pigweed.gni")

import("${chip_root}/build/chip/tools.gni")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need this?


import("${chip_root}/build/chip/tools.gni")
import("${chip_root}/examples/common/pigweed/rpc_config.gni")
import("${chip_root}/src/app/common_flags.gni")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can be done as a follow up. But instead of blindly including this src/app/common_flags.gni we should find a better way to handle this stuff, we're likely setting too many build time configs by importing this common .gni file.

@soares-sergio
Copy link
Contributor

/gemini review

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new example application, all-devices-app, which demonstrates the use of the CodeDrivenDataModelProvider for creating devices with code-driven clusters. The changes include new GN build files, C++ classes for device interfaces, boolean state sensors, and root node devices, along with a device factory to dynamically create these devices based on command-line arguments. The new application is also integrated into the build system and CI testing infrastructure. The code is well-structured and follows existing patterns within the repository, promoting modularity and reusability for future device implementations.

@andy31415 andy31415 requested a review from Copilot November 6, 2025 17:39
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces a new example application called all-devices-app for Linux platforms. The app demonstrates the use of CodeDrivenDataModelProvider with runtime-configurable device types. Currently supports contact sensor and water leak detector devices, with the device type selected via command-line argument at startup.

Key Changes:

  • New example app with code-driven data model implementation
  • Device factory pattern for runtime device type selection
  • Reusable device interface hierarchy for code-driven devices

Reviewed Changes

Copilot reviewed 31 out of 31 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
scripts/build/builders/host.py Adds ALL_DEVICES_APP enum and build configuration
scripts/build/build/targets.py Registers all-devices-app as a build target
examples/all-devices-app/linux/main.cpp Main application entry point with device initialization
examples/all-devices-app/linux/app_options/* Command-line argument handling for device type selection
examples/all-devices-app/all-devices-common/devices/device-factory/* Factory pattern for creating different device types
examples/all-devices-app/all-devices-common/devices/interface/* Base device interfaces and single-endpoint device implementation
examples/all-devices-app/all-devices-common/devices/boolean-state-sensor/* Boolean state sensor device implementation
examples/all-devices-app/all-devices-common/devices/root-node/* Root node device with network commissioning
examples/providers/AllDevicesExampleDeviceInfoProviderImpl.* Device info provider for supported locales
examples/platform/linux/BUILD.gn Extracts commissionable data provider into separate source set
.github/workflows/tests.yaml Adds CI build and test configuration
src/python_testing/TC_DeviceBasicComposition.py Adds test run configuration for all-devices-app

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants