Lovelace: Simple thermostat card

ah… there you go. Theres no attributes for fan_modes.
Looks like its a integration problem with Tuya… will look into other solutions, thanks! :slight_smile:

How to Override the name of the States
before update (homeassistant 2023.3.6)


after update homeassistant to 2023.5.4

Can anyone tell how to Override the name of the different states to another text.

Can anyone tell me why these have recently become lowercase? It wasn’t always like this and I can’t work out how/if I can rename them manually.
Thanks.

    entity: your.entity.here
    control:
      hvac:
        'off':
          name: Off
        heat:
         name: Heat
        cool:
         name: Cool     
        fan_only:
         name: Fan Only

should do it.

Thank you!

I had hvac: true, so it was not working with the name overrides. Not sure what it was doing anyway, but I removed “true” and its working. :slight_smile:

 control:
      hvac: true

I had the same idea. Any response to your request?

hello, i just started with HA. I have a homey and I have paired it with HA. All works perfectly. But of course I want to change things. I have 2 air conditioning units. when i open the layout i can change the fan speed and change swing mode. Can this also be added to the ‘’ home card ‘’ that I don’t have to open the layout with the 3 dots. If so ? would someone mind explaining where i should do this? i am new to this and need to look up a lot how to change all this etc any help is very welcome


I don’t remember if I did, but that is the way it works now. Blue when cooling, red when heating.

I never thought about grouping the thermostat controls to a graph, but it’s beautiful and I love it. Here’s mine:

image

type: custom:vertical-stack-in-card
cards:
  - type: custom:mushroom-climate-card
    entity: climate.the_hive
    fill_container: false
    icon: mdi:bee
    show_temperature_control: true
    collapsible_controls: false
    layout: horizontal
  - type: custom:mini-graph-card
    entities:
      - entity: sensor.house_temp
      - entity: binary_sensor.hvac_heating_on
        color: red
        show_line: false
        show_points: false
        show_legend: false
        y_axis: secondary
        smoothing: false
      - entity: binary_sensor.hvac_ac_on
        color: blue
        show_line: false
        show_points: false
        show_legend: false
        y_axis: secondary
        smoothing: false
    state_map:
      - value: 'off'
        # label: Heating Off # Removed once I added A/C tracking, not sure how to make that work or if it even adds any value
      - value: 'on'
        # label: Heating On
    show:
      name: false
      state: false
      icon: false
    animate: true
    hour24: true
    hours_to_show: 12
    line_width: 2
    points_per_hour: 60
    smooth: true

And the necessary bits for the configuration.yaml to track the EcoBee’s HVAC status:

- platform: template
  sensors:
    hvac_heating_on:
      friendly_name: Heater On
      value_template: >-
        {{ is_state_attr('climate.the_hive', 'equipment_running', 'auxHeat1,fan') }}
    hvac_ac_on:
      friendly_name: AC On
      value_template: >-
        {{ is_state_attr('climate.the_hive', 'equipment_running', 'compCool1,fan') }}

Hi everyone,
I’m trying to customize my simple-thermostat cards.
I am facing two issues:

  1. Replace the sensor that reports the current temperature with another sensor external to the AC
  2. Rename the labels of the HVAC modes (e.g., heat_cool —> Heat/cool

Many thanks to those who can help out!

Hello,

is there any way to split the swing mode to 2 lines?
If yes, how do I have to do it?

So 1 line :

Swing Modes : Vertical

2 line :

Swing Modes : Horizontal

There are too many options in Swing Modes for my air conditioner.
There it looks over the map.

Thanks in advance.

Greeting Mirko

Is there someone that can help me to add a selector similar to the Mode selector of the @gerard33 post? I’d like to assign it an input_select, What’s the correct code to use? Thanks

Hi All,

I’m trying to integrate this thermostat card in a mushroom horizontal stack. For use on my mobile.
I’m unable to change the style though. What am I doing wrong? I want to apply it only to this mushroom dashboard. It’s too big (temp + controls). Want a smaller version, with smaller fonts etc.

I had gotten my setup the way I wanted and then I decided to tweak a little bit. The last bit I am struggling with is changing the icon for one of my hvac controls based on the preset. I created a sensor based on the preset_mode attribute of my ecobee. I want there to be an airplane when the that sensor returns a state of ‘vacation’ and a different icon otherwise.

I have checked the states and they are returning what I expect. I even checked the jinja code I am using in the developers tools template tab and it returns what I expect. As you can see below, I have no icon shown on the second button of the first row where it should be. Here is my code.

type: custom:simple-thermostat
entity: climate.living_ecobee_app
header: false
sensors:
  - entity: sensor.living_window
    name: Living
  - entity: sensor.bedroom_window
    name: Bedroom
  - entity: sensor.neenie_window
    name: Neenie
hide:
  temperature: true
  state: true
step_size: 1
decimals: 0
control:
  hvac:
    'off':
      name: false
      icon: mdi:power
    heat: false
    cool: false
    heat_cool:
      name: false
      icon: >
        {%- set sensor = states('sensor.living_ecobee_app_preset_mode') %}
        {%- if sensor == 'vacation' %}mdi:airplane
        {%- else %}mdi:thermostat-auto
        {%- endif %}
  preset:
    _hide_when_off: true
    Home:
      name: false
      icon: mdi:home
    Girls:
      name: false
      icon: mdi:human-female-female
    Sleep:
      name: false
      icon: mdi:sleep
    Away:
      name: false
      icon: mdi:home-export-outline
layout:
  mode:
    icons: true
    headings: false
fallback: 'Off'
style: |
  ha-card { 
    --ha-card-background: {{ 'rgba(255, 255, 255, 0.85)' if is_state('climate.living_ecobee_app', 'heat_cool') else 'rgba(115, 115, 115, 0.25)' }};
    --primary-text-color: {{ 'rgb(0,0,0)' if is_state('climate.living_ecobee_app', 'heat_cool') else '#97989c' }};
    --st-mode-active-background: rgba(255, 255, 255, 0.85);
    --st-mode-active-color:
      {%- set sensor = states('sensor.living_ecobee_app_hvac_action') %}
      {%- if sensor == 'cooling' %}rgb(49,130,183)
      {%- elif sensor == 'heating' %}rgb(255,0,0)
      {%- else %}rgb(0,0,0)
      {%- endif %};
    --st-mode-background: rgba(115, 115, 115, 0.25);
    --st-font-size-sensors: 14px;
    --st-spacing: 2px;
    border-radius: 10px;
    border: none;
  }

Here is an image of what I am seeing.

Any help would be greatly appreciated.

Good morning, I’m trying to install the integration via HACS. When I insert the url /hacsfiles/simple-thermostat/simple-thermostat.js and the type module and press okay, it stays on loading without going on. Already tried to restart home assistant, what can I do?Home-Assistant-HACS-–-Home-Assistant-2023-07-28-12-11-52

Hi, can anyone tell me why I’m not able to change the colors of the low, medium, high, intel boxes in the fan section? what am I missing

Screenshot 2023-08-04 191222

type: vertical-stack
cards:
  - type: custom:simple-thermostat
    entity: climate.panasonic_ducted_system
    sensors:
      - attribute: temperature
        name: Target Setpiont
        unit: °C
        decimal: 1
      - attribute: current_temperature
        name: Control Sensor
        unit: °C
        decimal: 1
      - entity: binary_sensor.panasonic_ducted_system_homeac_bypass
        name: Bypass Damper Status
    header:
      name: Panasonic Ducted System
      icon: false
    hide:
      state: true
      temperature: true
    setpoints:
      temperature:
        hide: true
    control:
      hvac:
        _name: Test
        'off':
          include: true
          name: 'Off'
          icon: mdi:power-cycle
        cool:
          include: true
          name: Cool
          icon: mdi:snowflake
        heat:
          include: true
          name: Heat
          icon: mdi:fire
        dry:
          include: true
          name: Dry
          icon: mdi:water
        auto:
          include: false
          name: Auto
          icon: mdi:auto-mode
        fan_only:
          include: true
          name: Fresh
          icon: mdi:fan
      fan:
        _name: Fan
        low:
          include: true
          name: Low
          icon: mdi:fan-speed-1
        medium:
          include: true
          name: Med
          icon: mdi:fan-speed-2
        high:
          include: true
          name: High
          icon: mdi:fan-speed-3
        auto:
          include: false
          name: Auto
          icon: mdi:fan-auto
        intelligent_auto:
          include: true
          name: Intel
          icon: mdi:auto-mode
          
    layout:
      mode:
        headings: true
        names: true
        icons: true
    style: |
      ha-card {
        background: black;
        border-radius: 15px;
        --primary-text-color: white;
        --secondary-text-color: black;
        --paper-item-icon-color: red;
        --st-font-size-xl: 40px;
        --st-font-size-m: 40px;
        --st-font-size-title: 24px;
        --st-font-size-sensors: 20px;
        --st-mode-active-color: black;
        --st-mode-background: #E7E3E3;
        --st-spacing: 2px;
        paddining-bottom: 2px !important;
        margin-left: 1px;
        margin-right: 1px;
      }
      header {
        margin-bottom: 10px !important;
        margin-left: 70px !important;
        padding-bottom: 10px !important;
      }
      ha-card .mode-item {
        --st-spacing: 10px;
        border-radius: 10px;
      }
      ha-card .mode-item.active {
        --cool-color: blue;
        --heat-color: red;
        --dry-color: orange;
        --fan_only-color: green;
        --st-spacing: 10px;
        border-radius: 10px;
      }
      ha-card .mode-item:hover {
        --cool-color: blue;
        --heat-color: red;
        --dry-color: orange;
        --fan_only-color: green;
        --st-spacing: 10px;
        border-radius: 10px;
      }
      ha-card .preset-item.active {
        --low-color: green;
        --st-spacing: 10px;
        border-radius: 10px;

could you share your code including inside and outside graph and weather? Id like to have this as well

Sure. Here is all of my combined code.

type: custom:stack-in-card
card_mod:
  style: |
    ha-card { 
      --ha-card-background: {{ 'rgba(255, 255, 255, 0.85)' if is_state('climate.living_ecobee_app', 'heat_cool') else 'rgba(115, 115, 115, 0.25)' }};
      --primary-text-color: {{ 'rgb(0,0,0)' if is_state('climate.living_ecobee_app', 'heat_cool') else '#97989c' }};
      border-radius: 10px;
      border: none;
    }
cards:
  - type: custom:simple-thermostat
    entity: climate.living_ecobee_app
    header: false
    sensors:
      - entity: sensor.living_window
        name: Living
      - entity: sensor.bedroom_window
        name: Bedroom
      - entity: sensor.neenie_window
        name: Neenie
    hide:
      temperature: true
      state: true
    step_size: 1
    decimals: 0
    control:
      hvac:
        'off':
          name: false
          icon: mdi:power
        heat: false
        cool: false
        heat_cool:
          name: false
          icon: mdi:thermostat-auto
    #      icon_template: >-
    #        {% if is_state('sensor.living_ecobee_app_preset_mode', 'vacation') %}
    #          mdi:airplane
    #        {% else %}
    #          mdi:thermostat-auto
    #        {% endif %}
      preset:
        _hide_when_off: true
        Home:
          name: false
          icon: mdi:home
        Girls:
          name: false
          icon: mdi:human-female-female
        Sleep:
          name: false
          icon: mdi:sleep
        Away:
          name: false
          icon: mdi:home-export-outline
    layout:
      mode:
        icons: true
        headings: false
    fallback: 'Off'
    style: |
      ha-card { 
        --ha-card-background: {{ 'rgba(255, 255, 255, 0.85)' if is_state('climate.living_ecobee_app', 'heat_cool') else 'rgba(115, 115, 115, 0.25)' }};
        --primary-text-color: {{ 'rgb(0,0,0)' if is_state('climate.living_ecobee_app', 'heat_cool') else '#97989c' }};
        --st-mode-active-background: rgba(255, 255, 255, 0.85);
        --st-mode-active-color:
          {% set sensor = states('sensor.living_ecobee_app_hvac_action') %}
          {% if sensor == 'cooling' %}rgb(49,130,183)
          {% elif sensor == 'heating' %}rgb(255,0,0)
          {% else %}rgb(0,0,0)
          {% endif %};
        --st-mode-background: rgba(115, 115, 115, 0.25);
        --st-font-size-sensors: 14px;
        --st-spacing: 2px;
        border-radius: 10px;
        border: none;
      }
  - type: custom:mini-graph-card
    entities:
      - entity: sensor.inside_temperature
        name: Inside
        color: '#3182b7'
        show_fill: true
      - entity: sensor.steiger_temperature_feels_like
        name: Real Feel
        color: '#32a852'
        show_fill: false
      - entity: sensor.steiger_temperature
        name: Outside
        color: 'rgb(255,0,0)'
        show_fill: false
      - entity: sun.sun
        color: gray
        name: Sun
        show_legend: false
        show_line: false
        show_fill: true
        show_points: false
        y_axis: secondary
        points_per_hour: 1
    line_width: 1
    decimals: 0
    hour24: true
    hours_to_show: 48
    state_map:
      - value: above_horizon
        label: Day
      - value: below_horizon
        label: Night
    show:
      name: false
      state: false
      points: false
      icon: false
      extrema: false
      labels: false
      labels_secondary: false
    style: |
      ha-card { 
        --ha-card-background: {{ 'rgba(255, 255, 255, 0.85)' if is_state('climate.living_ecobee_app', 'heat_cool') else 'rgba(115, 115, 115, 0.25)' }};
        --primary-text-color: {{ 'rgb(0,0,0)' if is_state('climate.living_ecobee_app', 'heat_cool') else '#97989c' }};
        border-radius: 10px;
        border: none;
      }
      .graph__legend__item:nth-of-type(1) .ellipsis:after {
        content: ": {{states('sensor.inside_temperature')}}°F";
        color: {{ 'rgb(0,0,0)' if is_state('climate.living_ecobee_app', 'heat_cool') else '#97989c' }};
      }
      .graph__legend__item:nth-of-type(2) .ellipsis:after {
        content: ": {{states('sensor.steiger_temperature') }}°F";
        color: {{ 'rgb(0,0,0)' if is_state('climate.living_ecobee_app', 'heat_cool') else '#97989c' }};
      }
      .graph__legend__item:nth-of-type(3) .ellipsis:after {
        content: ": {{states('sensor.steiger_temperature_feels_like')}}°F";
        color: {{ 'rgb(0,0,0)' if is_state('climate.living_ecobee_app', 'heat_cool') else '#97989c' }};
      }
      .graph .graph__legend {
        font-size: 16px;
      }
  - type: weather-forecast
    show_current: false
    show_forecast: true
    name: Castle Shannon
    entity: weather.steiger
    style: |
      ha-card { 
        --ha-card-background: {{ 'rgba(255, 255, 255, 0.85)' if is_state('climate.living_ecobee_app', 'heat_cool') else 'rgba(115, 115, 115, 0.25)' }};
        --primary-text-color: {{ 'rgb(0,0,0)' if is_state('climate.living_ecobee_app', 'heat_cool') else '#97989c' }};
        border-radius: 10px;
        border: none;
      }

I have updated my graph to also includes the “feels like” outdoor temperature.

I use the weather.com integration from HACS for to get my outside temp, feels like temp, and weather forecast. I have multiple other sensors I have created from ecobee attributes using the attributes extractor integration from HACS.

The only item I still can’t get to work is the icon template I would like to use in the simple thermostat card. Unfortunately from what I have read that is not possible.

3 Likes

I wonder if someone can help since… I have issues LOL… I want to remove the temp adjustment since its always set. Also the modes only be power and cool… Is that possible?
– cant get formatting right. it says 3 ticks before and after.

type: custom:simple-thermostat
entity: climate.bedroom_ac
hide:
  state: true
  temperature: true
icon:
  cool: mdi:snowflake
  'off': mdi:power
sensors:
  - entity: sensor.kitchentemp_temperature
    secondary_info: current_temperature
    icon: mdi:home-thermometer-outline
    name: Temperature
header: false
control:
  _names: false - hvac - preset
  hvac:
    heat:
      name: An
      icon: mdi:fire
    'off':
      name: Aus
      icon: mdi:power
layout:
  mode:
    names: false
    icons: true
    `headings: false`

NVIDIA_Share_mmm9jYDxt2

Something like that?

type: custom:simple-thermostat
entity: climate.thermostat
header: false
sensors:
  - entity: sensor.living_room_motion_air_temperature
    icon: mdi:home-thermometer-outline
hide:
  temperature: true
  state: true
step_size: 1
decimals: 0
setpoints: false
control:
  hvac:
    'off':
      name: false
      icon: mdi:power
    heat: false
    cool: 
      name: false
      icon: mdi:snowflake
layout:
  mode:
    icons: true
    headings: false
fallback: 'Off'

image