Giter Site home page Giter Site logo

home-assistant-config's Introduction

DataMonkey Smart Home
Smart Home Configuration

This repo serves mostly as my backup of the configuration I use in my home-assistant setup.
How I installed it is described in this other repo over here: (https://github.com/Data-Monkey/HomeAutomation)

But I am happy for this repo to be inspirational for other Home Automation enthusiasts and if you can find some usefull code here, feel free to adapt it to your needs. Most likely I found it in somebody elses repo anyway :-)

The new file structure has been heavily influenced by Frenck and his HA Config structure. While this README is influenced by CCOSTAN and the Bear Stone Smart Home.

Please make sure you โญ this repo to keep up to date with the progress.

Why?

Really, the question should be "Why NOT?!"
Why wouldn't you want to automate your home? But then, what is home automation? I didn't want to replace a light bulb with a smart light and as a result I now have to find my phone, open the app and change the status every time I want to switch on/off my light.
Home-Automation needs to make life easier!
So I was looking for tasks that I can actually automate. Thinking back now, one of my earliest home-automation was to buy a harmony remote. One to rule them all :-) So now I don't need 2 or 3 remotes anymore, just to switch on the TV, change the input, switch on the DVR and browse to the recording or channel. Other simple automations that are now running in our appartment are looking after some lights. The ensuite light and wardrobe light are fully automated. More challanging tasks are still in the making. Don't let the TV be switched on until todays chores (homework mostly) are done!

How?

This is what you are here for, so lets just dive in!
Home Assistant and most of the other software used for home automation are installed in docker containers on an unRAID server. The build of this server is discussed in the unRAID forum.
The unRAID server is called TOWER and is the backbone of most things happening in our appartment. It serves as Media Server via Plex as well as a backup for all our laptops and photo library. And it also hosts all the software required for our Home Automation.

Software

As mentioned the unRAID TOWER runs docker with the following containers relevant to home automation
Home Assistant
dockerhub
Home Assistant is the software that holds everything together. It is an Open Source project supported by a great communityt and this REPO is all about how I configured my HA instance.
MQTT
dockerhub
MQTT is a lightweight protocol that lets devices communicate with each other. I use it to let my devices communicate with HA.
I am still trying to come up with a topic strucutre that makes sense and is supported by my devices. See this post MQTT Topic Design
InfluxDB
dockerhub
InfluxDB is where I store a time series of some of my HA entities
Grafana
dockerhub
Grafana is used to visualise the data stored in InfluxDB.
DuckDNS
dockerhub
DuckDNS is a free Dynamic DNS address service. I use it to find my home network from the outside. The public access is required for my Google Assistant integration.
Let's Encrypt
dockerhub
The Let's Encrypt docker provides me with my certificates.
This specific docker also comes with it's internal Nginx webserver and reverse proxy.

not in use anymore:

Hardware

  • HA is installed in a docker hosted on an unRAID box

  • Xiaomi Gateway (x2) shop with a few

  • Logitech Harmony Hub (not integrated yet)

  • Sonos Playbar + Sub

  • Chromecast + Audio Cast

  • Efergy Energy Monitor (demo: https://engage.efergy.com/dashboard)

  • Google Home (x2)

  • RasPlex (not realy any integration)

  • Google WiFI (no integration yet, but keeps all my IoT devices from accessing Internet as they are all paused in the family feature)

  • Sonoff to autoamate bathroom exhaust fan

  • Smart Lights (Yeelight linked to Xiaomi Body Sensors)

  • PiVPN (currently not used, need to work out integration with Google WiFi)


Some of my hardware has been retired for various reasons:
  • Roku2 (replaced with RasPlex as PLEX was not updated on ROKU)

Naming Standards

I am writing this down mostly for myself, as I seem to change the standard every time I sit down to change something!

every entity should follow this convention entity_type.where_what_extra entity_type is given, nothing I can change here. But if it already says sensor, I don't need to repeat that in the name. where is the location or the device name what is what it is doing, measuring, sensing .... extra is just in case I need to make it unique So the temperature sensor in the hallway should be: sensor.hallway_temperature and the battery data for that sensor would be sensor.enviro_hallway_battery

some more examples Xiaomi Button: sensor.button_x_click , sensor.button_x_battery

home-assistant-config's People

Contributors

data-monkey avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

jeroenjoosse

home-assistant-config's Issues

Kids chores TV automation

Check trello count for the day before TV can be switched on.

If count > 0 switch TV to trello board

Needs

  • rpi set up to display trello in kiosk on big TV
  • school day sensor/switch in HA
  • block out time for grandparents to be happy

restart properly after unRAID docker backup

After a docker backup via unRAID the dockers start in the wrong sequence resulting in HA not working properly.

ideas:

  • fix restart order
  • restart HA until it works (not a good option)

PiHole

Make PiHole work again with Google WiFi

create TRAVIS Secrets file

Must have the same keys as the real secrets file but obviously all dummy values.
This is required to for Travis-CI to be able to check the config

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.