What are the best practices for storing configuration?

My config, automations, customisations and even Lovelace are a big mess at the moment.

Currently half of my integrations are configured in the UI, and the rest are in the configuration.yaml file. I noticed that in the latest update in the Configuration > General tab, it gives me this option:
14%20am
What does this mean? How else am I meant to store the rest of my configuration that is not available through the Integrations tab?

It is also a similar story for my automations. My “system” automations are stored in automations_old.yaml so that they cannot be edited through the UI, yet they still show up in the automations editor to be able to turn on and off. How do I remove them to create a clean view of only relevant automations. Should I add them through the automations editor to make it cleaner and more future-proof?

Customization is even worse. Half of the customisations are stored in the customize.yaml file, some are in the UI customise editor and the rest are customised through Lovelace. What is the best option looking forward to customise my entities? Most of the customisations are just simple icon changes, name changes and some sensors changing device_class and unit_of_measurement. How do I remove “system” entities from the customisation UI as it looks very messy at the moment with all the behind the scenes entities?

Should I use the yaml files anymore for automations, customisation and even configuration(if possible) or just completely migrate to UI configurator? I just feel that right now the UI isn’t powerful enough to access all the power of Home Assistant, but I know it will get better in the future and thats why I can’t make a decision.

I’d love to hear everyones opinion and the way that they store their Home Assistant configuration.

1 Like

This is the new core config onboarding. If you don’t have items under the core config ( homeassistant: ) in your configuration.yaml file it will provide a nice GUI to set name, location, timezone etc…

More here: 0.94: SmartHab, Watson TTS, Azure Event Hub

It has nothing to do with discovered integrations or manually configured devices.

Can’t help you with the automations editor. I don’t use it.

I use names/entity id’s that help me know what I’m referring to when manually creating automations and scripts. For entities that don’t support name: or friendly_name: or icon: I set these in the customization section. For use in the front end I sometimes simplify these names. e.g I have a lot of temperature sensors so to distinguish which one is which I name them Room Name Sensor Type. In the front end in a card that has the room name in the title I use lovelace to drop the redundant information and make the display cleaner.

Not sure what you are referring to here. Can you clarify with a screen shot?

This is a matter of personal preference. I don’t find the automation editor capable enough for my liking and I don’t like the way it mangles YAML from human readable to alphabetical order. So I don’t use it.

Thanks for your help!

For example I have an input select to change channels on both of my TV’s. This requires a light which triggers a few harmony actions and the light is turned on by an automation when the input select changes:


I don’t really want to see this in my customisation as they are just things in the background. Am I able to keep these entities somewhere where they will only be available in a yaml file and not show up in the UI at all?

Thats fine but will I be more future proof by using the UI? Will Home Assistant eventually move away from yaml editing, or will I always have the option to edit with a yaml?

The option to edit in yaml has been mentioned many times by balloob as always being available

Are you talking about the drop down box to select an entity_id in the configuration / customisation section?

If so, no there is no way to edit that list. It is purposefully a list of everything you can customise. To help you navigate a large list, if you type a letter it will jump to the first device beginning with that letter.

No point in rattling out that old rubbish now, that promise has already been broken, and it’s broken by policy.

How do you drop the redundant information?

I have cards for each room and set the friendly name for many sensors to Sensor Type which gives the same end result as you in the frontend with an entity e.g. Temperature.

Disadvantage of this approach is that when I create dynamically filtered cards using the Auto Entities card to show for example sensors above a certain temperature, I have multiple entitles called Temperature without knowing which room it is.

It would be ideal to use your approach for room cards by removing redundant information there and use the full Room Sensor Type friendly name for Auto Entities cards.

Using the entity: options.
e.g. STATUS is already in the heading of this glance card.

columns: 4
entities:
  - entity: binary_sensor.bar_fridge_status
    name: Bar Fridge
  - entity: binary_sensor.bathroom_dht_status
    name: Bathroom DHT
  - entity: binary_sensor.cinema_av_status
    name: Cinema AV
  - entity: binary_sensor.comms_cupboard_dht_status
    name: Comms DHT
  - entity: binary_sensor.comms_rack_status
    name: Comms Rack
  - entity: binary_sensor.dining_room_dht_status
    name: Dining DHT
  - entity: binary_sensor.doorbell_downstairs_status
    name: Doorbell DN
  - entity: binary_sensor.doorbell_upstairs_status
    name: Doorbell UP
  - entity: binary_sensor.electric_blanket_status
    name: Elec Blanket
  - entity: binary_sensor.ensuite_dht_status
    name: Ensuite DHT
  - entity: binary_sensor.fridge_status
    name: Fridge
  - entity: binary_sensor.gpio_bridge_1_status
    name: GPIO Brdge 1
  - entity: binary_sensor.gpio_bridge_2_status
    name: GPIO Brdge 2
  - entity: binary_sensor.lounge_av_status
    name: Lounge AV
  - entity: binary_sensor.lounge_room_dht_status
    name: Lounge DHT
  - entity: binary_sensor.lounge_chair_status
    name: Lounge Chair
  - entity: binary_sensor.lux_sensor_status
    name: Lux Sensor
  - entity: binary_sensor.master_bed_sensor_status
    name: Master Bed
  - entity: binary_sensor.ping
  - entity: binary_sensor.roof_space_dht_status
    name: Roof DHT
  - entity: binary_sensor.rumpus_room_dht_status
    name: Rumpus DHT
  - entity: binary_sensor.spare_bedroom_dht_status
    name: Spare Bed DHT
  - entity: binary_sensor.washing_machine_status
    name: Washing Machn
show_state: false
title: Device Status
type: glance

Is there some way to hide that part of the GUI alltogether since i have it configured manually?
I would prefer to have direct access to the reload / restart buttons rather than having to scroll down every time. Or at least move the map GUI under the reload config part.
Not important, was just wondering :slight_smile:

no way to hide or move currently

Thanks and sorry for changing the subject.

https://community.home-assistant.io/t/reorder-configuration-general/124566
Go Vote it up!

1 Like

Thank you for the tip!