2023.9: New climate entity dialogs, lots of tile features, and template sensors from the UI!

Don’t forget you shouldn’t need to often anyway:
image
image

Is there a way that I can upgrade but keep the old Envoy integration? I’m stuck at firmware 3.1.7 and there does not seem to be a way to upgrade it to any 5.x or higher version. I don’t feel like replacing the whole unit just for this.

Yes, you can download the old source and make your own custom component. I have done the same with the bayesian sensor that changed dramatically much a while back.

Looks like Modbus is broken again :frowning:

3 Likes

Thanks for the suggestion. I’ll look into it. I’ve downloaded the source, but it seems that it’s going to be quite some work to get it compiled and everything. And then figure out how to turn it into a custom component. Gonna be one of those long-term projects I guess.

Promising Release, Thanks Guys!
Like always, i’ll wait a couple of Days, then test it on another Machine, then move over to the Mains (Lession learned) :wink:

To be honest i favor the Development towards more GUI :+1: The more it can be used without ‘Programming-Knowledge’, the more open it is for everybody. e.g. my Wife wouldn’t be able to set up HA atm. Maybe she will in the Future, at least with the Basics :wink:

Regarding the Weather Forecast Service I am not sure if understood correctly what changed/will change with the Forecast-Attributes - can somebody please confirm if i got it right (or correct me)?

  • Dedicated Weather Cards need to get updated by their Authors, to activly pull the desired Forecast from a given Weather Entity whenever they get displayed

  • From 2024.03 on, if i want to make use of a particular Forecast aside a dedicated Weather Card:

    • either I need to pull the Data in an Automation/Script first, and work with the Respond-Variable. In this Case, i no longer can’t directly trigger “When Tomorrows Chance of Rain is higher than 70%”, but have to set up a Time Based Trigger (or whatever), and then check for the Respond-Variable.
    • Alternativly i could set up a Template in configuration.yaml, define the Time/Interval to fetch the desired Data, and use the Templates’ Output-Entity wherever i like to.

Correct?

So, i have set up some custom:button-card where i display a lot of Forecasts (and conditionally juggle between different weather Providers) - basically a custom Weather Card.
In this Case i would have to build a Template for every desired Forecast Value, and then use that in my Cards, right?

Just copy the folder for the Component you want from Core (the old version) and place in config/custom_components, reboot and you should be all good

After upgrading I noticed that supervisor is really slow on starting on my Odroid N2+. Does anyone else here have that?

Yes you understand correctly.

1 Like

You also need to create a manifest. Core cards do not have this. Custom cards require it.

EDIT: You have to create a version number in the manifest.

1 Like

I tried to install the 2023.9.0 update (using HAOS Intel PC) but it did not work. It didn’t restart or make any changes. I tried again, same thing. Then I restarted HA and now I get error in Supervisor “failed to set up”. I restored fullback but still the same problem, restored another full backup from last night and still the same. The system was working fine and HA restarted without issues yesterday. So what now? How can I fix this?

Supervisor debug log shows this:

2023-09-07 10:37:23.285 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration ssh_command 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
2023-09-07 10:37:23.285 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration browser_mod 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
2023-09-07 10:37:23.286 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration smartir 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
2023-09-07 10:37:23.286 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration nodered 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
2023-09-07 10:38:23.735 WARNING (MainThread) [homeassistant.bootstrap] Waiting on integrations to complete setup: hassio
2023-09-07 10:39:23.801 WARNING (MainThread) [homeassistant.bootstrap] Waiting on integrations to complete setup: hassio
2023-09-07 10:39:24.078 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry Supervisor for hassio
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 388, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/hassio/__init__.py", line 651, in async_setup_entry
    await coordinator.async_config_entry_first_refresh()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 251, in async_config_entry_first_refresh
    await self._async_refresh(
  File "/usr/src/homeassistant/homeassistant/components/hassio/__init__.py", line 959, in _async_refresh
    await self.hassio.refresh_updates()
  File "/usr/src/homeassistant/homeassistant/components/hassio/handler.py", line 36, in _wrapper
    data = await funct(*argv, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/hassio/handler.py", line 534, in send_command
    request = await self.websession.request(
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 560, in _request
    await resp.start(conn)
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client_reqrep.py", line 899, in start
    message, payload = await protocol.read()  # type: ignore[union-attr]
                       ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/streams.py", line 616, in read
    await self._waiter
asyncio.exceptions.CancelledError: Global task timeout
2023-09-07 10:39:24.085 WARNING (MainThread) [homeassistant.bootstrap] Setup timed out for stage 1 - moving forward

Cheers…every day a school day :sunglasses:

Actually I remembered incorrectly, you need to add a version number to the manifest file, see: No 'version' key in the manifest file for custom integration 'environment_canada - #7 by tom_l

1 Like

just to decide whether this is a bug or not:

As Buienradar integration only supports a daily forecast, shouldnt the options for Hourly and twice daily be hidden?

Currently it returns the red error, would be nice if these simply wouldn’t be presented.

btw, note the Dagelijks (daily) is translated, and the other 2 aren’t. Might be an indication already for their availability?

Preview - may be done by Dev tools - Templates in most cases (exceptions - using secrets and anchors, using “this” variable - but it may be easily sorted out).
And you do not need to restart - just reload templates.

Can you use yaml anchors in UI for repeating code? No.
Can you use secrets? Not sure.
Can you keep a set of 10 sensors in a package along with helpers and automations and easily exclude it from HA ? No.
So, - this is not as advanced as yaml.

1 Like

Can anybody confirm that File editor add-on is broken? I get an “500 Internal Server Error” inside UI and a bunch of exceptions in the supervisor log:

23-09-07 10:17:49 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/aiohttp/web_protocol.py", line 433, in _handle_request
    resp = await request_handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/aiohttp.py", line 139, in sentry_app_handle
    reraise(*_capture_exception(hub))
  File "/usr/local/lib/python3.11/site-packages/sentry_sdk/_compat.py", line 60, in reraise
    raise value
  File "/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/aiohttp.py", line 129, in sentry_app_handle
    response = await old_handle(self, request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/web_app.py", line 504, in _handle
    resp = await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/web_middlewares.py", line 117, in impl
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/supervisor/supervisor/api/middleware/security.py", line 185, in block_bad_requests
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/supervisor/supervisor/api/middleware/security.py", line 201, in system_validation
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/supervisor/supervisor/api/middleware/security.py", line 220, in token_validation
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/supervisor/supervisor/api/middleware/security.py", line 280, in core_proxy
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/supervisor/supervisor/api/ingress.py", line 141, in handler
    return await self._handle_request(request, addon, path, session_data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/supervisor/supervisor/api/ingress.py", line 217, in _handle_request
    async with self.sys_websession.request(
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 1141, in __aenter__
    self._resp = await self._coro
                 ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 558, in _request
    resp = await req.send(conn)
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client_reqrep.py", line 670, in send
    await writer.write_headers(status_line, self.headers)
  File "/usr/local/lib/python3.11/site-packages/aiohttp/http_writer.py", line 129, in write_headers
    buf = _serialize_headers(status_line, headers)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "aiohttp/_http_writer.pyx", line 132, in aiohttp._http_writer._serialize_headers
    _safe_header(to_str(val))
  File "aiohttp/_http_writer.pyx", line 109, in aiohttp._http_writer.to_str
    raise TypeError("Cannot serialize non-str key {!r}".format(s))
TypeError: Cannot serialize non-str key None

Templates cannot be created without programming. Maybe in future UI you will have possibilities for operations like “calc a sum for a list of entities” (like it is available for groups).
Ofc, a trend to “simplify” should not cause “remove a functionality “.

3 Likes

I just went and tried and yes I can now change the source entity via the GUI. My mind might be going but I am sure that when I set up some utility meters a few months ago - and then changed the naming conventions on source sensors, I had to dig into the core.config file.

I have learned something new today! Thank you.

Agree. Had to go back to previous version. Seems like modbus terminates after a few minutes.

It is python, no compiling needed.