Skip to content

[Code Driven Cluster] Decouple Fan Cluster part 2#43408

Open
LyudmilaKostanyan wants to merge 70 commits intoproject-chip:masterfrom
LyudmilaKostanyan:FanControl
Open

[Code Driven Cluster] Decouple Fan Cluster part 2#43408
LyudmilaKostanyan wants to merge 70 commits intoproject-chip:masterfrom
LyudmilaKostanyan:FanControl

Conversation

@LyudmilaKostanyan
Copy link
Copy Markdown
Contributor

@LyudmilaKostanyan LyudmilaKostanyan commented Mar 3, 2026

Summary

Migrates the Fan Control cluster from the legacy Ember implementation to the code-driven architecture.

Changes:

  • Added FanControlCluster class with ReadAttribute, WriteAttribute, InvokeCommand for the Step command, and attribute cascades.
  • Added CodegenIntegration
  • Added unit tests

Related issues

#43161

Testing

Tested using chip-all-clusters-app and chip-repl

@LyudmilaKostanyan
Copy link
Copy Markdown
Contributor Author

/gemini review

Copy link
Copy Markdown
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 is a solid step forward in migrating the Fan Control cluster to a modern, code-driven architecture. However, a critical use-after-free vulnerability has been identified in the integration layer where stack-allocated delegates are passed to registration functions, which violates the rule regarding the lifetime of stack-allocated objects passed by reference. Beyond this, the FeatureMap attribute is hardcoded to zero, and key configuration attributes like SpeedMax, RockSupport, and WindSupport are hardcoded in CodegenIntegration.cpp, limiting customization. Logic errors were also found in the attribute write validation for FanMode, RockSetting, and WindSetting, potentially causing incorrect device behavior or denial of service. Addressing these points, including expanding unit tests for FeatureMap once corrected, is essential for a secure, correct, and flexible implementation.

Comment thread src/app/clusters/fan-control-server/CodegenIntegration.cpp
Comment thread src/app/clusters/fan-control-server/CodegenIntegration.cpp
Comment thread src/app/clusters/fan-control-server/CodegenIntegration.cpp Outdated
Comment thread src/app/clusters/fan-control-server/FanControlCluster.cpp
Comment thread src/app/clusters/fan-control-server/FanControlCluster.cpp Outdated
Comment thread src/app/clusters/fan-control-server/FanControlCluster.cpp Outdated
Comment thread src/app/clusters/fan-control-server/FanControlCluster.cpp Outdated
Comment thread src/app/clusters/fan-control-server/tests/TestFanControlCluster.cpp
Copy link
Copy Markdown
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 successfully migrates the Fan Control cluster to the code-driven architecture, which is a great improvement. The changes involve removing the old Ember-style implementation and replacing it with a new FanControlCluster class, along with the necessary integration code and unit tests.

My review found a couple of high-severity issues that should be addressed:

  1. In CodegenIntegration.cpp, several cluster configuration values are hardcoded, which limits the functionality and flexibility of the cluster.
  2. The FanControlCluster implementation incorrectly reports the FeatureMap attribute as 0, which will prevent clients from discovering supported features.

Addressing these issues will make this migration complete and robust.

Comment thread src/app/clusters/fan-control-server/CodegenIntegration.cpp Outdated
Comment thread src/app/clusters/fan-control-server/FanControlCluster.cpp Outdated
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Mar 3, 2026

PR #43408: Size comparison from a6e7031 to 0794253

Full report (14 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, qpg, realtek, stm32)
platform target config section a6e7031 0794253 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1089622 1089622 0 0.0
RAM 144826 144826 0 0.0
bl616 lighting-app bl616+thread FLASH 1100292 1100292 0 0.0
RAM 104248 104248 0 0.0
bl616+wifi+shell FLASH 1587148 1587148 0 0.0
RAM 98112 98112 0 0.0
bl702 lighting-app bl702+eth FLASH 1052980 1052980 0 0.0
RAM 108405 108405 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 890924 890924 0 0.0
RAM 105828 105828 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 780272 780272 0 0.0
RAM 103396 103396 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 787436 787436 0 0.0
RAM 108580 108580 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 733608 733608 0 0.0
RAM 97372 97372 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 717028 717028 0 0.0
RAM 97524 97524 0 0.0
qpg lighting-app qpg6200+debug FLASH 840920 840920 0 0.0
RAM 127844 127844 0 0.0
lock-app qpg6200+debug FLASH 779580 779580 0 0.0
RAM 118792 118792 0 0.0
realtek light-switch-app rtl8777g FLASH 721720 721720 0 0.0
RAM 113536 113536 0 0.0
lighting-app rtl8777g FLASH 768960 768960 0 0.0
RAM 114768 114768 0 0.0
stm32 light STM32WB5MM-DK FLASH 479196 479196 0 0.0
RAM 141404 141404 0 0.0

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Mar 3, 2026

PR #43408: Size comparison from a6e7031 to 8a8c60a

Full report (26 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, efr32, nxp, qpg, realtek, stm32, telink)
platform target config section a6e7031 8a8c60a change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1089622 1089622 0 0.0
RAM 144826 144826 0 0.0
bl616 lighting-app bl616+thread FLASH 1100292 1100292 0 0.0
RAM 104248 104248 0 0.0
bl616+wifi+shell FLASH 1587148 1587148 0 0.0
RAM 98112 98112 0 0.0
bl702 lighting-app bl702+eth FLASH 1052980 1052980 0 0.0
RAM 108405 108405 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 890924 890924 0 0.0
RAM 105828 105828 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 780272 780272 0 0.0
RAM 103396 103396 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 787436 787436 0 0.0
RAM 108580 108580 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 733608 733608 0 0.0
RAM 97372 97372 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 717028 717028 0 0.0
RAM 97524 97524 0 0.0
efr32 lock-app BRD4187C FLASH 972492 972484 -8 -0.0
RAM 125284 125284 0 0.0
BRD4338a FLASH 770348 770348 0 0.0
RAM 236624 236624 0 0.0
window-app BRD4187C FLASH 1075976 1075976 0 0.0
RAM 126504 126504 0 0.0
nxp contact mcxw71+release FLASH 736728 736728 0 0.0
RAM 66992 66992 0 0.0
qpg lighting-app qpg6200+debug FLASH 840920 840920 0 0.0
RAM 127844 127844 0 0.0
lock-app qpg6200+debug FLASH 779580 779580 0 0.0
RAM 118792 118792 0 0.0
realtek light-switch-app rtl8777g FLASH 721720 721720 0 0.0
RAM 113536 113536 0 0.0
lighting-app rtl8777g FLASH 768960 768960 0 0.0
RAM 114768 114768 0 0.0
stm32 light STM32WB5MM-DK FLASH 479196 479196 0 0.0
RAM 141404 141404 0 0.0
telink bridge-app tl7218x FLASH 728348 728348 0 0.0
RAM 95852 95852 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 853286 853286 0 0.0
RAM 44264 44264 0 0.0
tl7218x FLASH 844686 844686 0 0.0
RAM 99652 99652 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 725798 725798 0 0.0
RAM 55832 55832 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 788362 788362 0 0.0
RAM 75016 75016 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 725798 725798 0 0.0
RAM 33320 33320 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 615722 615722 0 0.0
RAM 118312 118312 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 843508 843512 4 0.0
RAM 97360 97360 0 0.0

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Mar 3, 2026

PR #43408: Size comparison from a6e7031 to 9bd7eea

Full report (3 builds for realtek, stm32)
platform target config section a6e7031 9bd7eea change % change
realtek light-switch-app rtl8777g FLASH 721720 721720 0 0.0
RAM 113536 113536 0 0.0
lighting-app rtl8777g FLASH 768960 768960 0 0.0
RAM 114768 114768 0 0.0
stm32 light STM32WB5MM-DK FLASH 479196 479196 0 0.0
RAM 141404 141404 0 0.0

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Mar 3, 2026

PR #43408: Size comparison from 832cfef to 1d2acd4

Full report (32 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, nxp, psoc6, qpg, realtek, stm32, telink)
platform target config section 832cfef 1d2acd4 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1089622 1089622 0 0.0
RAM 144826 144826 0 0.0
bl616 lighting-app bl616+thread FLASH 1100292 1100292 0 0.0
RAM 104248 104248 0 0.0
bl616+wifi+shell FLASH 1587148 1587148 0 0.0
RAM 98112 98112 0 0.0
bl702 lighting-app bl702+eth FLASH 1052980 1052980 0 0.0
RAM 108405 108405 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 890998 890998 0 0.0
RAM 105828 105828 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 780272 780272 0 0.0
RAM 103396 103396 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 787436 787436 0 0.0
RAM 108580 108580 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 733608 733608 0 0.0
RAM 97372 97372 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 717028 717028 0 0.0
RAM 97524 97524 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 559006 559302 296 0.1
RAM 204560 204624 64 0.0
lock CC3235SF_LAUNCHXL FLASH 592242 592242 0 0.0
RAM 204808 204808 0 0.0
efr32 lock-app BRD4187C FLASH 972492 972484 -8 -0.0
RAM 125284 125284 0 0.0
BRD4338a FLASH 770348 770348 0 0.0
RAM 236624 236624 0 0.0
window-app BRD4187C FLASH 1075976 1075976 0 0.0
RAM 126504 126504 0 0.0
nxp contact mcxw71+release FLASH 736728 736728 0 0.0
RAM 66992 66992 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1705444 1707452 2008 0.1
RAM 214092 214148 56 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1606148 1608612 2464 0.2
RAM 210940 211004 64 0.0
light cy8ckit_062s2_43012 FLASH 1471724 1471724 0 0.0
RAM 197060 197060 0 0.0
lock cy8ckit_062s2_43012 FLASH 1498228 1498228 0 0.0
RAM 224796 224796 0 0.0
qpg lighting-app qpg6200+debug FLASH 840920 840920 0 0.0
RAM 127844 127844 0 0.0
lock-app qpg6200+debug FLASH 779580 779580 0 0.0
RAM 118792 118792 0 0.0
realtek light-switch-app rtl8777g FLASH 721720 721720 0 0.0
RAM 113536 113536 0 0.0
lighting-app rtl8777g FLASH 768960 768960 0 0.0
RAM 114768 114768 0 0.0
stm32 light STM32WB5MM-DK FLASH 479196 479196 0 0.0
RAM 141404 141404 0 0.0
telink bridge-app tl7218x FLASH 728348 728348 0 0.0
RAM 95852 95852 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 853286 853286 0 0.0
RAM 44264 44264 0 0.0
tl7218x FLASH 844686 844686 0 0.0
RAM 99652 99652 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 725798 725798 0 0.0
RAM 55832 55832 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 788362 788362 0 0.0
RAM 75016 75016 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 725798 725798 0 0.0
RAM 33320 33320 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 615722 615722 0 0.0
RAM 118312 118312 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 843508 843512 4 0.0
RAM 97360 97360 0 0.0

@github-actions github-actions Bot added the examples chef Changes in examples/chef label Mar 4, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Mar 4, 2026

PR #43408: Size comparison from 832cfef to fbe8afe

Full report (11 builds for cc13x4_26x4, cc32xx, qpg, realtek, stm32)
platform target config section 832cfef fbe8afe change % change
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 780272 779328 -944 -0.1
RAM 103396 103332 -64 -0.1
lock-ftd LP_EM_CC1354P10_6 FLASH 787436 786516 -920 -0.1
RAM 108580 108508 -72 -0.1
pump-app LP_EM_CC1354P10_6 FLASH 733608 732744 -864 -0.1
RAM 97372 97316 -56 -0.1
pump-controller-app LP_EM_CC1354P10_6 FLASH 717028 716180 -848 -0.1
RAM 97524 97476 -48 -0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 559006 558326 -680 -0.1
RAM 204560 204560 0 0.0
lock CC3235SF_LAUNCHXL FLASH 592242 591194 -1048 -0.2
RAM 204808 204744 -64 -0.0
qpg lighting-app qpg6200+debug FLASH 840920 840688 -232 -0.0
RAM 127844 127780 -64 -0.1
lock-app qpg6200+debug FLASH 779580 779332 -248 -0.0
RAM 118792 118728 -64 -0.1
realtek light-switch-app rtl8777g FLASH 721720 720704 -1016 -0.1
RAM 113536 113448 -88 -0.1
lighting-app rtl8777g FLASH 768960 767976 -984 -0.1
RAM 114768 114696 -72 -0.1
stm32 light STM32WB5MM-DK FLASH 479196 478980 -216 -0.0
RAM 141404 141332 -72 -0.1

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Mar 4, 2026

PR #43408: Size comparison from 832cfef to c5c98c9

Full report (34 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, nxp, psoc6, qpg, realtek, stm32, telink)
platform target config section 832cfef c5c98c9 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1089622 1089642 20 0.0
RAM 144826 144762 -64 -0.0
bl616 lighting-app bl616+thread FLASH 1100292 1100036 -256 -0.0
RAM 104248 104184 -64 -0.1
bl616+wifi+shell FLASH 1587148 1586900 -248 -0.0
RAM 98112 98080 -32 -0.0
bl702 lighting-app bl702+eth FLASH 1052980 1052738 -242 -0.0
RAM 108405 108357 -48 -0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 890998 890748 -250 -0.0
RAM 105828 105748 -80 -0.1
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 780272 779328 -944 -0.1
RAM 103396 103332 -64 -0.1
lock-ftd LP_EM_CC1354P10_6 FLASH 787436 786516 -920 -0.1
RAM 108580 108508 -72 -0.1
pump-app LP_EM_CC1354P10_6 FLASH 733608 732744 -864 -0.1
RAM 97372 97316 -56 -0.1
pump-controller-app LP_EM_CC1354P10_6 FLASH 717028 716180 -848 -0.1
RAM 97524 97476 -48 -0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 559006 558326 -680 -0.1
RAM 204560 204560 0 0.0
lock CC3235SF_LAUNCHXL FLASH 592242 591194 -1048 -0.2
RAM 204808 204744 -64 -0.0
efr32 lock-app BRD4187C FLASH 972492 972260 -232 -0.0
RAM 125284 125220 -64 -0.1
BRD4338a FLASH 770348 769388 -960 -0.1
RAM 236624 236552 -72 -0.0
window-app BRD4187C FLASH 1075976 1074976 -1000 -0.1
RAM 126504 126440 -64 -0.1
esp32 all-clusters-app c3devkit DRAM 98548 98380 -168 -0.2
FLASH 1592950 1593148 198 0.0
IRAM 93514 93514 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 854924 855012 88 0.0
RAM 162165 162033 -132 -0.1
nxp contact mcxw71+release FLASH 736728 735824 -904 -0.1
RAM 66992 66936 -56 -0.1
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1705444 1706116 672 0.0
RAM 214092 213956 -136 -0.1
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1606148 1607388 1240 0.1
RAM 210940 210852 -88 -0.0
light cy8ckit_062s2_43012 FLASH 1471724 1470748 -976 -0.1
RAM 197060 196996 -64 -0.0
lock cy8ckit_062s2_43012 FLASH 1498228 1497276 -952 -0.1
RAM 224796 224732 -64 -0.0
qpg lighting-app qpg6200+debug FLASH 840920 840688 -232 -0.0
RAM 127844 127780 -64 -0.1
lock-app qpg6200+debug FLASH 779580 779332 -248 -0.0
RAM 118792 118728 -64 -0.1
realtek light-switch-app rtl8777g FLASH 721720 720704 -1016 -0.1
RAM 113536 113448 -88 -0.1
lighting-app rtl8777g FLASH 768960 767976 -984 -0.1
RAM 114768 114696 -72 -0.1
stm32 light STM32WB5MM-DK FLASH 479196 478980 -216 -0.0
RAM 141404 141332 -72 -0.1
telink bridge-app tl7218x FLASH 728348 728196 -152 -0.0
RAM 95852 95768 -84 -0.1
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 853286 853154 -132 -0.0
RAM 44264 44196 -68 -0.2
tl7218x FLASH 844686 844554 -132 -0.0
RAM 99652 99584 -68 -0.1
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 725798 725664 -134 -0.0
RAM 55832 55740 -92 -0.2
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 788362 788228 -134 -0.0
RAM 75016 74924 -92 -0.1
light-switch-app-ota-factory-data tl3218x_retention FLASH 725798 725664 -134 -0.0
RAM 33320 33228 -92 -0.3
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 615722 615610 -112 -0.0
RAM 118312 118244 -68 -0.1
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 843508 843380 -128 -0.0
RAM 97360 97292 -68 -0.1

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Mar 4, 2026

PR #43408: Size comparison from 832cfef to 871a07f

Full report (34 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, nxp, psoc6, qpg, realtek, stm32, telink)
platform target config section 832cfef 871a07f change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1089622 1089642 20 0.0
RAM 144826 144762 -64 -0.0
bl616 lighting-app bl616+thread FLASH 1100292 1100036 -256 -0.0
RAM 104248 104184 -64 -0.1
bl616+wifi+shell FLASH 1587148 1586900 -248 -0.0
RAM 98112 98080 -32 -0.0
bl702 lighting-app bl702+eth FLASH 1052980 1052738 -242 -0.0
RAM 108405 108357 -48 -0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 890998 890748 -250 -0.0
RAM 105828 105748 -80 -0.1
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 780272 779328 -944 -0.1
RAM 103396 103332 -64 -0.1
lock-ftd LP_EM_CC1354P10_6 FLASH 787436 786516 -920 -0.1
RAM 108580 108508 -72 -0.1
pump-app LP_EM_CC1354P10_6 FLASH 733608 732744 -864 -0.1
RAM 97372 97316 -56 -0.1
pump-controller-app LP_EM_CC1354P10_6 FLASH 717028 716180 -848 -0.1
RAM 97524 97476 -48 -0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 559006 558270 -736 -0.1
RAM 204560 204560 0 0.0
lock CC3235SF_LAUNCHXL FLASH 592242 591194 -1048 -0.2
RAM 204808 204744 -64 -0.0
efr32 lock-app BRD4187C FLASH 972492 972260 -232 -0.0
RAM 125284 125220 -64 -0.1
BRD4338a FLASH 770348 769388 -960 -0.1
RAM 236624 236552 -72 -0.0
window-app BRD4187C FLASH 1075976 1074976 -1000 -0.1
RAM 126504 126440 -64 -0.1
esp32 all-clusters-app c3devkit DRAM 98548 98380 -168 -0.2
FLASH 1592950 1593066 116 0.0
IRAM 93514 93514 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 854924 854916 -8 -0.0
RAM 162165 162029 -136 -0.1
nxp contact mcxw71+release FLASH 736728 735824 -904 -0.1
RAM 66992 66936 -56 -0.1
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1705444 1706132 688 0.0
RAM 214092 213956 -136 -0.1
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1606148 1607308 1160 0.1
RAM 210940 210844 -96 -0.0
light cy8ckit_062s2_43012 FLASH 1471724 1470748 -976 -0.1
RAM 197060 196996 -64 -0.0
lock cy8ckit_062s2_43012 FLASH 1498228 1497276 -952 -0.1
RAM 224796 224732 -64 -0.0
qpg lighting-app qpg6200+debug FLASH 840920 840688 -232 -0.0
RAM 127844 127780 -64 -0.1
lock-app qpg6200+debug FLASH 779580 779332 -248 -0.0
RAM 118792 118728 -64 -0.1
realtek light-switch-app rtl8777g FLASH 721720 720704 -1016 -0.1
RAM 113536 113448 -88 -0.1
lighting-app rtl8777g FLASH 768960 767976 -984 -0.1
RAM 114768 114696 -72 -0.1
stm32 light STM32WB5MM-DK FLASH 479196 478980 -216 -0.0
RAM 141404 141332 -72 -0.1
telink bridge-app tl7218x FLASH 728348 728196 -152 -0.0
RAM 95852 95768 -84 -0.1
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 853286 853154 -132 -0.0
RAM 44264 44196 -68 -0.2
tl7218x FLASH 844686 844554 -132 -0.0
RAM 99652 99584 -68 -0.1
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 725798 725664 -134 -0.0
RAM 55832 55740 -92 -0.2
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 788362 788228 -134 -0.0
RAM 75016 74924 -92 -0.1
light-switch-app-ota-factory-data tl3218x_retention FLASH 725798 725664 -134 -0.0
RAM 33320 33228 -92 -0.3
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 615722 615610 -112 -0.0
RAM 118312 118244 -68 -0.1
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 843508 843380 -128 -0.0
RAM 97360 97292 -68 -0.1

@codecov
Copy link
Copy Markdown

codecov Bot commented Mar 4, 2026

Codecov Report

❌ Patch coverage is 77.57848% with 100 lines in your changes missing coverage. Please review.
✅ Project coverage is 54.71%. Comparing base (59d22d2) to head (2a15f03).
⚠️ Report is 6 commits behind head on master.

Files with missing lines Patch % Lines
.../clusters/fan-control-server/FanControlCluster.cpp 81.44% 59 Missing ⚠️
...clusters/fan-control-server/CodegenIntegration.cpp 64.81% 19 Missing ⚠️
...-clusters-app/all-clusters-common/src/fan-stub.cpp 0.00% 17 Missing ⚠️
...pp/clusters/fan-control-server/FanControlCluster.h 92.00% 4 Missing ⚠️
...clusters/fan-control-server/fan-control-delegate.h 85.71% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master   #43408      +/-   ##
==========================================
+ Coverage   54.52%   54.71%   +0.18%     
==========================================
  Files        1588     1590       +2     
  Lines      108569   108831     +262     
  Branches    13365    13325      -40     
==========================================
+ Hits        59201    59546     +345     
+ Misses      49368    49285      -83     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Comment thread src/app/clusters/fan-control-server/fan-control-server.h Outdated
Comment thread src/app/clusters/fan-control-server/FanControlCluster.h
Comment thread src/app/clusters/fan-control-server/FanControlCluster.cpp Outdated
Comment thread src/app/clusters/fan-control-server/FanControlCluster.h Outdated
Comment thread src/app/clusters/fan-control-server/fan-control-delegate.h Outdated
Comment thread src/app/clusters/fan-control-server/fan-control-delegate.h Outdated
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Mar 5, 2026

PR #43408: Size comparison from 832cfef to 4e8369f

Full report (3 builds for realtek, stm32)
platform target config section 832cfef 4e8369f6 change % change
realtek light-switch-app rtl8777g FLASH 721720 720704 -1016 -0.1
RAM 113536 113448 -88 -0.1
lighting-app rtl8777g FLASH 768960 767888 -1072 -0.1
RAM 114768 114688 -80 -0.1
stm32 light STM32WB5MM-DK FLASH 479196 478812 -384 -0.1
RAM 141404 141324 -80 -0.1

Copy link
Copy Markdown
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

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


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/app/clusters/fan-control-server/FanControlCluster.cpp
Comment thread src/app/clusters/fan-control-server/FanControlCluster.cpp
Comment thread src/app/clusters/fan-control-server/FanControlCluster.cpp
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 21, 2026

PR #43408: Size comparison from 1b8e309 to ee72891

Full report (34 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, nxp, psoc6, qpg, realtek, stm32, telink)
platform target config section 1b8e309 ee72891 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1090734 1090734 0 0.0
RAM 144930 144930 0 0.0
bl616 lighting-app bl616+thread FLASH 1102220 1102220 0 0.0
RAM 104344 104344 0 0.0
bl616+wifi+shell FLASH 1589164 1589164 0 0.0
RAM 98240 98240 0 0.0
bl702 lighting-app bl702+eth FLASH 1053904 1053904 0 0.0
RAM 108549 108549 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 892568 892568 0 0.0
RAM 105940 105940 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 776016 776016 0 0.0
RAM 103492 103492 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 788556 788556 0 0.0
RAM 108684 108684 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 735692 735692 0 0.0
RAM 97516 97516 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 717748 717748 0 0.0
RAM 97644 97644 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 562706 562778 72 0.0
RAM 205072 205120 48 0.0
lock CC3235SF_LAUNCHXL FLASH 594578 594578 0 0.0
RAM 205272 205272 0 0.0
efr32 lock-app BRD4187C FLASH 993264 993264 0 0.0
RAM 131352 131352 0 0.0
BRD4338a FLASH 797469 797469 0 0.0
RAM 243452 243452 0 0.0
window-app BRD4187C FLASH 1099072 1099064 -8 -0.0
RAM 130392 130392 0 0.0
esp32 all-clusters-app c3devkit DRAM 99164 99212 48 0.0
FLASH 1607418 1609632 2214 0.1
IRAM 94776 94776 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 866460 866960 500 0.1
RAM 162404 162454 50 0.0
nxp contact mcxw71+release FLASH 742648 742648 0 0.0
RAM 67160 67160 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1717716 1720756 3040 0.2
RAM 214628 214668 40 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1615116 1618540 3424 0.2
RAM 211500 211548 48 0.0
light cy8ckit_062s2_43012 FLASH 1469396 1469396 0 0.0
RAM 197548 197548 0 0.0
lock cy8ckit_062s2_43012 FLASH 1502372 1502372 0 0.0
RAM 225276 225276 0 0.0
qpg lighting-app qpg6200+debug FLASH 843052 843052 0 0.0
RAM 127956 127956 0 0.0
lock-app qpg6200+debug FLASH 781628 781628 0 0.0
RAM 118904 118904 0 0.0
realtek light-switch-app rtl8777g FLASH 682832 682832 0 0.0
RAM 101824 101824 0 0.0
lighting-app rtl8777g FLASH 726736 726736 0 0.0
RAM 102164 102164 0 0.0
stm32 light STM32WB5MM-DK FLASH 477332 477332 0 0.0
RAM 141604 141604 0 0.0
telink bridge-app tl7218x FLASH 730658 730658 0 0.0
RAM 95932 95932 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 850358 850358 0 0.0
RAM 44400 44400 0 0.0
tl7218x FLASH 841764 841764 0 0.0
RAM 99796 99796 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 730280 730280 0 0.0
RAM 56064 56064 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 793506 793506 0 0.0
RAM 75248 75248 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 730178 730178 0 0.0
RAM 33544 33544 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 613106 613106 0 0.0
RAM 118456 118456 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 839898 839902 4 0.0
RAM 97504 97504 0 0.0

Copy link
Copy Markdown
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

Copilot reviewed 59 out of 59 changed files in this pull request and generated 3 comments.

Comments suppressed due to low confidence (1)

examples/chef/common/chef-fan-control-manager.cpp:252

  • SetPercentCurrent() and SetSpeedCurrent() now call FanControlCluster::SetPercentSetting() / SetSpeedSetting(). This writes back to the *Setting attributes (not the *Current attributes), can retrigger FanControl attribute-change callbacks, and the error logs still refer to writing PercentCurrent/SpeedCurrent. If the intent is to update the *Current attributes, this should be done without writing the settings back (e.g. update only local tracking, or introduce/using an API that updates PercentCurrent/SpeedCurrent directly).
void ChefFanControlManager::SetPercentCurrent(uint8_t aNewPercentCurrent)
{
    ChipLogDetail(NotSpecified, "ChefFanControlManager::SetPercentCurrent: %d", aNewPercentCurrent);
    mPercentCurrent = aNewPercentCurrent;
    Status status   = Status::Success;
    if (FanControlCluster * fc = FanControl::FindClusterOnEndpoint(mEndpoint); fc != nullptr)
    {
        status = fc->SetPercentSetting(DataModel::Nullable<Percent>(mPercentCurrent)).GetStatusCode().GetStatus();
    }
    else
    {
        status = Status::UnsupportedEndpoint;
    }
    if (status != Status::Success)
    {
        ChipLogError(NotSpecified, "ChefFanControlManager::SetPercentCurrent: failed to set PercentCurrent attribute: %d",
                     to_underlying(status));
    }
}

void ChefFanControlManager::SetSpeedCurrent(uint8_t aNewSpeedCurrent)
{
    mSpeedCurrent = aNewSpeedCurrent;
    Status status = Status::Success;
    if (FanControlCluster * fc = FanControl::FindClusterOnEndpoint(mEndpoint); fc != nullptr)
    {
        status = fc->SetSpeedSetting(MakeNullable(aNewSpeedCurrent)).GetStatusCode().GetStatus();
    }
    else
    {
        status = Status::UnsupportedEndpoint;
    }
    if (status != Status::Success)
    {
        ChipLogError(NotSpecified, "ChefFanControlManager::SetSpeedCurrent: failed to set SpeedCurrent attribute: %d",
                     to_underlying(status));
    }
}

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread examples/all-devices-app/all-devices-common/devices/fan/impl/LoggingFanDevice.cpp Outdated
Comment thread src/app/clusters/fan-control-server/FanControlCluster.cpp Outdated
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 21, 2026

PR #43408: Size comparison from 1b8e309 to fa6889d

Full report (34 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, nxp, psoc6, qpg, realtek, stm32, telink)
platform target config section 1b8e309 fa6889d change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1090734 1090734 0 0.0
RAM 144930 144930 0 0.0
bl616 lighting-app bl616+thread FLASH 1102220 1102220 0 0.0
RAM 104344 104344 0 0.0
bl616+wifi+shell FLASH 1589164 1589164 0 0.0
RAM 98240 98240 0 0.0
bl702 lighting-app bl702+eth FLASH 1053904 1053904 0 0.0
RAM 108549 108549 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 892568 892588 20 0.0
RAM 105940 105940 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 776016 776016 0 0.0
RAM 103492 103492 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 788556 788556 0 0.0
RAM 108684 108684 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 735692 735692 0 0.0
RAM 97516 97516 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 717748 717748 0 0.0
RAM 97644 97644 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 562706 562778 72 0.0
RAM 205072 205120 48 0.0
lock CC3235SF_LAUNCHXL FLASH 594578 594578 0 0.0
RAM 205272 205272 0 0.0
efr32 lock-app BRD4187C FLASH 993264 993264 0 0.0
RAM 131352 131352 0 0.0
BRD4338a FLASH 797469 797469 0 0.0
RAM 243452 243452 0 0.0
window-app BRD4187C FLASH 1099072 1099064 -8 -0.0
RAM 130392 130392 0 0.0
esp32 all-clusters-app c3devkit DRAM 99164 99212 48 0.0
FLASH 1607418 1609656 2238 0.1
IRAM 94776 94776 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 866460 866972 512 0.1
RAM 162404 162454 50 0.0
nxp contact mcxw71+release FLASH 742648 742648 0 0.0
RAM 67160 67160 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1717716 1720820 3104 0.2
RAM 214628 214668 40 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1615116 1618604 3488 0.2
RAM 211500 211548 48 0.0
light cy8ckit_062s2_43012 FLASH 1469396 1469396 0 0.0
RAM 197548 197548 0 0.0
lock cy8ckit_062s2_43012 FLASH 1502372 1502372 0 0.0
RAM 225276 225276 0 0.0
qpg lighting-app qpg6200+debug FLASH 843052 843052 0 0.0
RAM 127956 127956 0 0.0
lock-app qpg6200+debug FLASH 781628 781628 0 0.0
RAM 118904 118904 0 0.0
realtek light-switch-app rtl8777g FLASH 682832 682832 0 0.0
RAM 101824 101824 0 0.0
lighting-app rtl8777g FLASH 726736 726736 0 0.0
RAM 102164 102164 0 0.0
stm32 light STM32WB5MM-DK FLASH 477332 477332 0 0.0
RAM 141604 141604 0 0.0
telink bridge-app tl7218x FLASH 730658 730658 0 0.0
RAM 95932 95932 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 850358 850358 0 0.0
RAM 44400 44400 0 0.0
tl7218x FLASH 841764 841764 0 0.0
RAM 99796 99796 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 730280 730280 0 0.0
RAM 56064 56064 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 793506 793506 0 0.0
RAM 75248 75248 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 730178 730178 0 0.0
RAM 33544 33544 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 613106 613106 0 0.0
RAM 118456 118456 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 839898 839902 4 0.0
RAM 97504 97504 0 0.0

}
else
bool wrapValue = commandData.wrap.ValueOr(false);
bool lowestOffValue = commandData.lowestOff.ValueOr(false);
Copy link
Copy Markdown
Contributor

@soares-sergio soares-sergio Apr 21, 2026

Choose a reason for hiding this comment

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

This is incorrect, according to the spec (https://github.com/CHIP-Specifications/connectedhomeip-spec/blob/master/src/app_clusters/FanControl.adoc#71-step-command).

It says the fallback here should be true:

Suggested change
bool lowestOffValue = commandData.lowestOff.ValueOr(false);
bool lowestOffValue = commandData.lowestOff.ValueOr(true);

Could you double check? And also check if we have a python test that validates this? Otherwise we should create a separate issue to update the test to make sure this is not missed.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Here's how I reproduced this issue testing with chip tool:

# Repro: FanControl Step Fallback Issue

1. Set speed to 1:
```bash
./out/linux-x64-chip-tool-clang/chip-tool fancontrol step 0 1 1 --storage-directory ./

(Expect log: Speed changed from 0 to 1)

  1. Decrease speed without LowestOff (should go to 0 per spec):
./out/linux-x64-chip-tool-clang/chip-tool fancontrol step 1 1 1 --storage-directory ./

Result (Bug):
Log shows lowestOff=0 and speed stays at 1:

[DL] LoggingFanDevice::HandleStep() -> direction=1 wrap=0 lowestOff=0
[DL] LoggingFanDevice::HandleStep() -> Speed changed from 1 to 1

Expectation:
Spec says LowestOff falls back to true. It should have gone to 0.

Comment thread src/app/clusters/fan-control-server/FanControlCluster.cpp
Comment thread src/app/clusters/fan-control-server/FanControlCluster.cpp
Copy link
Copy Markdown
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

Copilot reviewed 59 out of 59 changed files in this pull request and generated 2 comments.

Comments suppressed due to low confidence (13)

src/app/clusters/fan-control-server/FanControlCluster.cpp:1

  • Optional FanControl attributes are being readable/writable unconditionally. This can produce incorrect behavior and status codes when features are not enabled (e.g., reading SpeedMax even when MultiSpeed is not supported, or writing RockSetting when Rocking is not supported). To fix: gate ReadAttribute/WriteAttribute cases for optional attributes using SupportsMultiSpeed()/SupportsRocking()/SupportsWind()/SupportsAirflowDirection() and return Status::UnsupportedAttribute when the feature/attribute is not present. This is also required for consistency with the AttributeList built in Attributes().
    src/app/clusters/fan-control-server/FanControlCluster.cpp:1
  • Optional FanControl attributes are being readable/writable unconditionally. This can produce incorrect behavior and status codes when features are not enabled (e.g., reading SpeedMax even when MultiSpeed is not supported, or writing RockSetting when Rocking is not supported). To fix: gate ReadAttribute/WriteAttribute cases for optional attributes using SupportsMultiSpeed()/SupportsRocking()/SupportsWind()/SupportsAirflowDirection() and return Status::UnsupportedAttribute when the feature/attribute is not present. This is also required for consistency with the AttributeList built in Attributes().
    src/app/clusters/fan-control-server/FanControlCluster.cpp:1
  • Optional FanControl attributes are being readable/writable unconditionally. This can produce incorrect behavior and status codes when features are not enabled (e.g., reading SpeedMax even when MultiSpeed is not supported, or writing RockSetting when Rocking is not supported). To fix: gate ReadAttribute/WriteAttribute cases for optional attributes using SupportsMultiSpeed()/SupportsRocking()/SupportsWind()/SupportsAirflowDirection() and return Status::UnsupportedAttribute when the feature/attribute is not present. This is also required for consistency with the AttributeList built in Attributes().
    src/app/clusters/fan-control-server/FanControlCluster.cpp:1
  • SetRockSetting/SetWindSetting/SetAirflowDirection do not check whether the corresponding optional attribute/feature is supported. When support bitmasks are default-initialized to 0, SetRockSetting/SetWindSetting will return ConstraintError for any nonzero value, but the expected behavior when the attribute is not present is UnsupportedAttribute (and tests in TestFanControlCluster.cpp assert UnsupportedAttribute). Add early guards like if (!SupportsRocking()) return Status::UnsupportedAttribute; (and similarly for wind/airflow direction), before applying constraint checks.
    src/app/clusters/fan-control-server/FanControlCluster.cpp:1
  • SetRockSetting/SetWindSetting/SetAirflowDirection do not check whether the corresponding optional attribute/feature is supported. When support bitmasks are default-initialized to 0, SetRockSetting/SetWindSetting will return ConstraintError for any nonzero value, but the expected behavior when the attribute is not present is UnsupportedAttribute (and tests in TestFanControlCluster.cpp assert UnsupportedAttribute). Add early guards like if (!SupportsRocking()) return Status::UnsupportedAttribute; (and similarly for wind/airflow direction), before applying constraint checks.
    src/app/clusters/fan-control-server/FanControlCluster.cpp:1
  • SetRockSetting/SetWindSetting/SetAirflowDirection do not check whether the corresponding optional attribute/feature is supported. When support bitmasks are default-initialized to 0, SetRockSetting/SetWindSetting will return ConstraintError for any nonzero value, but the expected behavior when the attribute is not present is UnsupportedAttribute (and tests in TestFanControlCluster.cpp assert UnsupportedAttribute). Add early guards like if (!SupportsRocking()) return Status::UnsupportedAttribute; (and similarly for wind/airflow direction), before applying constraint checks.
    src/app/clusters/fan-control-server/FanControlCluster.cpp:1
  • InvokeCommand handles Step without verifying the cluster actually supports the Step feature. Even though AcceptedCommands() omits Step when not supported, an incoming invocation can still reach this code path and should return Status::UnsupportedCommand when !SupportsStep(). Add an early check inside the Step case to enforce feature gating.
    src/app/clusters/fan-control-server/fan-control-server.h:1
  • This header used to declare the legacy integration API (SetDefaultDelegate / GetDelegate). Removing those declarations is an API-breaking change for code that still includes fan-control-server.h (which the PR states exists for backwards compatibility). If backwards compatibility is intended, consider re-exporting the legacy API by including CodegenIntegration.h here (or reintroducing declarations) so existing includes continue to compile.
    src/app/clusters/fan-control-server/app_config_dependent_sources.cmake:1
  • CMake builds no longer list FanControlCluster.cpp (the actual cluster implementation) as a target source. Unless it is being built/linked via another CMake target elsewhere, this will lead to missing symbols or the FanControl server not being included at all. Recommended fix: ensure the FanControl cluster implementation is compiled in CMake builds too (either add FanControlCluster.cpp here, or link against a dedicated fan-control-server library/target that contains it).
    src/app/clusters/fan-control-server/FanControlCluster.cpp:1
  • When mIsOnOffOn is false, ApplyPercentSettingChanged()/ApplySpeedSettingChanged() intentionally avoid updating the *Current attributes, but the code still calls NotifyAttributeChanged(PercentCurrent/SpeedCurrent). This can generate spurious reports/dirty state for attributes whose values did not change. Consider removing these notifications, or only notifying when the stored current value actually changes (e.g., when SetOnOffState toggles or when you explicitly update current).
    src/app/clusters/fan-control-server/FanControlCluster.cpp:1
  • When mIsOnOffOn is false, ApplyPercentSettingChanged()/ApplySpeedSettingChanged() intentionally avoid updating the *Current attributes, but the code still calls NotifyAttributeChanged(PercentCurrent/SpeedCurrent). This can generate spurious reports/dirty state for attributes whose values did not change. Consider removing these notifications, or only notifying when the stored current value actually changes (e.g., when SetOnOffState toggles or when you explicitly update current).
    examples/chef/common/chef-fan-control-manager.cpp:231
  • In both SetPercentCurrent and SetSpeedCurrent, the error logs claim failures setting PercentCurrent/SpeedCurrent, but the updated implementation calls FanControlCluster::SetPercentSetting / SetSpeedSetting (settings, not current). Either adjust the logs and function names to reflect that these are now writing *Setting, or rework the example so it updates the appropriate *Current attributes via the cluster’s intended mechanism (e.g., SetOnOffState + settings) without conflating measured/current vs requested/setting.
        ChipLogError(NotSpecified, "ChefFanControlManager::SetPercentCurrent: failed to set PercentCurrent attribute: %d",
                     to_underlying(status));

examples/chef/common/chef-fan-control-manager.cpp:250

  • In both SetPercentCurrent and SetSpeedCurrent, the error logs claim failures setting PercentCurrent/SpeedCurrent, but the updated implementation calls FanControlCluster::SetPercentSetting / SetSpeedSetting (settings, not current). Either adjust the logs and function names to reflect that these are now writing *Setting, or rework the example so it updates the appropriate *Current attributes via the cluster’s intended mechanism (e.g., SetOnOffState + settings) without conflating measured/current vs requested/setting.
        ChipLogError(NotSpecified, "ChefFanControlManager::SetSpeedCurrent: failed to set SpeedCurrent attribute: %d",
                     to_underlying(status));

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread examples/all-devices-app/all-devices-common/devices/fan/FanDevice.h Outdated
Comment thread examples/chef/common/chef-fan-control-manager.cpp
LyudmilaKostanyan and others added 3 commits April 25, 2026 23:42
…zero

Refactors SetFanModeToOff into CommitFanModeOffState to separate state
commit from delegate notifications. Moves OnFanStateChanged and
NotifyDelegateFanDriveState calls to SetPercentSetting and
SetSpeedSetting to ensure they are only invoked once when transitioning
to Off via zero values, preventing duplicate callbacks.
Copy link
Copy Markdown
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

Copilot reviewed 59 out of 59 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (2)

examples/chef/common/chef-fan-control-manager.cpp:232

  • SetPercentCurrent() now calls FanControlCluster::SetPercentSetting(...), but the error log still says it failed to set the PercentCurrent attribute. Update the log message (and possibly the function name) to reflect what is actually being written to avoid confusion during debugging.
void ChefFanControlManager::SetPercentCurrent(uint8_t aNewPercentCurrent)
{
    ChipLogDetail(NotSpecified, "ChefFanControlManager::SetPercentCurrent: %d", aNewPercentCurrent);
    mPercentCurrent = aNewPercentCurrent;
    Status status   = Status::Success;
    if (FanControlCluster * fc = FanControl::FindClusterOnEndpoint(mEndpoint); fc != nullptr)
    {
        status = fc->SetPercentSetting(DataModel::Nullable<Percent>(mPercentCurrent)).GetStatusCode().GetStatus();
    }
    else
    {
        status = Status::UnsupportedEndpoint;
    }
    if (status != Status::Success)
    {
        ChipLogError(NotSpecified, "ChefFanControlManager::SetPercentCurrent: failed to set PercentCurrent attribute: %d",
                     to_underlying(status));
    }

examples/chef/common/chef-fan-control-manager.cpp:251

  • SetSpeedCurrent() now calls FanControlCluster::SetSpeedSetting(...), but the error log still says it failed to set the SpeedCurrent attribute. Update the log message (and/or function naming) so the logs accurately reflect the operation being performed.
void ChefFanControlManager::SetSpeedCurrent(uint8_t aNewSpeedCurrent)
{
    mSpeedCurrent = aNewSpeedCurrent;
    Status status = Status::Success;
    if (FanControlCluster * fc = FanControl::FindClusterOnEndpoint(mEndpoint); fc != nullptr)
    {
        status = fc->SetSpeedSetting(MakeNullable(aNewSpeedCurrent)).GetStatusCode().GetStatus();
    }
    else
    {
        status = Status::UnsupportedEndpoint;
    }
    if (status != Status::Success)
    {
        ChipLogError(NotSpecified, "ChefFanControlManager::SetSpeedCurrent: failed to set SpeedCurrent attribute: %d",
                     to_underlying(status));
    }

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/app/clusters/fan-control-server/FanControlCluster.cpp
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 25, 2026

PR #43408: Size comparison from d803429 to e28962b

Full report (34 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, nxp, psoc6, qpg, realtek, stm32, telink)
platform target config section d803429 e28962b change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1090754 1090754 0 0.0
RAM 144930 144930 0 0.0
bl616 lighting-app bl616+thread FLASH 1102236 1102236 0 0.0
RAM 104344 104344 0 0.0
bl616+wifi+shell FLASH 1589180 1589180 0 0.0
RAM 98240 98240 0 0.0
bl702 lighting-app bl702+eth FLASH 1053924 1053924 0 0.0
RAM 108549 108549 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 892608 892608 0 0.0
RAM 105940 105940 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 776024 776024 0 0.0
RAM 103492 103492 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 788580 788580 0 0.0
RAM 108684 108684 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 735708 735708 0 0.0
RAM 97516 97516 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 717756 717756 0 0.0
RAM 97644 97644 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 562722 562810 88 0.0
RAM 205072 205120 48 0.0
lock CC3235SF_LAUNCHXL FLASH 594586 594586 0 0.0
RAM 205272 205272 0 0.0
efr32 lock-app BRD4187C FLASH 993412 993412 0 0.0
RAM 131352 131352 0 0.0
BRD4338a FLASH 797645 797637 -8 -0.0
RAM 243452 243452 0 0.0
window-app BRD4187C FLASH 1099220 1099220 0 0.0
RAM 130392 130392 0 0.0
esp32 all-clusters-app c3devkit DRAM 99164 99212 48 0.0
FLASH 1607400 1609654 2254 0.1
IRAM 94776 94776 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 866632 867156 524 0.1
RAM 162404 162454 50 0.0
nxp contact mcxw71+release FLASH 742664 742664 0 0.0
RAM 67160 67160 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1717668 1720740 3072 0.2
RAM 214628 214668 40 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1615100 1618540 3440 0.2
RAM 211500 211548 48 0.0
light cy8ckit_062s2_43012 FLASH 1469428 1469428 0 0.0
RAM 197548 197548 0 0.0
lock cy8ckit_062s2_43012 FLASH 1502404 1502404 0 0.0
RAM 225276 225276 0 0.0
qpg lighting-app qpg6200+debug FLASH 843084 843084 0 0.0
RAM 127956 127956 0 0.0
lock-app qpg6200+debug FLASH 781644 781644 0 0.0
RAM 118904 118904 0 0.0
realtek light-switch-app rtl8777g FLASH 682856 682856 0 0.0
RAM 101824 101824 0 0.0
lighting-app rtl8777g FLASH 726760 726760 0 0.0
RAM 102164 102164 0 0.0
stm32 light STM32WB5MM-DK FLASH 477348 477348 0 0.0
RAM 141604 141604 0 0.0
telink bridge-app tl7218x FLASH 730678 730678 0 0.0
RAM 95932 95932 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 850378 850378 0 0.0
RAM 44400 44400 0 0.0
tl7218x FLASH 841784 841784 0 0.0
RAM 99796 99796 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 730300 730300 0 0.0
RAM 56064 56064 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 793526 793526 0 0.0
RAM 75248 75248 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 730198 730198 0 0.0
RAM 33544 33544 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 613126 613126 0 0.0
RAM 118632 118632 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 839918 839922 4 0.0
RAM 97504 97504 0 0.0

Copy link
Copy Markdown
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

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


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/app/clusters/fan-control-server/FanControlCluster.cpp
Comment thread src/app/clusters/fan-control-server/FanControlCluster.cpp
Comment thread src/app/clusters/fan-control-server/FanControlCluster.cpp
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 27, 2026

PR #43408: Size comparison from 59d22d2 to c99f183

Full report (34 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, nxp, psoc6, qpg, realtek, stm32, telink)
platform target config section 59d22d2 c99f183 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1090734 1090734 0 0.0
RAM 144930 144930 0 0.0
bl616 lighting-app bl616+thread FLASH 1102236 1102236 0 0.0
RAM 104344 104344 0 0.0
bl616+wifi+shell FLASH 1589180 1589180 0 0.0
RAM 98240 98240 0 0.0
bl702 lighting-app bl702+eth FLASH 1053904 1053904 0 0.0
RAM 108549 108549 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 892608 892608 0 0.0
RAM 105940 105940 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 776024 776024 0 0.0
RAM 103492 103492 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 788580 788580 0 0.0
RAM 108684 108684 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 735708 735708 0 0.0
RAM 97516 97516 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 717756 717756 0 0.0
RAM 97644 97644 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 562722 562810 88 0.0
RAM 205072 205120 48 0.0
lock CC3235SF_LAUNCHXL FLASH 594586 594586 0 0.0
RAM 205272 205272 0 0.0
efr32 lock-app BRD4187C FLASH 993412 993412 0 0.0
RAM 131352 131352 0 0.0
BRD4338a FLASH 797645 797637 -8 -0.0
RAM 243452 243452 0 0.0
window-app BRD4187C FLASH 1099220 1099220 0 0.0
RAM 130392 130392 0 0.0
esp32 all-clusters-app c3devkit DRAM 99164 99212 48 0.0
FLASH 1607400 1609654 2254 0.1
IRAM 94776 94776 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 866632 867156 524 0.1
RAM 162404 162454 50 0.0
nxp contact mcxw71+release FLASH 742664 742664 0 0.0
RAM 67160 67160 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1717668 1720740 3072 0.2
RAM 214628 214668 40 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1615100 1618540 3440 0.2
RAM 211500 211548 48 0.0
light cy8ckit_062s2_43012 FLASH 1469428 1469428 0 0.0
RAM 197548 197548 0 0.0
lock cy8ckit_062s2_43012 FLASH 1502404 1502404 0 0.0
RAM 225276 225276 0 0.0
qpg lighting-app qpg6200+debug FLASH 843068 843068 0 0.0
RAM 127956 127956 0 0.0
lock-app qpg6200+debug FLASH 781644 781644 0 0.0
RAM 118904 118904 0 0.0
realtek light-switch-app rtl8777g FLASH 684680 684680 0 0.0
RAM 101832 101832 0 0.0
lighting-app rtl8777g FLASH 728728 728728 0 0.0
RAM 102164 102164 0 0.0
stm32 light STM32WB5MM-DK FLASH 477348 477348 0 0.0
RAM 141604 141604 0 0.0
telink bridge-app tl7218x FLASH 730678 730678 0 0.0
RAM 95932 95932 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 850378 850378 0 0.0
RAM 44400 44400 0 0.0
tl7218x FLASH 841784 841784 0 0.0
RAM 99796 99796 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 730300 730300 0 0.0
RAM 56064 56064 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 793526 793526 0 0.0
RAM 75248 75248 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 730198 730198 0 0.0
RAM 33544 33544 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 613126 613126 0 0.0
RAM 118632 118632 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 839898 839902 4 0.0
RAM 97504 97504 0 0.0

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 27, 2026

PR #43408: Size comparison from 59d22d2 to d399071

Full report (34 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, nxp, psoc6, qpg, realtek, stm32, telink)
platform target config section 59d22d2 d399071 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1090734 1090734 0 0.0
RAM 144930 144930 0 0.0
bl616 lighting-app bl616+thread FLASH 1102236 1102236 0 0.0
RAM 104344 104344 0 0.0
bl616+wifi+shell FLASH 1589180 1589180 0 0.0
RAM 98240 98240 0 0.0
bl702 lighting-app bl702+eth FLASH 1053904 1053904 0 0.0
RAM 108549 108549 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 892608 892608 0 0.0
RAM 105940 105940 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 776024 776024 0 0.0
RAM 103492 103492 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 788580 788580 0 0.0
RAM 108684 108684 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 735708 735708 0 0.0
RAM 97516 97516 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 717756 717756 0 0.0
RAM 97644 97644 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 562722 562810 88 0.0
RAM 205072 205120 48 0.0
lock CC3235SF_LAUNCHXL FLASH 594586 594586 0 0.0
RAM 205272 205272 0 0.0
efr32 lock-app BRD4187C FLASH 993412 993412 0 0.0
RAM 131352 131352 0 0.0
BRD4338a FLASH 797645 797637 -8 -0.0
RAM 243452 243452 0 0.0
window-app BRD4187C FLASH 1099220 1099220 0 0.0
RAM 130392 130392 0 0.0
esp32 all-clusters-app c3devkit DRAM 99164 99212 48 0.0
FLASH 1607400 1609654 2254 0.1
IRAM 94776 94776 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 866632 867156 524 0.1
RAM 162404 162454 50 0.0
nxp contact mcxw71+release FLASH 742664 742664 0 0.0
RAM 67160 67160 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1717668 1720740 3072 0.2
RAM 214628 214668 40 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1615100 1618540 3440 0.2
RAM 211500 211548 48 0.0
light cy8ckit_062s2_43012 FLASH 1469428 1469428 0 0.0
RAM 197548 197548 0 0.0
lock cy8ckit_062s2_43012 FLASH 1502404 1502404 0 0.0
RAM 225276 225276 0 0.0
qpg lighting-app qpg6200+debug FLASH 843068 843068 0 0.0
RAM 127956 127956 0 0.0
lock-app qpg6200+debug FLASH 781644 781644 0 0.0
RAM 118904 118904 0 0.0
realtek light-switch-app rtl8777g FLASH 684680 684680 0 0.0
RAM 101832 101832 0 0.0
lighting-app rtl8777g FLASH 728728 728728 0 0.0
RAM 102164 102164 0 0.0
stm32 light STM32WB5MM-DK FLASH 477348 477348 0 0.0
RAM 141604 141604 0 0.0
telink bridge-app tl7218x FLASH 730678 730678 0 0.0
RAM 95932 95932 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 850378 850378 0 0.0
RAM 44400 44400 0 0.0
tl7218x FLASH 841784 841784 0 0.0
RAM 99796 99796 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 730300 730300 0 0.0
RAM 56064 56064 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 793526 793526 0 0.0
RAM 75248 75248 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 730198 730198 0 0.0
RAM 33544 33544 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 613126 613126 0 0.0
RAM 118632 118632 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 839898 839902 4 0.0
RAM 97504 97504 0 0.0

Copy link
Copy Markdown
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

Copilot reviewed 59 out of 59 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (1)

examples/air-purifier-app/air-purifier-common/src/air-purifier-manager.cpp:241

  • PercentSettingWriteCallback is invoked in response to a PercentSetting attribute change, but it now writes back via FanControlCluster::SetPercentSetting(...). This is likely to re-trigger the same attribute-change path (feedback loop) and the log message indicates the intent was to update PercentCurrent, not PercentSetting. Consider removing this write-back and letting FanControlCluster maintain PercentCurrent based on SetOnOffState, or update the callback to only update the current attribute through the proper mechanism.
void AirPurifierManager::PercentSettingWriteCallback(uint8_t aNewPercentSetting)
{
    ChipLogDetail(NotSpecified, "AirPurifierManager::PercentSettingWriteCallback: %d", static_cast<int>(aNewPercentSetting));
    if (mOnOffClusterOn)
    {
        FanControlCluster * c = FanControl::FindClusterOnEndpoint(mEndpointId);
        Status status         = c == nullptr
                    ? Status::UnsupportedEndpoint
                    : c->SetPercentSetting(DataModel::Nullable<Percent>(aNewPercentSetting)).GetStatusCode().GetStatus();
        if (status != Status::Success)
        {
            ChipLogError(NotSpecified,
                         "AirPurifierManager::PercentSettingWriteCallback: failed to set PercentCurrent attribute: %d",
                         to_underlying(status));
        }
    }

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/app/clusters/fan-control-server/FanControlCluster.cpp
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 27, 2026

PR #43408: Size comparison from 59d22d2 to 09299a1

Full report (34 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, nxp, psoc6, qpg, realtek, stm32, telink)
platform target config section 59d22d2 09299a1 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1090734 1090734 0 0.0
RAM 144930 144930 0 0.0
bl616 lighting-app bl616+thread FLASH 1102236 1102236 0 0.0
RAM 104344 104344 0 0.0
bl616+wifi+shell FLASH 1589180 1589180 0 0.0
RAM 98240 98240 0 0.0
bl702 lighting-app bl702+eth FLASH 1053904 1053904 0 0.0
RAM 108549 108549 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 892608 892608 0 0.0
RAM 105940 105940 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 776024 776024 0 0.0
RAM 103492 103492 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 788580 788580 0 0.0
RAM 108684 108684 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 735708 735708 0 0.0
RAM 97516 97516 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 717756 717756 0 0.0
RAM 97644 97644 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 562722 562810 88 0.0
RAM 205072 205120 48 0.0
lock CC3235SF_LAUNCHXL FLASH 594586 594586 0 0.0
RAM 205272 205272 0 0.0
efr32 lock-app BRD4187C FLASH 993412 993412 0 0.0
RAM 131352 131352 0 0.0
BRD4338a FLASH 797645 797637 -8 -0.0
RAM 243452 243452 0 0.0
window-app BRD4187C FLASH 1099220 1099220 0 0.0
RAM 130392 130392 0 0.0
esp32 all-clusters-app c3devkit DRAM 99164 99212 48 0.0
FLASH 1607400 1609654 2254 0.1
IRAM 94776 94776 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 866632 867156 524 0.1
RAM 162404 162454 50 0.0
nxp contact mcxw71+release FLASH 742664 742664 0 0.0
RAM 67160 67160 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1717668 1720740 3072 0.2
RAM 214628 214668 40 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1615100 1618540 3440 0.2
RAM 211500 211548 48 0.0
light cy8ckit_062s2_43012 FLASH 1469428 1469428 0 0.0
RAM 197548 197548 0 0.0
lock cy8ckit_062s2_43012 FLASH 1502404 1502404 0 0.0
RAM 225276 225276 0 0.0
qpg lighting-app qpg6200+debug FLASH 843068 843068 0 0.0
RAM 127956 127956 0 0.0
lock-app qpg6200+debug FLASH 781644 781644 0 0.0
RAM 118904 118904 0 0.0
realtek light-switch-app rtl8777g FLASH 684680 684680 0 0.0
RAM 101832 101832 0 0.0
lighting-app rtl8777g FLASH 728728 728728 0 0.0
RAM 102164 102164 0 0.0
stm32 light STM32WB5MM-DK FLASH 477348 477348 0 0.0
RAM 141604 141604 0 0.0
telink bridge-app tl7218x FLASH 730678 730678 0 0.0
RAM 95932 95932 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 850378 850378 0 0.0
RAM 44400 44400 0 0.0
tl7218x FLASH 841784 841784 0 0.0
RAM 99796 99796 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 730300 730300 0 0.0
RAM 56064 56064 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 793526 793526 0 0.0
RAM 75248 75248 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 730198 730198 0 0.0
RAM 33544 33544 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 613126 613126 0 0.0
RAM 118632 118632 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 839898 839902 4 0.0
RAM 97504 97504 0 0.0

@github-actions
Copy link
Copy Markdown

PR #43408: Size comparison from 59d22d2 to 2a15f03

Full report (10 builds for cc13x4_26x4, cc32xx, nrfconnect, realtek, stm32)
platform target config section 59d22d2 2a15f03 change % change
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 776024 776024 0 0.0
RAM 103492 103492 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 788580 788580 0 0.0
RAM 108684 108684 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 735708 735708 0 0.0
RAM 97516 97516 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 717756 717756 0 0.0
RAM 97644 97644 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 562722 562810 88 0.0
RAM 205072 205120 48 0.0
lock CC3235SF_LAUNCHXL FLASH 594586 594586 0 0.0
RAM 205272 205272 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 866632 867176 544 0.1
RAM 162404 162454 50 0.0
realtek light-switch-app rtl8777g FLASH 684680 684680 0 0.0
RAM 101832 101832 0 0.0
lighting-app rtl8777g FLASH 728728 728728 0 0.0
RAM 102164 102164 0 0.0
stm32 light STM32WB5MM-DK FLASH 477348 477348 0 0.0
RAM 141604 141604 0 0.0

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

Projects

Development

Successfully merging this pull request may close these issues.

Decouple Fan Control cluster

6 participants