One Zigbee gateway to rule them all?

Some details here:
https://github.com/home-assistant/home-assistant/pull/6263

I think he’s based it on the HUSBZB-1 stick. Check out this post. https://community.home-assistant.io/t/z-wave-zigbee-usb-stick/8232

Yeah it seems that each chipset vendor implements a totally different uart command set

I’ve got a EM3588 based device on the way so I’ll see how I get on with that for now. Hopefully most stuff will “just work” and at worst it will hopefully provide a good jumping off point to expand things.

2 Likes

Which device did you order? I suppose it’s different from the HUSBZB-1 stick?

Hey folks,

Do you know if the Silicon Labs ETRX358USB will work?
http://www.silabs.com/products/wireless/mesh-networking/telegesis-modules-gateways/ertx358-usb-stick

Since it’s ETRX3588 based and supports EmberZNet I am guessing yes.

@MindrustUK - Did you have a chance to test with your EM3588 device?

@hijinx Unfortunately Fed Ex are messing me around a bit, hoping I get the stick sooner rather than later so I can test and provide some feedback.

1 Like

Sure np. let us know when you are able :slight_smile:

Just found in the PR:

In terms of the local radio, it should support any EmberZNet device that supports the EZSP protocol.

Silicon Labs ETRX358USB seems to use an AT-command based protocol, so it’s probably not compatible.

Any update on this?

@corneyl , @hijinx - FWICT, you might be able to flash a working firmware onto the ETRX35x devices. It’s not clear whether such a firmware is even available without buying the developer kit, though.

I found a bunch of firmware on GitHub.
I’ll share the link.

Here is the link to the FW I found:


Now that I look at it again its for the em357 family, not etrx35x.

So latest update, FedEx after much screwing around delivered at long last!

So here’s what I’ve got: http://eu.mouser.com/search/ProductDetail.aspx?r=634-RD-0002-0201

I had to follow the out of the box guide to upload the NCP firmware to the device (which is all nicely done through python): https://www.silabs.com/documents/public/user-guides/ug129-zigbee-gateway-ref-design-guide.pdf

Unfortunately on startup of HASS it dies with an error of:

DEBUG:bellows.ezsp:Send command version
DEBUG:bellows.uart:Sending: b'\x00B!\xa8P\xed,~'
DEBUG:bellows.uart:Data frame: b'\x01B\xa1\xa8Q(\x05\xeb\xd8{~'
DEBUG:bellows.uart:Sending: b'\x81`Y~'
DEBUG:bellows.ezsp:Application frame 0 (version) received
DEBUG:bellows.ezsp:Send command setConfigurationValue
DEBUG:bellows.uart:Sending: b"}1C!\xfbX(\x15\xc3'~"
DEBUG:bellows.uart:Data frame: b'\x12C\xa1WT\xa3`~'
DEBUG:bellows.uart:Sending: b'\x82P:~'
ERROR:homeassistant.core:Error doing job: Exception in callback SerialTransport._read_ready()
Traceback (most recent call last):
  File "/usr/lib/python3.4/asyncio/events.py", line 120, in _run
    self._callback(*self._args)
  File "/opt/hass/.homeassistant/deps/serial_asyncio/__init__.py", line 106, in _read_ready
    self._protocol.data_received(data)
  File "/opt/hass/.homeassistant/deps/bellows/uart.py", line 54, in data_received
    self.frame_received(frame)
  File "/opt/hass/.homeassistant/deps/bellows/uart.py", line 64, in frame_received
    self.data_frame_received(data)
  File "/opt/hass/.homeassistant/deps/bellows/uart.py", line 84, in data_frame_received
    self._application.frame_received(self._randomize(data[1:-3]))
  File "/opt/hass/.homeassistant/deps/bellows/ezsp.py", line 144, in frame_received
    frame_name = self.COMMANDS_BY_ID[frame_id][0]
KeyError: 255```

Which isn't perfect but I don't think it's actually that bad either.

Cloning bellows directly the "Scan" and "Config" options both seem to work so I'm hoping this is a minor fix around the protocol. I'll carry on my investigation and see what else I can produce although I think the next topic for this might be configuration / component specific and not in hardware. Hopefully once this problem is sorted I'll post a Zigbee compatibility list as someone requested.

Have you got the stick working properly?

Not yet, I need to find some time to get a proper look into why this is happening. Maybe over the weekend if I get the chance.

So you ran the bellows directly without HASS?
I have some zigbee dongles and I tried to start the bellows cli but it seem’s that I dont fully understand how to pass the parameters to bellows.
This is what I tried but zero success…
bellows -d COM3
Error: Invalid value for “-d” / “–device”: Path “COM3” does not exist.

Can you give me an example how you started the bellows cli?

A French guy is now working on such gateway, he his the only one I’ve heard of that successfully reversed engineer the Xiaomi protocol!

His homemade bridge support Philips Hue, Xiaomi sensor/light, Light Link, Toshiba Pluzzy and he’ll also integrate support for Ikea line of product.

He’s preparing a Kickstarter campaign to sell he’s bridge (but will also share his code/hardware).
If you understand French you can find more info on his website:

1 Like

Google translate works very well, too.

Hi, Are you on Windows? I assume so as you’re specifying COM3 rather than /dev/ttyUSBn.