These are the Home Assistant configuration files used in my Home Assistant (HA) setup. I relied on repositories of other HA users quite a bit when I was getting started for ideas and example code. Hopefully this repository will help someone else who is getting started.
If you are just getting started with Home Assistant I highly recommend checking out this YouTube Series. It helped me a lot in the beginning and I still frequently reference some videos today. I also strongly recommend you read the Home Assistant Docs. So many questions asked on the Home Assistant Forum could be solved by reading the docs. I have tried to include links in my files to the associated guidance documents for easy reference.
A detailed description of each of my automations and a link to the yaml file is located HERE
- Main Server Raspberry Pi 3 Model B+ (Runs Home Assisstant and Ubiquiti Unifi Controller)
- Zwave Hub Aeotec Z-Stick Gen 5
- MQTT Server Raspberry Pi 2 Model B (Runs Mosquitto)
I'm currently running Home Assistant version 0.68.1. My preferred installation method is the Hassbian Install Method.
For MQTT I installed Mosquitto ontop of Rasbian. My preferred installation method is outlined here in a video from Bruhautomation.
I think this is an often overlooked part of any internet connected project. I am far from a security expert, however, these are the steps I have taken to add some level of security to my Home Assistant instance.
- Simple protections like enabling a password and limiting the number of incorrect login attempts.
- Anything that doesn't need an internet connection is blocked from any inbound or outbound traffic at the router level.
- I separate my traffic into different subnets and by default these subnets cannot talk to one another. For example my devices on Wifi only have access to the internet or my Local Area Network (LAN) if I allow it.
- Using the tools in PFSense I block a large amount of traffic from ever reaching my network using PFblockerNG, Suricata and a combination of published lists, and custom rules.
- All the traffic connecting to my Home Assistant instance is logged and e-mailed to me regularly. I only access my instance from a few devices to it is pretty easy to spot traffic that is not 'normal'.
- Failed login attempts to the Home Assistant Front end generate a notification to me with the source IP.
- My Home Assistant Traffic is encrypted with Let's Encrypt. I used this guide to get it setup.
What works for me is creating a Samba share that I can then edit on any computer in my house.
For setting up Samba see this video: Samba Setup
After you have the Samba share setup, I like to use Atom to edit my files. It works on both Windows and Linux, has a great interface and some nice features. NotePad++ is also easy to use and is a bit more lightweight than Atom (no Linux support though)
- Amazon Echo Dot Used for voice commands to turn devices on/off using the Emulated Hue Component
- Nest Thermostat
- iCloud Presence Detection / iPhone 8 Plus
- Xiaomi Yeelight RGBW E27 Smart LED Bulbs *
- Xiaomi Yeelight E27 Smart LED Bulbs *
- Edimax Wi-Fi Smart Plugs (SP-2101W) *
- Broadlink RM Mini 3*
- Sonoff Basic (Flashed with Tasmota)*
- Sonoff POW (Flashed with Tasmota)*
- OpenGarage Door Controller *
- Ikea TRÅDFRI LED Bulbs
- Ikea TRÅDFRI Remote
- Mono Price Z-wave Door Tilt Sensor
- GE Z-Wave Plus Hinge Pin Door Sensors
- Aeotec Z-wave Range Extender
- Dome Miniature, Z-Wave Plus Door/Window Sensor
- Cyberpower CP1500PFCLCD UPS used to detect power outages and keep network and HA running in a power outage.
- Synology DiskStation DS216J * used as a NAS (obviously) and as the NUT server.
- Ubiquiti Unifi Ap-AC Long Range - Wireless Access Point used for presence detection
- Ikea TRÅDFRI Gateway*
*Block these from external network access and they will still work on your local network with Home Assistant.
The best way to get help on Home Assistant is the Home Assistant Forum. If you have a specific question about my configuration send me a Private Message on the HA forum, my username over there is Silvrr. If you have found something incorrect, please submit an issue here on Github and ill get it fixed.