Last week saw the release of Home Assistant 2025.4, and with it, a new type of dashboard called Areas. This is an automatic dashboard, managed by Home Assistant itself, which displays your devices sorted by room, or ‘area’. At present, it’s ‘experimental’, but I wouldn’t be surprised if it becomes the default in future.
The default dashboard in Home Assistant is also automatically managed, but if you have more than a few devices and integrations, it can quickly become overwhelming. Therefore, my default dashboard is one that I manage myself. I can decide what to show, and in what order. However, it’s taken me quite some time to build and tweak that dashboard, and at one point I had almost 30 different cards showing. I’ve reduced that somewhat, and now use badges to highlight information that I need to know, but it still represents a significant investment of my time.
The new Areas dashboard therefore sits somewhere in the middle. The first tab shows an overview of your home, with sections for each ‘area’ that you have defined in Home Assistant. Most people will make each room an area, but it’s up to you – you may define parts of a room as a distinct area, for example. Personally, I’ve gone down the room = area paradigm, but I also have areas for ‘roof’ (where the solar panels are) and ‘outside’.
Setting up your home’s areas
You can set up your home’s Areas in the Settings pane in Home Assistant. When you do so, you can also specify any entities that represent the temperature and humidity in that room. This is useful, as these entities will then show up on your Areas dashboard.
Once you have defined your areas, you’ll need to add your devices to these areas. Again, in Settings, navigate to the Devices section. You can sort your devices by Area, so you’ll be able to see which ones are not allocated. Some of these ‘devices’ will represent virtual things, like HACS integrations or web services, so you don’t necessarily need to allocate these to a room.
Adding the Areas dashboard
Again in Settings, you’ll need to open the Dashboards pane. Here you’ll typically see three dashboards there already. These will include your current default dashboard, the built-in energy dashboard and the built-in Map dashboard. At the bottom right, click ‘Add Dashboard’, and choose ‘Areas (experimental)’. Give it a title and an icon, and then enable to show in your sidebar. Once done, you’ll be able to access it at any time from the side bar.
Initially, every area that you have defined will have a section and a tab along the top. If you click the Pencil icon at the top right to edit, you can re-order the areas, and also make any invisible. You may want to do this if the dashboard doesn’t show anything useful for that particular area. If you click into each area, you can also hide any devices that you don’t want to see on the dashboard. For example, in my screenshot, each programme on my Bosch dishwasher shows as an individual entity; I can therefore hide all of those apart from the dishwasher’s power status if I want to.
The areas dashboard is still experimental
We’re only a week on from this feature having been made available in Home Assistant, and so it’s still ‘experimental’. In particular, you’ll only see a handful of devices on this dashboard. In my case, this includes lights, sockets, my dishwasher, my TV, media players, and thermostats.
But it’s a lot easier to set up and manage than it would to create a new dashboard from scratch. And it’s less overwhelming than the other default managed dashboard, which shows a huge amount of data. As time goes on, I hope that the Areas dashboard is developed further and becomes the new default. It’ll make Home Assistant feel more like other smart home apps like Google Home, and make it easier for new users to manage.
One feature of Home Assistant that I’ve only recently started using is Dashboard Badges. These are small widgets that appear at the top of your dashboard, and allow you to view information at a glance. There’s a screenshot above which shows the widgets that I currently have set up.
Badges have been part of Home Assistant for a long time, but they received a major overhaul last August in version 2024.8. In the (approximately) 18 months that I’ve been using Home Assistant, I’ve been gradually adding more and more data to my dashboard, to the point where I had to scroll through several screens worth of data to see what I needed. Which isn’t ideal. Badges are a potential solution, showing basic information at the top, where it’s most accessible.
Each badge widget can usually display the state of one entity. In the screenshot above, I’ve included:
The temperature in our dining room, as recorded by our Nest thermostat
The current weather (it was, in fact, not raining when I took this screenshot)
The current power output of our solar panels
How much charge our solar battery currently has
The current status of our dishwasher
The current status of the TV in the living room
The current status of the sun
The latest version of Home Assistant
There’s a moderate amount of customisation available. For example, as well as the status of the entity, you can include its name, and this text is also customisable to save space if needed. You can also tweak the colours and the icons.
Controlling visibility of badges
One great feature that badges have in Home Assistant is controlling when they’re visible. I actually have more badges than the eight mentioned above, but they’re not showing as I don’t currently need the information offered. For example, I have a badge that displays whether an update to Home Assistant is available. But I only want to see this when an update is available – if I’m running the latest version, I want the badge to be hidden. Here’s how I configured it:
Having selected the widget, I’ve gone to the ‘Visibility’ tab, selected the entity, and told Home Assistant to only display it when the ‘State is equal to’ and ‘Update available’.
I use this on some other badges too. For example, if there’s no power coming from the solar panels, that badge disappears. Similarly, if my solar battery is at 20% or below, which is its idle state, that’s hidden too. You can also control the visibility based on which user is currently logged in, or anything really – the state of one entity can control the visibility of the badge for another.
A useful badge is one that makes use of the custom Octopus Energy integration from HACS, and will display if I haven’t used my Octopus Wheel of Fortune spins that month. Last month, I won 800 Octopoints, which was nice, and it’s helpful to have a reminder to use them.
By using badges, and setting their visibility, I’ve reduced the number of cards on my dashboard significantly. It makes the dashboard less overwhelming, and prioritises the most important information that I need to see quickly.
I now have two dongles – both Sonoff ZBDongle E devices – connected to the Raspberry Pi which runs my Home Assistant instance. One is for Zigbee, and the other one is for Thread.
During the further development and testing of the multiprotocol firmware, we have concluded that while Silicon Labs’ multiprotocol works, it comes with technical limitations. These limitations mean users will not have the best experience compared to using dedicated Zigbee and Thread radios. That is why we do not recommend using this firmware, and it will remain an experimental feature of Home Assistant Yellow and Home Assistant SkyConnect. If you currently have the multiprotocol firmware installed but don’t actively use it to connect to Thread devices, we recommend that you disable multiprotocol.
For the time being, I have been operating a single ZBDongle E just with Zigbee firmware. However, now that I have some Thread devices, I decided to buy a second dongle and flash that with Thread firmware, using this web flasher.
Now, my Thread smart plugs can be reached by Home Assistant without its own Thread dongle – I have a Google Nest Wi-Fi system which also acts as Thread Border Routers. Therefore, having a Thread dongle isn’t necessary – Home Assistant can see and interact with the devices using Google Nest Wi-Fi. But having a dedicated Thread dongle for Home Assistant does offer some advantages:
Thread is a mesh network, so adding another Thread device extends the mesh and should improve resilience.
It gives Home Assistant direct access to the Thread network.
It enables another Thread Border Router, offering an additional exit node.
The Home Assistant Thread Border Router addon includes a web interface, allowing you to view your network’s topology and get a visual representation of how the devices connect to each other.
If you’re looking to buy your own Sonoff ZBDongle E, you can, of course, buy one from Amazon(sponsored link), but (whispers: they’re cheaper on AliExpress).
Just a note: I was unable to flash any updated firmware on the newer dongle that I bought this month, using the Web flasher, so that’s now the Zigbee dongle. Apparently it may be an issue with the Windows drivers, as I was able to use Home Assistant’s Silabs Firmware Flasher addon to update it instead. If you specify this custom URL in the addon settings, it’ll use the latest (as of November 2024) Zigbee firmware. It’s also worth noting that, if you use Zigbee2MQTT, once you’re running the latest Zigbee firmware, you’ll need to tell Zigbee2MQTT to use the new ’ember’ driver rather than ‘ezsp’.
The older dongle seemed to happy to accept different firmware using the web flasher, having done so in the past. So, that’s the one with the Thread firmware.
If you have several devices of the same type, and want to be able to control them all together, then it’s possible to group them together in Home Assistant. The integration is simply called ‘Group‘, and once configured, it creates a helper entity that will perform the same action on all grouped devices.
Last year, I picked up two Zigbee colour-changing LED strips from AliExpress. One was to go in our nine-year-old’s bedroom and the other in the living room – the idea being that we could set the colours depending on the time of year. Rather than having Christmas lights that we put up in December, and took down in January, these lights could stay up all year round. For example, they could be pink around Valentines Day, or green at Halloween.
That was the theory. However, despite ordering 3 metre long strips, they were too short. Our house is about 100 years old with tall ceilings, and consequently, tall windows. In the end, two LED strips together, totalling 6 metres, were long enough just for one window and so they’re both in our nine-year-old’s bedroom. Because they’re two separate strips, they appear and work as separate Zigbee devices.
Creating a group in Home Assistant
You can start the process of creating a group either on the Integrations or Helper screens of Home Assistant’s settings. First of all, Home Assistant will ask you what type of devices you are grouping – all the devices must be of the same type, so you can’t group a switch and a light together.
Well, actually you can – but first you need to create a ‘Change Device Type of a Switch’ helper. Say you have a smart plug controlling a light; you can then create a Helper that appears as a Light, and then that can be grouped with other lights.
Anyway, in my example, I selected Light, gave it a name, and then selected the entities that needed to belong to the group – i.e. the individual lights. There’s also a ‘Hide Members’ option, which will hide the devices you’ve selected from the list of entities in Home Assistant. If you’ll only ever want to interact with the lights as a group, then tick this. However, if you still want to be able to manage individual lights as well, then keep it unticked.
On my Home Assistant dashboard, the icon shows that the new group helper is for multiple lights. The good news is that, even with colour changing lights, all the lights in the group will respond the same way together once grouped.
I also make these lights available in Apple Home and Google Home, and again, I make sure that Home Assistant is exposing the group, rather than the individual lights. As such, when I use Google Assistant to turn them on and change the colour, both lights change simultaneously.
Being able to access your Home Assistant instance outside of your home is useful, and there are many ways to do it – I’ve used several, including SWAG, an nginx proxy and more recently Nginx Proxy Manager. Today, I’m reviewing Homeway, a third-party service.
Setting up Homeway
Of all of the ways that you can enable remote access to Home Assistant, Homeway is one of the easiest. You sign up for an account on the Homeway web site, install an addon on your Home Assistant instance, and then you should be ready to go. Setting up the Home Assistant Companion App for iOS and Android is also supported, albeit with a little more work. If you don’t run Home Assistant OS or Supervised, and can’t install addons, then there’s also a Docker image or CLI client you can install.
Once up and running, it works well – you log in first to Homeway, and then into your local Home Assistant instance. It’s all done over SSL, without needing to set up DNS, port forwarding or reverse proxies.
Homeway also supports easy integration with Google Assistant and Amazon Alexa. Having done it myself, setting up Google Assistant manually is a chore, and even when it’s up and running, I found it slow and unreliable. Using Google Assistant this way is much easier, as you don’t need to create a developer account. I also found it to be much faster, and I haven’t had any issues with devices showing as offline.
If you want to use Home Assistant’s voice control feature, then Homeway also provides access to an AI large language model for processing commands. Its chatbot is called Sage, and behind the scenes it uses ChatGPT 4 and Anthropic’s Claude services. For speech-to-text, it can also call on Google Gemini and DeepSeek R1, and there’s a choice of 25 voices from the various services it uses. As I use Google Assistant, I haven’t set this up myself.
What about Home Assistant Cloud?
What Homeway offers is very similar to Home Assistant Cloud. Home Assistant Cloud is provided by Nabu Casa, who employ many of Home Assistant’s developers and support the Open Home Foundation. So why should one use Homeway instead of Home Assistant Cloud?
The answer is price. I’ve compared the prices in a table:
Monthly price
Annual price
Home Assistant Cloud
£6.50
£65
Homeway
£3.49
£29.88
As you can see, Homeway is less than half the price of Nabu Casa’s Home Assistant Cloud. And, it should be noted that Homeway offers a free tier, if you just want remote access, albeit with data limits. You only need to pay for heavy usage and Google Assistant/Alexa access. There isn’t a free or lower-priced tier for Home Assistant Cloud.
That being said, as of January, Home Assistant Cloud now includes backup storage as well, which Homeway doesn’t currently offer. It’s also worth reiterating that some of the money from Home Assistant Cloud subscriptions goes to paying staff to work on Home Assistant development. As such, Homeway is a little controversial, and I noted that the Home Assistant Community on Reddit seems to block the word ‘homeway’ from posts.
For me, the best feature about Homeway is the Google Assistant support, which works well. I already have good remote access set up using Nginx Proxy Manager and will continue to use this.
I recently bought a pair of Onvis Matter Smart Plugs(sponsored link), as my first foray into smart devices that use a Thread network rather than Wi-Fi. These were to replace my remaining Tuya smart plugs, which use Wi-Fi.
I’m going to review the Onvis smart plugs, and talk about why I’ve chosen Matter and Thread smart plugs over Wi-Fi or Zigbee.
Why not Tuya?
I bought my Tuya smart plugs several years ago, when I didn’t know so much about smart home technologies. At the time, we’d only recently got a Google Home Mini, and so I picked up a cheap smart plug which happened to support Google Assistant and IFTTT, as well as Alexa. The other advantage of Tuya devices was that they could work without buying a hub as a controller, unlike Zigbee-based devices from the likes of Philips and Ikea. Bearing in mind that the hubs often cost at least £40, it’s a lot for when you just want one plug.
I wouldn’t buy a new Tuya Wi-Fi device nowadays, for the following reasons:
Wi-Fi devices use more power than others (Zigbee and Thread). Whilst we’re talking single digit numbers of watts here, having lots of Wi-Fi smart plugs around your home adds to your home’s ‘base load’ (sometimes known as a ‘phantom load’) of always on devices.
Tuya devices rely on Tuya’s servers to work. I understand that users based in Europe use servers located in Europe, but it means that every request has to make a round trip to their servers. This makes it slower than a system where commands can be actioned locally. Now, millions of Tuya devices have been sold over the years and I doubt that those servers would ever go offline, but if they did, any Tuya devices would lose their smart abilities.
Tuya is a Chinese company, so theoretically someone in the Chinese government could be logging every time you use a Tuya device. It’s a theoretical risk, but not having that data pinging across the internet in the first place is better for privacy.
The Tuya plugs that I have are also quite big, and not very sturdy.
Getting started with Thread
To use Thread devices, you need a Thread Border Router. Thankfully, I already have two, as they’re built into my Google Nest Wifi devices. You may also already have a Thread Border Router if you have some of the newer Google Nest Hub devices, a newer AppleTV or Apple HomePod, a newer Alexa device or a Samsung SmartThings Hub.
If you use Home Assistant, you can flash a Zigbee dongle to use Thread instead. Note that the blog post mentions enabling a ‘multi-protocol’ mode that allows you to use both Zigbee and Thread on the same dongle, but this isn’t recommended. As it is, my dongle just runs Zigbee nowadays but I may get a second dongle that I can flash Thread firmware onto. That way, Home Assistant has its own Thread Border Router, and it expands the Thread mesh network. Until then, Home Assistant is able to use the existing Thread mesh network that my Google Nest Wifi devices created – see How to join a preferred Thread network in Home Assistant for more.
Commissioning the Onvis smart plugs
When you get a new Matter device, it needs to be ‘commissioned’ to add it to your home network. You need to open the app for the smart home ecosystem you want to add it to (for example, Google Home, Apple Home or Home Assistant), select to add a new Matter device, and then scan a QR code on a label on the side of the device. In the case of these Onvis smart plugs, you also need to hold down the button for around 15 seconds to put them into commissioning mode. It helps to read the manual.
One of the reasons that I use smart plugs is that they’re controlling devices in awkward places, so I commissioned this in a place where I could sit comfortably with the devices plugged in, and then moved them to where they need to be. Otherwise, I’d be spending time crouched awkwardly in a corner.
Once commissioned, the Onvis plug will show up in the smart home app of your choice, and you’re done. I’ve been using them for a couple of days, and they seem to work well.
Why Matter and Thread?
So I’ve outlined why I wouldn’t use a Tuya device, but why have I chosen a device that uses Matter and Thread?
Thread devices only work locally. Whilst voice assistants like OK Google and Alexa may still need to use the internet to interpret what you say, they don’t need to send the actual commands across the internet. As well as protecting your privacy, it’s also faster; these Onvis Thread plugs seem to respond almost instantly, rather than at least half a second with the Tuya plugs.
The majority of Tuya devices do not work with Apple Home. This isn’t a massive problem for me, as although I use an iPhone and an iPad, I’m not a big Siri user. However, Matter devices are supported.
The idle power usage of these plugs should be lower than Wi-Fi.
As Thread is a mesh network, the more devices you add, the stronger the network becomes. It can also have multiple Thread Border Routers as exit points to your LAN/Wi-Fi network, so a network with several Thread devices and Border Routers should be very resilient.
Many of Apple’s newer iPhones (iPhone 15 and later), iPads and MacBooks include Thread radios, offering even more resilience if they’re connected to your Thread mesh network when at home.
I also think Matter is the future, although it’s taking longer than I would have anticipated for Matter devices to become mainstream.
It should be noted that these Onvis smart plugs do not support energy monitoring. They simply turn a socket on and off. Obviously, you can use automations in your choice of smart home ecosystems to set timers, or trigger them to turn on and off in relation to external events.
I’m noting this because it seems to be a common issue with these relatively early Matter devices – their Matter support is basic. With the Meross smart plugs for example, the Matter support is also limited to turning them on and off again. If you want to use their energy monitoring abilities, you have to use the Meross app, or install the Meross LAN integration from HACS for Home Assistant. These don’t use Matter and instead rely on Meross’ servers to send and receive data.
Price
I recently picked up a Zigbee smart plug for around £8 (including VAT) from AliExpress, which included energy monitoring. Seeing as these Onvis smart plugs don’t support energy monitoring, you may be surprised to find that they’re £25 each, or £40 for a pair (although as I write this, there are 15% off vouchers available on Amazon). So they are on the pricey side.
Which brings to the question about why I’m not just using Zigbee. After all, Zigbee is also a mesh network, and devices work locally. As it is, I have a small Zigbee network with the smart plug and a couple of colour-changing lights for our nine-year-old’s bedroom. And they work fine with Home Assistant. But then I have to use Home Assistant to make them appear in Google Home, and allow my Google Assistant devices to talk to them. Command fulfilment can be slow, taking a few seconds, and it’s unreliable – even when the Zigbee devices are obviously working, Google sometimes complains that they’re offline.
I suppose I could buy a Zigbee hub, like a Philips Hue or Ikea Dirigera, which would probably work better. But I already have Thread Border Router devices, and I’m hoping that Matter will mature as a standard.
Is £25 per Onvis plug worth it? Well, that’s up to you – but bear in mind that they work without needing a third-party app, will work with most smart home ecosystems, seem nice and sturdy and don’t rely on third-party internet servers. Hopefully, these Onvis smart plugs will be a good, long-term investment.
It’s also worth noting that these were the only Thread smart plugs that I could find on Amazon UK.
Matter Multi-Fabrics
One last thing to mention about Matter is its ‘multi-fabric’ feature, which allows you to add devices to multiple smart home ecosystems simultaneously. Initially, I’ve added all my Matter devices to Home Assistant, which has the Python Matter Server addon. On the device settings page, there’s a ‘Share Device’ button, which, when clicked, puts your device back into commissioning mode. You then get a new QR code in the Home Assistant interface, which you can use to add it to another smart home app like Google Home. You can then repeat the whole process for any other apps, like Apple Home.
This means that I have my Onvis smart plugs added to all three smart home apps, and they can be controlled by Home Assistant, Apple Home and Google Home. What’s particularly notable is that I was still able to control the lights in Apple Home whilst my Raspberry Pi running Home Assistant was restarting after an update.
Summary
Well, this ended up being a longer blog post that I’d expected. So, in summary:
The Onvis smart plugs work well, are sturdy, respond quickly and are compatible with most smart home ecosystems
They’re a bit pricey at £25 each, and don’t support energy monitoring
You need a Thread Border Router device for them to work, but you may already have one
They’re more energy efficient than Wi-Fi sockets, and don’t rely on third-party internet servers
Recently, I’ve been reading about Dave2‘s adventures with his new Homey Pro, which he is using as his smart home controller. For context, Dave2 has tried to use devices certified for Apple HomeKit for years, and it’s been a struggle. Devices disappear randomly, automations fail to work, and so on.
The Homey Pro is an all-in-one smart home controller, supporting Zigbee, Matter, Z-Wave, Bluetooth, Wi-Fi (and optionally Ethernet), Infrared and RF devices, in one neat package. That’s basically every smart home protocol covered. There’s also the Homey Bridge, which is available separately to increase range, but it can also be bought separately.
Dave2 has written five blog posts about his journey: part one, part two, part three, part four and part five. If you’re considering buying a Homey Pro, I would suggest reading each one – especially if you’re moving away from Apple HomeKit.
How does the Homey Pro compare to Home Assistant?
As regular readers will know, I’ve basically gone all in on Home Assistant as a smart home controller. It works fine for me, and I like its do-it-yourself nature up to a point. Where Homey stands out is that everything is in one box, and, as far as I can tell, you don’t need to sign up for developer accounts to integrate services. That removes a large amount of friction which can be intimidating to new users. Home Assistant Cloud makes integration with Google Assistant and Alexa much easier, but it’s a paid add-on.
However, where Home Assistant stands out compared to Homey Pro is the number of integrations. Homey Pro offers a good range of apps, and has an open SDK. But there isn’t the same range as Home Assistant, and there doesn’t appear to be the equivalent of HACS to install additional integrations.
Whether Home Assistant or Homey Pro is right for you depends on how much time you have, and how much control you want. The Homey Pro will work much better out of the box, and it should be quicker and easier to get started with it. Home Assistant is definitely more complicated, even if you buy a device with the software pre-loaded, but it’s much more powerful and customisable.
Search for ‘millennials house plants’ on Google and you’ll see lots of magazine articles about how people of our generation love our house plants. Alas, neither Christine or I are particularly good at keeping our house plants alive, apart from those in the already humid environment of our bathroom. So, I’ve been experimenting with electronic plant monitors to see if one will help us keep our plants thriving.
First to the HHCC model, which uses Bluetooth Low Energy. It’s sometimes known as ‘MiFlora’ and compatible devices are also sold under the Xiaomi brand. Of the two, it’s smaller, and offers more sensors; as well as detecting how much moisture is in the soil and the temperature, it’ll also try to measure how fertile the soil is, and the light intensity. It’s powered by a small CR2032 button battery which is replaceable. Officially, you should use the Flower Care app with it, but it also works with Home Assistant using the Xiaomi BLE integration.
The button battery should work for about six weeks before it needs replacing. Alas, these CR2032 batteries are not rechargeable, so you’ll need to take it to somewhere that recycles batteries and replace them when they run out of charge. At the time of writing, you can get 20 replacement CR2032 batteries for around £6, which should be enough to last you a couple of years.
Bluetooth Low Energy, as the name suggests, doesn’t have a long range. Therefore, if you are using this HHCC device with Home Assistant, you’ll need to have your device (or a Bluetooth proxy) in very close range.
Haozee Zigbee plant monitor
As you’ll see from the side by side photo at the top of this blog post, this Zigbee model is a bit bigger than the Bluetooth model. That’s because it takes two AAA batteries, rather than a CR2032 button battery. Consequently, battery life should be much longer – premium AAA batteries can typically hold up to 1100 mAh charge, compared to around 240 mAh in a CR2032 battery. Also, AAA batteries can be rechargeable.
The Zigbee signal should also be much stronger than Bluetooth Low Energy. I’ve certainly had fewer connection issues with this one compared to the HHCC model, even though the nearest Zigbee device is further away.
However, unlike the HHCC model, it doesn’t offer light or soil fertility sensors. You’ll just get the moisture level and temperature, as well as how much charge the battery has remaining. Also, if you’re planning to connect this to Home Assistant, be aware that it (probably) doesn’t support Home Assistant’s built-in ZHA integration. This was the reason why I set up Zigbee2MQTT.
The other disadvantage of Zigbee devices is the need for a hub or bridge of some sort. I use a Sonoff USB Zigbee dongle plugged into my Raspberry Pi running Home Assistant, but I imagine you’re supposed to use something like this Tuya Zigbee hub(sponsored link) and the Smart Life or Tuya phone apps. So whilst the Zigbee plant monitor itself was slightly cheaper than the Bluetooth model, there’s an initial setup cost if you don’t already have a Zigbee controller.
My recommendation
The HHCC Bluetooth plant monitor is fine if you just want to use the official Flower Care app, or have your plant very close to your Home Assistant device. The replacement batteries are cheap and you may not need any extra hardware to get it to work.
If you need a longer range, don’t want to replace batteries as often, and/or have other Zigbee devices already, get the Zigbee plant monitor. You can use standard rechargeable AAA batteries with it, and you’ll get a more reliable connection over long distances.
If you’re a Home Assistant user who is getting started with Zigbee devices, then you may be tempted to just use Zigbee Home Automation (ZHA), Home Assistant’s built-in Zigbee implementation. But you may also want to consider Zigbee2MQTT as an alternative, and this blog post will explain the differences.
Low power, so battery-powered Zigbee devices shouldn’t need their batteries replacing too often.
It’s a mesh protocol, so every mains-powered Zigbee device forms a mesh with each other, allowing a network to span a house without necessarily needing multiple access points like Wi-Fi.
It works locally, so it’s more secure and private than Wi-Fi.
If you’re new to Zigbee and/or Home Assistant, my recommendation is to use ZHA, which is Home Assistant’s built-in implementation. If you plug your Zigbee dongle in, Home Assistant should detect it, and offer to configure the ZHA integration for you. Then, you just add devices using the ‘Add Integrations’ button on the Integrations Settings page, where a new ‘Add Zigbee device’ option will appear at the top.
Home Assistant should be able to recognise and offer to add any Zigbee device, but what you may find is that some devices won’t have any entities. This means that it’s not supported by ZHA. There’s a database of Zigbee devices which you can use to check whether they’re supported by ZHA or Zigbee2MQTT, and what you may notice is that there are quite a few which ZHA doesn’t support.
Zigbee2MQTT
One of the devices that I’ve recently bought seemingly fell into this latter category. To be fair, I never checked it with ZHA, but reading reviews online suggested that it would only work with Zigbee2MQTT and not ZHA. Zigbee2MQTT also maintains its own list of supported devices, which currently number nearly 4000.
Getting Zigbee2MQTT set up with Home Assistant is a much more involved process, however. You’ll need to install two addons and an integration:
Firstly, you’ll need to install the Mosquitto addon, which is an MQTT broker – essentially a server which handles the MQTT messages. This is available from the standard Home Assistant add-on store. There are other brokers available, but this one is most recommended for use with Home Assistant.
Next, you’ll need to install the MQTT integration. Once Mosquitto is running, Home Assistant may automatically detect it, and offer to install this for you, but if not you’ll need to install it manually.
Finally, there’s the Zigbee2MQTT addon to install. This isn’t available from the standard Home Assistant add-on store until you add a custom repository.
Once all of these are installed, you’ll need to disable the ZHA integration if it’s enabled, and then open the Zigbee2MQTT web interface. Go into the settings, and ensure that it’s pointing at the Mosquitto MQTT server that you set up in step one above – you may need to enter its IP address.
You’ll then need to add devices using the Zigbee2MQTT web interface – there’s a button at the top right where you can enable pairing. Any devices you add will then show up automatically under the MQTT integration in Home Assistant.
Once set up, Zigbee2MQTT seems to work well, and I’ve seen others state that they’ve found it more stable than ZHA. But it’s a lot more difficult to set up, and ZHA will probably work for most users. If you’re new to all this, my advice would be to try ZHA first, and then re-pair your devices with Zigbee2MQTT if it doesn’t work out.
If you’ve been reading this blog for a while, you’ll know that we have solar panels which are connected to an inverter from the Chinese company Solax. Recently, I asked for the firmware on our inverter to be updated, as part of some testing I’m assisting with for an app. Unfortunately, in doing so, it’s broken the Home Assistant integration.
As per the integration page:
Inverter models with newer firmware (and also those using devices like PocketWifi) no longer expose an API when connected to your wireless network, they do however continue to expose it on their own broadcasted SSID. To use this sensor in this case it is necessary to set up a reverse proxy with something like NGINX and use a Raspberry Pi (or similar) with two network connections (one being Wi-Fi that connects to the inverters SSID).
Sure enough, a scan of available Wi-fi networks showed a new unsecured SSID with my inverter’s serial number. Now I’m not beyond setting up a reverse proxy (I have Nginx Proxy Manager running) but this would require purchasing an additional Raspberry Pi, potentially with an additional USB Wi-fi adaptor or HomePlug adaptor.
Annoyingly, the inverter does still connect to my home Wi-fi network, and it’s possible to access a web-based portal by popping the inverter’s IP address into a web browser. But it no longer offers a local, real-time API over REST.
All aboard the Modbus
That’s the bad news. The good news is that it’s still possible to connect to the inverter using the Modbus protocol. Now, Modbus is old. Like, really old. Like, older than me old. Like, old enough to be a grandfather old. Like… well, you get the picture – it was originally developed in 1979 for use over serial connections. Thankfully Modbus can also work over TCP/IP on port 502, so I don’t need to run a very long serial cable and dig out my old USB to RS232 adaptor. Yes, I still have a USB to RS232 adaptor somewhere. I’m only a few years younger than Modbus.
Also, Modbus sounds like a bus full of really cool people wearing 1960s fashion and listening to The Who, although arguably they should be on Lambretta scooters. This is where I would ask Microsoft Copilot to create an image of this, but I’ll probably end up using the equivalent electricity to power a provincial English town trying to get it to generate what I’ve pictured in my mind.
Home Assistant natively supports Modbus, and if you have a spare half hour you can read everything on that page. Suffice to say, you have to set it up using YAML and know the Modbus specification of the device you’re communicating with. You probably don’t want to do this.
HACS to the rescue
The good news is that there’s a HACS integration for Solax Modbus. Once you have HACS installed, search for Solax and it’s (currently) the only one that comes up. Install it, restart Home Assistant, and then add the integration. There will be lots of input boxes pre-filled with default values – leave these be. The only thing you need to enter is the IP address for your inverter.
Once set up, the integration added loads of new entities for my inverter to Home Assistant. In fact, it seems like there were far more than before. The data isn’t strictly speaking ‘real-time’, but it polls every 15 seconds and so might as well be.
So that’s the good news. You can have the latest firmware on your inverter, and have it work locally with Home Assistant, without having to purchase another device to act as a reverse proxy. The bad news is that you’ll need to update any dashboards that you have set up to point to the new entities.
Looking to the cloud
The official way of accessing your inverter’s data and status is using the Solax Cloud, either online or through the official app. From there, there is an official API for interacting with this data. But it’s not real-time – updates happen every five minutes. And I can see why some people won’t want their data uploading to the cloud.
There isn’t a Home Assistant integration for Solax Cloud, either in the core product or through HACS. But someone has written their own YAML code to communicate with the Cloud API, should you wish to use this, although it also relies on the REST API which seems to have been deprecated from newer firmware versions.
Getting the latest Solax firmware
If you do want to update the firmware on your Solax inverter, there’s a handy guide here. The easiest and safest way is to contact Solax support and ask them to do it for you; they can log into your inverter remotely and run the upgrade. I hadn’t realised this until Home Assistant suddenly stopped being able to communicate with the REST API on my inverter. There are other ways of obtaining the firmware, and you can upload it yourself to your inverter’s local web portal, but it’s probably best for Solax to do this for you. Considering our solar panels, battery and inverter cost a five figure sum to install, it’s not something that I want to accidentally brick.
As for the app I mentioned in the first paragraph? I’ll talk about it once it’s released.