Dual Thermostat Card

My GoControl GC-TBZ48 Z-Wave thermostat creates two entities, one for cool and one for heat, the native Lovelace thermostat card only allows to control a single entity so having two cards to control a single thermostat is confusing… So I created my first custom Lovelace card, the Dual Thermostat card that allows you to control thermostats that define 2 entities with a single card!

Please check it out on the Github page and let me know what you think!

Lovelace Dual Thermostat Card

A custom Lovelace card based on the native thermostat card that allows to control dual thermostats that create separate Heat and Cool entities.

Heat and Cool entities are updated depending on the active thermostat mode. The low point on the Auto mode controls the heat entity and the high point controls the cool entity allowing you to use a single card for both entities.

dual-thermostat

Installation

  1. Download the repo as a zip or with git clone and copy the /dual-thermostat folder to the /www in your configuration folder.
  2. Configure Lovelace to load the card:
    resources:
      - url: /local/dual-thermostat/dual-thermostat.js?v=1
        type: js
    

Available configuration options:

  • entities array
    • Using entity objects:
      • entity string: The thermostat entity id required
      • type string: cool or heat required
    • Using string notation (Cooling entity first):
      • string cool_entity_id The thermostat cooling entity id required
      • string heat_entity_id The thermostat heating entity id required
  • name string: Override the card name. (Default: Uses the friendly_name attribute of the first climate entity provided)
  • fan_control bool: Show the fan control dropdown (Default: false)
  • min_slider integer: Override the minimum value of the slider (Default: Uses the ‘min_temp’ attribute provided by the thermostat)
  • max_slider integer: Override the maximum value of the slider (Default: Uses the ‘max_temp’ attribute provided by the thermostat)

Example usage:

Using entity objects

cards:
  - type: custom:dual-thermostat
    name: Downstairs
    entities:
      - entity: climate.downstairs_cool
        type: cool
      - entity: climate.downstairs_heat
        type: heat
    fan_control: true
    min_slider: 60
    max_slider: 80

Using string (First provided entity will define to the cool entity)

cards:
  - type: custom:dual-thermostat
    name: Downstairs
    entities:
      - climate.downstairs_cool
      - climate.downstairs_heat
    fan_control: true
    min_slider: 60
    max_slider: 80
15 Likes

Dude, this is exactly what I have been looking for. I will try it first thing in the morning and let you know.

1 Like

Why the standard card has no fan mode? TuTs odd. unfortunately I don’t have both entities …just with my zwave climate but it doesn’t work properly

1 Like

The screenshot does not show a fan mode because my GoControl GC-TBZ48 doesn’t support it, but if your thermostat does it should show on the mode list. You need both entities for this card to work, otherwise just use the native thermostat card.

Native card has no fan mode that’s why I ask

Gotcha, yes I agree! The native card renders a fan only mode for some thermostats that support it but does not offer separate fan control.

I have a custom component but according to Hass standards and the fan is not shown …I opened a feature request here :wink:

I have it installed. I have two 2gig ct100 zwave thermostats. It was a hassle to have two climate entities represented so this great. I never ran them in auto mode but I will start. In alabama we can have a 40 degree temp swing between morning and afternoon if the warm front moves in. So It would be nice to set it and forget it.

1 Like

nice work,
is there any easy way to add secondary sensors on the card like humidity and external temperature?

1 Like

Right now there is no support for additional sensors, I don’t think it would be that complicated but I don’t have any additional sensors to test.

@enriqg9 I just started using lovelace, and don’t have a lovelace yaml file. I am using the UI to edit everything. Can you point me in the direction of instructions to use custom cards using the non-yaml lovelace config?

I am assuming you are on Hass 0.84? I think you may need to change Lovelace to the YAML mode so that you can use the custom card. You can read how to change it here. https://www.home-assistant.io/lovelace/yaml-mode/

I noticed the card won’t work on browsers that only support es5 JavaScript so I’ll be pushing a commit to fix that tomorrow.

if you want, I can be a beta tester :slightly_smiling_face:

You can’t control both the heat & cooling from one entity? I have the same thermostat and I have the “_heating” entity hidden but can still control both the heater & the ac from the “_cooling” entity.

Are you sure? Can you contol auto mode as well?

I could not, while on heat mode, setting the temperature on the cool entity would set the cool temp and viceversa. That’s why I created this custom card plus you have control of both entities on the auto mode using this card.

Yes I can. I un-hid the second device to do some testing and, as far as I can tell, I’m able to completely control my thermostat (2gig CT100) from either device. It looks like any changes I make to one entity are immediately replicated in the other. I can’t do high/low set-points and instead Auto works by turning on the AC or heater if the temp gets 2* above or below the set-point, but I think that’s just a limitation of my thermostat.

This is what the states screen lists for the two devices: Imgur: The magic of the Internet

Hello. Thank you so much for this. I’ve been trying to get something like this going on the old UI forever. When I came across this, it’s what made me finally want to switch over to lovelace.

Anyways, I have a question. It might be more of a general lovelace question that something specific to this card type. Is there any way I can make it so that a card will display the basic information(heat/cool mode, current temp, target temp, etc), but doesn’t allow me to change it until I tap on it? Or maybe something that leaves it in read only mode until I turn on an input slider.

I just set all this up 3 days ago, and yesterday, I came home and the 2nd floor was 85 degrees and the thermostat was set to the 90’s. I must have accidentally moved one of the dials by accident. I just want a way to make it difficult to accidentally change the temperature like that.

And also, is there any way to define the max range of the slider? I don’t think I have a need to ever set it lower than 60 or higher than 80, in summer or winter. Yet the slider ranges from 45 to 95.

Hi there,

The slider range comes from the thermostat minimum and maximum supported values. Some thermostats allow you to change these values and therefore will update the slider range. Check the thermostat config under the z-wave admin page.