DD - Automatic area-based dashboard for desktop, tablet and mobile - V3.7.0

Woah! She’s a beaute. Can’t wait

1 Like

When is it coming?

1 Like

afaik he´s working on releasing a beta this weekend.

1 Like

Sweet. That iPad he showed is amazing man.

1 Like

This weekend! :slight_smile:

3 Likes

BIG Update time!!!

:tada: v1.3.0 - New homepage, responsive and a lot of new features

NOTE: It may contain some bugs. Please open a Issue on Github when you find something!
NOTE: v1.3.0 is only compatible with HA 0.107 or newer

Got Dwains Theme already installed?

  • Step 1: The way HACS plugins are loaded is changed its now /hacsfiles/ path, so update HACS & All Plugins you have installed! And make sure you are at least running HACS 0.22! Also if you use any custom plugins make sure you change the path of them too in dwains-theme/resources/custom_resources.yaml
  • Step 2: This version needs Swipe Card so download that in HACS. Go to HACS -> Plugins -> Search for “Swipe Card” and install it!
  • Step 3: Copy all the files from the 1.3.0 zip file over your existing files.
  • Step 4: ui-lovelace.yaml in the root of your HA setup is no longer required so remove this file.
  • Step 5: Update your HA to 0.107! This version is only compatible with Home Assistant version 0.107 or newer.
  • Step 6: Reboot your HA!! And clear your browser cache.
  • Step 7: From HA 0.107 there is a new function to make multiple dashboards. Dwains Theme will be installed as a individual dashboard so you need to access it left in the menu from now on. You also need to configure Dwains Theme as default dashboard on each device in your household. You can do this by going to Configuration -> Lovelace Dashboards -> Click on Dwains Theme and click on Set as Default on this device.

Got any problems during the update process? Join Dwains Theme Discord for personal support!

Changes:

  • Reworked the design to be responsive, works now fully on desktop, tablet and mobile!!
  • Added Dwains Theme Notifications, you can now push notifications into my theme with service call dwains_theme.notification_create they will show on the homepage header.
  • Added devices view on the homepage, now you can switch between rooms and devices direct from the homepage!
  • Added new Black and White themes, check them out! :smiley:
  • Added support for locks inside a room, use them with lock: can be single lock entity or group of locks!
  • Added support for pressure inside a room, use them with pressure: .

Complete changelog v1.3.0

1.3.0 was a lot of work! :smiley: If you want to help me you can do a small donation:

New here with Dwains Theme?

Have a feature request?
Open an issue on GitHub with the title FR or Feature Request

12 Likes

Thumbs up for a release of genious!

Here some screenshots:

2 Likes

Once again sir, you outperformed yourself. That’s look really great

1 Like

Thanks! :smiley:

1 Like

Thank you sir. Incredible work!

1 Like

I have an upgrade issue whereby all the entities are being listed on the dashboard, i.e. not using the theme.
I think it may be a HACS issue. The instructions at step 1. says the HACS path has changed to /hacsfiles/.
I had already upgraded HACS to 0.23.2, yet in my custom_components is still says /hacs/. Is the /hacsfiles/ a folder change or just a resource config change? I can’t work this out.
Reading the 0.107 release notes, I can’t find any relevant details to help.
Thanks.

1 Like

I got everything installed, fresh install not an upgrade. I wasnt using the last version. Did some of my config and when I goto the page it says unknow error reload ui. but that doesnt do anything…when I refresh my log ouput it below. I dont see anything in the inspector with errors…and Ill paste my dir structure in case thats it? I followed the instructions though, double checked all the neccasry plugins are installed and looked over the configs but cant find out whats causing it.
Thanks!


da@ha:/home/homeassistant/.homeassistant$ ls
alert.yaml          custom_components           harmony_basement_remote.conf     light_group.yaml   scenes.yaml         themes
automations.yaml    deps                        harmony_bedroom_remote.conf      ll                 scripts.yaml        tts
binary_sensor.yaml  dwains-theme                harmony_living_room_remote.conf  lovelace           secrets.yaml        www
camera.yaml         dwains-theme-lovelace.yaml  home-assistant.log               media_player.yaml  sensor.yaml
cast.sh             google_calendars.yaml       home-assistant_v2.db             packages           shell_command.yaml
configuration.yaml  groups.yaml                 input_boolean.yaml               rest_command.yaml  switch.yaml
da@ha:/home/homeassistant/.homeassistant$ 
da@ha:/home/homeassistant/.homeassistant$ 
da@ha:/home/homeassistant/.homeassistant$ 
da@ha:/home/homeassistant/.homeassistant$ ls dwains-theme
addons  configs  configs-samples  plugins  resources  translations  views
da@ha:/home/homeassistant/.homeassistant$ 
da@ha:/home/homeassistant/.homeassistant$ 
da@ha:/home/homeassistant/.homeassistant$ ls packages/
dwains-theme
da@ha:/home/homeassistant/.homeassistant$ 
da@ha:/home/homeassistant/.homeassistant$ 
da@ha:/home/homeassistant/.homeassistant$ cat dwains-theme/configs/global.yaml 
 # https://dwainscheeren.github.io/lovelace-dwains-theme/configuration/global.html
 
 # I prefer using darksky as my weather component.
 # use the weather component and not (only) the darksky sensor! Read here: https://www.home-assistant.io/integrations/weather.darksky/
 # Some people only have the DarkSky sensor and not the weather setup or visa versa.
 # Please make sure you got it right!!!!!
 # If you want to use darksky, make sure you USE THIS: https://www.home-assistant.io/integrations/weather.darksky/
 # AND USE THIS: https://www.home-assistant.io/integrations/darksky/
 # So make sure you got both installed! It's not the same!

global:
  language: en
  weather: weather.ecobee
  outside_temperature: sensor.dark_sky_temperature
  outside_humidity: sensor.dark_sky_humidity
  alarm: alarm_control_panel.ring_alarm
  inside_temperature: climate.ecobee

I also dont use api_password or anything, I actually use bypass_login so anything on a certain subnet doesnt have to authenticate.

2020-04-05 01:03:28 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection.140662377068304] Error handling message: Unknown error
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 20, 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
    self._load_config, force
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/src/homeassistant/homeassistant/components/lovelace/dashboard.py", line 204, in _load_config
    config = load_yaml(self.path)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 61, in load_yaml
    return yaml.load(conf_file, Loader=SafeLineLoader) or OrderedDict()
  File "/usr/local/lib/python3.7/site-packages/yaml/__init__.py", line 114, in load
    return loader.get_single_data()
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 43, in get_single_data
    return self.construct_document(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 47, in construct_document
    data = self.construct_object(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 92, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 195, in _ordered_dict
    nodes = loader.construct_pairs(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 147, in construct_pairs
    value = self.construct_object(value_node, deep=deep)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 92, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 186, in _include_dir_merge_list_yaml
    loaded_yaml = load_yaml(fname)
  File "/config/custom_components/dwains_theme/__init__.py", line 159, in load_yaml
    return loader.yaml.load(stream, Loader=loader.SafeLineLoader) or OrderedDict()
  File "/usr/local/lib/python3.7/site-packages/yaml/__init__.py", line 114, in load
    return loader.get_single_data()
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 43, in get_single_data
    return self.construct_document(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 47, in construct_document
    data = self.construct_object(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 92, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 226, in _construct_seq
    (obj,) = loader.construct_yaml_seq(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 400, in construct_yaml_seq
    data.extend(self.construct_sequence(node))
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 122, in construct_sequence
    for child in node.value]
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 122, in <listcomp>
    for child in node.value]
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 92, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 195, in _ordered_dict
    nodes = loader.construct_pairs(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 147, in construct_pairs
    value = self.construct_object(value_node, deep=deep)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 92, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 226, in _construct_seq
    (obj,) = loader.construct_yaml_seq(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 400, in construct_yaml_seq
    data.extend(self.construct_sequence(node))
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 122, in construct_sequence
    for child in node.value]
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 122, in <listcomp>
    for child in node.value]
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 92, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 195, in _ordered_dict
    nodes = loader.construct_pairs(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 147, in construct_pairs
    value = self.construct_object(value_node, deep=deep)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 92, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 195, in _ordered_dict
    nodes = loader.construct_pairs(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 147, in construct_pairs
    value = self.construct_object(value_node, deep=deep)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 92, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 226, in _construct_seq
    (obj,) = loader.construct_yaml_seq(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 400, in construct_yaml_seq
    data.extend(self.construct_sequence(node))
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 122, in construct_sequence
    for child in node.value]
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 122, in <listcomp>
    for child in node.value]
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 92, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 195, in _ordered_dict
    nodes = loader.construct_pairs(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 147, in construct_pairs
    value = self.construct_object(value_node, deep=deep)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 92, in construct_object
    data = constructor(self, node)
  File "/usr/src/homeassistant/homeassistant/util/yaml/loader.py", line 195, in _ordered_dict
    nodes = loader.construct_pairs(node)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 147, in construct_pairs
    value = self.construct_object(value_node, deep=deep)
  File "/usr/local/lib/python3.7/site-packages/yaml/constructor.py", line 92, in construct_object
    data = constructor(self, node)
  File "/config/custom_components/dwains_theme/__init__.py", line 179, in _include_yaml
    return loader._add_reference(load_yaml(fname, args), ldr, node)
  File "/config/custom_components/dwains_theme/__init__.py", line 145, in load_yaml
    with open(fname, encoding="utf-8") as f:
IsADirectoryError: [Errno 21] Is a directory: '/config'

Edit: 107.7…and I did make the changes to configuration.yaml

1 Like

You missed step 7, to make dwaine theme default.

1 Like

Just to add to my issue. I did make it default, the theme does change…like the colors of the page changed to the color scheme of Dwayne’s.

I just get this…(I’ve tried on different browsers, I just happen to be sending this from my phone)

1 Like

No, I’ve already done that.
The logs are also not showing anything related to HACS or themes.
I’ll keep digging, there has to be a rational answer to this.

1 Like

/hacsfiles/ is not a real folder it never exists. It’s a software path that HACS made. It reads that path in the code and serves the original file on it from the www/community folder. So you must replace it in your custom_resources.yaml if you got any.

Did you followed the installation guide correctly? Placed all files in the root folder? Also please join the discord server for support questions like this.

Hey thanks for replying. I actually just got it to work, not sure what happened…luckily I took a snapshot of the VM before I started. I just reverted back and started from scratch. It’s working now, maybe I missed something the first time I’m not sure. Sorry about that.

1 Like

No problem! :smiley: glad you got it working. You like it?

I think you should take a look at this:

It explains the new hacsfiles path in HACS. If you use any custom resources you should update the url in your custom_resources.yaml.

1 Like