I just came across this topic. I know it is older but wanted to say my bit.
I have tried Homeseer (paid software) Vera (paid appliance) Domoticz (free software) OpenHAB (free software) and Home Assistant (free software).
I wanted specific things, including a really cool looking wake up alarm clock that integrated hue lamps (colour) and some audio.
Homeseer was just a mess trying to implement it and could never get it right. I was confused on how to set up the required service calls and the room configuration, although simple enough, was archaic and just darn ugly.
Vera. again, could not do what I wanted. Great if you want something a little more advanced than smart things, but only want simple automations for your home. It didn’t do what I wanted.
Domoticz: Development was too far behind, The component integration and support for newer devices just was not there. I also found the Zwave implementation a little unstable.
OpenHAB: I used version 2 and although the UI is really nice, PaperUI is far from prime time and should be beta still. You can do a lot if you are more of a JAVA programmer, but it is a steep technical learning curve. The other issue is automations created in PaperUI are stored somewhere completely separate to the files if you create manual automations.
OpenHAB works great and device support was great, I just found the structure of having two basically separate, and sometimes competing, ways of configuring a little too messy.
Home Assistant: This is the one I stuck to. It is not designed for someone who wants to do basic stuff in a GUI, though there are some GUI configs available, but you still need to understand JSON.
Home Assistant did one thing none of the others did. It detected devices automatically and added most of my devices to the UI within minutes. OpenHAB is easy to add devices, but it was totally manual addition, nothing automatic (when I tried it).
The ones that didn’t detect automatically in Home Assistant were well documented. YMMV, this is just my experience.
I am a bit tech savvy, but I found OpenHAB too much of a learning curve. YAML, used by Home Assistant, is picky about spacing and can be annoying, but for the flexibility of being able to do what I wanted, something commercial products still can not do, I can tolerate the quirks of YAML. They are rather easy to work around and there are a ton of examples and youtube videos. Home Assistant and OpenHAB seem to be the only options flexible enough to do the more complex alarm I wanted, while still being easily maintainable by someone at home.
The expensive, professional systems may do similar things (or may not) but I don’t want to pay someone hundreds or even thousands of dollars to install something I then have little to no control over. If something breaks in Home Assistant I can most times revert to a backup snapshot or fix it, I don’t have to pay anyone to do it.
Sure, it is not ready for Grandma, but it is one of the best out there if you are willing to dig in a bit and learn.
My Install took me about 2 to 3 hours of initial setup, plus maybe another hour of tweaking, and has a good WAF..
WAF was lacking in most other solutions (OpenHAB excepted).
Who is it best for: Judge from the experience of others. It is for someone who wants to try and create the home of the future really. Someone willing to learn, experiment and sometimes have the odd failure. You don’t have to be a programming wizard or even know a lot of linux, even though Linux and Python experience definitely helps. You just have to have a bit of technical know how and apptitude towards learning this sort of thing.