Skip to content
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

feat(zigbee): Add setLight APIs to manually operate lights #10626

Merged
merged 2 commits into from
Nov 20, 2024

Conversation

P-R-O-C-H-Y
Copy link
Member

Description of Change

This PR adds APIs to the light endpoints to enable controlling them by itself.
The status of the Light is updated in the clusters, so the actual state is updated in the Smart home apps.

Tests scenarios

Tested locally with HomeAssistant.

Related links

Please provide links to related issue, PRs etc.

(eg. Closes #number of issue)

@P-R-O-C-H-Y P-R-O-C-H-Y added the Area: Libraries Issue is related to Library support. label Nov 19, 2024
@P-R-O-C-H-Y P-R-O-C-H-Y self-assigned this Nov 19, 2024
Copy link
Contributor

github-actions bot commented Nov 19, 2024

Warnings
⚠️
	The **target branch** for this Pull Request **must be the default branch** of the project (`master`).

	If you would like to add this feature to a different branch, please state this in the PR description and we will consider it.

👋 Hello P-R-O-C-H-Y, we appreciate your contribution to this project!


Click to see more instructions ...


This automated output is generated by the PR linter DangerJS, which checks if your Pull Request meets the project's requirements and helps you fix potential issues.

DangerJS is triggered with each push event to a Pull Request and modify the contents of this comment.

Please consider the following:
- Danger mainly focuses on the PR structure and formatting and can't understand the meaning behind your code or changes.
- Danger is not a substitute for human code reviews; it's still important to request a code review from your colleagues.
- Resolve all warnings (⚠️ ) before requesting a review from human reviewers - they will appreciate it.
- To manually retry these Danger checks, please navigate to the Actions tab and re-run last Danger workflow.

Review and merge process you can expect ...


We do welcome contributions in the form of bug reports, feature requests and pull requests.

1. An internal issue has been created for the PR, we assign it to the relevant engineer.
2. They review the PR and either approve it or ask you for changes or clarifications.
3. Once the GitHub PR is approved we do the final review, collect approvals from core owners and make sure all the automated tests are passing.
- At this point we may do some adjustments to the proposed change, or extend it by adding tests or documentation.
4. If the change is approved and passes the tests it is merged into the default branch.

Generated by 🚫 dangerJS against 3be6664

@P-R-O-C-H-Y P-R-O-C-H-Y force-pushed the feat/zigbee-set-light branch from 05a07fc to cdc1a42 Compare November 19, 2024 16:33
Copy link
Contributor

Memory usage test (comparing PR against master branch)

The table below shows the summary of memory usage change (decrease - increase) in bytes and percentage for each target.

MemoryFLASH [bytes]FLASH [%]RAM [bytes]RAM [%]
TargetDECINCDECINCDECINCDECINC
ESP32C6💚 -251‼️ +13K💚 -0.05‼️ +2.700⚠️ +16640.00‼️ +5.60
ESP32H2💚 -4K‼️ +9K💚 -0.69‼️ +1.830⚠️ +15720.00‼️ +5.42
Click to expand the detailed deltas report [usage change in BYTES]
TargetESP32C6ESP32H2
ExampleFLASHRAMFLASHRAM
Zigbee/examples/Zigbee_Color_Dimmable_Light‼️ +3K⚠️ +1664⚠️ +503⚠️ +1572
Zigbee/examples/Zigbee_Color_Dimmer_Switch‼️ +9K⚠️ +936‼️ +6K⚠️ +844
Zigbee/examples/Zigbee_On_Off_Light‼️ +3K⚠️ +1664💚 -255⚠️ +1572
Zigbee/examples/Zigbee_On_Off_Switch‼️ +9K⚠️ +920‼️ +6K⚠️ +844
Zigbee/examples/Zigbee_Scan_Networks‼️ +13K⚠️ +1236‼️ +9K⚠️ +1112
Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy💚 -251⚠️ +964💚 -4K⚠️ +832
Zigbee/examples/Zigbee_Temperature_Sensor‼️ +11K⚠️ +944‼️ +7K⚠️ +836
Zigbee/examples/Zigbee_Thermostat‼️ +11K⚠️ +608‼️ +8K⚠️ +540

Copy link
Contributor

Test Results

 62 files   62 suites   7m 46s ⏱️
 22 tests  21 ✅ 0 💤 1 ❌
144 runs  143 ✅ 0 💤 1 ❌

For more details on these failures, see this check.

Results for commit cdc1a42.

@@ -98,6 +102,8 @@ void loop() {
Zigbee.factoryReset();
}
}
// Increase blightness by 50 every time the button is pressed
zbColorLight.setLightLevel(zbColorLight.getLightLevel() + 50);
Copy link
Collaborator

@SuGlider SuGlider Nov 19, 2024

Choose a reason for hiding this comment

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

How would it overflow? Maybe it is necessary to promote something to uint16_t in order to get the u8 from uint16_t & 0xFF final value?

Nervermind - overflow goes fine with 8 bits.

Copy link
Member Author

Choose a reason for hiding this comment

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

the setLightLevel parameter is uint8_t so max is 255. When it overflows, it's starting from 0 + the overflowed value.
Its like that on purpose to have it simple :)

Copy link
Collaborator

@SuGlider SuGlider left a comment

Choose a reason for hiding this comment

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

LGTM

@me-no-dev me-no-dev added the Status: Pending Merge Pull Request is ready to be merged label Nov 20, 2024
@me-no-dev me-no-dev merged commit 268b31c into espressif:release/v3.1.x Nov 20, 2024
46 of 47 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: Libraries Issue is related to Library support. Status: Pending Merge Pull Request is ready to be merged
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants