renemarc / home-assistant-config

๐Ÿ  Fully documented Home Assistant configuration for a smart-looking place. ๐Ÿ˜Ž Be sure to โญ๏ธ my repo and copy ideas!
Apache License 2.0
344 stars 57 forks source link
air-quality climate-control control-lights flic gtfs hassio home-assistant home-assistant-config home-automation homekit lifx limitlessled nanoleaf-aurora-lights raspberry-pi sensor smart-home transit weather-report zwave

๐Ÿ 
Home Assistant configuration for a smart-looking place!
by Renรฉ-Marc Simard ๐Ÿ˜ƒ

Price Home Assistant version Commits since last release GitHub Release Code Climate maintainability CodeFactor rating Build Status License Community Forum Tweet

Configuration for Home Assistant running on a Raspberry Pi for a one bedroom apartment, offering convenience automations over lights and climate while providing multiple intuitive user controls.

Be sure to โญ๏ธ or ๐Ÿ”ฑ my repo if you find it useful! ๐Ÿ˜ƒ

Dashboard animation

Wall-mounted interface using /appdaemon/dashboards/.

Note: Images are from States UI days and still need to be updated in the documentation. This configuration now uses Lovelace UI and AppDaemon exclusively.

Security group (Dark theme) Weather group Climate Control group Battery Levels group (Dark theme) Atmospheric Safety group Actions group Ceiling group Public Transit group

Sensor /misc/groups.yaml.

Table of contents ๐Ÿ“‘

  1. TL;DR
  2. Overview\ Goals | Agile development
  3. Key features\ Climate control | Weather report | Lighting control | Presence and basic security | Modes and scenes | General information | Additional human interfaces
  4. Setup\ Supporting hardware choices | Configuration | Systems and bridges | Physical devices | Software | Usage
  5. License
  6. Thanks

TL;DR ๐Ÿƒ

This is a fully documented working configuration for Home Assistant, with screenshots, hints and comments. Browse the code to have a look! ๐Ÿ‘€

๐Ÿ”

Overview ๐ŸŒ…

Goals โšฝ

Wiretap meme

๐Ÿ˜จ No thanks!

๐Ÿ”

Agile development ๐Ÿ––

This configuration is built with an Agile-like methodology, lead by following main user stories:

Tasks are hopefully defined in the issue queue and their development progress is managed using a lightweight Kanban board.

Agile. You keep using that word. I do not think it means what you think it means.

Well, without the sprints. And a team. And the retrospectives. And theโ€ฆ

๐Ÿ”

Key features โœ…

Climate control ๐ŸŒก

Climate Control group Humidity notification

Climate control.

๐Ÿ”

Weather report โ›…

Today's Weather group Weekly Forecast group

Today's weather and weekly forecast.

๐Ÿ”

Lighting control ๐Ÿ’ก

Lounge group Bedroom group

Lighting controls.

๐Ÿ”

Presence and basic security ๐Ÿ‘ฎ

Presence group Security Status group

Presence and basic security.

๐Ÿ”

Modes and scenes ๐ŸŒˆ

Actions group

Modes and scenes.

๐Ÿ”

General information ๐Ÿ›Ž

System group Public Transit group

General information.

๐Ÿ”

Additional human interfaces ๐Ÿ“ฒ

๐Ÿ”

Setup ๐Ÿ”ฉ

Home Assistant technology diagram

Technology diagram (PNG, SVG). Made with Draw.io (XML source file).

๐Ÿ”

Supporting technical choices ๐Ÿงฑ

๐Ÿ”

Configuration โš™

๐Ÿ”

Systems and bridges ๐ŸŒ‰

Device Description Connection
Aeotec Z-Stick Gen5 Z-Wave USB dongle. USB
Airthings Wave radon detector bridge to interface with this Bluetooth radon detector by using airthingswave-mqtt from Herb Peyerl (@hpeyerl). Runs on a Raspberry Pi Zero W managed through balenaCloud. WiFi
Blink Sync Module for battery-operated, cloud-enabled cameras. WiFi
CEC MQTT bridge to provide basic switching control and state sensing to a connected television. Runs on a Raspberry Pi Zero W managed through balenaCloud. WiFi
Flic smart button bridge to connect with these Bluetooth Low Energy buttons. Runs on a Raspberry Pi Zero W managed through balenaCloud. WiFi
Milight iBox2 WiFi bridge for kitchen RF LED strip controllers, using LimitlessLED integration. WiFi
NooElec NESDR SMArt RTL-SDR (software-defined radio) USB dongle for reading AcuRite sensors. USB
Raspberry Pi 3 Model B+ running Home Assistant. Local

๐Ÿ”

Physical devices ๐Ÿ”จ

LED lights ๐Ÿ’ก (see /lights/)

Device Description Connection
24V 3014 Warm White Cool White LED Strip (x4) encased in custom-cut and assembled light-diffusing aluminum profiles, connected to Milight RF controllers below. Hardwire
Adalight DIY 100-dots TV backlighting controlled by Lightpack+Prismatik on HTPC. LAN
DIY LED nightstand via TP-Link a smart plug. WiFi
Fairy lights (x4) via TP-Link smart plugs. WiFi
LIFX Mini Color (x3) A19 RGBWW light bulbs. WiFi
LIFX+ (x2) A19 RGBWW light bulbs with infrared. WiFi
LIFX Z (x5) light strips (non-HomeKit versions) as bed underglow and ceiling wash lights. WiFi
Milight CCT LED RF Controller (x4) for white-adjustable undercabinet kitchen lights, connected to appropriate UL-listed power supplies. 2.4Ghz
Nanoleaf Aurora light panels kit. Pretty! WiFi

๐Ÿ”

Sensors ๐Ÿ“ก (see /sensors/)

Device Usage Connection
AcuRite 06044M Wireless Sensor for cheap temperature and humidity monitoring inside a cigar humidor. 433Mhz
Aeotec Door / Window Sensor Gen5 for front door. Z-Wave
Aeotec MultiSensor 6 (x3) for temperature/humidity/presence detection. Z-Wave
Airthings Wave radon detector to keep an eye on this cancer-causing radioactive gas. Bluetooth Low Energy
Blink XT2 to keep a record of any movement outside. WiFi / 900MHz
Dome Leak Sensor (x2) in case the dishwasher breaks a seal, a shower curtain has not been closed properly โ€ฆor a toilet has overflowed. ๐Ÿคข Z-Wave
Ecolink Firefighter to warn those outside that the fire alarm has been triggered. Z-Wave

๐Ÿ”

Human interfaces ๐Ÿ•น๏ธ

Device Description Connection
Acer Iconia One 10" tablet with its 1280x800 IPS screen wallmounted as a kiosk. See /appdaemon/dashboards/. WiFi
Aeotec Minimote with its 4 double-state remote control buttons. Z-Wave
Flic Smart Buttons (x2) for simple, triple-state, stick-anywhere, battery-powered physical buttons. ๐Ÿ”˜ Bluetooth Low Energy

๐Ÿ”

Switches and other devices ๐Ÿ”Œ

Device Usage Connection
Daikin 19 Series mini split heat pump to cool, warm, and dehumidify the apartment. Connected via the optional WiFi adapter or Broadlink RM Mini 3 (upcoming). IR / WiFi
Rowenta VU2660U2 Turbo Silence Extreme oscillating fan to create a gentle, silent breeze in the bedroom. Connected via Broadlink RM Mini 3 (upcoming). IR
TP-Link HS105 Smart Plugs (x4) to toggle power to dumb devices. WiFi

๐Ÿ”

Software ๐Ÿ’ป

App Usage
Docker on local machine (for development). True, Home Assistant is Docker-based tooโ€ฆ ๐Ÿ˜‰
Fully Kiosk Browser PLUS on wallmounted tablet for display and simple interaction.
Home Assistant on a Raspberry Pi 3 Model B+ (production setup).
LANnouncer on wallmounted tablet for simple audio and text-to-speech messaging. Quite unreliable however.
Python Virtual Environment on local machine (for quick development).

๐Ÿ”

Home Assistant add-ons โž•

Add-on Usage
AppDaemon for HADashboard tablet UI.
Check Home Assistant configuration to validate current configuration before upgrading.
DuckDNS to facilitate secure remote access.
Log Viewer to stream the log file to a browser window.
MQTT Server & Web client for standard IoT messaging using Mosquitto, plus a HiveMQ web interface.
NGINX Home Assistant SSL proxy to route secured web traffic from the outside world to Home Assistant using NGINX.
RTL_433 to MQTT Bridge to receive and decode AcuRite devices radio signals.
Samba share to access configuration files easily with Samba.
SSH & Web Terminal for secure command-line access.

๐Ÿ”

Community integrations ๐Ÿ˜๏ธ

Integration Usage
Browser Mod to add pop-up support to ui-lovelace.yaml.
Display platform for integration with the Fully Kiosk Browser.
Doomsday Clock to track how close humanity is to a man-made global catastrophe.
HACS (Home Assistant Commnunity Store) to ease maintenance and pretty-up ui-lovelace.yaml.
Lightpack to control TV bias lights.
Raspberry Pi Power Supply Checker to warn in case of insufficient power delivery.
UniFi Gateway for extra network stats.
Variable for persisnent storage of non-boolean values.

๐Ÿ”

Lovelace widgets ๐Ÿ’–

Widget Usage
auto-entities to filter entities.
bar-card for battery statuses.
button card for intuitive mode toggles.
card-mod to apply CSS to cards.
card-tools as a requirement to other widgets.
custom-header to optimize screen real-estate.
dummy-entity-row to use entities' titles without showing their values.
favicon-counter to display a browser tab indicator for notifications.
fold-entity-row to hide less important details unless requested.
github-entity-row to display health status of related GitHub repos.
layout-card to give structure to views, including pretty headers and footers.
mini-graph-card to display simple interactive line charts for temperature, humidity, radon levelsโ€ฆ
restriction-card to prevent accidental changes to critical entities.
secondaryinfo-entity-row to display supplemental information from other sensors and attributes.
slider-entity-row to quikly control light brightness.
swipe-card to display slideshows of satellite weather maps.
vertical-stack-in-card to assemble multiple sub-cards into a prettier, unified card.

๐Ÿ”

Usage ๐Ÿ“˜

In an empty directory, type:

git clone --recurse-submodules git@github.com:renemarc/home-assistant-config.git .

echo "secrets.yaml filter=secret merge=keepMine" > .gitattributes

cp secrets-dummy.yaml secrets.yaml

cp appdaemon/secrets-dummy.yaml appdaemon/secrets.yaml

Actual secrets and auto-generated sensitive files are obviously kept off this repo! ๐Ÿ˜‰

๐Ÿ”

License ๐Ÿ“ƒ

๐Ÿ”

Thanks ๐Ÿ’•

Kudos to:

Thank you for all your dedication, helpfulness and valuable insights. Cheers! ๐Ÿป๐Ÿ˜ƒ

๐Ÿ”

Don't forget to โญ๏ธ or ๐Ÿ”ฑ this repo! ๐Ÿ˜ƒ