Most configuration for homeassistant is done by the
services/homeassistant/config/configuration.yaml file, which is in the
/config directory in the container. It points to some other files, which are often inside
/config/.storage. This is a docker named volume, so is specific to the box in question and persistent across updates.
Some automations are installed on every box, so we store them in
Other are box-dependent, so should be made persistent. However, for them to be editable in the homeassistant ui, they must be at
/config/automations.yaml in the container. In order to maintain persistent automations, we have two automations in the location above, and a docker named volume:
cofybox-homeassistant-config-storage. These automations are stored at
/services/homeassistant/config/automations/automations_persistence.yaml. One copies the
config/automations.yaml file to the storage container (at
/config/.storage/user/automations.yaml) whenever they are edited, from the front end or directly. The other loads the automations from the storage container back to
/config/automations.yaml when homeassistant loads.
Some blueprints are installed on every box. We store these at
/services/homeassistant/blueprints-automation-powershaper, and copy them into
/config/blueprints/automation/powershaper in the
start.sh script. This is done so that we can also enable box-dependent blueprints to be persistent (see below).
Some blueprints are box-dependent. For these, we have mounted another docker named volume
cofybox-homeassistant-blueprints directly to
/config/blueprints, meaning that all blueprints are stored in this persistent way. To have certain blueprints installed on all devices, we copy these files into the volume (see above).
We should follow the homeassistant release cycle fairly closely. They release on the first Wednesday of every month at time of writing. There is usually a lot of good stuff, so it would be good to also update once a month.
We should check the release notes to see if anything is being deprecated or removed entirely, and act accordingly.
To do the upgrade, you just change the
ha_version in the docker-compose file. It is also necessary to update the
ha_compatible_pip_version to the latest pip version which that version of homeassistant is compatible with.
We should also check our custom integrations and scripts. These don't automatically update, so we have to do it manually.
To update custom integrations, you have to:
custom_components/COMPONENT_NAMEfrom the cloned repo, e.g.
cp -r ha-myenergi/custom_components/myenergi cofybox-balena/services/homeassistant/custom_components
The other things to check are the files under
Once we've updated all of the above, we should test
Take note of any deprecation warnings when homeassistant starts up!