[New device support]: SMLIGHT ZREL (ZREL-MG24) Zigbee-over-Ethernet relay

Open Beginner friendly
#33,577 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
72/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active
Tech stack
typescript
Domain
embedded-iot

Research direction

The payload gives the full device database entry and a ready-made external definition (zigbeeModel ZREL-MG24, vendor SMLIGHT, forcePowerSource plus identify). Start by checking the entry's clusters (genBasic and genIdentify in, genOta out) against how the existing SMLIGHT router definitions are written. Then add the definition following the same pattern and confirm the device loads with the new model name and description. Done when the Identify command still works and the device is no longer auto-generated.

Written by the indexing model from the issue text.

Description

new device support
Link

https://smlight.tech/products/zrel

Database entry

{"id":63,"type":"Router","ieeeAddr":"0x982ac3fffe818cbf","nwkAddr":38374,"manufId":43981,"manufName":"SMLIGHT","powerSource":"Mains (single phase)","modelId":"ZREL-MG24","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":8,"inClusterList":[0,3],"outClusterList":[25],"clusters":{"genBasic":{"attributes":{"zclVersion":8,"modelId":"ZREL-MG24","manufacturerName":"SMLIGHT","powerSource":1,"appVersion":1,"stackVersion":2,"hwVersion":150,"dateCode":"20261026","swBuildId":"1.0.3"}}},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":1,"stackVersion":2,"hwVersion":150,"dateCode":"20261026","swBuildId":"1.0.3","zclVersion":8,"interviewCompleted":true,"interviewState":"SUCCESSFUL","meta":{}}

Zigbee2MQTT version

2.14.3

External definition
import * as m from "zigbee-herdsman-converters/lib/modernExtend";

export default {
    zigbeeModel: ["ZREL-MG24"],
    model: "ZREL",
    vendor: "SMLIGHT",
    description: "Zigbee over Ethernet relay (Master/Remote router pair)",
    extend: [m.identify(), m.forcePowerSource({powerSource: "Mains (single phase)"})],
};
What does/doesn't work with the external definition?

Both units (Master and Remote) report the same modelID "ZREL-MG24" and join as ordinary mains-powered routers. Routing works. The device exposes only genBasic (0) and genIdentify (3) in, genOta (25) out, so Identify is the only control; there is no genOnOff, which is why the existing SMLIGHT "SLZB-06M" router definition (with m.onOff) isn't a good fit. With the auto-generated definition the Identify command is accepted without error. The external definition above has not been loaded on my install yet; it only adds the proper model/vendor/description. Firmware updates are done in SMLIGHT's ZREL Config app, not via Zigbee OTA.

Notes

ZREL is a Master + Remote pair (EFR32MG24 + W5500) that tunnels raw Zigbee radio traffic between the two units over Ethernet (TCP 6600); both join the existing network as routers. Firmware 1.0.3, hwVersion 150, dateCode 20261026, manufacturer code 43981 (0xABCD). Second unit: identical database entry apart from ieeeAddr/nwkAddr.

Dominant language
TypeScript
Stars
15.8k
Forks
2.2k
Avg merge
1d 14h
Merged PRs (30d)
37

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Koenkk/zigbee2mqtt

All issues in Koenkk/zigbee2mqtt

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.