Home Assistant | After 5 Years of Dabbling ... Part 1 - The Hardware

Home Assistant | After 5 Years of Dabbling ... Part 1 - The Hardware

It has been 5 or so years now since I started my Home Assistant journey and slowly over time it's grown bigger and bigger, and ultimately more complex.

My current obsession? Integrating anything with a pulse (or circuit board) into my Home Assistant. Everything from air fresheners to fish tanks. However, the hardware itself (sensors, lights) is just one piece of the puzzle. Building user-friendly dashboards and crafting automations that orchestrate the magic is the other half of the Home Assistant experience. At times, it seems like a constant uphill battle. Just when I finally create a new dashboard or element, something fresh emerges or is stumbled upon, restarting the entire design and building process anew.

The software side of Home Assistant (dashboards, automations, scripts etc) is still very much a 'work in progress' so for now I will delve into the type of 'hardware' I've managed to setup and integrate into HA.


Host | Where Home Assistant Lives

Firstly let us go over where Home Assistant lives. Initially I started using Home Assistant on a humble Raspberry Pi 3B + but then migrated the system onto its own virtual machine on a Dell PowerEdge T330 (running ESXi) using Ubuntu Server 18 as the underlying operating system and running HA Supervisor in Docker (got to love Docker!).

Now with 'High Availability' in mind, Home Assistant now resides within a Proxmox cluster across 3 Lenovo ThinkCentre M700 Tiny PCs running HA Supervisor. The VM itself has 12GB of RAM, 2 Cores and 60GB of storage under the hood. To add some extra redundancy, the cluster (along with everything else) is covered with a UPS for power outages and managed with PiKVM for remote accessing/recovery.

Host Equipment:

  • Lenovo ThinkCentre M700 Desktop Tiny (x3)
    • CPU(s) 4 x Intel(R) Core(TM) i3-6300T CPU @ 3.30GHz (1 Socket)
    • 16GB RAM
    • 240GB SSD
    • Proxmox OS
    • UPS (APC Smart-UPS 1000VA)
    • 4/5G Network Failover (Work in Progress)

In addition to a group of three M700 devices, there's a separate, dedicated M700 responsible for running facial and object recognition software. This specialized device is enhanced with a Google Coral USB TPU, a hardware accelerator designed to significantly boost the speed and efficiency of machine learning tasks.


Network | How HA communicates

Over time, I’ve customized and optimized Home Assistant to run locally, minimizing any dependence on cloud services. This ensures that a WAN outage at home won't cause major disruptions. Building a 'failover' system for such outages is a separate project, which we’ll explore at a later time.

For now, let's review the three primary communication methods Home Assistant uses to manage and interact with devices throughout the home.

  • WiFi / LAN
  • 433Mhz
  • Zigbee

WiFi / LAN

As expected, most of my devices connect to the network via either WiFi or Ethernet to integrate with Home Assistant. When choosing a device—whether a sensor or a light—I prioritize WiFi or Ethernet connectivity, with the critical requirement that it supports local control without needing cloud access. Since adopting Home Assistant, my goal has been to minimize cloud dependence, managing all devices locally for privacy, security, and to prevent inconvenient service outages. Unfortunately, some devices or services, like those tied to Google, inevitably require cloud access. However, strategic use of VLANs can help mitigate some of these risks where possible.

WiFi/LAN Equipment:

  • Ubiquiti UniFi Dream Machine Pro
  • Ubiquiti US-16-150W UniFi Switch
  • Ubiquiti USW Flex Mini
  • Ubiquiti UniFi HD In Wall WiFi Access Point
  • Ubiquiti UniFi UAP nanoHD (x2)
  • Ubiquiti UniFi AP AC LR (x2)
  • Ubiquiti G5 Turret Ultra (x3)
  • Ubiquiti G3 Instant
  • Ubiquiti G3 Bullet (x2)

WiFi Devices:

Device Type Brand Model Connectivity Amount
IR Remote Broadlink RM4 WiFi / Integration 1
IR Remote Broadlink RM3 WiFi / Integration 1
Presence Sensor Everything Smart Everything Presence One WiFi / ESPHome 1
Switch Sonoff Basic R2 WiFi / Tasmota 2
Switch TP-Link KP303 WiFi / Integration 1
Media Google Chromecast TV WiFi / Integration 3
Speaker Google Nest Mini WiFi / Integration 3
Speaker Google Home WiFi / Integration 1
Display Google Nest Hub WiFi / Integration 1
Display Hitachi Smart TV WiFi / DLNA 1
Display Sharp Smart TV WiFi / DLNA 1
Air Sensor IKEA VINDRIKTNING WiFi / ESPHome 1
Switch TP-Link KP303 WiFi / Integration 1
Power Monitoring ESP32 Octopus Home Mini WiFi / Integration 1
LED Controller ESP32 WLED WiFi / Integration 2
Doorbell Google Nest Doorbell WiFi / Integration 1
Heating Honeywell Lyric T5 WiFi / Integration 4
Fridge LG LG Tall Fridge Freezer WiFi / Integration 1
NUT Raspberry Pi Zero WiFi / Integration 1
Alarm Hub Ring Alarm Hub WiFi / Integration 1
Light Yeelight YLDP001 WiFi / Integration 2
Phone Google Fold WiFi / Integration 1
Phone Google Pixel 6 Pro WiFi / Integration 1
Watch Google Pixel Watch 2 WiFi / Integration 1
Air Freshener EPS32 ESPHome WiFi / ESPHome 1
Display Sonoff NS Panel Pro WiFi / Integration 1

433Mhz

Let me give you some background. Before discovering Zigbee, I initially planned to use 433MHz sensors throughout my house and impulsively bought a large batch during a Black Friday sale on AliExpress. Six weeks later, after setting them up, I ran into an unforeseen problem. Most of these sensors were door/window contact sensors, and I hadn’t realized they only sent a single trigger or value when activated. While they technically worked, they couldn't distinguish whether a door was open or closed; they simply registered "door moved." While I could have potentially solved this with a toggle-based automation, it would have been time-consuming to set up and prone to false positives.

That said, I still prefer using 433MHz motion sensors in my home due to their ability to set a custom timeout delay through automations. Other motion sensors (WiFi/Zigbee) typically have a fixed timeout, usually between 30 seconds and 3 minutes, which complicates certain automations.

433Mhz Devices:

Device Type Brand Model Connectivity Amount
Controller Sonoff RF Bridge 433Mhz / Tasmota 4
PIR Motion Sensor KERUI P83 433Mhz / MQTT 4
PIR Motion Sensor KERUI P829 433Mhz / MQTT 2
Button/Switch Unknown Unknown 433Mhz / MQTT 2
Smoke Alarm EMASTIFF EMASTIFF 433Mhz / MQTT 1

Zigbee

Having covered WiFi and 433MHz, the last category to discuss is Zigbee. When I was searching for an alternative to the door/window sensors, the decision came down to Zigbee or Z-Wave. WiFi was also a consideration, but power consumption became a major drawback. While devices like the ESP8266 or Wemos D1 Mini could have worked, their WiFi use would have drained batteries quickly, and wiring everything would have been impractical and unsightly.

After weeks of consideration, I chose Zigbee due to its broader range of brands, device types, and more competitive pricing. To manage these Zigbee devices, a hub or gateway is required, which is typically provided by manufacturers like Aqara, Philips, or IKEA. However, in line with my focus on reducing cloud dependence, I opted for a locally controlled gateway to avoid cloud connectivity.

I’ve tested several Zigbee routers, starting with the Raspbee II, moving to the Conbee II, and now using the SMLIGHT SLZB-06M, which connects via Ethernet/PoE. For software, I’ve integrated zigbee2mqtt with Home Assistant to manage and control all Zigbee devices throughout the house.

Zigbee Devices:

Device Type Brand Model Connectivity Amount
Controller SMLIGHT SLZB-06M Zigbee / Zigbee2MQTT 1
Contact Door/Window Sensor Aqara MCCGQ11LM Zigbee / Zigbee2MQTT 12
Temperature/Humidity Sensor Aqara WSDCGQ11LM Zigbee / Zigbee2MQTT 6
Smart Pet Feeder Aqara ZNCWWSQ01LM Zigbee / Zigbee2MQTT 1
Air Quality Sensor IKEA E2112 Zigbee / Zigbee2MQTT 1
PIR Motion Sensor IKEA E1525, E1745 Zigbee / Zigbee2MQTT 3
GU10 LED Bulb IKEA LED1537R6/LED1739R5 Zigbee / Zigbee2MQTT 18
GU10 LED Bulb IKEA LED2005R5/LED2106R3 Zigbee / Zigbee2MQTT 18
GU10 LED Bulb IKEA LED1923R5 Zigbee / Zigbee2MQTT 10
GU10 LED Bulb Lidl HG06106A Zigbee / Zigbee2MQTT 2
E27 LED Bulb Philips 929001821618 Zigbee / Zigbee2MQTT 2
Outdoor PIR Motion Sensor Philips 9290019758 Zigbee / Zigbee2MQTT 1
PIR Motion Sensor Sonoff SNZB-03 Zigbee / Zigbee2MQTT 3
Smart Plug Samsung GP-WOU019BBDWG Zigbee / Zigbee2MQTT 2
Button/Switch IKEA E2201, E1743, E2001 Zigbee / Zigbee2MQTT 3
Wall Switch Aqara H1 EU Zigbee / Zigbee2MQTT 1
Button IKEA E2001/E2002 Zigbee / Zigbee2MQTT 3
Water Sensor IKEA E2202 Zigbee / Zigbee2MQTT 1
HTML Table Generator

Part 2 ... Software

With the hardware setup of Home Assistant complete, the next blog post will dive into the software side of things. This will likely take some time to put together, as there’s a lot to cover—from configuring automations and integrations to fine-tuning the overall system for efficiency and security. I’ll be breaking down each element in detail, so expect a comprehensive guide that will hopefully give you some ideas for your own Home Assistant setup.

Stay tuned!

Buy Me A Coffee