Why do areas only have one tier?

As a relative n00b, being able to have more coarse divisions – e.g., indoor/outdoor, or basement/upstairs – would be really nice as I work to expand ad improve my HA setup.

1 Like

That having a house with rooms and more than 1 floor is not supported in any sensible manners (as far as I can see) is the most wtf home assistant thing imho.

1 Like

Sounds like Home Assistant is more like a Flat Assistant :smiley:

11 Likes

I agree that entities should only be in one area at once. A good way to solve this problem would be to add area groups for things like 1st Floor, Ground Floor, etc.

Alternatively, go full-out with a proper tag system (integrated with the areas system) so that we could group devices logically (“Mobile Phones”) as well as physically (“Dining Room”).

2 Likes

I use old style groups in YAML which can contain other groups.

1 Like

FWIW, I am experimenting with being able to use arbitrary data in attributes for purposes like this:

In your customize.yaml you would set a new attribute, tag_locations to be a list of the logical groups/areas that you’d want to place an entity.

For example:

light.kitchen_light:
  tag_locations: ["interior", "kitchen", "firstFloor"]

light.hallway_lights:
  tag_locations: ["interior", "entryWay", "firstFloor"]

light.bathroom_lights:
  tag_locations: ["interior", "bathroom", "secondFloor", "masterBedroomSuite"]

light.bedroom_led_strips:
  tag_locations: ["interior", " "secondFloor", "masterBedroomSuite"]

light.bedroom_fan_light :
  tag_locations: ["interior", "secondFloor", "masterBedroomSuite"]

You can then use some jinja to - for example - turn off only the lights on the first floor:

service: light.turn_off
  data_template:
    entity_id: >-
        {% set toTurnOff = states.light 
                    | selectattr('attributes.tag_locations', 'defined') 
                    | selectattr('attributes.tag_locations', 'search', 'firstFloor') 
                    | map(attribute='entity_id') | list %}
        {{ toTurnOff }}

Hope that helps!

5 Likes

In HomeKit these are called “Zones”, now we already have zones in HA, but the idea is at least already in use in one system people come from, I would love to have something like this.

1 Like

An area hierarchy would fit the bill just fine i.m.o. That way an entity is still only in one area, but could also be considered part of the parent areas as well. Rooms are on floors, floors are in a home, the patio can be in the back garden, all gardens are outside, as is the shed. That is how other Home automation systems work as well.

2 Likes

We find that we have many devices that are considered to be in two places at once. It all comes down to how you categorize them. We have outside lights that are in the Garden but are also in the Front Yard or the Backyard. We have lights that are in our Backyard and our Porch.

I know I can simply make Porch an Area of its own but if I had a second tier (a child inside an parent Area) I could put Porch inside the Backyard. I have Garage light switches that are not in the garage. I have driveway lights that are not in the driveway. My Halloween lights are not really anywhere specific (they’re everywhere). Perhaps a second tier would work here.

Then there are fixtures… another topic for another time.

David

1 Like

Would this move groups, zones and areas to tags then? Seems super flexible

1 Like

I really like this, as long as they would be able to be used in the same manner as areas are now?

I still do think that some kind of hierarchy/tree structure would be absolutely needed, as to not need to manually label everything with thousands (yes, I exaggerate :smiley: ) of labels.

My point is, if you take this example structure from another post, you shouldn’t need to label the Hallway devices/entities with Hallway, Downstairs and Inside to be able to target them with any of the labels, if that makes sense? I still do believe that nestable areas would make the most sense from how our homes are built. If I put a sensor physically in my hallway it is automatically both downstairs and inside…

  • Inside
    • Basement
    • Downstairs
      • Kitchen
      • Living room
      • Dining room
      • Hallway
    • Upstairs
      • Bedroom 1
      • Bedroom 2
      • Bedroom 3
      • Study
      • Bathroom
    • Attic
  • Outside
    • Front
      • Porch
      • Driveway
    • Side
      • Garage
      • Side garden
    • Rear
      • Rear garden
      • Patio
      • Greenhouse
13 Likes

Will these support automations too? Seems like that would fix a lot of complaints.

I would love to be able to instead of assign a device or entity only to an area be able to tag it instead. That way you could create arbitrary groupings of entities and devices.

1 Like

Why do devices/entities have to be assigned to only one area?

Can devices/entities change their own area based on triggers/events?

2 Likes

Rather than hierarchy, it seems like grouping areas together would help something. E.g. cases where you are grouping by the following and then doing automations based on some group of areas:

  • floor
  • indoor
  • outdoor
  • areas with speakers
  • private areas
  • kids areas
2 Likes

If the labels are going to eliminate the areas to take care of both uses, I think that’s great. However, if we are to continue to have areas and labels, for me the ideal case in a home automation application or web would be to use both, hierarchy and labels, but with different uses:

A - Order of areas through hierarchy. With the limitation that an area could only be within a single area, but could have several sub-areas.

I would use this to order the areas in a hierarchical way (one within another) and the purpose would be to obtain a physical order in the house.

In this way, large houses, with exterior land or with various heights could be better organized.
In my vision, it would be ideal for example to automatically group devices/entities. For example, turning off all the outside lights, or seeing if there is any movement upstairs, or lowering all the blinds in the house, or knowing the average of the outside temperature sensors. Without having to create manual groups that later have to be maintained (Don’t misunderstand, I love groups) but I would try to manage them as much as possible by areas and sub-areas autonomously, just by changing one area within another).

  • The whole house:
    • Exterior:
      • Front garden
      • Back garden
      • Front porch
      • Living room terrace
        * Spa:
        * Jacuzzi
        * Sauna
        * Solarium
      • Terrace Kitchen
        * Barbecue
        * Chill out zone
      • Garage
        * Bathroom Garage
        * Workshop
        * Parking
      • Swimming pool
      • Outside entrance.
    • Inside:
      • Low level
        * Entrance hall
        * Living room
        * Cellar
        * Office
        * Bathroom Office
      • Middle floor
        * Guest Bedroom
        * Bathroom kitchen
        * Kitchen
        * Corridor Kitchen
      • Top floor
        • Ladders
        • Landing
        • Gym
        • Balcony gym
        • Main bedroom
          * Main bathroom
          * Dressing room
          * Corridor Master Bedroom

B - Order by labels. This would be as purpose or similarities.
For example:

Tags:

  • Water Zones:
    • Toilets
    • Kitchen
    • Swimming pool
    • Spa
  • Toilets
    • Bathroom Garage
    • Bathroom kitchen
    • Main bathroom
  • Parkland:
    • chill-out
    • Front garden
    • back garden
    • Terrace Kitchen
    • Living room terrace
  • Christmas:
    • Devices or entities used during the Christmas holidays.
  • Halloween:
    • Devices or entities used in Halloween decorations.
  • Fire alarm:
    • The devices or entities used in the detection and warning of fire.
  • Intrusion alarm:
    • The devices or entities used in intrusion detection and warning.
  • Children’s areas.
  • Guest areas.
  • Escape Harry Potter:
    • All those devices/entities/automations that I have used to temporarily turn my house into an Escape Room (Yes, call me a geek :stuck_out_tongue_closed_eyes: :sweat_smile: :joy:).
3 Likes

@frenck I hope we can have Labels soon. They would help here as well as with the highest voted WTH: Why are automations in one big list?

The Hierarchy approach is good, but still a little limiting. I think the best approach is what was suggested in the thread by doing area “tags”. This will be more powerful. Think of the below scenario.

A closet in in a specific room bedroom that is on specific floor. In the Hierarchy approach, you could let’s say “turn off all lights on the 2nd Floor” and everything in the 2nd floor would be turned off including all the sub areas or “turn off all lights in the master Bedroom” which would turn off lights in the Master Bedroom area which would also include the closet. What you could not do is lets say " Turn off All closet lights" because the closet area is a sub area of master bedroom. (i understand that this can be overcome with groups)

The better approach would be with tags, in which you can assign multiple tags. Again, using the closet as a use case. you can tag the Master Bedroom closet with multiple tags (Closet, Master Bedroom, 2nd Floor) or outdoor lights in which you could tag as Front yard, back yard, Christmas lights, etc.

Again, I fully understand that you can do this with groups. But it would require you to create many groups to satisfy all the scenarios. While tagging would satisfy this more easily.

3 Likes

I agree that hierarchy does not satisfy all scenarios, but I think hierarchial areas would have one big advantage in automatically adding new entities in the closet to bedroom and 2nd floor. Then a tagging system to manually tag the closet entity with closet as well would be satisfy the other scenarios.
According to my experience if you always need to manually tag something it will be done in the beginning and later on forgot about.

4 Likes

+1 for tag approach

1 Like