Skip to content

home-assistant

Introduction

Home Assistant is my home automation platform of choice. It offers many integrations and is easily configurable. It runs completely local, is privacy-focused and has companion mobile apps.

Most of my home automation stuff is ZigBee based which requires a small USB ZigBee Gateway stick: ConBee II. This stick is plugged into one of the cluster nodes. To ensure that the Home Assistant pod is scheduled on this node, it is set up with a dedicated label.

Example of a Node with a dedicated label
apiVersion: v1
kind: Node
metadata:
  name: dathomir.iske.cloud
  labels:
    k8s.pascaliske.dev/hardware: zigbee

The configuration files of my Home Assistant instance are stored and managed inside another dedicated GitHub repository. Only the secrets are managed by this repository.

Created Resources

Kind Name
Namespace paperless
HelmRelease paperless
Certificate docs.${DOMAINS_EXTERNAL}
IngressRoute dashboard
ConfigMap grafana-dashboard-batteries, grafana-dashboard-climate, grafana-dashboard-fuel-prices
Secret secrets, monitoring-auth

CLI

Home Assistant provides a CLI tool to interact with the instance. The following command can be used to access them inside the cluster:

kubectl exec -it --namespace home-assistant deploy/home-assistant -- hass --script <script>
Example
kubectl exec -it --namespace home-assistant deploy/home-assistant -- hass --script check_config

For more information on the hass command itself visit their docs.