The Ultra-Budget Zigbee Hub: Expanding the AVATTO HA 70 for Under €30

In Part 1 of this series, we proved that the €37 AVATTO HA 70 is a surprisingly capable little Home Assistant server. But a server without devices is just a plastic box sitting in your closet. Today, we are going to turn it into a fully local, cloud-free smart budget zigbee hub.

Our goal? To automate a single room using dirt-cheap AliExpress Zigbee sensors, bypassing the proprietary Chinese cloud completely by utilizing Home Assistant’s built-in ZHA (Zigbee Home Automation) integration.

(Standard SelfHostHero disclosure: I bought every single item in this review with my own money. No sponsorships, no hidden agendas. If a product is poorly made or unsafe, I will tell you.)

The Coordinator: Sonoff ZBDongle-E

Price paid: €15.09

To talk to Zigbee devices, our HA 70 needs an antenna (a coordinator). I ordered the highly regarded Sonoff ZBDongle-E.

sonoff zbdongle e zigbee coordinator unboxing

It arrives in a cheap-looking green cardboard box, but the device itself is built like a tank. It features a heavy, solid metal casing with tiny built-in cooling fins. It measures 52mm long (75mm with the antenna attached) and weighs 24 grams. The included 107mm bendable antenna feels decent, though if you shake it, you can hear the internal wire rattling around loosely inside the plastic.

avatto ha 70 usb port blocked zigbee dongle

Crucial Hardware Warning: When I plugged the dongle directly into the HA 70, its thick metal casing completely blocked the adjacent USB port. Furthermore, plugging a Zigbee antenna directly into a USB 3.0 port is a known cause of heavy wireless interference. Always use a cheap USB extension cable to distance the dongle from your server.

ZHA or Zigbee2MQTT for This Dongle?

This is the first fork in the road, and for the ZBDongle-E specifically the answer is clearer than the usual “it depends”. The dongle uses a Silicon Labs EFR32MG21 chip. Home Assistant’s built-in ZHA integration supports that chip natively and has done so for years. Zigbee2MQTT can talk to it too, but its EZSP support (the protocol Silicon Labs radios speak) is still marked experimental in the underlying zigbee-herdsman library.

So for this build, ZHA is the pragmatic choice: it ships with Home Assistant, needs no MQTT broker, and it is the better-trodden path for this particular radio. Zigbee2MQTT’s advantage is its enormous library of device converters, which matters when you buy obscure hardware. Every device in this article paired with ZHA without a fight, so that advantage never came into play.

One practical consequence worth knowing before you start: migrating between ZHA and Zigbee2MQTT later means re-pairing every device by hand. Pick one now.

The Trigger: Tuya Zigbee Door & Window Sensor

Price paid: €2.79

Let’s start with the absolute basics: detecting when a door opens.

tuya zigbee door window sensor aliexpress

For less than three euros, expectations were low, and the packaging reflects that—it’s a flimsy cardboard box that barely holds the contents together. The white plastic housing of the sensor and the magnet feels extremely cheap and hollow, but for this price, I really don’t mind.

Practical Tip: It does not come with the required two AAA batteries. I inserted two standard Amazon Basics alkaline batteries. In my experience with ultra-budget sensors, rechargeable batteries often cause issues because their voltage is slightly lower (1.2V vs 1.5V) and they are physically slightly thicker, which can warp cheap plastic housings. The alkaline batteries fit perfectly.

Pairing it with Home Assistant: The process is completely plug-and-play.

  1. In Home Assistant, navigate to Settings -> Devices & Services -> Zigbee Home Automation.
  2. Click Add Device.
  3. While Home Assistant is searching, use the included metal pin to hold the reset button inside the sensor’s pinhole.
  4. Within seconds, the device pops up.
home assistant zha pairing door sensor

I tested it at my desk by moving the magnet away from the sensor. It registered instantly. After a quick wipe down of my door frame to give the included tape a fair chance, I mounted it. It works flawlessly.

The Action: TNCE TUYA 16A Smart Plug

Price paid: €4.26

If you want to turn on a lamp or heater automatically, you need a smart plug. Because this device plugs directly into mains power, it also acts as a “Zigbee Router,” repeating the wireless signal to improve the mesh network for your battery-powered sensors.

The plug weighs a reassuring 71 grams and measures 64mm in length (84mm including the pins). It feels sturdy, though the physical on/off button makes a rather cheap clicking sound.

Major Safety Flaw: The female side of the plug features plastic child-protection shutters. I tested these, and they failed completely. I was able to push the shutter aside with a single pointy object. Proper safety shutters should only open when two pins are inserted simultaneously. Be extremely careful if you have small children. I have a healthy distrust of cheap Chinese products switching mains voltage, and this physical flaw confirms why.

Safety warning aside, the plug performs exceptionally well in Home Assistant. It switches on and off without any noticeable network delay. I stress-tested it by running a 2000W hair dryer through it (don’t tell my wife), and it handled the load perfectly while accurately reporting the power draw and voltage.

home assistant smart plug power monitoring

The Presence Detector: Tuya 2-in-1 Mini PIR & Light Sensor

Price paid: €3.29

To complete our room automation, we need to know if someone is actually inside.

home assistant zha pir illuminance sensor

This PIR (Passive Infrared) sensor comes in a reasonably sturdy little square box. The sensor itself is surprisingly tiny—just 28mm high with a 33mm diameter—making it very easy to place unobtrusively. It weighs just 15 grams, including the provided GutAlkali CR2450 battery.

A fantastic little detail: they include a custom tool made out of PCB material to twist open the battery door. I normally use a coin for this, so having a dedicated tool included is a genuinely nice touch.

Pairing was just as easy as the door sensor: click “Add Device” in ZHA, hold the reset pin for 10 seconds, and it pairs instantly.

It accurately reports both presence (motion) and the lux level (light intensity) in the room. This is highly useful, as you can tell Home Assistant to only turn on the smart plug if motion is detected AND the room is actually dark.

The Climate Monitor: EWelink Temperature & Humidity Sensor

Price paid: €1.73

We now know if the door is open, if someone is in the room, how bright it is, and how much power our smart plug is drawing. The final piece of our basic room setup is climate monitoring.

ewelink zigbee temperature humidity sensor

Inside the thin cardboard packaging is the sensor itself, measuring 13mm high and 40mm in diameter, featuring a simple thermometer icon on the front.

ewelink sensor cheap housing gap

The build quality here is undeniably cheap. In fact, just pulling out the plastic battery isolation tab caused the bottom casing to warp slightly, and it refuses to snap back together perfectly flush. Pairing it was the exact same routine as the others (hold the pin for 10 seconds in ZHA).

EWelink temperature and humidity sensor paired to the budget Zigbee hub via ZHA, reporting 52.6% humidity, 25.8 °C and 100% battery

Initial Impressions: Out of all the devices tested in this article, this is the one I have the least confidence in. Upon first boot, the temperature reading was roughly 5 degrees (Celsius) too high. To be fair, this could be because I was holding it in my warm hands during the pairing process. However, the refresh rate seems incredibly slow, taking a long time to reflect the actual room temperature. It feels a bit like e-waste, but I will let it sit for a few days to see if the readings stabilize.

Building a Mesh That Actually Holds

A budget Zigbee hub lives or dies on its mesh, and this is where most cheap setups quietly fall apart. Zigbee devices come in two flavours. Mains-powered devices like our €4.26 smart plug are routers: they stay awake and repeat traffic for everyone else. Battery devices like the door, motion and climate sensors are end devices: they sleep most of the time and talk only to one parent.

That distinction explains the single most common beginner mistake. If you pair a sensor while it is sitting on your desk next to the coordinator, it bonds to the coordinator directly. Move it to the far end of the house afterwards and it keeps trying to reach that same parent, gets a weak link, and starts dropping updates. Two habits avoid this entirely:

  • Pair devices where they will live, or re-pair them after you mount them.
  • Add your routers first. Put the smart plug in place and pair it before the battery sensors, so there is already a relay for them to join.

To check your work, open a device in Settings → Devices & Services → Zigbee Home Automation and look at its LQI (link quality) value. Higher is better. If a sensor deep in the house shows a poor value, the fix is almost never a better sensor; it is another mains-powered router somewhere in between. At roughly four euros a plug, extending the mesh is the cheapest upgrade in this entire article.

Battery Reality Check

These sensors ship with the cheapest cells the factory could source. The PIR arrived with a no-name GutAlkali CR2450, and the door sensor came with no batteries at all. Two things are worth knowing before you mount a dozen of these behind furniture.

First, stick to alkaline in the AAA-powered sensors. As noted earlier, rechargeables sit at 1.2V instead of 1.5V and are physically a fraction thicker, which cheap plastic housings do not appreciate. Second, treat the battery percentage these devices report as a rough hint rather than a measurement. Budget sensors are notorious for sitting at 100% for months and then dropping to zero in a week. Rather than trusting the number, watch for a sensor that stops updating: in practice that is your real low-battery warning.

Your First Automation: Motion Plus Darkness

Hardware without automation is just an expensive way to look at numbers. Here is the automation that makes this particular set of devices worth the money, using the PIR’s motion and lux readings together so the lamp only comes on when the room is actually dark.

Paste this into Settings → Automations & Scenes → Create Automation → Edit in YAML, replacing the entity IDs with your own:

alias: Turn on lamp when someone enters a dark room
triggers:
  - trigger: state
    entity_id: binary_sensor.pir_motion
    to: "on"
conditions:
  - condition: numeric_state
    entity_id: sensor.pir_illuminance
    below: 20
actions:
  - action: switch.turn_on
    target:
      entity_id: switch.smart_plug
mode: single

This uses Home Assistant’s current automation syntax, where the keys are plural (triggers, conditions, actions) and a service call is written as action. Older guides show trigger:, platform: and service: instead. Those still work, so do not panic if your existing automations look different.

The door sensor earns its keep with an even simpler rule: alert me if the door has been open too long. The for option does the waiting, so no timers or helpers are needed.

alias: Warn when the door stays open
triggers:
  - trigger: state
    entity_id: binary_sensor.door_sensor
    to: "on"
    for:
      minutes: 5
actions:
  - action: notify.persistent_notification
    data:
      message: The door has been open for 5 minutes.
mode: single

Both of these run entirely on your own hardware. No Tuya account, no app, no cloud round-trip to a server in another country just to switch a lamp in your living room.

Final Verdict: The Sub-€30 budget Zigbee hub combination

We set out to build a fully local, cloud-free smart room. Excluding the one-time €15.09 purchase of our sturdy Sonoff ZBDongle-E coordinator, we spent just €12.07 on our four sensors and the smart plug.

They all connected flawlessly to our €37 AVATTO HA 70 server using the built-in ZHA integration. We now have a robust local mesh network that responds instantly, without any reliance on the Tuya cloud or external apps.

The Full Bill of Materials

DeviceRolePrice paid
Sonoff ZBDongle-ECoordinator (one-time)€15.09
TNCE TUYA 16A smart plugRouter + switching€4.26
Tuya 2-in-1 mini PIRMotion + lux€3.29
Tuya door & window sensorOpen/close€2.79
EWelink temperature & humidityClimate€1.73
Sensors and plug total€12.07

Would I Buy This Set Again?

Mostly yes, with one exception. The smart plug and the PIR are genuine bargains and I would buy both again without hesitating. The door sensor does exactly what a door sensor should for under three euros. The EWelink climate sensor is the weak link: slow to update and questionably accurate, and if precise room temperature matters to you, spend a few euros more elsewhere.

The bigger point stands. For the price of a single brand-name sensor, you get a working, fully local room: presence, light level, door state, climate and switching, all answering to your own server, with the Tuya cloud entirely out of the loop.

Where to Go Next

Expand the same way you started: one cheap router to strengthen the mesh, one sensor for the thing you actually want to know, and one automation that saves you a daily annoyance. That is the whole trick to a budget Zigbee hub that keeps working.