Home

Awesome

<h1 align="center"> ๐Ÿ <br/>Home Assistant configuration for a smart-looking place!<br/> <sup><sub>by <a href="https://renemarc.com/">Renรฉ-Marc Simard</a> ๐Ÿ˜ƒ</sub></sup> </h1>

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.

<div align="center"> <p><strong>Be sure to <a href="#" title="star">โญ๏ธ</a> or <a href="#" title="fork">๐Ÿ”ฑ</a> my repo if you find it useful! ๐Ÿ˜ƒ</strong></p> <figure> <div> <img src="www/screenshots/dashboard-all.gif" alt="Dashboard animation" title="Dashboards"> </div> <figcaption> <p><strong>Wall-mounted interface using <a href="/appdaemon/dashboards"><code>/appdaemon/dashboards/</code></a>.</strong></strong></p> </figcaption> </figure> </div>

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.

<div align="center"> <figure> <div> <img src="www/screenshots/group-security-dark.png" alt="Security group (Dark theme)" title="Security (Dark theme)" width="200"> <img src="www/screenshots/group-weather.png" alt="Weather group" title="Weather" width="200"> <img src="www/screenshots/group-climate.png" alt="Climate Control group" title="Climate Control" width="200"> <img src="www/screenshots/group-battery-dark.png" alt="Battery Levels group (Dark theme)" title="Battery Levels (Dark theme)" width="200"> <img src="www/screenshots/group-atmosphere.png" alt="Atmospheric Safety group" title="Atmospheric Safety" width="200"> <img src="www/screenshots/group-actions.png" alt="Actions group" title="Actions" width="200"> <img src="www/screenshots/group-ceiling.png" alt="Ceiling group" title="Ceiling" width="200"> <img src="www/screenshots/group-transit.png" alt="Public Transit group" title="Public Transit schedules" width="200"> </div> <figcaption> <p><strong>Sensor <a href="groups"><code>/misc/groups.yaml</code></a>.</strong></p> </figcaption> </figure> </div>

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! ๐Ÿ‘€

<p align="right"><a href="#top" title="Back to top">๐Ÿ”</a></p>

Overview ๐ŸŒ…

Goals โšฝ

<div align="center"> <figure> <div> <a href="https://imgur.com/gallery/dlPPi" title="Wiretap meme"><img src="https://i.imgur.com/iVruWs1.jpg" alt="Wiretap meme" width="480"></a> </div> <figcaption> <p><strong>๐Ÿ˜จ No thanks!</strong></p> </figcaption> </figure> </div> <p align="right"><a href="#top" title="Back to top">๐Ÿ”</a></p>

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.

<div align="center"> <figure> <div> <a href="https://www.youtube.com/watch?v=wujVMIYzYXg" title="Princess Bride clip"><img src="https://i.imgur.com/jKGbzWV.jpg" alt="Agile. You keep using that word. I do not think it means what you think it means." width="480"></a> </div> <figcaption> <p><strong><a href="https://www.youtube.com/watch?v=wujVMIYzYXg" title="Princess Bride clip">Well, without the sprints. And a team. And the retrospectives. And theโ€ฆ</a></strong></p> </figcaption> </figure> </div> <p align="right"><a href="#top" title="Back to top">๐Ÿ”</a></p>

Key features โœ…

Climate control ๐ŸŒก

<div align="center"> <figure> <div> <img src="www/screenshots/group-climate.png" alt="Climate Control group" title="Climate Control" width="325"> <img src="www/screenshots/notification-humidity.png" alt="Humidity notification" title="Humidity notification" width="325"> </div> <figcaption> <p><strong>Climate control.</strong></p> </figcaption> </figure> </div> <p align="right"><a href="#top" title="Back to top">๐Ÿ”</a></p>

Weather report โ›…

<div align="center"> <figure> <div> <img src="www/screenshots/group-weather.png" alt="Today's Weather group" title="Today's Weather" width="325"> <img src="www/screenshots/group-forecast.png" alt="Weekly Forecast group" title="Weekly Forecast" width="325"> </div> <figcaption> <p><strong>Today's weather and weekly forecast.</strong></p> </figcaption> </figure> </div> <p align="right"><a href="#top" title="Back to top">๐Ÿ”</a></p>

Lighting control ๐Ÿ’ก

<div align="center"> <figure> <div> <img src="www/screenshots/group-lounge.png" alt="Lounge group" title="Lounge lights" width="325"> <img src="www/screenshots/group-bedroom.png" alt="Bedroom group" title="Bedroom lights" width="325"> </div> <figcaption> <p><strong>Lighting controls.</strong></p> </figcaption> </figure> </div> <p align="right"><a href="#top" title="Back to top">๐Ÿ”</a></p>

Presence and basic security ๐Ÿ‘ฎ

<div align="center"> <figure> <div> <img src="www/screenshots/group-presence.png" alt="Presence group" title="Presence" width="325"> <img src="www/screenshots/group-security.png" alt="Security Status group" title="Security Status" width="325"> </div> <figcaption> <p><strong>Presence and basic security.</strong></p> </figcaption> </figure> </div> <p align="right"><a href="#top" title="Back to top">๐Ÿ”</a></p>

Modes and scenes ๐ŸŒˆ

<div align="center"> <figure> <div> <img src="www/screenshots/group-actions.png" alt="Actions group" title="Actions" width="325"> </div> <figcaption> <p><strong>Modes and scenes.</strong></p> </figcaption> </figure> </div> <p align="right"><a href="#top" title="Back to top">๐Ÿ”</a></p>

General information ๐Ÿ›Ž

<div align="center"> <figure> <div> <img src="www/screenshots/group-system.png" alt="System group" title="System" width="325"> <img src="www/screenshots/group-transit.png" alt="Public Transit group" title="Public Transit" width="325"> </div> <figcaption> <p><strong>General information.</strong></p> </figcaption> </figure> </div> <p align="right"><a href="#top" title="Back to top">๐Ÿ”</a></p>

Additional human interfaces ๐Ÿ“ฒ

<p align="right"><a href="#top" title="Back to top">๐Ÿ”</a></p>

Setup ๐Ÿ”ฉ

<div align="center"> <figure> <div> <img src="www/images/technology-diagram.png" alt="Home Assistant technology diagram"> </div> <figcaption> <p><strong>Technology diagram (<a href="www/images/technology-diagram.png"><code>PNG</code></a>, <a href="www/images/technology-diagram.svg"><code>SVG</code></a>). Made with <a href="https://www.draw.io/?title=Home%20Assistant%20Technology%20Diagram.xml#Uhttps%3A%2F%2Fgithub.com%2Frenemarc%2Fhome-assistant-config%2Fraw%2Fmaster%2Fwww%2Fimages%2Ftechnology-diagram.xml">Draw.io</a> (<a href="www/images/technology-diagram.xml"><code>XML</code></a> source file).</strong></p> </figcaption> </figure> </div> <p align="right"><a href="#top" title="Back to top">๐Ÿ”</a></p>

Supporting technical choices ๐Ÿงฑ

<p align="right"><a href="#top" title="Back to top">๐Ÿ”</a></p>

Configuration โš™

<p align="right"><a href="#top" title="Back to top">๐Ÿ”</a></p>

Systems and bridges ๐ŸŒ‰

DeviceDescriptionConnection
Aeotec Z-Stick Gen5Z-Wave USB dongle.USB
Airthings Wave radon detector bridgeto 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 Modulefor battery-operated, cloud-enabled cameras.WiFi
CEC MQTT bridgeto 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 bridgeto connect with these Bluetooth Low Energy buttons. Runs on a Raspberry Pi Zero W managed through balenaCloud.WiFi
Milight iBox2 WiFi bridgefor kitchen RF LED strip controllers, using LimitlessLED integration.WiFi
NooElec NESDR SMArtRTL-SDR (software-defined radio) USB dongle for reading AcuRite sensors.USB
Raspberry Pi 3 Model B+running Home Assistant.Local
<p align="right"><a href="#top" title="Back to top">๐Ÿ”</a></p>

Physical devices ๐Ÿ”จ

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

DeviceDescriptionConnection
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
AdalightDIY 100-dots TV backlighting controlled by Lightpack+Prismatik on HTPC.LAN
DIY LED nightstandvia 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 Auroralight panels kit. Pretty!WiFi
<p align="right"><a href="#top" title="Back to top">๐Ÿ”</a></p>

Sensors ๐Ÿ“ก (see /sensors/)

DeviceUsageConnection
AcuRite 06044M Wireless Sensorfor cheap temperature and humidity monitoring inside a cigar humidor.433Mhz
Aeotec Door / Window Sensor Gen5for front door.Z-Wave
Aeotec MultiSensor 6(x3) for temperature/humidity/presence detection.Z-Wave
Airthings Wave radon detectorto keep an eye on this cancer-causing radioactive gas.Bluetooth Low Energy
Blink XT2to 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 Firefighterto warn those outside that the fire alarm has been triggered.Z-Wave
<p align="right"><a href="#top" title="Back to top">๐Ÿ”</a></p>

Human interfaces ๐Ÿ•น๏ธ

DeviceDescriptionConnection
Acer Iconia One 10" tabletwith its 1280x800 IPS screen wallmounted as a kiosk. See /appdaemon/dashboards/.WiFi
Aeotec Minimotewith 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
<p align="right"><a href="#top" title="Back to top">๐Ÿ”</a></p>

Switches and other devices ๐Ÿ”Œ

DeviceUsageConnection
Daikin 19 Series mini split heat pumpto 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 fanto 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
<p align="right"><a href="#top" title="Back to top">๐Ÿ”</a></p>

Software ๐Ÿ’ป

AppUsage
Dockeron local machine (for development). True, Home Assistant is Docker-based tooโ€ฆ ๐Ÿ˜‰
Fully Kiosk Browser PLUSon wallmounted tablet for display and simple interaction.
Home Assistanton a Raspberry Pi 3 Model B+ (production setup).
LANnounceron wallmounted tablet for simple audio and text-to-speech messaging. Quite unreliable however.
Python Virtual Environmenton local machine (for quick development).
<p align="right"><a href="#top" title="Back to top">๐Ÿ”</a></p>

Home Assistant add-ons โž•

Add-onUsage
AppDaemonfor HADashboard tablet UI.
Check Home Assistant configurationto validate current configuration before upgrading.
DuckDNSto facilitate secure remote access.
Log Viewerto stream the log file to a browser window.
MQTT Server & Web clientfor standard IoT messaging using Mosquitto, plus a HiveMQ web interface.
NGINX Home Assistant SSL proxyto route secured web traffic from the outside world to Home Assistant using NGINX.
RTL_433 to MQTT Bridgeto receive and decode AcuRite devices radio signals.
Samba shareto access configuration files easily with Samba.
SSH & Web Terminalfor secure command-line access.
<p align="right"><a href="#top" title="Back to top">๐Ÿ”</a></p>

Community integrations ๐Ÿ˜๏ธ

IntegrationUsage
Browser Modto add pop-up support to ui-lovelace.yaml.
Display platformfor integration with the Fully Kiosk Browser.
Doomsday Clockto 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.
Lightpackto control TV bias lights.
Raspberry Pi Power Supply Checkerto warn in case of insufficient power delivery.
UniFi Gatewayfor extra network stats.
Variablefor persisnent storage of non-boolean values.
<p align="right"><a href="#top" title="Back to top">๐Ÿ”</a></p>

Lovelace widgets ๐Ÿ’–

WidgetUsage
auto-entitiesto filter entities.
bar-cardfor battery statuses.
button cardfor intuitive mode toggles.
card-modto apply CSS to cards.
card-toolsas a requirement to other widgets.
custom-headerto optimize screen real-estate.
dummy-entity-rowto use entities' titles without showing their values.
favicon-counterto display a browser tab indicator for notifications.
fold-entity-rowto hide less important details unless requested.
github-entity-rowto display health status of related GitHub repos.
layout-cardto give structure to views, including pretty headers and footers.
mini-graph-cardto display simple interactive line charts for temperature, humidity, radon levelsโ€ฆ
restriction-cardto prevent accidental changes to critical entities.
secondaryinfo-entity-rowto display supplemental information from other sensors and attributes.
slider-entity-rowto quikly control light brightness.
swipe-cardto display slideshows of satellite weather maps.
vertical-stack-in-cardto assemble multiple sub-cards into a prettier, unified card.
<p align="right"><a href="#top" title="Back to top">๐Ÿ”</a></p>

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! ๐Ÿ˜‰

<p align="right"><a href="#top" title="Back to top">๐Ÿ”</a></p>

License ๐Ÿ“ƒ

<p align="right"><a href="#top" title="Back to top">๐Ÿ”</a></p>

Thanks ๐Ÿ’•

Kudos to:

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

<p align="right"><a href="#top" title="Back to top">๐Ÿ”</a></p> <p align="center"><strong>Don't forget to <a href="#" title="star">โญ๏ธ</a> or <a href="#" title="fork">๐Ÿ”ฑ</a> this repo! ๐Ÿ˜ƒ</strong></p>