DEV Community

loading...
Cover image for Make your own Smarthome Server with NodeJS

Make your own Smarthome Server with NodeJS

mwrpwr profile image Joseph Maurer Originally published at josephamaurer.Medium ・4 min read

The smart home product segment is more competitive than ever with lots of companies competing to be the next cool product that you buy for your home. But as a consumer there are lots of complications with trying to pick a product when trying to decide if a product will be compatible with your setup or with the things you may want to buy. And for a lot of products, like TVs, you can get a cheaper TV if it doesn’t support HomeKit as it typically means it’s a few years older. But wouldn’t it be cool if you could still add HomeKit support so that you can control those devices from your phone?

Enter Homebridge, a lightweight NodeJS server that you can run on your home network that emulates the iOS HomeKit API. With a growing open source library of plugins, Homebridge is quickly becoming a solid option for anyone looking to add more functionality to their smart home.

My Experience

Source: TechCrunch

Homekit has allowed me to expand my smart home capabilities and add automations that otherwise wouldn’t be possible. It started when I got a 2019 Samsung Q70 smart tv that somehow didn’t support Homekit. I got a killer deal on the TV, but the newer models released later that year all supported Homekit natively, and of course cost way more. I had a Raspberry Pi B+ sitting around so I decided to tinker with it and see if I could get Homebridge to run on it. After less than 30 minutes I was able to get everything up and running with no problems. I figured because it was so easy that it wouldn’t be very stable, but it is really stable. It honestly acts just like first-party Homekit support. I have since added a Levoit Air Purifier to my homebridge server and that has also worked out very well.

Installation

Source: Sandy MacDonald

There are already lots of breakdowns of already installing Homebridge out there, and the official documentation is really solid. I thought I would document how I went about it as I think my implementation was a little bit cleaner.

The first step is to figure out what system you are going to be running this on and download the correct image. I didn’t install Homebridge UI and I kinda wish I did as it just makes it easier to manage going forward. I would highly recommend using a Raspberry pi as it is so easy to get going. After following the basic steps to get everything downloaded, I did the following to run Homebridge as a service on Linux:

  • sudo nano /etc/systemd/system/homebridge.service and paste this in there.
  • sudo systemctl daemon-reload
  • sudo systemctl enable homebridge
  • sudo systemctl start homebridge

These commands create a system service and system manager that has widely become the new standard for Linux distributions. The advantage of this is that the service will run as soon as the pi boots so there is no need to worry if the power goes out or if there are any failures that cause Homebridge to crash. It was simply reboot.

After you have the service running, restart you pi and you are ready to start installing any plugins that you want.

If you run into any problems, there is a great community on Github, Discord, and Reddit to help you. If you have questions about how I was able to get mine set, tweet me here.

So get out there and make your home smarter!

Discussion (1)

pic
Editor guide
Collapse
mjgs profile image
Mark Smith • Edited

Cool article! Now I’m thinking what awesome homemade NodeJS clients could be built :)

I’ll include it in my javascript, technology and web development newsletter next weekend.