cpcd-rtl8196e is missing #150
Replies: 2 comments 2 replies
You cannot find it because it was never there — my bug, not your search
That leaves the real question, which is better than the one you asked. Let me separate what is impossible from what is merely unbuilt, because I had those two confused myself until I went and checked. The hard fact: zigbeed can never run on the gatewayNot "would be slow" — cannot exist. The Zigbee PRO stack that zigbeed links against ships precompiled in the Silabs SDK, as No MIPS anywhere in the SDK, and the stack is closed source, so nobody outside Silabs can produce one. That is why But your split — cpcd on the hub, zigbeed on HA — is not blocked. It is just unwritten.I nearly told you it was impossible, on the grounds that cpcd only speaks
So our patch moved the radio across the network, not the application. Moving the application too would be a second, different patch — and every piece on that path turns out to be open source. zigbeed itself never calls CPC: it takes a So: cpcd's server side plus the libcpc client side. Two ends, both source, neither exotic. Not an afternoon, but not a wall either — and the honest cost is not the writing, it is carrying a patch on two upstreams across their releases, forever, for a link that has to be exactly right or the radio misbehaves in ways that are painful to debug. Which makes the real question: what would it buy you?There is a genuine argument for it, and if it is the one you have in mind I would like to hear it said out loud. Today the TCP hop carries raw UART bytes — the in-kernel bridge is a byte pipe — so the CPC session itself spans the network, and a stalled or dropped TCP connection is something CPC has to notice and resynchronise from. Moving cpcd to the hub would keep the CPC link entirely on-box over the UART, and push the network boundary up to a layer with more tolerance for latency. That is a real engineering position, not a preference. What it costs is the patch surface above, on a link where the current arrangement is now well-tested — the zigbeed reconnect crash in #112 is exactly the class of bug this split can produce, and it is fixed and quiet now. So tell me which one is driving you. If it is "the radio should not care whether Home Assistant is up", that is the interesting version and worth its own thread. If it is "one less moving part on the HA box", the container is genuinely the smaller moving part and I would just start here: What ships todayWhich is your setup exactly, minus moving cpcd. Start from One caveat, since you are on a G4: the RCP build for |
|
@jnilo1 Thanks a lot for the insight and providing compiled cpcd! You are right about the robustness when running cpcd on the hub. That's also one thing I am looking for. Based your notes You brought up a lot good points of extra effort maintaining this solution. Maybe I was under wrong impression that CPC carries all traffic including zigbee/BLE/openthread, and when a client connect to CPCd, CPCd only sends related packets, say zigbee, to the client, other packets are filtered. If the assumption was right, the TCP will carry less traffic than UART. Let me study more on the information you provided, and think about if it is the right path going forward. Nevertheless, I deeply appreciate the extra effort you putting into discussion! |
Uh oh!
There was an error while loading. Please reload this page.
@jnilo1 Under build instructions of 2-Zigbee-Radio-Silabs-EFR32/25-RCP-UART-HW/README.md, you mentioned cpcd-rtl8196e. But I couldn't find it under 25-RCP-UART-HW. Do you know where I can find it? I am interested in have cpcd run at the hub. and HomeAssistant running zigbeed and zigbee2mqtt. Thanks!
All reactions