Skip to content

HA Custom Card by @vrobenmat

Galaxy Explorer edited this page Oct 2, 2022 · 1 revision

Prereqs in HACS frontend: mini-graph-card; slider-entity-row; Paper Buttons Row

Script in Settings->Automations->Scripts (templating doesn't always work as expected in dashboard, hence the separate script):

alias: Evohome Preset Change
mode: single
icon: mdi:home-thermometer-outline
sequence:
  - service: ramses_cc.set_zone_mode
    data:
      entity_id: "{{ entity_id }}"
      mode: "{{ mode }}"
      setpoint: "{{ state_attr(entity_id, 'temperature') }}" 

The cards themselves are a vertical stack of 2 (the thermostat & graph), then horizontally stacked twice to bring used space down. Replace the climate.evohome_cc_01_201047_xx refs to your own zone entity refs:

type: horizontal-stack
cards:
  - type: vertical-stack
    cards:
      - type: entities
        title: Guest Bed
        icon: mdi:home-thermometer
        entities:
          - type: custom:slider-entity-row
            entity: climate.evohome_cc_01_201047_04
            step: 0.5
            full_row: true
            hide_state: false
            min: 10
            max: 24
          - type: attribute
            entity: climate.evohome_cc_01_201047_04
            attribute: current_temperature
            suffix: °C
            name: Current
          - type: custom:paper-buttons-row
            base_config:
              styles:
                name:
                  color: var(--label-badge-text-color)
            buttons:
              - icon: false
                name: >-
                  {% if state_attr('climate.evohome_cc_01_201047_04',
                  'hvac_action') == None %}
                    Unknown
                  {% else%}
                    {{ state_attr('climate.evohome_cc_01_201047_04', 'hvac_action').capitalize() }}
                  {% endif %}
              - icon: mdi:calendar-clock
                name: false
                styles:
                  button:
                    color: >-
                      {% if is_state_attr('climate.evohome_cc_01_201047_04',
                      'preset_mode', "none") %}
                        var(--paper-item-icon-active-color)
                      {% else%}
                        var(--label-badge-text-color)
                      {% endif %}
                tap_action:
                  action: call-service
                  service: ramses_cc.set_zone_mode
                  service_data:
                    entity_id: climate.evohome_cc_01_201047_04
                    mode: follow_schedule
                hold_action:
                  action: none
              - icon: mdi:alarm
                name: false
                styles:
                  button:
                    color: >-
                      {% if is_state_attr('climate.evohome_cc_01_201047_04',
                      'preset_mode', "temporary") %}
                        var(--paper-item-icon-active-color)
                      {% else%}
                        var(--label-badge-text-color)
                      {% endif %}
                tap_action:
                  action: call-service
                  service: script.evohome_preset_change
                  service_data:
                    entity_id: climate.evohome_cc_01_201047_04
                    mode: advanced_override
                hold_action:
                  action: none
              - icon: mdi:autorenew
                name: false
                styles:
                  button:
                    color: >-
                      {% if is_state_attr('climate.evohome_cc_01_201047_04',
                      'preset_mode', "permanent") %}
                        var(--paper-item-icon-active-color)
                      {% else%}
                        var(--label-badge-text-color)
                      {% endif %}
                tap_action:
                  action: call-service
                  service: script.evohome_preset_change
                  service_data:
                    entity_id: climate.evohome_cc_01_201047_04
                    mode: permanent_override
                hold_action:
                  action: none
      - type: custom:mini-graph-card
        update_interval: 180
        lower_bound: 15
        upper_bound: 24
        smoothing: false
        points_per_hour: 20
        line_width: 2
        entities:
          - entity: climate.evohome_cc_01_201047_04
            attribute: current_temperature
            show_fill: false
          - entity: climate.evohome_cc_01_201047_04
            attribute: temperature
            show_fill: false
          - entity: sensor.01_201047_04_heat_demand
            show_line: false
            y_axis: secondary
        show:
          labels: true
          state: false
          points: false
          legend: false
          name: false
          icon: false
  - type: vertical-stack
    cards:
      - type: entities
        title: Guest Bath
        icon: mdi:home-thermometer
        entities:
          - type: custom:slider-entity-row
            entity: climate.evohome_cc_01_201047_05
            step: 0.5
            full_row: true
            hide_state: false
            min: 10
            max: 24
          - type: attribute
            entity: climate.evohome_cc_01_201047_05
            attribute: current_temperature
            suffix: °C
            name: Current
          - type: custom:paper-buttons-row
            base_config:
              styles:
                name:
                  color: var(--label-badge-text-color)
            buttons:
              - icon: false
                name: >-
                  {% if state_attr('climate.evohome_cc_01_201047_05',
                  'hvac_action') == None %}
                    Unknown
                  {% else%}
                    {{ state_attr('climate.evohome_cc_01_201047_05', 'hvac_action').capitalize() }}
                  {% endif %}
              - icon: mdi:calendar-clock
                name: false
                styles:
                  button:
                    color: >-
                      {% if is_state_attr('climate.evohome_cc_01_201047_05',
                      'preset_mode', "none") %}
                        var(--paper-item-icon-active-color)
                      {% else%}
                        var(--label-badge-text-color)
                      {% endif %}
                tap_action:
                  action: call-service
                  service: ramses_cc.set_zone_mode
                  service_data:
                    entity_id: climate.evohome_cc_01_201047_05
                    mode: follow_schedule
                hold_action:
                  action: none
              - icon: mdi:alarm
                name: false
                styles:
                  button:
                    color: >-
                      {% if is_state_attr('climate.evohome_cc_01_201047_05',
                      'preset_mode', "temporary") %}
                        var(--paper-item-icon-active-color)
                      {% else%}
                        var(--label-badge-text-color)
                      {% endif %}
                tap_action:
                  action: call-service
                  service: script.evohome_preset_change
    	          service_data:
                    entity_id: climate.evohome_cc_01_201047_05
                    mode: advanced_override
                hold_action:
                  action: none
              - icon: mdi:autorenew
    	        name: false
                styles:
                  button:
                    color: >-
                      {% if is_state_attr('climate.evohome_cc_01_201047_05',
                      'preset_mode', "permanent") %}
                        var(--paper-item-icon-active-color)
                      {% else%}
                        var(--label-badge-text-color)
                      {% endif %}
                tap_action:
                  action: call-service
                  service: script.evohome_preset_change
                  service_data:
                    entity_id: climate.evohome_cc_01_201047_05
                    mode: permanent_override
                hold_action:
                  action: none
      - type: custom:mini-graph-card
        update_interval: 180
        lower_bound: 15
        upper_bound: 24
        smoothing: false
        points_per_hour: 20
        line_width: 2
        entities:
          - entity: climate.evohome_cc_01_201047_05
            attribute: current_temperature
            show_fill: false
          - entity: climate.evohome_cc_01_201047_05
            attribute: temperature
            show_fill: false
          - entity: sensor.01_201047_05_heat_demand
            show_line: false
            y_axis: secondary
        show:
          labels: true
          state: false
          points: false
          legend: false
          name: false
          icon: false