Skip to content

dannytsang/homeassistant-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Danny's Home Assistant ๐Ÿก

Home Assistant CI

Introduction ๐Ÿ“ข

My โšฝgoal with home automation is to never have to think about doing something mentally or physically. This can be turning on a ๐Ÿ’กlight through to household chores such as ๐Ÿ‘•washing clothes. Currently, my journey continues.

I have always been interested in technology starting from the x10 days. At the time, I was did not have the money or ๐Ÿงฌlife experience to use the ๐Ÿ’ปtechnology at the time. Fast forward a few ๐Ÿ“…decades, I'm fortunate enough to have the means and place to splurge on home automtion and Home Assistant is the key to all of this.

This project contains configuration files for Home Assistant used in the House of Tsang ๆ›พ)

More details on my ๐Ÿ“œwebsite.

Statistics ๐Ÿ“Š

I have 6,346 states (๐Ÿ“ˆ194) in Home Assistant. More details here.

Hardware ๐Ÿ”ฉ

More details here.

Addons โž•

This is not an exhaustive list and it changes quite a lot. Too keep up to date, please subscribe to my blog.

Add-ons that I run outside of Home Assistant:

Integrations ๐Ÿ–ง

More details here.

GitHub ๐Ÿฑ๐Ÿ™

This repository contains the configuration files used. It will not contain everything e.g. password (A.K.A secrets.yaml) file as well as other configuration done in the User Interface (UI).

Whilst Home Assistant offer backup solution depending on your install, it is a bit of all or nothing restore process whereas Git (or any versioning system) would allow incremental changes to be stored and reverted where necessary.

The goal is to use the web front end as much as possible and there has been a growing trend to move away from text (YAML) files however the versioning advantage is the reason i still use and store things here.

Setup โš™๏ธ

All changes are performed in the UI where possible and if they are held in configuration files then it will end up in Git where possible.

I use the Visual Studio Code add-on to edit files in Home Assistant or if I really have to the File Editor add-on on my mobile deives.

Visual Studio Code addon includes a Git client so all changes are managed through the text editor.

Workflows ๐Ÿ–‡๏ธ

The advantage of using a source code management system like Git is the ability to use hooks to trigger actions (as well as other advantages).

I use GitHub actions to verify the changes committed by running it against Home Assistant builds. If successful, Home Assistant will pull down the changes and if the changes are configuration related (as opposed to readme / markdown files) then it will perform another local configuration check and restart to pick up the changes. More details on this can be found here

For this reason, the custom_components is stored in the repository to allow a successful build and configuration check.

Structure ๐Ÿงฑ

This repository's top level is the /config folder where typically the configuration.yaml file resides. More details can be found here.

I use some of the "advance" configuration options such as split configuration and packages.

Blueprints ๐Ÿ“

I have yet to explore this feature yet. See here.

Camera ๐Ÿ“ธ

Private directory to hold camera images. Predominantly used for sending images to DeepStack.

ESPHome ๐Ÿ”Œ

Files related to managing the ESP microcontroller. See ESPHome.io for more details.

Packages ๐Ÿ“ฆ

See packages readme for more details.

Split Configurations ๐Ÿ“ฆ๐Ÿช“

I use split configuration files to help manage and keep the configuration.yaml size down. The advantange is each type of configuration such as scripts, scenes, etc will be managed by Home Assistant UI with minimal setup.

www ๐ŸŒ

A public folder for holding any files such as images that does not need authentication. I use it for attaching images to notifications.

Tags / Releases ๐Ÿท๏ธ

I will apply a tag around the time of upgrading to a monthly release of Home Assistant. These will represent a snapshot of a (hopefully) stable configuration used prior to upgrading and a point to restore back to if needed. The main branch will contain the latest changes so there is no latest tag.

I encountered issues with branching using VSCode Server add-on in Home Assistant. I was always switching away from a branch so I generally stay away from using this method.

Miscellaneous ๐Ÿฆบ

N/A