2023.4: Custom template macros, and many more new entity dialogs!

I know about the blog. That is not the point. I have given my statement

Yes but you are focussed on the communication path. You ignore and do not comment on the inadequate warnings in the logs

2 Likes

Do you understand that software canā€™t tell whatā€™s using it? All it knows is that itā€™s being loaded. Thatā€™s on polymer, not Home Assistant. If it had that ability, weā€™d have better logs.

1 Like

In my opinion being deprecated one month then removed the next is not a great release pathā€¦ There are plenty of users Iā€™ve seen on these forums skipping versions

7 Likes

Ha! Just noticing the log content is stale - mostly from March. Nothing from today. What?!

Edit:
I stopped the MariaDB addon and started it again. That forced the log to clear and refresh. However, this is a little concerning. It seems to think another instance of the container is already running.

[16:08:25] INFO: Ensuring internal database upgrades are performed
[16:08:26] INFO: Ensure databases exists
[16:08:26] INFO: Create database homeassistant
[16:08:26] INFO: Ensure users exists and are updated
[16:08:26] INFO: Update user homeassistant
[16:08:26] INFO: Init/Update rights
[16:08:27] INFO: Granting all privileges to homeassistant on homeassistant
[16:08:27] ERROR: Got unexpected response from the API: There is already a MySQL service in use from core_mariadb
[16:08:27] INFO: Successfully send service information to Home Assistant.

Edit: Son of aā€¦
That last log message combined with the fact the previous log was stale led me to wonder whether the container wasnā€™t stopping when HA was restarting.
So I rebooted the entire host. Now it is working.
Thatā€™s supposed to be Windows behavior. :laughing:
Oh wellā€¦ glad it wasnā€™t something more serious!

No, I am a user. But if you developers would explain that in the first place then we wouldnā€™t be having this conversation.
I note that there are several well respected people on this blog who have said the same thing - why are we not told which integration/card is causing this in the log?
But as you have explained we all donā€™t understand.

I explained it above more than once.

2 Likes

Apparently I canā€™t reply if my comment is less than 10 characters!

+1

Most updates seem to address ā€œgeneral userā€ usability now, which is great. Itā€™s nice to configure more and more from the UI each update. But the biggest thing IMO keeping homeassistant in the hobby market is how much time and effort it takes to keep on top of updates.

Canā€™t imagine telling my mum that she needs to read the breaking changes on the home assistant blog every month if she wants to set up homeassistant for herself. I just say ā€œitā€™s a bit complicatedā€ and the conversation ends itself.

6 Likes

Is there a way to avoid this? I would like to stop using the mariadb addon, but want to keep my energy history.

It seems like a lot of these issues are happening during migration likely with too many things calling the database during migration. Iā€™m not sure if thereā€™s some sort of safe mode update command to keep home assistant services stopped during migrationā€¦?

please see: Restart delayed because: wait_for=<_GatheringFuture pending Ā· Issue #91105 Ā· home-assistant/core Ā· GitHub

1 Like

discovering many serious templates in the new Profiler setting, but also set really surprising entries there. What to think of:

2023-04-08 10:54:58.182 CRITICAL (SyncWorker_25) [homeassistant.components.profiler] RenderInfo object in memory: <RenderInfo Template<template=(mdi:label-multiple) renders=2875> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset() rate_limit=None has_time=False exception=None is_static=True>

the template is so shortā€¦ I system searched for ā€˜label-multipleā€™ and only have that mentioned as a fixed icon on a template sensorā€¦ In the core.entity_registry, I can find is as ā€˜original_iconā€™, but thatā€™s not a template either

is this a bug in the profiler, or do those icons also count as templates, simply because they are configured in a template sensor?

      - unique_id: switches_total_device_power
        name: Switches total device power
        state: >
          {{(expand('group.switches_total_device_power')
             |rejectattr('state','in',['unknown','unavailable'])
             |map(attribute='state')
             |map('float')|sum)|round(2,none)}}
        unit_of_measurement: W
        icon: mdi:label-multiple
        device_class: power
        state_class: measurement

I am reading conflicted location of where to create the custom_templates folder.
config\custom_templates or config/custom_components/custom_templates ??

config/custom_templates

Where are you reading anything else?

These get treated differently and the render path short circuits when is_static=True so they take multiple orders of magnitude less processing time. You can effectively ignore anything with is_static=True for the purposes of trying to optimize for performance.

ha, I have some with Falseā€¦

some of them are listed several times btw.

2023-04-08 10:54:59.841 CRITICAL (SyncWorker_25) [homeassistant.components.profiler] RenderInfo object in memory: <RenderInfo Template<template=({{states('sensor.calculated_bruto_verbruik')|is_number and
  states('sensor.sensors_huidig_verbruik_summed')|is_number and
  this.state|float(0) < 4000}}) **renders=83510**> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.calculated_bruto_minus_switches', 'sensor.calculated_bruto_verbruik', 'sensor.sensors_huidig_verbruik_summed'}) rate_limit=None has_time=False exception=None is_static=False>

renders=83510ā€¦ is that per minute?
all my templates show all_states=False btw, so thatā€™s a good thing?

@parautenbach:
Have a few TTS automations which are sending the same message (few sentences with some inline jinja code).
Moved the message to a file /config/custom_templates/tts_message_weather_forecast.jinja and
tried to replace the automation message with {% include 'tts_message_weather_forecast.jinja' %} but receiving an error ā€œTemplate not foundā€.
Is it possible to use the new templating feature for definition of dynamic strings for messages?

Even if they are the same every one of them will be rendered every time since they donā€™t know about each other. So if you have 1000 templates doing the exact same thing you still have to pay for 1000 renders whenever something changes in the template.

Thats total renders since startup

Unfortunately youā€™re being given misinformation, in 99% of cases this is actually false. Even more so with this situation as Home Assistant is Proxying the Polymer calls to give the warning. Considering theyā€™re hooking in Polymer, they can actually get more information on the calling card etc. Why they chose to omit this is at their discretion (granted it is more lines of code and work).

If you want a hint on the culprit card, you can open the dev console in your browser and turn on warning logs. Next you can view the stack trace which will list the calls and files leading to the message. The file should help determine which card or module is still using Polymer.

This could be shown in the Home Assistant logs if they chose to include the stack track in the write_log event but again, thatā€™s up to the Home Assistant devā€™s.

1 Like