Skip to content

Instantly share code, notes, and snippets.

@EverythingSmartHome
Created April 6, 2022 13:13
Show Gist options
  • Save EverythingSmartHome/814bc87e83dcff1c06fffa3095b95b3f to your computer and use it in GitHub Desktop.
Save EverythingSmartHome/814bc87e83dcff1c06fffa3095b95b3f to your computer and use it in GitHub Desktop.
Home Assistant Mushroom card templates
#Showing the state of a temperature in a template card:
{{ states('sensor.your_temperature_sensor') }}
#Change the colour of the light depending on status:
{% if is_state('light.your_light', 'on') %}
orange
{% endif %}
#Welcome template:
{% set time = now().hour %}
{% if (time >= 18) %}
Good Evening, {{user}}!
{% elif (time >= 12) %}
Good Afternoon, {{user}}!
{% elif (time >= 5) %}
Good Morning, {{user}}!
{% else %}
Hello, {{user}}!
{% endif %}
@Mr-HaleYa
Copy link

@stoniwankenobii I updated the code so it should work correctly now. don't know if you noticed but it only ever showed Monday as the day

@tomque93
Copy link

EDIT: figured it out.
hue groups show up as lights, so I had to rejectattr('attributes.is_hue_group', 'true') and that fixed the issue.
and turning the lights off was just a quick google away.
thanks anyways.

Hi guys,
ihm really new into HA...
Can you please tell me, how to integrate this piece of code "rejectattr('attributes.is_hue_group', 'true')" into the whole code for the light count?
I have the same issue, that every light is double displayed....

Maybe you can paste it into the code, that I can understand how to do this, for the next time :-)

Thanks!!

@stoniwankenobii
Copy link

{% set time = now().weekday() %}
{% if (time == 0) %}
Today is Monday, {{ now().date()}}
{% elif (time == 1) %}
Today is Tuesday, {{ now().date()}}
{% elif (time == 2) %}
Today is Wednesday, {{ now().date()}}
{% elif (time == 3) %}
Today is Thursday, {{ now().date()}}
{% elif (time == 4) %}
Today is Friday, {{ now().date()}}
{% elif (time == 5) %}
Today is Saturday, {{ now().date()}}
{% elif (time == 6) %}
Today is Sunday, {{ now().date()}}
{% else %}
Today is fudged....
{% endif %}

I finally added it in to my new dashboard. Thanks for sticking with it.

@Doughboy68
Copy link

Here are some templates for setting room icon color for multiple lights:

{% if is_state('light.kitchen_ceiling','on') or is_state('light.kitchen_counter','on') or is_state('light.kitchen_table','on') %} orange {% endif %}

For Garage Door Room Icon to indicate garage door state:
{% if is_state ('cover.garage_door', 'open') %} {%set icon='mdi:garage-open'%} {%elif is_state ('cover.garage_door','closed') %} {%set icon='mdi:garage'%} {%endif%} {{icon}}
Another example of Icon Color:
{% if is_state('switch.garage_light','on') %} orange {% endif %}

It may be better in some cases to use a grid card so can move around easier.
I like putting lights that have RGB control in one horizontal stack so the slider has more room on a mobile device.

@Morcegolas
Copy link

Morcegolas commented Jun 26, 2023

How did you do the light count near the beginning of the main card setup?

How did you do the light count near the beginning of the main card setup?

Try this {% set domain = 'light' %} {% set lightsOnCount = states[domain] | selectattr( 'state', 'eq', 'on') | list | count %} {{lightsOnCount}}
You can do this with any kind of domain, media_player, cameras and so on.

And use it like this:


 - type: template
    double_tap_action:
      action: none
    icon: mdi:lightbulb
    content: >-
      {% set domain = 'light' %}
      {% set count = states[domain] | selectattr( 'state', 'eq', 'on') | list |
      count %}
      {{count}} lights on
    icon_color: >-
      {% set domain = 'light' %}
      {% set count = states[domain] | selectattr( 'state', 'eq', 'on') | list |
      count %}
      {% if count > 0 %}
      orange
      {%endif%}
    tap_action:
      action: navigate
      navigation_path: lights
    hold_action:
      action: none

I made this, but I want to make that clickable, when I click it, it turns all the lights off, how can I do that?
Thanks

EDIT: I found a solution for this, created a Script and then I set the script as an action for this.

service: light.turn_off
data: {}
target:
  entity_id: all

@Mr-HaleYa
Copy link

@Morcegolas
It'd be better to create a group of lights in the helpers section and turn that group off.
I have some lights that I don't want to show or turn off when I hold the button, like my underglow, backlighting, deck lights, etc.
You can also use the group properties to set the icon color and count how many lights are on.

type: custom:mushroom-template-card
primary: Lights
secondary: >-
  {% set count =
  states|selectattr('entity_id','in',state_attr('light.all_people_lights','entity_id'))|selectattr('state','eq','on')|list|count
  %} {{count}} lights on
icon: mdi:lightbulb
icon_color: >-
  {% set count =
  states|selectattr('entity_id','in',state_attr('light.all_people_lights','entity_id'))|selectattr('state','eq','on')|list|count
  %} {% if count > 0 %} orange {%endif%}
tap_action:
  action: navigate
  navigation_path: /dashboard-mushroom/lights
layout: vertical
hold_action:
  action: call-service
  service: light.turn_off
  data: {}
  target:
    entity_id: light.all_people_lights

image

also set it to a hold action, not a tap action, using a tap action is one miss-tap away from putting everyone in the dark.

@Morcegolas
Copy link

Thanks, I didn't even know where I could create groups ;)

@ilyassw
Copy link

ilyassw commented Jul 1, 2023

Hi guys , i came strait forward from Youtube page and i am a bit confused on setting the count . I have followed every step but when i switch the light on for a room is automatically count 2 lights ! meanwhile i have only one light in that room ! the same light inside the room been used in both Horizontal Stack configuration , how do you go about sorting this out ? I have one main light . Thanks

@dos1973
Copy link

dos1973 commented Dec 4, 2023

How would I go about adding the date after each day of my subtitle addition to the Welcome Screen template. I am not sure how to get that added in.

I added this in the secondary information field since I am always forgetting the date 😅

{% set time = now().weekday() %}
{% if (time == 0) %}
Today is Monday, {{ now().date()}}
{% elif (time == 1) %}
Today is Tuesday, {{ now().date()}}
{% elif (time == 2) %}
Today is Wednesday, {{ now().date()}}
{% elif (time == 3) %}
Today is Thursday, {{ now().date()}}
{% elif (time == 4) %}
Today is Friday, {{ now().date()}}
{% elif (time == 5) %}
Today is Saturday, {{ now().date()}}
{% elif (time == 6) %}
Today is Sunday, {{ now().date()}}
{% else %}
Today is fudged....
{% endif %}

image

hi guys, i added this and it works fine, but shows me the english format of Date
Bildschirmfoto 2023-12-04 um 01 19 54

i would need the Format 12.04.2023.
would be nice if someone have an hint for. Just 2 days with HA.

@jaymartinez723
Copy link

How do we get that chip where it shows what lights are on?

@ma-si
Copy link

ma-si commented Feb 11, 2024

How would I go about adding the date after each day of my subtitle addition to the Welcome Screen template. I am not sure how to get that added in.

I added this in the secondary information field since I am always forgetting the date 😅

{% set time = now().weekday() %}
{% if (time >= 0) %}
Today is Monday, {{ now().date()}}
{% elif (time >= 1) %}
Today is Tuesday, {{ now().date()}}
{% elif (time >= 2) %}
Today is Wednesday, {{ now().date()}}
{% elif (time >= 3) %}
Today is Thursday, {{ now().date()}}
{% elif (time >= 4) %}
Today is Friday, {{ now().date()}}
{% elif (time >= 5) %}
Today is Saturday, {{ now().date()}}
{% elif (time >= 6) %}
Today is Sunday, {{ now().date()}}
{% else %}
Today is fudged....
{% endif %}

image

THANK YOU SO MUCH!

now() is python date object so you can use formatting.

{% set current_datetime = now() -%}
Today is {{ current_datetime.strftime("%A") }}, {{ current_datetime.date()}}

@stoniwankenobii this way will be easier ;)

@dos1973 you can use formatting

now().strftime("%d.%m.%Y")

@stoniwankenobii
Copy link

YOU'RE A WIZARD HARRY

@yellowdre
Copy link

can someone please give detail instruction how to creat the light counter card

@TrialMaster
Copy link

What is required to have the dashboard format correctly on a tablet or desktop?

@Octavian1973
Copy link

Hello everybody!

I added this in the secondary information field since I am always forgetting the date 😉

{% set time = now().weekday() %}
{% if (time == 0) %}
Today is Monday, {{ now().strftime("%d.%m.%Y")}}
{% elif (time == 1) %}
Today is Tuesday, {{ now().strftime("%d.%m.%Y")}}
{% elif (time == 2) %}
Today is Wednesday, {{ now().strftime("%d.%m.%Y")}}
{% elif (time == 3) %}
Today is Thursday, {{ now().strftime("%d.%m.%Y")}}
{% elif (time == 4) %}
Today is Friday, {{ now().strftime("%d.%m.%Y")}}
{% elif (time == 5) %}
Today is Saturday, {{ now().strftime("%d.%m.%Y")}}
{% elif (time == 6) %}
Today is Sunday, {{ now().strftime("%d.%m.%Y")}}
{% else %}
Today is the lucky day...
{% endif %}

000

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment