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

Recommendation is specifically to use genuine SD card with Application Performance Class 2 (A2) cards for Home Assistant as best resistant against wear (though that are slower than other classes), so make sure to buy Class A2 and do not just look at a brand. Other than being “A2” class make sure it really is "genuine" as there are loads of counterfeit/fake SD-cards being sold as real.

Thanks for the info guys, good to know that it did not only happen to me :slight_smile:
I got a brand new Samsung evo plus 128gb in it now, it says A2 v30.
If this one dies soon I just flash the internal emmc.
I will try wit WSL to mount the old one and see if I can get a backup back.

Also make sure that you always backup to external sources. I backup Home Assistant’s configuration to both my NAS (SMB share) via Samba Backup add-on and to Google Drive via that addon, that way get both off-line and remote cloud backups, but you can also do backup to a USB drive as well.

1 Like

Guys, after 2 weeks testing HAOS on Ihost I must say that Ihost zigbee radio is CRAP. Signal is incredible weak as on orginal firmware. That’s probably because it is integrated and has a lot of noise.
Z2M is very unstable and I coldnt connect Dongle E as a router. I had also a lot of problems with connectig sonoff and tuya sensors.
ZHA is even worse.
So I had to connect Dongle E as a coordinator and must say that Z2M works perfect. With Ihost radio I had to reconfigure my network every day.

It seems to work OK, but you need to choose a channel that isnt affected by interference. You can check the ZHA energy scan in the diagnostic logs for this.

@dipalomeri as mentioned, if using Home Assistant’s ZHA integration then you can “Download diagnostics” from the Zigbee Coordinator adapter entity and there for the “energy_scan” entry which shows a snapshot of the Zigbee channels that had the most noise at that specific time. Check out this post → I tracked channel utilization with ZHA to find the best Zigbee channel

If not using the ZHA integration then you can still perform a Zigbee energy scan with zigpy-cli → https://github.com/zigpy/zigpy-cli (zigpy-cli is a Python tool that should already be installed as part of Home Assistant’s ZHA component, so believe you only need to gain access to the correct Docker container and temporarily disable ZHA to run any of the tools, via for example the “Advanced SSH & Web Terminal” addon, but you must temporarily disable the ZHA integration if using that).

While you should try changing the Zigbee channel, you more importantly also need to be sure to always connect at least a few good Zigbee Router devices before connecting any Zigbee End Devices as they should preferably connect indirectly through Zigbee routers instead of directly.

Regardless of what Zigbee gateway solution and Zigbee Controller adapter using you should follow Zigbee best practices which involves both trying to avoid having possible sources of EMF/EMI/RMI close to any Zigbee devices and adding enough Zigbee Router devices to work around the limited range and coverage of Zigbee radios, as they all have short range and very poor wall penetration and as such rely on you having many Zigbee Router on the same network.

I highly recommend that read and try to follow this which includes taking some active actions → Zigbee networks: how to guide for avoiding interference and optimize for getting better range + coverage

Personally, I suggest buying at least three or more dedicated Zigbee Router devices that are always powered and connected. To get the “best-of-the” Zigbee Router devices today it is recommended to buy a few Silicon Labs EFR32MG21 based USB radio dongles with an external antenna (like for example ITead’s Sonoff ZBDongle-E (based on Silicon Labs EFR32MG21 radio SoC) and convert/repurpose them by flashing over USB with a Zigbee Router firmware image, after than you can simply power them via USB-changers and pair to have them work as stand-alone dedicated Zigbee Router devices. An alternative is ITead’s Sonoff ZBDongle-P (based on Texas Instruments CC2652P radio SoC) which also can be reflashed with Zigbee Router firmware and repurposed as a stand-alone dedicated Zigbee signal repeater and range extender devices. Alternatively, for all-in-one dedicated Zigbee Router products that work very well out-of-the-box, it is recommended to buy a few of IKEA’s Trådfri Signal Repeater devices and/or Aeotec’s Range Extender Zi producs. Both of those devices are based on Silicon Labs EFR32MG21 radio SoC, and many people have reported that Silabs EFR32MG21 based products with slightly better as dedicated Zigbee Router devices than TI CC2652 based producs.

Simply adding more “known good” Zigbee Router devices will make any Zigbee setup much more stable, (when in doubt, add more Zigbee Router devices). The reasons for buying and using those specific products as Zigbee Router devices are that having a few “great” Zigbee Routers (a.k.a. Zigbee signal repeaters / Zigbee range extenders) with better radios and antennas for better reception can affect Zigbee network mesh range and coverage performance positively as communication signals in Zigbee do not have to be resent. Acting as a stable backbone in your Zigbee network mesh.

Still, your first action should be to physically move the Zigbee gateway and/or the Zigbee Coordinator away from all possible sources of EMF/EMI/RMI and then do an RF scan before switching to the Zigbee channel that has the least amount of noise for your specific environment. Note that after you added more Zigbee Router devices you might as a last step also have to re-pair the devices in their final location as some devices have issues moving to a better route on their own due to crappy firmware → https://www.home-assistant.io/integrations/zha#best-practices-to-avoid-pairingconnection-difficulties

You have to understand and remember that each Zigbee device by itself has very limited coverage, short range and their weak signals have poor wall penetration, so to workaround this a Zigbee network relies on mesh networking (a type of network topology/technology/architecture), which means that a Zigbee network heavily depends on having a swarm of mains-powered devices are a “Zigbee Router” that are always-on so they can act as a signal repeater and range extended by transmitting data over long distances by passing data messages through the Zigbee network mesh of intermediate devices to reach more distant Zigbee devices. So while having a Zigbee Coordinator with good radio and antenna away from any EMF sources can have similar benefits, Zigbee signals have such poor range and bad wall penetration power so having many good Zigbee Router devices is a must.

Anyway, those relatively simple actions will usually resolve a majority of all Zigbee connectivity, however, there are always exceptions with bad devices and bad firmware. Crap in, crap out!

PS: Again, also note that while they are fully supported in Home Assistant’s built-in ZHA integration, Silicon Labs EmberZNet (EZSP) based Zigbee Coordinator adapters only have experimental support in Zigbee2MQTT → https://www.zigbee2mqtt.io/guide/adapters/#experimental (more information about ezsp adapter alpha status here → https://github.com/Koenkk/zigbee-herdsman/issues/319). So it is less than an optimal solution to use an experimental adapter in Z2M in combination with an unofficial and experimental installation of Home Assistant OS :stuck_out_tongue:

Thanks for response. I’ll check zigbee channels but I think there must be some other reason for my problems. My channel on 8host was 11 and I had problems to connect devices located 5m from ihost. Now with dongle E I have the same channel and it almost covers my house. Dongle is located beside ihost. Extension cable and antenna makes the difference. My wifi is on channel 11 so far away from zigbee. In my opinion ihost radio is good enough for a small flat. I know it has the same chipset as dongle E so it must have strong interference from other components onboard.
I forgot to add that before I was using sonoff bridge (not pro) wich has the same radio and it was located in the same place with the same channel. It worked as perfect as dongle E.

Zigbee channels use different numbering but they still overlap. Wifi ch11 is roughly zigbee channels 20-25.

2 Likes

Guys, I have rookie question. How to run internal wifi on iHost? I don’t see wlan interface anywhere.
I tried to get some information using SSH but everytime I get the message “no such file or directory”. To be honest I couldn’t also upgrage HA to rc3 using commands from github site. Always the same respone “no such…” To upgrade I had to burn rc3 and restore everything from backup. From SSH I could only get info about connected Dongle E. So I need advice how to run WiFi and how to force SSH to run commands. I would be grateful for any advice.

I still dont know if the WiFi issues are fully resolved, it works for some, but not others it seems. If Wifi is working is should show up under HA Netwok panel. However you can also configure wifi using nmcli from debug console:

https://wiki.archlinux.org/title/NetworkManager#Usage

However if its not working, would be good if you can provide logs from kernel with the following from debug console:

journalctl -b0 | grep mmc

This command is not available from the ssh login provided by addons.

I can’t run any command from wiki site or your post. I’m loging as a root with password. Doesn’t matter if I’m usig addon UI or Putty. It always shows “command not found” (screen1). On the other hand when I run “ls -l /dev/serial/by-id” (screen2) it shows external zigbee adapter wich is connected. Internal zigbee radio works fine when it is configured but shoudn’t it be visible after this command ls -l…
So I’m stuck with SSH, I was trying Terminal SSH, Advanced SSH and Putty with the same result. As I have written in my previous post I couldn’t run commands to upgrade the system.

putty_screen

@dipalomeri You either need to connect to the debug console via the Type-C power port on the iHost or setup host ssh access:

The SSH addons are running in a container and can’t access the host system.

This also needs to be run from debug/host console as above.

However you might be able to trigger the update using this command which will work from SSH Addon (not tested this though):

ha os import

Thanks that you’re trying to help me. It seems that “ha os import” works but after that I have some issues with the key. Probably I’ll soleve it after a few attempts. Could you give me some tips about debug console in case I would fail. For the last two years I was using HA Core on TV Box (armbian) and everything was simple using SSH. I’m not expirienced and don’t have any expirience with debug console. It’s obvious I have to connect ihost with USB C, but what then ? Will I connect to ihost from the windows command line or putty or winscp?
Sorry about that questions but I’m a novice in HAOS and this problem bothers me.I promise not to harass you again.

In this case your logging into armbian which is the host!

Connect the iHost to your computer via the Type C. Once booted it will show up as a COM port. You then connect to that COM port using putty serial, Com port and baudrate 115200 ,you will get a login prompt for which user is root and no password.

Alternatively you can setup as per the link I provided above, in which case the ssh will connect to the same IP As before but on port 22222 (instead of 22)

Thanks again. Using Type C connection and after “journalctl -b0 | grep mmc” command I see that:

journalctl -b0 | grep mmc

Jan 03 10:45:35 homeassistant kernel: dwmmc_rockchip ffc50000.mmc: IDMAC supports 32-bit address mode.

Jan 03 10:45:35 homeassistant kernel: dwmmc_rockchip ffc60000.mmc: IDMAC supports 32-bit address mode.

Jan 03 10:45:35 homeassistant kernel: dwmmc_rockchip ffc50000.mmc: Using internal DMA controller.

Jan 03 10:45:35 homeassistant kernel: dwmmc_rockchip ffc70000.mmc: IDMAC supports 32-bit address mode.

Jan 03 10:45:35 homeassistant kernel: dwmmc_rockchip ffc50000.mmc: Version ID is 270a

Jan 03 10:45:35 homeassistant kernel: dwmmc_rockchip ffc50000.mmc: DW MMC controller at irq 80,32 bit host data width,256 deep fifo

Jan 03 10:45:35 homeassistant kernel: dwmmc_rockchip ffc60000.mmc: Using internal DMA controller.

Jan 03 10:45:35 homeassistant kernel: dwmmc_rockchip ffc60000.mmc: Version ID is 270a

Jan 03 10:45:35 homeassistant kernel: dwmmc_rockchip ffc60000.mmc: DW MMC controller at irq 82,32 bit host data width,256 deep fifo

Jan 03 10:45:35 homeassistant kernel: dwmmc_rockchip ffc70000.mmc: Using internal DMA controller.

Jan 03 10:45:35 homeassistant kernel: dwmmc_rockchip ffc70000.mmc: Version ID is 270a

Jan 03 10:45:35 homeassistant kernel: dwmmc_rockchip ffc70000.mmc: DW MMC controller at irq 83,32 bit host data width,256 deep fifo

Jan 03 10:45:35 homeassistant kernel: mmc_host mmc0: card is non-removable.

Jan 03 10:45:35 homeassistant kernel: dwmmc_rockchip ffc70000.mmc: allocated mmc-pwrseq

Jan 03 10:45:35 homeassistant kernel: mmc_host mmc1: card is non-removable.

Jan 03 10:45:35 homeassistant kernel: mmc_host mmc2: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)

Jan 03 10:45:35 homeassistant kernel: mmc_host mmc0: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)

Jan 03 10:45:35 homeassistant kernel: mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)

Jan 03 10:45:35 homeassistant kernel: dwmmc_rockchip ffc70000.mmc: card claims to support voltages below defined range

Jan 03 10:45:35 homeassistant kernel: mmc_host mmc1: Bus speed (slot 0) = 25000000Hz (slot req 25000000Hz, actual 25000000HZ div = 0)

Jan 03 10:45:35 homeassistant kernel: mmc1: error -110 whilst initialising SDIO card

Jan 03 10:45:35 homeassistant kernel: mmc_host mmc1: Bus speed (slot 0) = 300000Hz (slot req 300000Hz, actual 300000HZ div = 0)

Jan 03 10:45:35 homeassistant kernel: dwmmc_rockchip ffc70000.mmc: card claims to support voltages below defined range

Jan 03 10:45:35 homeassistant kernel: mmc_host mmc1: Bus speed (slot 0) = 25000000Hz (slot req 25000000Hz, actual 25000000HZ div = 0)

Jan 03 10:45:35 homeassistant kernel: mmc1: error -110 whilst initialising SDIO card

Jan 03 10:45:35 homeassistant kernel: mmc_host mmc1: Bus speed (slot 0) = 200000Hz (slot req 200000Hz, actual 200000HZ div = 0)

Jan 03 10:45:35 homeassistant kernel: dwmmc_rockchip ffc70000.mmc: card claims to support voltages below defined range

Jan 03 10:45:35 homeassistant kernel: mmc_host mmc1: Bus speed (slot 0) = 25000000Hz (slot req 25000000Hz, actual 25000000HZ div = 0)

Jan 03 10:45:35 homeassistant kernel: mmc1: error -110 whilst initialising SDIO card

Jan 03 10:45:35 homeassistant kernel: mmc_host mmc1: Bus speed (slot 0) = 100000Hz (slot req 100000Hz, actual 100000HZ div = 0)

Jan 03 10:45:35 homeassistant kernel: dwmmc_rockchip ffc70000.mmc: card claims to support voltages below defined range

Jan 03 10:45:35 homeassistant kernel: mmc_host mmc1: Bus speed (slot 0) = 25000000Hz (slot req 25000000Hz, actual 25000000HZ div = 0)

Jan 03 10:45:35 homeassistant kernel: mmc1: error -110 whilst initialising SDIO card

Jan 03 10:45:35 homeassistant kernel: dwmmc_rockchip ffc50000.mmc: Busy; trying anyway

Jan 03 10:45:35 homeassistant kernel: mmc0: error -84 whilst initialising MMC card

Jan 03 10:45:35 homeassistant kernel: mmc_host mmc0: Bus speed (slot 0) = 300000Hz (slot req 300000Hz, actual 300000HZ div = 0)

Jan 03 10:45:35 homeassistant kernel: dwmmc_rockchip ffc60000.mmc: Busy; trying anyway

Jan 03 10:45:35 homeassistant kernel: mmc_host mmc2: Timeout sending command (cmd 0x202000 arg 0x0 status 0x80202000)

Jan 03 10:45:35 homeassistant kernel: dwmmc_rockchip ffc50000.mmc: Busy; trying anyway

Jan 03 10:45:35 homeassistant kernel: mmc0: error -84 whilst initialising MMC card

Jan 03 10:45:35 homeassistant kernel: mmc_host mmc0: Bus speed (slot 0) = 200000Hz (slot req 200000Hz, actual 200000HZ div = 0)

Jan 03 10:45:35 homeassistant kernel: mmc_host mmc2: Bus speed (slot 0) = 50000000Hz (slot req 50000000Hz, actual 50000000HZ div = 0)

Jan 03 10:45:35 homeassistant kernel: mmc2: new high speed SDXC card at address b36c

Jan 03 10:45:35 homeassistant kernel: mmcblk2: mmc2:b36c SDABC 58.2 GiB

Jan 03 10:45:35 homeassistant kernel: mmcblk2: p1 p2 p3 p4 p5 p6 p7 p8

Jan 03 10:45:35 homeassistant kernel: dwmmc_rockchip ffc50000.mmc: Busy; trying anyway

Jan 03 10:45:35 homeassistant kernel: mmc0: error -84 whilst initialising MMC card

Jan 03 10:45:35 homeassistant kernel: mmc_host mmc0: Bus speed (slot 0) = 100000Hz (slot req 100000Hz, actual 100000HZ div = 0)

Jan 03 10:45:35 homeassistant kernel: dwmmc_rockchip ffc50000.mmc: Busy; trying anyway

Jan 03 10:45:35 homeassistant kernel: mmc0: error -84 whilst initialising MMC card

Jan 03 10:45:37 homeassistant systemd-fsck[233]: /dev/mmcblk2p1: 7 files, 40/8167 clusters

Jan 03 10:45:38 homeassistant kernel: EXT4-fs (mmcblk2p7): mounted filesystem with ordered data mode. Quota mode: disabled.

Jan 03 10:45:41 homeassistant hassos-expand[261]: [INFO] Checking if expanding data partition on /dev/mmcblk2p8 is necessary

Jan 03 10:45:41 homeassistant hassos-expand[261]: [INFO] Detected GPT partition label on /dev/mmcblk2

Jan 03 10:45:41 homeassistant kernel: EXT4-fs (mmcblk2p8): mounted filesystem with ordered data mode. Quota mode: disabled.

Jan 03 10:45:42 homeassistant hassos-expand[336]: [INFO] Checking if expanding data partition on /dev/mmcblk2p8 is necessary

Jan 03 10:45:42 homeassistant hassos-expand[336]: [INFO] Detected GPT partition label on /dev/mmcblk2

Jan 03 10:45:42 homeassistant kernel: EXT4-fs (mmcblk2p8): resizing filesystem from 15087995 to 15087995 blocks

Thanks @dipalomeri, this is still the same issues been battling with and some people have been seeing it, but not others. I will reachout again to the eWeLink folks and see if they have any further ideas!

Jan 03 10:45:35 homeassistant kernel: mmc_host mmc1: Bus speed (slot 0) = 25000000Hz (slot req 25000000Hz, actual 25000000HZ div = 0)

Jan 03 10:45:35 homeassistant kernel: mmc1: error -110 whilst initialising SDIO card
``

I purchased my device in March or April last year on pre-order. Maybe they changed something in hardware since that time without informing anybody. This is typical for Chinese manufacturers. I know from my own experience that they sell the same model with a bit different hardware but it is only my suspicion.

Current stock of 4GB version is identical to the pre-order ones. the 2GB version has some minor differences on the main host board, though the wifi module is the same.

Good morning HELPPP MEEE
VUE 2 modified with ESPHOME.
same VUE2.yaml. on home assistant virtual machine works well.
on ihost modified Home assistant returns:

`- Configuring incomplete, errors occurred!
See also “/data/build/vue2-1/.pioenvs/vue2-1/CMakeFiles/CMakeOutput.log”.
See also “/data/build/vue2-1/.pioenvs/vue2-1/CMakeFiles/CMakeError.log”.

fatal: not a git repository (or any parent up to mount point /)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
CMake Error at /data/cache/platformio/packages/tool-cmake/share/cmake-3.16/Modules/CMakeTestCCompiler.cmake:60 (message):
The C compiler

"/data/cache/platformio/packages/toolchain-xtensa-esp32/bin/xtensa-esp32-elf-gcc"

is not able to compile a simple test program.

It fails with the following output:

Change Dir: /data/build/vue2-1/.pioenvs/vue2-1/CMakeFiles/CMakeTmp

Run Build Command(s):/data/cache/platformio/packages/tool-ninja/ninja cmTC_22cff && [1/2] Building C object CMakeFiles/cmTC_22cff.dir/testCCompiler.c.obj
[2/2] Linking C executable cmTC_22cff
FAILED: cmTC_22cff 
: && /data/cache/platformio/packages/toolchain-xtensa-esp32/bin/xtensa-esp32-elf-gcc -mlongcalls -Wno-frame-address   CMakeFiles/cmTC_22cff.dir/testCCompiler.c.obj  -o cmTC_22cff   && :
/data/cache/platformio/packages/toolchain-xtensa-esp32/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/cache/platformio/packages/toolchain-xtensa-esp32/bin/../libexec/gcc/xtensa-esp32-elf/8.4.0/liblto_plugin.so: error loading plugin: /data/cache/platformio/packages/toolchain-xtensa-esp32/bin/../libexec/gcc/xtensa-esp32-elf/8.4.0/liblto_plugin.so: cannot open shared object file: No such file or directory
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
/data/cache/platformio/packages/framework-espidf/tools/cmake/project.cmake:298 (__project)
CMakeLists.txt:3 (project)

========================= [FAILED] Took 26.35 seconds =========================`