2024.4: Organize all the things!

Checking some organization on mobile this strikes me as a bit overwhelming. As much as I would love to hide the Kliko’s, couldn’t these + buttons be made a bit subtler?

Maybe ditch the verb on them (the + sign already indicates ‘new’/create).

Or , move them away from the view altogether and bring them to the empty white space in the top bar?

Also, comparing the labels, areas and zones, Zones is the only tab with an explanation

Suppose that could be taken out too ( and if not , see how we call a zone a region :wink: )

1 Like

Your modbus configuration is missing required in formation, the errors even say so. Does your configuration look like the documentation?

Settings surely need some cleanup eventually. :grimacing:

Also I’ve never been a fan of the bottom right floating button as it doesn’t work well on desktop, where one would expect these buttons to be at the top right. The current design with the two buttons is a compromise as we are moving from Material Design 2 to Material 3.

I half-agree. Nested areas are the right taxonomy for a home and probably the most flexible from a user perspective - but don’t necessarily give useful geospatial information into HA for the future (which I think was the intention here?).

If you are going to have the concept of floors, then you also need to have ‘buildings’ and then worry about ‘inside’ and ‘outside’.

The ‘ownership’ of property in law is by ‘property’ so every jurisdiction in the world has that root point as a concept, each property has a number of ‘buildings’ and they have an ‘outside’ and an ‘inside’, and the ‘inside’ has ‘floors’ and each ‘floor’ has 'rooms '- if you are trying to capture geospatial categorisation in HA in a uniform way.

Yes you can do all of this with labels (of course - and FABULOUS labels are now here - I can create whatever hierarchy I choose with those - let the chaos begin - but it does feel like I’m overloading the purpose of labels), but the addition of ‘floors’ is (imho) a partial solution that will just cause people to overload ‘floors’ to the point that they don’t do what you wanted them to do in terms of capturing spacial information.

By way of example. I have a 2 ‘floor’ house with several rooms, I’ve also got an external garage and a driveway. There are internal and external lights (and other devices) in all those buildings.

So I have 2 buildings, 1 has 2 floors and 1 has 1 floor.

Solving with floors:
I can of course create 5 ‘floors’ (house-outside, house-downstairs, house-upstairs, garage-outside, garage-downstairs) but then there is no relationship between those naming schemes that can usefully be inferred in the future.

Solving with nested areas:
I could have nested areas ‘property.building.spacial.floor.room’ type scheme or ‘property.spacial.building.floor.room’ - so ‘property.garage.inside.downstairs.workshop’ or ‘property.house.inside.upstairs.bedroom’ for example. Or drop the inside/outside distinction and have those as floors: ‘property.house.outside.patio’.

Solving with labels:
I label everything in the house with ‘house’, everything in the garage with ‘garage’, everything on the inside with ‘inside’ etc etc - works nicely, assuming I can arbitrarily group in a scripted way against those labels.

My point being that ‘floors’ is just a single point of spacial information (if that is the objective here) and by introducing that without some form of regimented hierarchy (so something that code in the future can rely on as meaningful) such as ‘building->floor->room’ is just shifting the ‘overload’ problem from the names people have been giving things like automation or areas to another place. People will now just remove one level of the hierarchy and move the rest into floors - which will just overload again.

If you want to solve this properly, in my view, you either have to let a free for all hierarchy take place by allowing nested areas (and forget trying to regiment and capture spacial information in a structured way), OR you have to regiment a hierarchy that you can rely on in the future that has some basis in the way the world works.

Create a geospatial naming scheme that has a basis in hierarchies that are widely in use in the world today - property->building->floor->room. The top levels can easily default to property = name of HA instance, building = “Home” for the base case.

And as a side note, in the previous post someone quoted that the idea of ‘areas’ came about because ‘rooms’ implied a physical ‘wall’ (I’ve lost the quote but it was in the GitHub discussion and the previous post refers to it) - the conceptual problem I have with creating ‘floors’ in isolation is the exact same point - floors are just horizontal walls. If you are going to add a physical naming point that does imply a ‘physical boundary’ then great, but my suggestion is do it in a way that represents the spacial hierarchy people think about in their homes - not just pick an arbitrary point in the middle of the taxonomy.

11 Likes

Yes, I am no longer able to run the mobile app on an older Samsung Galaxy Tab S that runs Android ver. 6.0.1. The app shuts down immediately after logging in.

My situation is similar, but each floor has a slightly (7 steps) area, kind of split level if you like.

So, do I have 4 floors or 2? (As well as the garage, driveway, deck areas as large as the house, a spa on the hillside …)

1 Like

I’m not sure if I will migrate my153 yaml automations but this is getting closer.

Exactly the point. All I’m saying is that this is a complex environment to try and enforce a ‘naming’ convention on that implies some spacial relationship that code will want to rely on in the future.
Labels are a nice way of avoiding the problem and letting people create whatever hierarchies they choose, but that means labels get used as arbitrary groupings and you can never ‘infer’ anything from them - it is just whatever people wanted them to mean.
If you are going to try and create a naming convention that is going to ‘mean’ something then create a hierarchy that generally fits with most of the concepts that are out there in the big wide world already (like address’ have house, street, town, region, code - and that generally fits all cases) - property is pretty well established in ‘structure’ in law and in ‘planning’, and generally works with:

property->building->internal/external->floor->room->sub-area

You can argue that the internal/external distinction can be folded into either building or floor (so you treat house and patio as two different buildings or you treat house as having an extra patio floor) - but that’s about it.

1 Like

thx.

Is there any chance Categories could be added to devices?

Asking because not only physical devices are represented in that list /config/devices/dashboard, but also eg HACS integrations.

Aware we could add a label, but this would be a perfect spot to add a Category, and visually list the devices accordingly, without having the need to refer to them in the backend (for which purpose the labels where introduced)

That was… unbelievably simple. Thanks!

2 Likes

The Core 2024.4.1 update did not work well at all for my HA installation.

Almost all pages showed the error message “error while loading page xyz”. Since I didn’t see any clues at all as to the cause of the error and even About, System, People, Developer Tools, Dashboards, Automations & Scenes were affected, I honestly didn’t feel like trying to figure out what the exact cause of the error could be.

Fortunately, my HA is running on Proxmox and I was able to restore everything with last night’s backup.

But: I will have to do the update at some point. I would therefore be very grateful if I could get a hint as to what this extensive error could be due to?

I would be happy to provide logs or other information. However, as my HA is in productive use, I could not leave it in this miserable state. If it is necessary for troubleshooting, I will install the update again.

2 Likes

FWIW, I have used another home automation software product since 2007 and its data is stored in an object-oriented database. It uses nested areas to define spatial hierarchy where each area is assigned a “type” (it’s actually a class but that’s another discussion) from a comprehensive list of predefined types (classes).

I have the flexibility to define the hierarchy any way I want and the resulting structure is understandable (to the software) because it’s not merely based on area names (which are merely text of my choosing) but predefined area types. In other words, I can define an area whose type is floor, attic, boathouse, building, closet, bathroom, lawn, garden, etc (there are dozens of available types). The software employs the hierarchy to generate a default UI (impressive for the time it was first released in the early 2000s).

Its scripting language offers the ability to traverse the hierarchy, select areas by type, etc thereby allowing you to slice and dice it whichever way you need (and the concept of “type” is also available to each individual entity so you can be very precise about selecting what you want and where it’s located).

I had proposed the idea of nested areas with types and it garnered some interest but ultimately “floor” prevailed.

Anyway, just wanted to highlight the extent of the ideas offered in that lengthy discussion (from proponents of the nested areas concept). It’s only of historical interest now because it was ultimately rejected in favor of “floor”.

4 Likes

Yes, one of the reasons it was announced 6 month ago(7 now), So Custom:Card Devs had time to adapt to the Service-Call function, the Native-HA Weather card has worked like that for about the same time, 6 Month :wink:

1 Like

After some testing of labels:

There could be a temptation to “label” all your entities to have a possibility like “show all batteries related to a heating equipment in my south-west bathroom”.
I.e. this could be only for PRESENTATION - to show only THESE particular entities in a table.
It may cause having 100500 labels in the “filter” panel.
Next you may want to rename these labels to be ordered in a specific way (and starting questions like “WTH label_ids are not renamed after I renamed labels”).
You may want to have these labels hierarchically displayed - like “show 5 root labels, each label may have sub-labels etc”.
You may want to have persistent presets like described here - i.e. there will be no need to select a particular label out of 100500 labels, just select a “Bathroom heating batteries” preset.

For now I ended up keep using my “old style labels” which are defined in yaml and may only be used in templates to select entities, not to be used in UI in tables (except “Dev tools → State”).
“New style” labels will be added only when I really will need them to be used in UI tables for filtering; do not think there will be many of them.
As for replacing my “old style labels” by “new style” labels - will probably do it in SOME cases and only when a “yaml labels support” will be added. Why “SOME cases”, not “ALL cases” - because some labels may not be needed in UI (to avoid clutter in labels).

2 Likes

As for “categories”:
I wonder how using “categories” for automations can be a reason “Now I finally can move automations from yaml to UI”.
These are different things. People keep maintaining automations in yaml not only to have them “categorized” (i.e. storing in a file system in some order) - but for using yaml features like “include”, “anchors”, “secrets” etc; not to mention packages.
If you need to use categories for automations - just provide "id"s for them in yaml (which is needed for seeing traces also).

Btw, I have not added any categories yet.
Imho categorizing of objects should be done based on properties of these objects.
But a “category” is not a property.
“Label” is a property - but since you can add many labels to an entity - you cannot group, can only filter.

1 Like

I used the category feature for my 130 automations and 30 or so scripts.

I found that using the GUI convert method to be annoying because it actually duplicates your yaml automation, which you then have to remove by deleting or renaming the old yaml files. You end up with all the new automations with an entity names that are suffixed _2. And a lot of old automation entities that you have to delete one by one.

There is a much easier way.

Do these steps

  1. Make sure all the yaml automations have an id. It can be any string. It just have to be unique. If you had to add any to add, reload automations.

  2. Make sure that all your existing automations are defined as a list. Ie each automation starts with a “-”

  3. Make a safety copy of your existing automations.yaml file unless it is empty

  4. Copy all your yaml automations into the automations.yaml file. Just append with what is already. Do not reload automations at this time!!!

  5. Rename your old automations files to something that does not end with .yaml (or move the file to a location that HA does not include automations from)

5 Reload automations in HA

6 Go to the automations in Settings. Pick any of them and edit yaml (in the 3-dot menu in the upper right corner). Add a space somewhere and delete it again. And save. This makes HA rewrite the automations.yaml file.

7 Now you can organize all the automations like you had then in files and folders by using Category feature maybe combined with labels.

Note that all comments are deleted when you do this. But you can use the description field for each automation to put your notes. It can be multiple lines. You can edit this in the GUI. It is part of the rename automation feature. You leave the name unchanged and you can add or change the description below. In practical this is fine for those little details you know you will forget.

When you do it this way, nothing is duplicated, nothing is renamed. It all works like before except now you can edit the automations via the GUI incl editing each automation as yaml in the GUI

What held many of us from using the GUI was the horror of one long list of automations. The category feature alone has done it for me. I have around 10 categories for my 130 automations. That is plenty to organize them so I can find things quickly. I love that new feature!!

9 Likes

That’s a browser error. Have you cleared your browser cache or tried another browser?

A backup is a backup regardless how you installed Home Assistant.

If you are going to try and create a naming convention that is going to ‘mean’ something then create a hierarchy that generally fits with most of the concepts that are out there in the big wide world already (like address’ have house, street, town, region, code - and that generally fits all cases) - property is pretty well established in ‘structure’ in law and in ‘planning’, and generally works with:

property->building->internal/external->floor->room->sub-area

You can argue that the internal/external distinction can be folded into either building or floor (so you treat house and patio as two different buildings or you treat house as having an extra patio floor) - but that’s about it.

Exactly the current system has; zone - floor - area
Which in my opinion needs to be zone - area - floor - room - section
zone as is now
area = outdoor front, left, right, back, house, parking, shed ,
floor = basement, whatever level and roof
room = kitchen, living etc
section = media, dining table or whatever is in a seperate something in your room

Now I’m need to have a few outdoor floors; like parking floor, back garden floor and side garden floor. That doesn’t sound right and the same for areas in the house, that’s rooms for me.
So I will just name the sensors as before indicating the room and just label them appropriate.

The got the latest update (updated from 2024.3.3) running on a docker container. The new version seems to create a weird issue on my end where the web interface becomes completely inaccessible after a few minutes. It works initially but eventually just stops responding and becomes inaccessible. Same thing when accessing it via the Android/iOS apps.

Unfortunately I don’t see anything helpful in the logs from before that happened – just the usual warnings about hacs and integrations installed through hacs at boot:

2024-04-06 22:42:39.740 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration frigate which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2024-04-06 22:42:39.741 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration keymaster which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2024-04-06 22:42:39.741 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration hacs which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2024-04-06 22:42:40.216 WARNING (Recorder) [homeassistant.components.recorder.util] The system could not validate that the sqlite3 database at //config/home-assistant_v2.db was shutdown cleanly
2024-04-06 22:42:40.244 WARNING (Recorder) [homeassistant.components.recorder.util] Ended unfinished session (id=578 from 2024-04-06 14:16:27.835404)
2024-04-06 22:42:40.458 WARNING (MainThread) [zeroconf] Address not available when binding to ('fdd0:9fbd:bf54:0:42:c0ff:fea8:150', 5353, 0, 0), it is expected to happen on some systems
2024-04-06 22:42:43.583 WARNING (MainThread) [homeassistant.helpers.frame] Detected that custom integration 'hacs' accesses hass.components.frontend. This is deprecated and will stop working in Home Assistant 2024.9, it should be updated to import functions used from frontend directly at custom_components/hacs/frontend.py, line 68: hass.components.frontend.async_register_built_in_panel(, please create a bug report at https://github.com/hacs/integration/issue

Reverting to 2024.3.3 fixes the issue. Is there any specific place / logs I should be looking at for some clues as to what’s happening?

I have the modes configuration in a separate modbus.yaml file, this is what it looks, and it works fine with the previous version of the core:

- name: modbus_hub
  delay: 5
  timeout: 5
  type: tcp
  host: 192.168.1.152
  port: 502
  close_comm_on_error: true
  retry_on_empty: true
  retries: 3
  sensors:
    - name: Smartfox_Total_Energy_Used
      address: 40999
      unit_of_measurement: Wh
      data_type: uint64
      input_type: holding
      slave: 1
      scan_interval: 30
    - name: Smartfox_Daily_Total_Energy_Used
      address: 41011
      unit_of_measurement: Wh
      data_type: uint32
      input_type: holding
      slave: 1
      scan_interval: 15
    - name: SmartFox_Current_Energy_Use
      address: 41017
      unit_of_measurement: W
      data_type: uint32
      input_type: holding
      slave: 1
      scan_interval: 10

All error messages look like they belong to a serial connection to a modbus, but I connect via tcp.

I restored from back-up, and it works again fine.

I’m pretty sure that’s a problem with the new version of Core.