Repository navigation
Green Power support - #279
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## dev #279 +/- ##
==========================================
+ Coverage 99.14% 99.15% +0.01%
==========================================
Files 7 7
Lines 933 949 +16
==========================================
+ Hits 925 941 +16
Misses 8 8 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
zigpy-review-bot
left a comment
There was a problem hiding this comment.
Clean, well-tested change: the GPDF is handed to zigpy unprocessed (MIC included), the unprotected-repeat debouncing is a sensible answer to the stripped MAC header, and the alias NotImplementedError is exactly what zigpy's GP manager already catches and falls back from. I checked it out against zigpy 2.4.0: all 145 tests pass.
One thing to fix before merging, plus two non-blocking notes (inline).
|
Post-merge follow-up to my earlier review (both points from that one were addressed before merge, thanks). I went through the merged head (f931178) against zigpy 2.4.0, including probes through this repo's Unprotected GPDs are where deCONZ ends up worse than bellows. Since the firmware strips the MAC header, unprotected GPDFs reach zigpy with 1. Commissioning an unprotected GPD with MACSeqNumCap crashes (zigpy)
2. Commands run twice when a proxy also hears the GPD (zigpy)The direct copy arrives with 3. Commissioning retry within 2 s is dropped (here and in zigpy)The debounce key here ( 4. The 2 s window is wider than needed (here)In my earlier review I called collapsing two quick presses unavoidable. That was wrong: spec A.1.6.3.3 bounds a GPFS (the repetitions the firmware delivers) at 5 ms, or 7 ms with RxAfterTx set. A window of a few hundred milliseconds would still absorb the repetitions plus host latency, and would keep deliberate re-presses that Minor, not from this PR's code
|
|
Hmm, looks like I may need to tune what the bot considers a "trivial PR", as it skipped some things in the initial review. More detailed one is above now, but I've not checked any of it. |
|
Unprotected GPDs are a bit tricky here because of the MAC header stripping. Unfortunately, I do not own a single GP device that fully disables encryption so the actual impact of this is hard to gauge. It's technically permitted but do any devices even exist? |
|
I guess we'll find out at some point 😄 |
The adapter firmware doesn't do any sort of filtering but does hide the MAC header so unprotected frames cannot be told apart from one another, requiring debouncing.