Interview with Jimz011 (creator of HKI: Homekit Infused)

0
3086

In our series of interviews with some of the key figures of the Domoticz community, we talk to people that made contributions that make the difference for the community. But this time, it’s not Domoticz but Home Assistant that gets the attention. We want to know what kind of people they are and how their effort for Home Automation fits in their life. And we hope to get some technical background about their contribution, so they can inspire others. I saw his work on HKI: Homekit Infused on a Dutch forum Tweakers and followed the project on the Home Assistant forum. Now I changed my own setup to his lovelace setup (thanks to the documentation he made available).

We continue with an interview with Jimmy, developer of Homekit Infused (a lovelace theme/interface for Home Assistant).

Contents

Who is Jimz011?

Hello my name is Jimmy. In my daily life I work as a bartender in a sports bar. I am a hobbyist tinkerer that loves to tinker around with hardware/software. I have always been interested in technology and other stuff in IT and because of that even though I am just an amateur I know my way around (a little XD). Having to grow up in the 90s was a real joy as all this technology that we know today was just coming up. Remembering when my parents bought the first cd-rom player available on the market at that time for the same price as you would buy an entire system nowadays. That was insane. Because of this rapid change in technology at that time I was very interested in IT and I always wanted to have an education in IT.

Despite all the new technologies coming up, my parents didn’t see a future in IT (seeing how fast things changed at the time my parents didn’t think of doing something in IT would be the right choice). So I studied leisure and tourism instead. Not as exciting as it sounds though, because I met my wife just after school and I really didn’t want to be gone for 6/7 months every year again as than I would have to leave my girlfriend (now wife) for a long time. And I have done long distance relationships many times. I decided I didn’t want that ever again. So I stuck with working at a bar (which I had years of experience in).

But obviously my interest for IT/Technology never left and I always kept tinkering around with computers, the software and the hardware and I repair computers (software/hardware) for friends/family and colleagues. At school I always messed around with the network as they reluctantly fail to secure it even after repeated warnings, and the great thing was it wasn’t just on high school, nah it was basically the same on every school. The schools all had a security flaw within their Novell Netware (which was the software used by my schools) and boy it felt like every school used the same Admin to build it XD. In this period I had built several websites for my class using html at first and later on some early adaptations of the current CMS systems. (in the early days CMS systems like Coppermine, phpbb and even InvisionPowerBoard were very very powerful compared to most home made built websites a lot of companies used). Now ofcourse, things are different where companies just use WordPress, Joomla or Drupal.

I started working full-time at 18 y/o and after work I loved to play games (particularly MW2 and WoW) in those years. I was 23 when I met my wife and at 24 I moved out to buy an apartment with my wife (where I still live). I always wanted to have a server, which was impossible and very useless at my dads home as he didn’t allow it and the internet speed we had didn’t allow for any good. But I finally got round and bought a server. I installed a bunch of VM’s on the machine and until this day I run that same server.

Because of this server I always come around new ideas. Like installing a different OS (I have my own personal pc in a dual boot with MacOS, which is great if I want to make music or most importantly, want to use the damned iTunes to restore my phone which works a lot better on MacOS). My main operating system is a Windows Server (stripped with only HYPER-V), on top of that I run a Windows Server 2016 edition, a Ubuntu VM, an OpenVPN VM, a Backup VM (Windows Server) and a regular Windows 10 VM. And since a year now I also run Ubuntu with Home Assistant as a separate VM.

Jimmy and Home Assistant

So we come to the part you really came for. Home Assistant.

“How long do you use Home Assistant?”

I have been using Home Assistant since June of last year (2018).

“How did you start and why did you choose Home Assistant?”

Actually for that we have to go a little while back. A friend of mine who works in IT came to me one day and said. “Have you heard of Homekit?”, I said, “of course I have heard of Homekit!”. He replied “Why don’t you buy smart-home stuff?”, And I said “That is way too expensive!”. We talked about the prices of Homekit compatible devices and then he told me about Sonoff. He was careful about it as he hadn’t tried it himself yet either, but he was tinkering around with a software suite called OpenHAB. This friend started to talk about this software, what it can do and that it wasn’t as hard to set it up as it looked. He said, with this software you can feed unsupported devices (like Sonoff) to Apple Homekit.

Well, he caught my interest! We kept on talking and when he was gone I started to install OpenHAB2 (which was the version at the time). I did not have a single device to play around with, but I really wanted to see what the software could do. So reading the documentation and all I got it to work! Wow I now have a working software suite in which I can’t do anything (yet) :). I ordered some Sonoffs (but ofc I didn’t know I had to flash them). And damn the 2/3 weeks wait was a long wait!

I couldn’t stand there and do nothing right? So I started to look at what OpenHAB can do, and little did I know, it was possible to have your PC within OpenHAB. (I was like, Really???). Not only my pc, but also my TV could be linked and my speakers, an app on my phone. A whole new world opened up for me. I was literally baffled by the amount of options.

Later on I started to receive more items like Tradfri (IKEA) lights and the Sonoffs. They all worked great within OpenHAB, but the real reason I got it was to feed them to Apple’s Homekit. This worked okayish. It seemed to hang a lot, and if you did not own a ‘real’ homekit compatible device (at least one) the Homekit controller/component within OpenHAB would fail and I would have to restart that component again. This would happen very often.

As time went by I started to get more items, sensors etc. and the list got bigger and bigger. The thing was, OpenHAB still failed often on me (probably my own noobish errors) and Homekit in OpenHAB only supported a few device types (mainly switches and lights). After a month or two I thought would there be other software like this? And I found Homebridge. However I had to buy a raspberry for it (as I couldn’t find any instructions on how to do this on a simple linux install). I didn’t want to do that so I left it. Disappointed I went on using OpenHAB until I saw Home Assistant.

First off, thank you developers for giving your piece of software a name that doesn’t sound bad when pronouncing it :). I installed Home Assistant on a python venv and got it to boot up. When I opened the web interface for the first time I was already sold. This looked much cleaner, a lot simpler and at that time it already supported equally as much (if not more) devices as OpenHAB. Not only that, it also had some compatibility for devices I had which did not have support in OpenHAB (mainly the newer IKEA devices if I remember it right). So I was now able to use all of my devices.

At the same time I found that the Homekit component in Home Assistant had a lot more support for different devices than OpenHAB did (not as much as Homebridge, and still camera’s are not supported til this day in HA within Homekit). Not only that, Home Assistant got/gets updated every 2/3 weeks and for me that is a seller already. I love to see new stuff and having updates a lot makes you see those changes fast. (I also run beta’s on iOS, Windows and even my Xbox runs a beta version :P) Not always the best solution but hey you gotta give some if you want to be first no? Anyways I got to understand yaml and I felt it was easier to handle than OpenHAB, the Homekit component didn’t stop working and it had updates and more components. What else would I need?

I went on using Homekit until the beginning of January 2019. I had all my automations within Homekit. I will answer on why I don’t use Homekit anymore in a question below.

“What do you think of Home Assistant?”

Home-assistant logo

Home Assistant is awesome. And I think many people that use it will agree, however it is a bit complicated for the average user. Not a problem for most of the readers here probably, but therefore definitely a no-go for my parents or grand-parents. Even my friends would not know what to do with it. This is one of the reasons I started sharing configurations and making YouTube videos.

“What do you think the direction of Home Assistant will be in the future?”

The direction of Home Assistant is definitely user-friendliness, continued adding of new devices/device types and squashing bugs. But I think the main priority of the Home Assistant team is to make this piece of art more/better understandable for those groups I mentioned before where Home Assistant currently is too complex to be there already. It is a very powerful piece of software which shouldn’t be taken for granted in my opinion and without Paulus Schoutsen this project might have never existed.

“What hardware do you use and what are your personal requirements?”

I use an old i7 980x (hexacore) processor with 24GB of RAM. Obviously for running Home Assistant this would be way too much overkill. So I run Home Assistant in a VM on a 480GB SSD and dynamic RAM up to 4096MB with 6 virtual cores assigned. I know Home Assistant doesn’t need as much, but I like fast systems (and even though my first gen i7 is old it is still faster than my 4th gen Haswell!). I run other VM’s alongside it as I have answered earlier.

The making of Jimmy’s Lovelace setup (HKI: Homekit Infused)

“Why did you make a lovelace setup and what where your minimum requirements for it?”

Well earlier on I said I used Homekit until the beginning of January 2019. I used Homekit for everything, my interface and automations, my alarm. But I had a very nasty error with Homekit (twice). After using Homekit for a month or two, it would randomly change my home address to a few hundred meters away from my actual address, making all my automations practically useless. It would start triggering the alarm, turning on/off lights randomly because it thinks we are not home as the home address had changed. The problem with Homekit was (and still is) that you can not change the Home address on your ATV/iPad of Homepod (which are used as Homekit Hubs). There is no option at all. Homekit registers the address you are currently on with your smartphone and only when setting it up for the first time. So I made sure that I would set it up right. Did all of this, works for two months and boom, same problem again. Again that home address that shifted away a few hundred meters. Another problem that occurred a few times was that Homekit would stop finding my devices and I would get (what I call) a spinning wheel of death. You open Homekit and it will only show you a loading screen (wheel in the middle). Nothing would work! Force quitting the app wouldn’t help, nor would restarting all devices help. No, the only thing you could do was to reset Homekit (again). But now before you can do that, you had to open the loading screen again (making sure the screen wouldn’t turn off as that would reset the timer) and then wait for 45 minutes (yes you read it well, 45 minutes) before you get a button that will let you reset Homekit. (trust me this instruction comes from Apple’s own support site). You can see 3 failures in 6 months time isn’t a great motivation. I didn’t really mind resetting it, I did mind to do all the automations in Homekit again, all the scenes, all the rooms, all the buttons and sensors etc etc. Why did I use Homekit then you might ask and not Home Assistant? Well simple, my wife hated the interface (and frankly I did so myself).

So in December the devs of Home Assistant started to talk about lovelace (which was already available in beta or dev can’t remember). I updated my Home Assistant setup and started to see what I could do with this new interface. Funny thing is that there were already some custom cards out there (some of which I still use). At first I started to use the GUI editor, seemed pretty nice, a RAW editor, easy moving/creation of new cards and a live preview of the card being created. Very nice. But then I wanted the custom cards to get updated automatically. Which at the time was only possible by using custom_updater. And guess what? Custom Updater did not support the use of the GUI editor and required the setup to be set in YAML mode. Hm ok, we’ll wait with that. So I wanted to add a secret to my YAML file (as I knew already that this was possible). Guess what? Not possible with storage mode. So I looked at the cards on how they were created by the GUI editor and compared them to the docs of those cards (which strangely is different). For some reason storage mode throws the code around, encapsulating code instead of having them jump in. But I understood how code was built up in YAML (or at least with these cards). I copied my storage mode config to a file named ui-lovelace.yaml and set lovelace to YAML mode in configuration.yaml. Obviously this worked out of the box. As it was the same code (but still in that weird order).

So I started to build a simple lovelace setup with some buttons. It was really basic and had core cards only with a theme I found on the Home Assistant Community Forums (I believe the theme’s name was Slate). I all looked pretty cool (but not nearly as polished as Homekit, but honestly I didn’t think of recreating that at this time).

So as time went by I started to learn more and more and new cards came out like card-modder and useful-markdown-card and most notably, button-card. At this time we still used Homekit a lot (or at least my wife did), but this time I had all my automations already in Home Assistant, so I couldn’t care less if the home address would shift away again. But button-card and card-modder gave me the chance to make better looking buttons. This was very simple with only a border-radius set to the buttons and on places I use a blank button today, I used a dummy entity in the past as I didn’t know how to hide a button. And buttons are dynamic in size so a row of 2 and a row of 3 beneath each other doesn’t look as pretty.

Button-card got abandoned by its original developer (Kuuji) and as time passes by the card stopped working with newer versions of Home Assistant. Sad as I was, reverting everything back to a core button. Until a guy named Jerome (romrider) took over the button-card project and built loads (and I really mean loads) of new functionality, fixing it for new versions of Home Assistant and still to this day actively updates his card.

At this time I had already quit updating my Homekit setup everytime it had failed and told my wife to use Home Assistant instead (which thanks to card-modder) didn’t look too bad but nothing compared to what it is today.

But this card changed everything, the new button-card had so much options and it got me into learning a bit more about css and on how to make a button look better. First, I started playing around with some configs that came within the documentation and I got one to look a lot like Homekit by accident. In conclusion, I was really amazed and started to rebuild all my buttons immediately. The next day my wife woke up and bam, the interface had Homekit like buttons.

So I decided that I actually like Homekit, but I don’t like the way it currently is. Homekit is lacking in so many areas and when you have more than 75 devices (which has almost doubled since) Homekit can become very unorganized and finding a button could really take a long time. Another problem was that if you don’t make rooms in Homekit you can not use Siri to turn a device on in a specific room. And if I made rooms it would take me forever to get from bedroom to bathroom for example.

So with this new button-card in mind I thought, what if it was possible to make something that from a distance might look like Homekit, has certain design elements which are similar, but only better? So I started to build, first only lights and devices. But then I figured I could use this same button for so much more. For my frontpage, for notifications. The options are endless and I am still learning all the time (and my setup keeps growing every day). In time I have changed the design many times and I have even changed the same design only in the form of code (meaning the exact same setup but with shorter or better code, and I still try to do this every day). I even think about making code shorter when I am anywhere else but home or thinking about new ideas (like adding new features or making existing features better or more intuitive).

All of this is what has become my lovelace setup. And the minimum requirement I had was that it would function more or less like Homekit (in which I think I have succeeded)

KHI: Homekit Infuced lovelace interface. around juli 2019, lot's of improvements now.
KHI: Homekit Infuced lovelace interface. around juli 2019, lot’s of improvements now.

“Why did you decide to share your setup?”

I posted a few questions on the forums with screenshots (actually screenshots from my older setup which didn’t even look like Homekit). People asked me if I could share the code. Which at first I was happy to do, but eventually I thought, why not post it on a place like GitHub so that I do not have to type the same piece of code over and over again. At first I had like 16 people that starred that setup. That was until I uploaded my completely revamped setup to GitHub again. People were suddenly really interested on how I made it. I shared my button-config on a thread about that card and many people started using that same config.

Thinking nothing of it I went on continuing work on my lovelace setup and then questions started to came in on my thread on Home Assistant. Asking on how I did things, why I do things a certain way or just wanting to give a compliment on the setup. I was like, oh ok, that is cool. People started to ask when I would upload new material. And so it become apparent to me that people actually wanted to see this setup evolve and/or copy it for themselves.

As I said before Home Assistant is awesome and I think everyone should be able to enjoy it as I do. But like I said the bar is set pretty high, but we are getting there. My original plan was to release a setup that would be easy to use for everyone and easy to setup. But as time flies by, people wanted more. And so it has become much more than just a simple screen on which you can turn on/off a light.

“What are the main features of your lovelace setup, or what can it do?”

Obviously it can do all the things that a simple Homekit setup could do, but it can do so much more. The setup can control my vacuum, it even has a live map within the interface. It is able to get envelope screenshots of my actual mail (so not email). It can count my unread mail. The system knows when I am home or away.

Also it can control my heaters separately. It has lists to remind me when to brush the dog, clean the kitchen and all that kind of stuff, and will show me if my car is insured, whether or not there is a recall going on for that vehicle and even show me until when my SHP is valid. It can control my tv’s, show my camera’s and even monitor my PC’s, server, energy usage and more. Actually there is too much going on to make a fair summary.

“If you could give your setup a rating on difficulty, how would you rate it?”

It really depends on who asks. People that know their way around lovelace will have an easier time than people that don’t. There are always people that read, and people that do not read. What I mean by that is that I have written documentation stating that people have to learn/read certain things before they even try to copy my setup. One of the things I really stress is learning how to use decluttering cards and templates as they are the core of my setup. Also reading up on how most cards work (even if it is only the basics of that specific card) will drastically help you configure it with more ease. I would say on a scale from 1 to 10 (where 1 is the hardest and 10 the easiest), I would give it a 4 for people that do not know what to do and a 7 for people that do. But then again it really depends on which areas of the setup. A lot of areas are really simple to understand, like my light or devices pages or almost every page that lives inside the menu. But there are also elements that are a lot harder to understand, which are most of the popup cards I use. So for some elements I would say that the ease of use would be a 8 or even 9 and for some a 4 or even 3). Though in most setups I see the popup cards I have created have not been used yet or they do not know how to use them (yet). Or they simply have so much to change in this setup that they didn’t get to that part yet.

“How much time did you invest in this and how much time do you currently invest?”

I have invested a LOT of time in this project. My wife had a burnout/depression paired with being tired most of the week. So I had a lot of time to invest in this project which made our lives a lot easier (and better tbh). And at the same time we have saved a lot of money that otherwise would have been wasted (like leaving lights on, or never turning off the heater). Because it is all automatic now we don’t have this problem anymore. (oh and for the record, my wife is all fine again :)).

You might wonder how much hours I have invested in this project and honestly I can’t really give a good answer to that. I work full-time but next to that job I sometimes worked 40/50 hours a week on this project. Today I think I work around 15/20 hours on this project a week. But I make YouTube videos now, I create update guides (which really really take up much time) and I give a lot of support on people that want to adopt my setup.

“What/Who has inspired you to make this HKI setup aka Homekit Infused?”

Well first and foremost, Apple with Apple’s Homekit. But second the entire Home Assistant community. So therefore without them I wouldn’t be able to build something like this.

“What is the fun in changing the setup all the time?”

Well first, I love that after finishing a piece of code it usually is better than the previous one or the solution I came up with is better than the solution I had. An evolving setup is what has brought my current setup to the place it is right now.

“What did sharing all of this bring to you?”

Well, I didn’t share it for myself actually. Above all, I shared it for others. Along the way I found that people actually liked what I do (even people stating that they are fans of me :), uh what?!). So it actually brings me joy to see the amount of people I made happy with this project and to see people messing around with code I created is quite fun to see (many people have variants of my setup which really baffled me btw).

I recently started to make YouTube videos as well, mainly talking about updates within my project. But I will start to post tutorials, tips and tricks and a grand tour of my smart home in the near future. I don’t get paid for any of this work and I don’t need to, but hopefully in the future with all this work someone will pick it up and maybe who knows I can finally do some work in IT XD.

“What can we expect from you in the future in relation to your setup?”

Well, you can be sure that I will update my config from time to time as I am always thinking about on how to make it better (long time followers know this already and they either hate or love me for it). I will also be focussing more on creating new themes and ofcourse my newly created YouTube channel which is going to be the host of many tutorials on how to setup devices the easy way. It will be mostly the view of an amateur working on this project. So obviously there will be things I release that can be done so much better, or maybe for a developer much easier. But then again maybe the dev way isn’t the easy way for an amateur. Who knows? I don’t XD, but I will keep releasing my videos as apparently there is a demand for it.

“Thank you for taking the time for this interview”

You are very welcome, I am honored that you asked me for this. Thank you!

More information on HKI:

YouTube: https://www.youtube.com/channel/UCYfcLj3IuQ-1mrnqgCk8f0w
Github: https://github.com/jimz011/homeassistant
Forum Topic: https://community.home-assistant.io/t/homekit-infused-hki-v0-12-3-updated-30-08-2019-0-13-x-preview-video-now-online/117086