Homekit Infused 5 (HKI) v2023.1.3

Could you share a screenshot of that theme maybe?

Sorry, a screenshot of what part exactly? Iā€™ve been testing this feature with HKI Custom Dark out of the box, I didnā€™t want to bring more variables into the picture.

Np, so, you are saying that every time you restart it resets the theme to default?

That might be the case if you do not set this:
image

as it will reload the theme set there at the start. So if you donā€™t have the custom dark theme selected here but the default skin it will always revert to that on startup (not sure if this is actually what you mean though).

No, at this point restarts are happening with the proper theme. I did have to enable the setting you showed above on my Android phone after logging into the same account, however.

Well, if you still have the automation you mentioned earlier then this could be a reason for that.

Youā€™d be correct, but the automation was deleted, and itā€™s being reproduced on two different HA systems.

This is an image of my friendā€™s settings, heā€™s trying to automatically use the Light custom theme, and he has to manually enable the setting on his device. Now this seems to be exactly what that note is saying, but he also has themes set to backend-selected on that device, see below:

If this is working as intended, please disregard. Itā€™s not a big issue, just a little extra work for us when deploying on new devices. The important thing was the correct theme being set on reboot, which was the major pain point.

Actually, the screenshot doesnā€™t show what theme he has set. The theme shown in the screenshot only works if the ā€œactualā€ HA theme is set first.

It is the very first card of the theme settings page, but it is minimized.

The yellow arrow sets the theme, the red arrow selects which custom theme to edit. HKI comes with two customizable themes, but they must be set as the main theme first. By default it will use the HKI default theme.

Default settings shown below.

When this is set to default, the settings past the yellow arrow wont work.

Yes, Iā€™m sorry if Iā€™m not being clear. Thatā€™s exactly the setting that I was asking it about: Does that have to be set for every new device? That seems to be the case, from what I can tell.

Well no, the first setting (yellow arrow) needs to be set once globally.

The red arrow does nothing, it only chooses which theme you want to edit. Changing that setting does nothing but change some cards on the settings page. It will also automatically choose light and dark based on sunset. But then again, that has nothing to do with the set theme. Only the settings from the yellow arrow will change the theme.

Yes, Iā€™m talking about the settings that the yellow arrow points towards. You say they need to be set once globally, but that doesnā€™t seem to be the case, because Iā€™m having to enable that specific setting on new devices.

That is virtually impossible thoughā€¦ I think it is really odd. Which is even weirder is that that specific setting has been there since HKI 1.0 and that is years ago. I have never heard anyone saying something like this before so I really wonder what causes this for you.

Was it a clean install? Did you install other cards besides the ones required? Do you have other dashboards installed (e.g. minimalist ui or dwains dashboard?)

Sorry for all the questions, but if it happens on 1 computer you might say it is a coincidence, on multiple computers it is a pattern so I will try to do a clean install later today and see what that does.

Hello, does anybody here have experience creating more complex layouts with the layout-card addon? Iā€™m trying to get things to appear using the custom:layout-card type, which is supposed to let you get cards within cards, but I canā€™t seem to figure out exactly where to slot it in in the YAML. The layout-card documentation shows UI elements being added with the

cards

option, but HKI seems to prefer the

addons

option. Would both of these work?

This is what I have currently:

  myview:
    title: greeting
    show_in_navbar: true
    show_in_menu: false
    icon: mdi:fan-chevron-down
    layout:
      layout_type: custom:grid-layout
      layout:
        grid-template-columns: 33% 33% 33%
        grid-template-areas: |
          "left center right"
    addons:
      layout-card:
        type: custom:layout-card
        view_layout:
          grid-area: center

I havenā€™t tested it with other dashboards but Dwains Dashboard. The latter has a specific function he wrote so that these two dashboards could function together (prior to HKI 3 this was not possible). I dont think that other devs would really care to recreate such functionality. Though mushroom cards shouldnā€™t affect anything as those are just cards and can be used with HKI without a problem.

Minimalist UI however, I donā€™t think it is possible to run HKI and this simultaneously (at least if, from what Iā€™ve heard, it is any similar to Dwains Dashboard then it wonā€™t work out of the box.

Crazy problem here:
When I try to add the alarm control panel popup. Like in your demo configuration

        buttons:
          - icon: "mdi:shield-lock-open"
            value: "disarmed"
            name: "Disarmed"
            color: "#FFF"
            icon_color: "rgb(50,205,50)"
            service: alarm_control_panel.alarm_disarm
            service_data:
              entity_id: alarm_control_panel.home_alarm
              code: !secret alarm_code

The Dashboard will have an error and not render anymore.
I could isolate the issue to the Alarm Code. When I try to set the code via secret variable it didnā€™t work,
When add the code directly, everything works well.

After installing the stable HA 2022.7 version this also occurs for me now, they might have changed something there. I should probably go and read the change notes XD.

Please show the error that is shown in the logs, I am guessing that you have skipped the secrets.yaml part of the installation.

I have a secrets.yaml with this variable placed on config root.

looks like

Alarm_code: 1234
alarm_code: 1234
Logger: homeassistant.components.websocket_api.http.connection
Source: util/yaml/loader.py:244
Integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 13:54:12 (1 occurrences)
Last logged: 13:54:12

[139696642934912] Error handling message: Unknown error (unknown_error)
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 27, in _handle_async_response
    await func(hass, connection, msg)
  File "/usr/src/homeassistant/homeassistant/components/lovelace/websocket.py", line 30, in send_with_error_handling
    result = await func(hass, connection, msg, config)
  File "/usr/src/homeassistant/homeassistant/components/lovelace/websocket.py", line 72, in websocket_lovelace_config
    return await config.async_load(msg["force"])
  File "/usr/src/homeassistant/homeassistant/components/lovelace/dashboard.py", line 186, in async_load
    is_updated, config = await self.hass.async_add_executor_job(
  File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/src/homeassistant/homeassistant/components/lovelace/dashboard.py", line 205, in _load_config
    config = load_yaml(self.path, Secrets(Path(self.hass.config.config_dir)))
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 155, in load_yaml
    return parse_yaml(conf_file, secrets)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 168, in parse_yaml
    return _parse_yaml(SafeLoader, content, secrets)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 198, in _parse_yaml
    yaml.load(content, Loader=lambda stream: loader(stream, secrets))
  File "/usr/local/lib/python3.10/site-packages/yaml/__init__.py", line 81, in load
    return loader.get_single_data()
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 51, in get_single_data
    return self.construct_document(node)
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 55, in construct_document
    data = self.construct_object(node)
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 100, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 325, in _ordered_dict
    nodes = loader.construct_pairs(node)
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 155, in construct_pairs
    value = self.construct_object(value_node, deep=deep)
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 100, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 246, in _include_yaml
    return _add_reference(load_yaml(fname, loader.secrets), loader, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 155, in load_yaml
    return parse_yaml(conf_file, secrets)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 168, in parse_yaml
    return _parse_yaml(SafeLoader, content, secrets)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 198, in _parse_yaml
    yaml.load(content, Loader=lambda stream: loader(stream, secrets))
  File "/usr/local/lib/python3.10/site-packages/yaml/__init__.py", line 81, in load
    return loader.get_single_data()
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 51, in get_single_data
    return self.construct_document(node)
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 55, in construct_document
    data = self.construct_object(node)
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 100, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 325, in _ordered_dict
    nodes = loader.construct_pairs(node)
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 155, in construct_pairs
    value = self.construct_object(value_node, deep=deep)
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 100, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 325, in _ordered_dict
    nodes = loader.construct_pairs(node)
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 155, in construct_pairs
    value = self.construct_object(value_node, deep=deep)
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 100, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 325, in _ordered_dict
    nodes = loader.construct_pairs(node)
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 155, in construct_pairs
    value = self.construct_object(value_node, deep=deep)
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 100, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 356, in _construct_seq
    (obj,) = loader.construct_yaml_seq(node)
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 408, in construct_yaml_seq
    data.extend(self.construct_sequence(node))
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 129, in construct_sequence
    return [self.construct_object(child, deep=deep)
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 129, in <listcomp>
    return [self.construct_object(child, deep=deep)
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 100, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 325, in _ordered_dict
    nodes = loader.construct_pairs(node)
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 155, in construct_pairs
    value = self.construct_object(value_node, deep=deep)
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 100, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 246, in _include_yaml
    return _add_reference(load_yaml(fname, loader.secrets), loader, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 155, in load_yaml
    return parse_yaml(conf_file, secrets)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 168, in parse_yaml
    return _parse_yaml(SafeLoader, content, secrets)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 198, in _parse_yaml
    yaml.load(content, Loader=lambda stream: loader(stream, secrets))
  File "/usr/local/lib/python3.10/site-packages/yaml/__init__.py", line 81, in load
    return loader.get_single_data()
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 51, in get_single_data
    return self.construct_document(node)
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 55, in construct_document
    data = self.construct_object(node)
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 100, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 356, in _construct_seq
    (obj,) = loader.construct_yaml_seq(node)
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 408, in construct_yaml_seq
    data.extend(self.construct_sequence(node))
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 129, in construct_sequence
    return [self.construct_object(child, deep=deep)
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 129, in <listcomp>
    return [self.construct_object(child, deep=deep)
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 100, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 325, in _ordered_dict
    nodes = loader.construct_pairs(node)
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 155, in construct_pairs
    value = self.construct_object(value_node, deep=deep)
  File "/usr/local/lib/python3.10/site-packages/yaml/constructor.py", line 100, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 244, in _include_yaml
    fname = os.path.join(os.path.dirname(loader.get_name()), node.value)
  File "/usr/local/lib/python3.10/posixpath.py", line 90, in join
    genericpath._check_arg_types('join', a, *p)
  File "/usr/local/lib/python3.10/genericpath.py", line 152, in _check_arg_types
    raise TypeError(f'{funcname}() argument must be str, bytes, or '
TypeError: join() argument must be str, bytes, or os.PathLike object, not 'list'

hey thanks for all your hard work on this, its great and getting to grips with it,

a few questions though

1 this


(ignore I missed out typo on thermostats title)

but I want to stack stuff like this (custom:vertical stack) but still use 3 collumns on the page, tried a few things and failed.

another thing is can I use states to customise icons show (that are not home assistant default) obviously not for lights, but for things like blinds and windows etc.

To the first question, be a bit clearer on what you want.
The second question is yes, you can use different icons per state.

thanks for the reply bud, the first one is basically is there a way to say have the sensors display next to the thermostats in a row I have adjusted to show what I mean

image
is there a way to make these just go in a row, or is it not possible (so say a mixture of thermostats, sensors, go in a row of 3, so thermostat, thermostat, sensor then on the next row sensor sensor button ect

worked the second part out now its ok

              icon: phu:ikea-blind-closed
              state:
                - value: open
                  icon: phu:ikea-blind-open

hope you can make a tilt option, I failed to show anything but undfined on any card even in my own theme before for the venician lolā€¦ even the cover pop up on it does not allow udjustment :stuck_out_tongue: