This is a project I am very excited about.
I have been working on this project for about the last year. The overall scope of this project has grown past anything I had initially expected. This project has become something that I use daily and am constantly working on improving.
The following block diagram is a rough approximation of how my home automation system functions. The two key elements of this system is a Raspberry Pi and an ESP-8266. The Raspberry Pi handles all user requests and hosts the sever software. The sever communicates to external devices over Wi-Fi and utilizes the MQTT protocol. The external devices used in my home automation system is the popular ESP-8266 microcontroller. For less than $10, this micro-controller is able to connect to a Wi-Fi network and respond to MQTT requests as well as perform traditional mictrocontroller tasks.

Getting Started:
To build HomeKit enabled “smart” devices, a few things are needed.
- Raspberry Pi running HAP-NodeJS
- Raspberry Pi running a MQTT server
- Home Wi-Fi network
- Multiple ESP8266 devices
Configuring the Raspberry Pi to run the required software was quite a challenge for me when I was first getting started. For people who are unfamiliar with either HAP-NodeJS or running their own MQTT server, I highly recommend checking out this tutorial. I wish I had found it when I was getting started! This tutorial outlines how to setup the Raspberry Pi as well as how to build your first accessory. I am a big fan of this site because the author and I have similar goals; using the Raspberry Pi and ESP8266 to create HomeKit devices.
HomeKit Devices:
- Smart Outlets
- Dimming Lamp (Very excited about this)
- Ceiling Lights (Coming Soon)
- Color Changing Light Strip (Coming Soon)
- Temperature Sensor (Coming Soon)
- Motion Sensor (Coming Soon)
- Door Open/Close Sensor (Coming Soon)
- Ambient Light Sensor (Coming Soon)