Skip to content

Add support for Simplicity SDK 2025.12.3#725

Merged
puddly merged 1 commit into
zigpy:devfrom
puddly:puddly/sisdk-2025.12.3
Jun 4, 2026
Merged

Add support for Simplicity SDK 2025.12.3#725
puddly merged 1 commit into
zigpy:devfrom
puddly:puddly/sisdk-2025.12.3

Conversation

@puddly
Copy link
Copy Markdown
Contributor

@puddly puddly commented Jun 3, 2026

No new commands that we use but I'm adding these for completeness.

@codecov
Copy link
Copy Markdown

codecov Bot commented Jun 3, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.54%. Comparing base (4ee82da) to head (85408d7).

Additional details and impacted files
@@           Coverage Diff           @@
##              dev     #725   +/-   ##
=======================================
  Coverage   99.54%   99.54%           
=======================================
  Files          61       61           
  Lines        4147     4181   +34     
=======================================
+ Hits         4128     4162   +34     
  Misses         19       19           

☔ 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.

Copy link
Copy Markdown

@zigpy-review-bot zigpy-review-bot left a comment

Choose a reason for hiding this comment

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

LGTM. I independently verified every frame ID and struct layout in this PR against the actual simplicity-sdk/2025.12.3 headers (installed via slt), and cross-checked the pre-2025.12 items against zigbee-herdsman. Everything matches exactly.

Verified against the 2025.12.3 SDK source (ezsp-enum.h, stack/include/sl_zigbee_dhc.h):

  • All DHC PA frame IDs 0x01520x0169 ✅ — including the out-of-order WRITE_RSSI_OFFSET = 0x015F and the 0x0165 gap (READ_PA_VERSION = 0x0164READ_PA_SIGNATURE = 0x0166; there is no writePaVersion, PA version is read-only).
  • All five DHC structs match field-for-field (widths + order): descriptor, curve segment, curve, table, metadata. The maxPowerLevel camelCase field amid otherwise snake_case names is faithful — the SDK header itself notes field name 'maxPowerLevel' must match YAML for generated marshal code.
  • setPendingNetworkUpdateChannel = 0x003D ✅ — confirmed; the slot was genuinely reclaimed (getFirstBeacon no longer exists in the 2025.12.3 SDK).
  • radioSetSchedulerPriorities = 0x012B is absent from 2025.12.3's ezsp-enum.h (only GET = 0x012A and SLIPTIME 0x012C/0x012D remain), confirming the in-code note that it was dropped in 2025.12.2 without a version bump. The v14 (3-field) → v16+ (5-field) split is correct; sl_802154_radio_priorities_t matches the header exactly.

Full test suite passes locally (424) and the new structs round-trip at the expected packed sizes. One optional, non-blocking note inline.

),
# Added in Simplicity SDK 2025.12.0
"setPendingNetworkUpdateChannel": (
0x003D,
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Optional / non-blocking: since the 2025.12.3 SDK reclaimed 0x003D for this command, the inherited getFirstBeacon (at 0x003D since v7) is now a dead opcode in v18 firmware. Harmless as-is — setPendingNetworkUpdateChannel is inserted later so it wins COMMANDS_BY_ID[0x003D], and both stay callable by name — and it mirrors the existing v17 pattern (gpProxyTableRemoveEntry/gpClearProxyTable reusing 0x5D/0x5F). But if you'd like v18 to reflect the firmware exactly, you could drop getFirstBeacon here.

@puddly puddly merged commit cd3378f into zigpy:dev Jun 4, 2026
12 checks passed
@puddly puddly deleted the puddly/sisdk-2025.12.3 branch June 4, 2026 18:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants