Feat/Add Zigbee for ESP32-C6 based gateways#502
Merged
silverailscolo merged 68 commits intoramses-rf:masterfrom Mar 7, 2026
Merged
Feat/Add Zigbee for ESP32-C6 based gateways#502silverailscolo merged 68 commits intoramses-rf:masterfrom
silverailscolo merged 68 commits intoramses-rf:masterfrom
Conversation
The monolithic transport.py was being shadowed by the transport/ package added in upstream v0.55.2. ZigbeeTransport, FileTransport, PortTransport and is_hgi80 were therefore unimportable via ramses_tx.transport. - Add transport/zigbee.py with _ZigbeeTransportAbstractor + ZigbeeTransport - Update transport/__init__.py to re-export FileTransport, PortTransport, ZigbeeTransport and is_hgi80 so ramses_tx.__init__ imports resolve
…ndling in factory - ZigbeeTransport.__init__ was using *args/**kwargs and calling super() which would fail because _FullTransport.__init__ only accepts keyword args (/, *) and _ZigbeeTransportAbstractor.__init__ was never reached in the MRO chain - Fix: give ZigbeeTransport an explicit signature (zigbee_url, protocol, *, config, extra, loop) and call both parent inits explicitly - factory.py: add zigbee:// handling before assert port_config (Zigbee does not need a port_config); imports ZigbeeTransport lazily to avoid circular imports; waits for connection_made with 60s timeout
… version to 0.55.2, fix import ordering - zigbee.py: remove inner per-frame debug logs from cluster_command, _decode_command_payload, _send_unacked; demote ACK scheduling from INFO to DEBUG; simplify _write_frame log to one line - transport.py: restore to upstream (zigbee code now lives in transport/zigbee.py) - Fix ruff issues: import ordering in transport/__init__.py and ramses_tx/__init__.py; remove unused FileTransport/PortTransport/is_hgi80 re-exports from ramses_tx/__init__.py; rename unused loop variable to _attempt - Revert version to 0.55.2 (matches upstream)
silverailscolo
requested changes
Mar 6, 2026
Collaborator
silverailscolo
left a comment
There was a problem hiding this comment.
Thanks @IMMRMKW Please add a test set, similar to that of the mqtt protocol with coverage of your module >90%
Minimum allowed line rate is |
silverailscolo
approved these changes
Mar 7, 2026
Collaborator
silverailscolo
left a comment
There was a problem hiding this comment.
Thanks @IMMRMKW
No extra dependencies?
Not 100% sure about the [tool.mypy.overrides]. In general: "Use overrides sparingly" but we can revisit
This was referenced Mar 8, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add Zigbee transport for ESP32-C6 based Ramses ESP boards
This PR adds Zigbee as a transport option alongside MQTT for boards based on the ESP32-C6 (Ramses ESP). For now, Zigbee support is limited to ZHA.
A pull request has been submitted to the ZHA device handlers repository so that pairing will eventually be fully automatic. In the meantime, the device handler needs to be added manually — see the Ramses ESP Wiki for pairing instructions and usage details.
Changes in Ramses RF
A new
ZigbeeTransportclass has been added that handles communication with the Ramses ESP over Zigbee. It integrates with ZHA via the zigpy cluster interface, translating incoming Zigbee frames into the existing packet format and routing outgoing frames back over the Zigbee connection.The transport factory has been updated to recognise
zigbee://URIs and instantiateZigbeeTransportaccordingly, keeping the Zigbee path cleanly separated from the existing serial and MQTT transports.