Homey vs. Home Assistant – What Does Each System Do Better?

In this topic, I would like to discuss the direct advantages and disadvantages of Homey and Home Assistant.

The purpose is not to decide which system is “better” overall. Instead, I would like to look at specific features, concepts and design decisions and discuss:

  • What is better implemented in Homey?

  • What is better implemented in Home Assistant?

  • What are the downsides of each approach?

  • And, perhaps most importantly: What could Homey learn from Home Assistant, and vice versa?

To keep this discussion useful and constructive, I would suggest a few simple rules.

Discussion rules

  1. No system bashing or fanboyism
    Posts whose only purpose is to discredit one system or praise the other are not helpful here.

  2. Please compare actual features and concepts
    Explain what you think is better or worse and, ideally, why.

  3. No “number of integrations/devices” comparisons
    Please do not discuss how many devices, brands, integrations or apps either platform supports. This is not intended to become a competition by numbers.

  4. No discussions about communities, developers or team members
    Please keep the discussion focused on the products themselves rather than the people or communities behind them.

  5. Experience with both systems is important
    If you have never used one of the two systems, or have only experimented with it very briefly, this probably isn’t the right discussion to draw strong conclusions from.

  6. Please stay on topic
    Try to avoid unrelated discussions, and preferably do not engage with off-topic posts so the thread remains readable.

The goal is to build a useful overview of the things Homey does really well — and we should absolutely be able to say so — as well as the areas where Homey could perhaps learn from ideas or solutions found in Home Assistant.

And of course the comparison works both ways.

If someone from the Homey team happens to read or participate in this discussion, it might even become a useful source of ideas for future improvements.

I’ll start with my first comparison in the next post.

I decided to build a dual setup with Homey and Home Assistant.

Both systems mainly use the same Matter devices — most of them Matter over Thread, with some Matter over Wi-Fi — and all devices are paired with both systems.

I have now started recreating my Homey flows as Home Assistant automations and scripts. So far, I have migrated several automations that I would describe as moderately complex.

These are my observations so far.

Helpers: a major strength of Home Assistant

Home Assistant allows you to create sensors, counters and many other things using Helpers, without requiring a third-party app as you often would in Homey.

Unfortunately, for some of the more advanced use cases you still end up touching YAML or templates. However, in my experience, AI is extremely good at generating the required YAML as long as you explain precisely what you want to achieve.

Helpers can, for example, take the equivalent of a Homey “tag” from a sensor delivering a current power value in watts and turn it into an accumulated energy value in kWh, including long-term statistics.

This makes it very easy to create historical data from sensors that originally only provide instantaneous values.

Helpers also make it very easy to create groups of sensors or entities.

For me, this is one of Home Assistant’s strongest concepts.

The automation editor has improved a lot

The visual automation editor in Home Assistant is far better than it was a few years ago.

Today, you can select devices and entities from lists and build quite complex automations without writing everything manually in YAML.

However, compared with Homey’s Advanced Flows, I still find it considerably less intuitive.

I was told that I should try C.A.F.E. in Home Assistant and that I would then no longer miss Advanced Flows. I tried C.A.F.E. and its fork FLODE.

They are interesting and certainly promising projects, but at least in their current state they are nowhere near Advanced Flows for me. I also encountered quite a few bugs. I would currently consider them more like early beta concepts than replacements for Advanced Flow.

The entity system can become a real mess

One of my biggest frustrations with Home Assistant is the handling of entities.

I can’t tell you how many times I have run into problems because an entity was called something like:

sensor.window_living_back

in one place, while somewhere else I ended up with:

sensor.living_back_window

Sometimes I tried renaming an entity and Home Assistant told me that the new entity ID already existed.

Then I had to go into the Entities list, search for it and discover that there was effectively a leftover or “ghost” entity that I first had to delete.

Things like this can become surprisingly confusing.

Duplicating automations can create similar problems. I have ended up with references that effectively look like:

774674783899

instead of something immediately understandable.

Sometimes I then had to open the file editor to correct things manually. And if you forget to reload scripts.yaml afterwards, you suddenly see several automations marked as broken.

Those are rather shocking moments when you are still learning the system. :slight_smile:

Power versus simplicity

My first conclusion is this:

Home Assistant automations are more powerful than Advanced Flow.

But reaching that level of power still often means touching YAML, templates or at least understanding how Home Assistant works internally.

So yes, there is more power — but there is also considerably more complexity.

I remember struggling with Advanced Flows as well when I first started using them. There definitely is a learning curve in Homey too.

But in my experience, the learning curve in Home Assistant is clearly steeper.

Later, once I became comfortable creating Homey flows, I wrote my own Flow Gadgets app because the standard cards were no longer powerful enough for what I wanted to do.

Home Assistant Helpers already provide many of these possibilities directly, and I can create them myself without writing an integration.

Another example is my Fronius Local app for Homey, which I wrote for my solar installation.

Home Assistant already has a Fronius integration, but it doesn’t provide all the long-term values that my Homey app provides.

Recently, a Homey user asked me to add additional Insights to my app. In Home Assistant, I have already created Helpers for two of those values, giving me exactly the long-term statistics I wanted.

That is a very powerful concept.

Where Advanced Flow is clearly better: visibility

One major advantage of Homey’s Advanced Flows is visibility.

A well-designed Advanced Flow is very easy to read.

You can often understand the complete logic simply by looking at it.

Home Assistant automations are much harder to read. A lot of information is hidden until you click on individual rows and inspect their details.

I have found some web tools that can turn Home Assistant YAML into nice visual flow diagrams. They are useful for documentation, but they are only visualisations — you cannot edit the automation there.

On the other hand, Home Assistant has one enormous advantage: the automation itself can be represented as YAML.

You can copy that YAML and give it to an AI.

The AI can inspect it, find mistakes and correct them.

Even more useful: you can describe the automation you want, let the AI generate the YAML, paste it into Home Assistant and suddenly you have a complete complex automation available in the visual editor.

Something that could take quite some time to build manually can therefore be created in seconds.

This is something I really miss in Homey.

I would love to have a documented markup or text representation of Advanced Flows that could be exported and imported. If that format were documented properly, AI tools could also generate, analyse and modify Homey flows.


My current wish list for Homey

  • Native Helpers
    Something that can take existing tags and transform them into new values — for example converting current power in watts into accumulated kWh with Insights history.

  • Native Groups
    I know there are apps that provide grouping functionality, but Home Assistant integrates this concept much more deeply and makes it extremely easy to use.

  • Import/export of flows as code
    Provide a documented text or markup representation of flows that can be exported and imported. This would make flows much easier to analyse, generate and modify with AI.


My current wish list for Home Assistant

  • Get rid of the entity mess
    Renaming something should propagate consistently everywhere. Users should not have to hunt down old IDs, hidden references or leftover entities.

  • Improve the automation GUI significantly
    Options such as Continue on error or Mode should be visible in the information panel rather than hidden behind three-dot menus.

    Some subtle colour coding for conditions, actions, choices, sequences and other blocks would make complex automations much easier to read.

    Rows should also contain more useful information. For example:

    Switch the state: Kitchen switch

    does not tell me very much until I open it.

    Why not:

    Turn ON: Kitchen switch

    The important information should be visible without opening every line.

  • Make categories actually visible
    Many Home Assistant lists allow categories to have both a name and an icon, yet in the list itself you mainly see the category name.

    In a large table, those category headings disappear visually.

    A slightly larger font, the category icon and perhaps a subtly different background would make them far more useful for structuring long lists.

  • Script fields should be selectable in the GUI
    I can define parameters — called fields — for a script.

    But when I want to use such a parameter inside the script, I often have to write a template such as:

    {{ heating }}

    Why can’t I simply select the script parameter from the GUI just like I select an entity?

  • Why are Scripts and Automations separate concepts in the GUI?
    From a user’s perspective, a script is essentially automation logic without a trigger, but with parameters.

    Home Assistant can of course keep them separate internally if that makes sense architecturally.

    But from a UI perspective, I don’t really see why they need to feel like two completely different systems.

    An “automation with parameters” could simply disable or hide the trigger section where appropriate.


So my first impression after actually working with both systems side by side is:

Home Assistant gives me considerably more building blocks and ultimately more power. Homey gives me a much clearer and more approachable way to express automation logic.

If I could combine Home Assistant’s Helpers, flexibility and code representation with the clarity and usability of Homey’s Advanced Flow, that would probably be very close to my ideal automation system.

Funny, just saw this thread after I posted mine about giving up on Homey Pro.

Homey Pro makes automating your house fun. The flow system is intuitive, it is easy to use and come up with ideas and realize them, and everything is in one little box. However, I have had many issues with Homey Pro needing to reboot, disconnecting, deciding to reactivate my room lights flow in my room in middle of night when I was sleeping. I’ve changed power cords, power outlets, connections, everything, making basic flows vs advanced ones. Basically removing everything that was fun about Homey Pro, to turning it into a dumb smart home hub, that still wasn’t reliable.

Home Assistant just works. It is hard to build automations that are fun. You have to learn the programming language on it, but it works and stays working.

Home assistant takes constant work to keep running in my opinion, especially after each update. It is more powerful in some cases and I use it for a few things, but I find the ease of writing flows in Homey is much greater than Home Assistant. I do wish thermostats (nests) worked differently in Homey. Also the the Homey plugin for ChatGPT works very well.

That was one of the reasons I started running both systems. However, over the past few days, I’ve noticed that when devices become unstable in Homey, they also become unstable in Home Assistant. It doesn’t always happen at the exact same time, and it’s not always the same devices.

So, is one system interfering with the other, or is my Thread network with multiple TBRs simply unstable?

Stability is often used as a key argument, but in my case, after just a few weeks, I can’t really see a clear winner yet.

I agree. Updates can sometimes break hardware functionality. However, I now only use Matter devices, with a handful of exceptions—mostly older devices that will be replaced over time. This makes the risk of breaking something very small, if not non-existent. But that’s an architectural choice.

That said, Homey updates have also broken working systems in the past. I remember my Matter network working flawlessly for weeks, but after a specific update, it became unstable daily until a subsequent update finally restored stability.

I’m using Philips Hue and WiZ for my lights. I just took down my Nanoleaf shapes because they kept having issues with being reliable. I have one set on my TV still, but I don’t care about using them. I did find today that my smart buttons aren’t working and not being detected even in Philips Hue app. I have two, and I was using one daily, but I have a different automation that covers that functionality going off a Google Speaker playing or not playing. My Philips Dial for Homey, the dial turning could only set to a set brightness, where Home Assistant lets me have it lower and raise the brightness. I have the other four buttons set for specific light dimness (kept it easy, 25%, 50%, 75%, and 100%) and the dial to making more adjustments in between. Long press any of the buttons reactivates the flow and sets it to 75%, as the default for the room. I just couldn’t get that to work in Homey Pro. It took me a bit to figure out the rotating dial in Home Assistant, watching videos. I think that is the biggest pro and con on Home Assistant. Sure, you can more than likely get something to work, but it will take you time to find out how to do it. I wish there was a more stable version of Homey Pro that worked consistently like Home Assistant, but with the fun of creating a flow. CAFE and Thread Node just haven’t been as good as I would have hoped. They’re not as good as Homey Pro.

I don’t. I can’t remember the last time that an HA update broke something. Anything. Although I do adhere to my own golden rule: don’t install .0 versions. I try to update about once a month.

I have about 100 Zigbee devices (managed by Z2M), about 15 to 20 ESPHome devices, about half a dozen Shelly devices, a few Matter-over-WiFi devices, 4 cameras, and various household appliances (TV, printer, smart lock, etc).

HA is running inside a Docker container on a server that runs many more services, and it uses about 1% CPU on average.

If I may bring a third system into the discussion, there is one concept from Hubitat that I would love to see in both Homey and Home Assistant: Required Expressions.

In Hubitat’s Rule Machine, a rule can have normal triggers, but it can also have a Required Expression.

At first sight, this looks very similar to normal conditions. The important difference is how it works.

A Required Expression is maintained independently of the trigger. If the expression is currently false, incoming trigger events are effectively ignored and the rule does not start at all.

For example:

  • Trigger: Window opened
  • Required Expression: Heating enabled

If heating is disabled, opening the window does not start the rule. There is no need to enter the automation, evaluate its normal conditions and then stop again.

The rule simply remains silent until the Required Expression becomes true again.

This is different from the usual approach in Homey or Home Assistant, where the event first triggers the automation and conditions are checked afterwards.

The practical advantages are:

  • fewer unnecessary automation executions
  • cleaner logs and traces
  • less noise when debugging
  • clearer separation between “Can this automation currently be triggered?” and “What conditions should be checked after it has triggered?”
  • potentially less unnecessary processing, especially for rules reacting to frequent events

It can be a little difficult to understand at first because visually it looks almost like another condition. But conceptually it is quite different:

A normal condition decides whether an already triggered automation may continue. A Required Expression decides whether the automation is currently eligible to be triggered at all.

I found this to be a very elegant concept in Hubitat, and it is something I would like to see adopted by both Homey and Home Assistant.

…no it isnt our network, the multible TBRs are the reason…Athom Support confirmed the problem during my last Thread Crash…for me it seem, less TBRs are more stability at the moment…sry for Off-Topic

I’m not so sure about that.

I opened a support ticket about my last Thread problems. In my case, only Home Assistant managed to rediscover all devices reliably. Home Assistant together with the Apple TBRs also worked fine.

The problems started again as soon as Homey joined the Thread network. At that point, Home Assistant began losing devices as well. So in this particular case, Homey was clearly the disruptive factor.

What eventually helped was unplugging several simple Thread routing devices and plugging them back in about 10 minutes later. After that, both systems became stable again.

My suspicion is that the Homey Matter fabric had some kind of problem with one routing device. But even if that was the trigger, it should not normally be able to disrupt the other systems on the same Thread network.

Earlier, before I started using Home Assistant, I also suspected the Apple TBRs to be the main culprit. But they have been working flawlessly together with Home Assistant.

So with my current setup, Homey is clearly the component that contributes most to the instability — at least in a multi-TBR environment.

But this is probably getting off-topic here, except perhaps for the point that Homey currently seems to be less stable in a multi-TBR setup.

I’m currently rebuilding some of my very complex roller shutter flows in Home Assistant, and this has made another difference between the two systems very obvious to me.

Building the logic is actually easier in Home Assistant

Surprisingly, I find the actual logic easier to build in Home Assistant than in Homey’s Advanced Flow.

A lot of things are handled directly by Home Assistant that you have to construct explicitly in Advanced Flow. The combination of AND/OR conditions, together with Choose blocks, is extremely powerful and allows complex logic to remain relatively compact.

It becomes even more powerful once you discover features such as Continue on Error or the different automation Modes.

What I don’t understand is why some of these important features are hidden behind three-dot menus instead of being shown in the information panel on the right, where you would naturally expect configuration options to be.

That feels more like a UI problem than a limitation of the automation engine itself.

But readability is a real weakness

When it comes to understanding a complex automation at a glance, Home Assistant is far behind Advanced Flow.

With a Homey Advanced Flow, you can usually look at the whole flow and understand its structure immediately.

With a complex Home Assistant automation, it is very easy to lose the overview.

The automation editor shows the structure, but often hides exactly the information you need to understand it. You may see something like:

Luminance Outside East

but not the actual comparison or value until you click on that line.

For a large automation, that means constantly opening individual elements just to understand what the automation is doing.

What Home Assistant really needs, in my opinion, is a simple logic overview.

It doesn’t even need to be a graphical flow editor. A compact text representation would already help enormously — something similar to a programmer’s outline:

Choose
 └─ Option 1
    ├─ Conditions
    │  ├─ Luminance Outside East > 500 lx
    │  └─ Outside Temperature < 20 °C
    │
    └─ Actions
       └─ Turn Terrace Heater ON

This is essentially the same information that already exists in the automation editor — just shown completely and in a compact, readable form.

You could scroll through a complex automation and immediately understand:

  • which conditions belong together
  • whether they use AND or OR logic
  • what values are being compared
  • what each branch actually does
  • and where one logical block ends and the next begins

It wouldn’t even have to be editable. Just having such an automatically generated overview would make debugging, reviewing and maintaining large automations much easier.

For me, this is currently one of the biggest disadvantages of Home Assistant automations:

The logic itself is extremely powerful and often surprisingly elegant to build, but the GUI does a poor job of showing you the logic you have already built.

Homey’s Advanced Flow is almost the opposite: it may sometimes require more work to construct the logic, but once it exists, it is much easier to understand visually.