Hi HA developers and users!
First, great product! I use it every day and have been using it for 2+ years. I know my use case is very special hence doesn’t apply to everyone, but I just want to share my two cents.
tl;dr
my bare minimal configuration contains many tweaks; I only need HA for its frontend; I stripped down HA to a bare minimal.
HA provides very good automation facilities, but my fear of putting HA in the centre of my home automation is that if HA fails, my entire system fails.
My goal is to create a home automation environment that
- works 24/7
- works without the internet (or mandatory cloud)
- doesn’t need taking care of
- doesn’t need frequent code change (once a month is OK)
- degrades gracefully (i.e. if one component fails, other will still work)
My current solution is an MQTT bus (mqtt + TLS) with microservice architecture.
I have zigbee2mqtt running on another computer. I have also written other gateways such as bluetooth2mqtt (handles my switchbots too), irkit2mqtt, rpitx2mqtt. I also made my own power meter that posts MQTT messages regularly.
For automation I have a nodeJS-based automator that listens to the MQTT messages and posts relevant automation messages. The idea is to have the system degrade gracefully in case a component fails.
- if my internet is broken, my home automation still works
- if HA fails, my automation still works
- if HA fails, I still have zigbee2mqtt UI to inspect the status of each of my devices (hoping to write a status webapp for that)
- if my automation app fails, each device still works
I deploy HA on a RaspberryPi 4 running raspbian OS lite. my installation is in a python3.11 venv locating on an NFS mount. My previous HA installation on a USB flash drive has stopped working after 1 year after excessive writing (although I have already stripped loggon to a bare minimal).
- I have also realised that HA breaks easily especially when an update is applied. I think stability is of utmost importance so my installation is fixed at
2023.03
. My zigbee2mqtt version is also fixed. - I don’t want to tinker with the HA codebase but there are too many bloat components
-
energy
- (I don’t even know whatjuicenet
is). My energy meter reportskWh
andA
readouts every 30 second. A numerical meter is all I need. -
cloud
- I manage my automation myself with Discord and LINE chatbots, I also have homebridge that links my MQTT infra to iOS. I use cloudflare zerotrust tunnel to log into my HA instance when I’m not home. I maintain full control on exactly what my cloud will look like.
I’ll not get outage if Nabu Casa one day decides to stop their cloud. -
bluetooth
- my bluetooth is managed separately with a bluetooth2mqtt gateway that I made myself. I don’t need HA to manage my bluetooth.
-
I have managed to modify homeassistant/components/default_config/manifest.json
and stip off most components except MQTT and the bare essentials. If I buy a new device I just add it to zigbee2mqtt and/or write my own MQTT gateway for it. As long as HA can pick up the MQTT message I’ll never need to update HA.
I tried running HA over docker but sadly docker doesn’t work with NFS mounts and writes very frequently to the disk, making it less than ideal for raspberry pi. By the way, my Raspi has OverlayFS and a readonly root partition enabled.
My entire HA instance is on an NFS mount so theoretically if my raspberry pi fails for any reason, I will be able to start it on another. I haven’t tried it - hopefully I don’t have to.
Am I abusing HA ??? Are there any other people who use HA like I do? What’s your configuration??
Cheers