Integration for Zigbee-access on Sonoff iHost

Sonoff iHost is a neat little 32-bit ARM single-board computer. It was already mentioned in some threads and introduced here:

It is still under developement with regular updates and releases. At this point it is now possible to run Home Assistant in a Docker, including HACS and access to the configuration files via a file app.

The iHost has an integrated Zigbee controller. Unfortunately the Home Assistant Container has no direct access. Zigbee devices are managed in a seperate Container via Homebridge. There is a Homebridge Plugin that provides direct access to the native Zigbee devices on iHost: homebridge-plugin-ewelink-cube

What I am hoping for is a similar integration that offers direct access to the native iHost Zigbee controller. Sonoff itself is only planning to enable Containers access to USB devices. This means that an additional Zigbee USB-stick would be a workaround. But not very elegant, since there already is an integrated Zigbee controller on iHost.

What is the zigbee chip?

Is it one that zigbee2mqtt can use?

The iHost has a Silicon Labs EFR32MG21

Please also see related discussions here → "Sonoff iHost" (smart home hub/computer) from ITead - Can it be hacked to run Home Assistant OS with Bluetooth, Thread/Matter, and ZHA integrations?

I do not think that can be a feature request for Home Assistant but should be a request to ITead/Sonoff?

Zigbee applications like Zigbee2MQTT or Home Assistant’s ZHA integration need serial port access.

To get that then ITead/Sonoff wouild either have to offer a “serial server” daemon (like ser2net serial to network proxy) for localhost access over TCP/IP from Zigbee gateway applications via socat utility (socket relay utility), or alternatively, ITead/Sonoff could just offer the ability to configure serial device forwarding with the serial device path mappable to the container via something like Docker Compose for direct serial device access, e.i. ITead/Sonoff would need to enable some way for the iHost operating system to expose and give access to the host’s serial device from inside Docker containers via some kind of serial port/device passthrough method.

https://www.zigbee2mqtt.io/advanced/remote-adapter/connect_to_a_remote_adapter.html

https://www.zigbee2mqtt.io/advanced/remote-adapter/connect_to_a_remote_sonoff_zbbridge.html

serial:
    port: 'tcp://[IP]:[PORT]'
    adapter: ezsp

https://www.home-assistant.io/integrations/zha#zigate-or-sonoff-zbbridge-devices

- Sonoff ZBBridge : `socket://[IP]:[PORT]` for example `socket://192.168.1.11:8888`

https://www.losant.com/blog/how-to-access-serial-devices-in-docker

https://www.homeautomationguy.io/blog/docker-tips/accessing-usb-devices-from-docker-containers

https://www.home-assistant.io/integrations/zha#cant-connect-to-usb-device-and-using-docker

version: '2'
services:
  homeassistant:
    # customizable name
    container_name: home-assistant

    # must be image for your platform, this is the rpi3 variant
    image: homeassistant/raspberrypi3-homeassistant
    volumes:
      - <DIRECTORY HOLDING HOME ASSISTANT CONFIG FILES>:/config
      - /etc/localtime:/etc/localtime:ro
    devices:
      # your usb device forwarding to the docker image
      - /dev/ttyUSB0:/dev/ttyUSB0
    restart: always
    network_mode: host
2 Likes

It’s very likely using the same Silabs EFR32MG21 SoC and signed EmberZNet Zigbee NCP firmware as the original Sonoff ZBBridge ZB-GW03 (Eachen eWeLink ZbBridge Pro Ethernet Zigbee Gateway).

If so then yes Home Assistant’s ZHA integration and Zigbee2MQTT could use it if could get direct serial access to that Silicon Labs EFR32MG21 SoC and it was flashed with compatible firmware. See ex.:

Thank you very much for the explanation, @Hedda
Indeed I had enquired about that option (passing device through to Docker Container). The developers in the ewelink-forum are very cooperative and quick in replying. But there is no plan to grant access within the system.
This would leave several options:

  • The road map said something about mqtt (API). I will look into that.
  • What ewelink will do is give Dockers access to the USB port. Not really elegant, since onboard Zigbee would make more sense, but it would work.
  • There is always the option to reflash the iHost with an own Linux distribution.

We’ll see. So far at least HA works (incl. HACS and editable config files/folders). And maybe we will see some interesting perspectives for this device, once people with more know how than me get their hands on it.
If you are positive that there is no way to solve this via an integration, I would set this thread to “solved” with your post.
Thanks and cheers

MQTT or other API access can nt be used for solutions like Home Assistant’s ZHA integration or Z2M.

Home Assistant’s ZHA integration and Zigbee2MQTT would tome type of direct serial access, which could optionally be achieved to a serial stream server for TCP access via a socket (similar to ser2net).

https://www.zigbee2mqtt.io/advanced/remote-adapter/connect_to_a_remote_sonoff_zbbridge.html

https://www.home-assistant.io/integrations/zha/#zigate-or-sonoff-zbbridge-devices

Personally, I think the only way forward is to somehow make it run Home Assistant Operating System.

Never say never, however without hacking the OS on iHost then the ball is in the hands of ITead/Sonoff.

1 Like

I do not know how many existing Zigbee2MQTT users there are out there already as do not think they collect analytics, but perhaps you can ask ITead/Sonoff CEO if it would motivate them to know these statistics for the ZHA integration usage in Home Assistant, so try point him to Home Assistant’s “opt-in” analytics statistics:

https://www.home-assistant.io/blog/2021/11/12/100k-analytics/

While it only shows users who actively chosen to opt-in it is still a clear indication that the user base has significantly grown over the last couple of years and Zigbee usage has gotten more popular recently:

https://analytics.home-assistant.io/integrations/

https://analytics.home-assistant.io/

1 Like

I love data visualization! The fact that it is opt-in data only, makes it even more impressive. I myself am just converting from iobroker. Both, Home Assistant and iobroker, have a very solid community. That helps lowering the entry level.

I think that Cliff just wanted to integrate the zigbee device in iHost into Home Assistant Container -if you don’t care if the Home Assistant Container can access the Zigbee module, that means you don’t need Zigbee2Mqtt or ZHA, you just need a Home Assistant intergration that can using the iHost API, to read the devices list and synchronize these devices into Home Assistant.

iHost has open APIs that give developers access to information and control over all devices. There is a post show up how to use these iHost API:
https://forum.ewelink.cc/t/how-to-get-device-information-and-control-them-in-ewelink-cube/15497