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 | Chromecast TV | WiFi / Integration | 3 | |
Speaker | Nest Mini | WiFi / Integration | 3 | |
Speaker | Home | WiFi / Integration | 1 | |
Display | 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 | 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 | Fold | WiFi / Integration | 1 | |
Phone | Pixel 6 Pro | WiFi / Integration | 1 | |
Watch | 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 |
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!
