|
|
Covid-19 lockdown in March 2020 and the impending revitalization of my home sent me on an evaluation journey what smart home solution to use for the new modern home.
|
|
|
|
|
|
You have to know that while I want a smart home, I do have special needs. Maybe it's the pure-grade INTJ in me, but I tend to question existing majority solutions and opinions - a lot. When I intuitively (but it's an educated guess - really) believe something could be done **much** better, it usually could.
|
|
|
|
|
|
Therefore, also in this case, my smart home needs to be better and cheaper than that of "everyone else"(tm).
|
|
|
In order to achieve that, I had a look at the available solutions on the market. [HomeMatic](https://www.eq-3.com/products/homematic.html), [Somfy](https://www.somfysystems.com/en-us/), even [KNX](https://en.wikipedia.org/wiki/KNX_(standard)).
|
|
|
Nothing of that was truly convincing. Either these are "their own world" or even as a standard do not offer a convincing price/performance ratio.
|
|
|
|
|
|
I had a look at various OSS projects trying to provide an abstraction and integration layer to all these solutions.
|
|
|
|
|
|
![oh_logo](uploads/01e0a5718da6b1734d6135cda3f76c6d/oh_logo.png)
|
|
|
<img src="uploads/fe016016132ccf8a1167886ad9ac2550/domoticz.png" height="130">
|
|
|
<img src="uploads/382a63ea9d5d8d2304f4eaa1325e7842/home-assistant-logo.svg" height="130">
|
|
|
![mh_logo](uploads/191ba23f3178b34b5514a209756f66f0/mh_logo.gif)
|
|
|
![fhemicon](uploads/96fa1c96dfafe6f697873d6474c5bec0/fhemicon.png)
|
|
|
|
|
|
[OpenHAB](https://www.openhab.org/) - of course, [Domoticz](https://www.domoticz.com/), [Home_Assistant](https://www.home-assistant.io/hassio/) (pro tip: <tt>hass.io</tt> is not the best URL one could come up with - ask the Germans) and even such "exots" as [MisterHouse](http://misterhouse.sourceforge.net/) and finally [FHEM](https://fhem.de/).
|
|
|
|
|
|
Each has their pros and cons. In case you need to modify something, configure or customize to your needs, you can - it's OSS after all. In principle. Of course also this immortal quote holds true:
|
|
|
|
|
|
> If you want something done, do it yourself!
|
|
|
-- Jean-Baptiste Emanuel Zorg
|
|
|
|
|
|
You can form an OSS solution to your liking - provided that you actually **can**, as in: skill-set - do it. So for me it was of equal importance how mature and functional a given solution is, as well as to what extent I would be able - in case of need - to customize/adapt the given solution.
|
|
|
|
|
|
I should be absolutely clear that from my point of view, OpenHAB is currently the most mature and functionally extensive smart home solution out there. If you want something that "just works" and has a fairly big user base and community and you do not expect or intend to "make it better than the guys who actually wrote it", then go for OpenHAB. Seriously.
|
|
|
|
|
|
For me, however, situation is different. I do not like Java very much (language of OpenHAB), neither am I very fond of Python (except for machine learning). So if I wanted to modify a given solution, I couldn't do so (at least not to the extent of my liking) in a project that used technologies I am not used to.
|
|
|
|
|
|
The last two of the OSS smart home solutions mentioned (MisterHouse and FHEM) are written in [Perl](https://www.perl.org/). You know - this allegedly ancient programming language [everyone hates](https://www.theregister.co.uk/2017/10/31/perl_most_hated_language/). See my opinion on "majority opinions" above. Moreover, I have been doing Perl (among a few other things) for the past 25 years and I believe to have reached a fairly good level of mastering it.
|
|
|
|
|
|
Now I have looked into MisterHouse a few years ago and even at this time it was a quite exotic 1-man show project, written in a somewhat archaic style of Perl and quite US-centric (X10). I mean I do like necromancing old projects, but this really seemed like a waste of effort. It would probably be easier to write something from scratch than to bring MisterHouse on a level I'd like and writing something myself from scratch: No go.
|
|
|
|
|
|
So I had a look at FHEM. At first I didn't believe my eyes, so I kept rubbing my eyes in doubt and amazement. The code is terrible - I mean even for Perl - outdated, wrong in almost any conceivable architectural decision. What's worse (much worse) than that: the small group of "rank" within the project is perfectly comfortable with this situation. In fact, doesn't see this situation at all and is - quite frankly - conservative to keep things as they are to an extent I would even call *stubbornly hostile*.
|
|
|
|
|
|
**BUT**
|
|
|
|
|
|
* FHEM works, or "just works". For me sometimes even miraculously, no matter the foundations.
|
|
|
* It is functionally extensive. You would be surprised (as was I) what devices you already have at home that FHEM can talk to.
|
|
|
* It is being used by quite a few people. Estimates speak of 20k-30k users. I do not dispute these numbers.
|
|
|
* The community is quite vibrant. The [forum](https://forum.fhem.de/) is very active and covers a plethora of topics. True, it's very [Germany-centered](https://fhem.de/stats/statistics.html). Wouldn't hurt if the project became more international.
|
|
|
|
|
|
So if I wanted a project offering extensive functional features, was not afraid of a more "raw" appearance and knew I could - if needed - descend with my skills to its very core, FHEM was the obvious choice, so I started to shift my resources (time, focus) towards this project. As mentioned, the code and overall design of the project is not its best asset. This is partly because of its age, partly because of lack of Perl-skills of its makers (but let's be clear that they evidently have plenty of other skills - just not Perl) and partly because of "politics", where a "bad solution" is preferred to a "non-existant solution".
|
|
|
|
|
|
While all of this is understandable and ultimately not fatal, it became - unfortunately - pretty quick pretty obvious that my approach and my desires of improving FHEM were not met with love - so to speak. Being the Newbie in that project and fully understanding that it was not my call to demand modifications, I decided to start HoBo - the [HomeBot](https://gl.petatech.eu/root/HomeBot) project.
|
|
|
|
|
|
First as a merely experimental project to see if more significant changes to the original FHEM code base could be done at all (I had my [doubts](FHEM_CodeDocs) (German) more often than not), but over the past few moths, and having managed to keep up an automatic FHEM->HoBo sync of the source, I believe HoBo can become a better FHEM.
|
|
|
|
|
|
Just what **I** need. Maybe in time there will be one or two other users besides me too. |