Skip to content

Instantly share code, notes, and snippets.

@ArkadiuszNiemiec
Created August 17, 2020 13:30
Show Gist options
  • Save ArkadiuszNiemiec/87e02cf09707f71843d545e6d247ec99 to your computer and use it in GitHub Desktop.
Save ArkadiuszNiemiec/87e02cf09707f71843d545e6d247ec99 to your computer and use it in GitHub Desktop.
title: Mieszkanie
resources:
- url: /local/button-card.js?v=4
type: module
# - url: /local/banner-card.js?v=17
# type: module
# - url: /local/custom-header.js?v=2
# type: module
# - url: /local/slider-entity-row.js
# type: module
- url: /local/card-mod.js?v=5
type: module
# - url: /local/fold-entity-row.js
# type: module
# - url: /local/simple-thermostat.js?v=3
# type: module
- url: /local/layout-card.js
type: module
- url: /local/vacuum-card.js?v=5
type: module
# custom_header:
# # background: red;
# hide_header: true
# header_text: '{{ time }}' # See templates section for more on this.
# compact_mode: true
# footer_mode: true
# hide_help: true
views:
- title: Mieszkanie
id: general
cards:
- type: custom:mod-card # salon
report_size: 9
style: |
ha-card {
background-color: var(--paper-card-background-color);
border-radius: 4px;
padding: 15px;
height: 100%
}
card:
type: vertical-stack
cards:
- type: "custom:button-card" # header
name: Salon
styles:
name:
- font-size: 20px
- line-height: 1
- font-weight: bold
card:
- box-shadow: none
- height: 30px
- type: horizontal-stack
cards:
- type: 'custom:button-card'
entity: switch.livingroom # button all
icon: 'mdi:lightbulb-group-outline'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color)'
value: 'on'
styles:
card:
- height: 100%
- width: 100px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: toggle
haptic: light
hold_action:
action: more-info
- type: vertical-stack
cards:
- type: horizontal-stack # horizontal-stack
cards:
- type: 'custom:button-card'
entity: switch.kitchen_wall_right # button kitchen
icon: 'mdi:stove'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: toggle
haptic: light
hold_action:
action: more-info
- entity: light.kitchen_countertop # button kitchen countertop
icon: 'mdi:wall-sconce-flat'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: toggle
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: switch.kitchen_wall_left # button wyspa
icon: 'mdi:vanity-light'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: toggle
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- cards: # horizontal-stack
- entity: switch.diningroom_wall # button diningroom
icon: 'mdi:table-chair'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: toggle
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: switch.livingroom_wall_right # button TV
icon: 'mdi:sofa'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: toggle
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: switch.livingroom_wall_left # button szafa
icon: 'mdi:wardrobe-outline'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: toggle
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
type: horizontal-stack
- cards:
- entity: cover.livingroom # close cover
icon: 'mdi:unfold-less-vertical'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
haptic: light
hold_action:
action: more-info
tap_action:
action: call-service
service: cover.close_cover
service_data:
entity_id: cover.livingroom
type: 'custom:button-card'
- entity: cover.livingroom # close stop
icon: 'mdi:pause'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
haptic: light
hold_action:
action: more-info
tap_action:
action: call-service
service: cover.stop_cover
service_data:
entity_id: cover.livingroom
type: 'custom:button-card'
- entity: cover.office # open cover
icon: 'mdi:unfold-more-vertical'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
haptic: light
hold_action:
action: more-info
tap_action:
action: call-service
service: cover.open_cover
service_data:
entity_id: cover.livingroom
type: 'custom:button-card'
type: horizontal-stack
- type: entities
style: |
ha-card {
box-shadow: none;
# background-color: var(--primary-background-color);
# border-radius: 4px;
}
show_header_toggle: false
entities:
- entity: input_datetime.livingroom_open_cover_time
name: Godzina
icon: mdi:clock-outline
- entity: input_boolean.livingroom_open_cover_toggle
name: Otwarcie zasłon
icon: mdi:window-closed-variant
- type: custom:mod-card # lazienka
report_size: 3
style: |
ha-card {
background-color: var(--paper-card-background-color);
border-radius: 4px;
padding: 15px;
}
card:
type: vertical-stack
cards:
- type: "custom:button-card" # header
name: Łazienka
styles:
name:
- font-size: 20px
- line-height: 1
- font-weight: bold
card:
- box-shadow: none
- height: 30px
- cards:
- entity: group.bathroom # button all
icon: 'mdi:lightbulb-group-outline'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: toggle
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: light.bathroom_yeelight_lamp # lamp bathroom
icon: 'mdi:ceiling-light'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: toggle
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: switch.bathroom_mirror # switch lustro
icon: 'mdi:rectangle-outline'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: toggle
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
type: horizontal-stack
- type: custom:mod-card # korytarz
report_size: 3
style: |
ha-card {
background-color: var(--paper-card-background-color);
border-radius: 4px;
padding: 15px;
}
card:
type: vertical-stack
cards:
- type: "custom:button-card" # header
name: Korytarz
styles:
name:
- font-size: 20px
- line-height: 1
- font-weight: bold
card:
- box-shadow: none
- height: 30px
- cards:
- entity: light.corridor_yeelight_lamp # lamp corridor
icon: 'mdi:ceiling-light'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: toggle
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: switch.corridor_motion # motion sensor
icon: 'mdi:motion-sensor'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: toggle
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
type: horizontal-stack
- type: custom:mod-card # biuro
report_size: 7
style: |
ha-card {
background-color: var(--paper-card-background-color);
border-radius: 4px;
padding: 15px;
}
card:
type: vertical-stack
cards:
- type: "custom:button-card" # header
name: Biuro
styles:
name:
- font-size: 20px
- line-height: 1
- font-weight: bold
card:
- box-shadow: none
- height: 30px
- type: horizontal-stack
cards:
- entity: light.office_yeelight_lamp # lamp office
icon: 'mdi:ceiling-light'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: toggle
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: light.office_desk_lamp # lamp desk
icon: 'mdi:desk-lamp'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: toggle
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- type: 'custom:button-card'
entity: sensor.r2d2 # PC
icon: 'mdi:desktop-tower'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: call-service
service: wake_on_lan.send_magic_packet
service_data:
mac: 00:D8:61:BF:34:1C
haptic: light
hold_action:
action: more-info
double_tap_action:
action: call-service
service: shell_command.r2d2_turn_off
- cards:
- entity: cover.office # close cover
icon: 'mdi:unfold-less-vertical'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
haptic: light
hold_action:
action: more-info
tap_action:
action: call-service
service: cover.close_cover
service_data:
entity_id: cover.office
type: 'custom:button-card'
- entity: cover.office # close stop
icon: 'mdi:pause'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
haptic: light
hold_action:
action: more-info
tap_action:
action: call-service
service: cover.stop_cover
service_data:
entity_id: cover.office
type: 'custom:button-card'
- entity: cover.office # open cover
icon: 'mdi:unfold-more-vertical'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
haptic: light
hold_action:
action: more-info
tap_action:
action: call-service
service: cover.open_cover
service_data:
entity_id: cover.office
type: 'custom:button-card'
type: horizontal-stack
- type: entities
style: |
ha-card {
box-shadow: none;
# background-color: var(--primary-background-color);
# border-radius: 4px;
}
show_header_toggle: false
entities:
- entity: input_datetime.office_open_cover_time
name: Godzina
icon: mdi:clock-outline
- entity: input_boolean.office_open_cover_toggle
name: Otwarcie zasłon
icon: mdi:window-closed-variant
- type: custom:mod-card # bedroom
report_size: 11
style: |
ha-card {
background-color: var(--paper-card-background-color);
border-radius: 4px;
padding: 15px;
}
card:
type: vertical-stack
cards:
- type: "custom:button-card" # header
name: Sypialnia
styles:
name:
- font-size: 20px
- line-height: 1
- font-weight: bold
card:
- box-shadow: none
- height: 30px
- type: horizontal-stack
cards:
- entity: light.bedroom_night_lamp_left # night lamp left
icon: 'mdi:lamp'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 60%
- color: var(--primary-text-color)
tap_action:
action: toggle
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: light.bedroom_yeelight_lamp # lamp bedroom
icon: 'mdi:ceiling-light'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: toggle
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: light.bedroom_night_lamp_right # night lamp right
icon: 'mdi:lamp'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 60%
- color: var(--primary-text-color)
tap_action:
action: toggle
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- type: horizontal-stack
cards:
- entity: cover.bedroom # close cover
icon: 'mdi:unfold-less-vertical'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
haptic: light
hold_action:
action: more-info
tap_action:
action: call-service
service: cover.close_cover
service_data:
entity_id: cover.bedroom
type: 'custom:button-card'
- entity: cover.bedroom # close stop
icon: 'mdi:pause'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
haptic: light
hold_action:
action: more-info
tap_action:
action: call-service
service: cover.stop_cover
service_data:
entity_id: cover.bedroom
type: 'custom:button-card'
- entity: cover.bedroom # open cover
icon: 'mdi:unfold-more-vertical'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
haptic: light
hold_action:
action: more-info
tap_action:
action: call-service
service: cover.open_cover
service_data:
entity_id: cover.bedroom
type: 'custom:button-card'
- type: custom:layout-card
layout: horizontal
min_columns: 4
column_width: [300, 80, 80, 80]
cards:
- type: entities
style:
.: |
ha-card {
padding-top: 2px;
box-shadow: none;
}
# The following two lines are separated to make sure card-mod first goes into _every_ div inside #states, and then looks for slider-entity-row inside each of them
"#states div":
hui-toggle-entity-row:
$:
hui-generic-entity-row:
ha-entity-toggle:
$: |
:host {
display: none;
}
hui-input-datetime-entity-row:
$:
hui-generic-entity-row:
paper-time-input:
$: |
:host {
display: none;
}
show_header_toggle: false
entities:
- entity: input_datetime.sunrise_time_1
name: Godzina
icon: mdi:clock-outline
- entity: input_boolean.sunrise_light_toggle_1
name: Lampa
icon: mdi:weather-sunset-up
- entity: input_boolean.sunrise_bed_light_toggle_left_1
name: Karoliny
icon: mdi:lamp
- entity: input_boolean.sunrise_bed_light_toggle_right_1
name: Arka
icon: mdi:lamp
- entity: input_boolean.sunrise_covers_toggle_1
name: Zasłony
icon: mdi:window-closed-variant
- type: entities
style:
.: |
ha-card {
box-shadow: none;
}
.card-content {
padding-left: 0;
padding-right: 0;
}
# The following two lines are separated to make sure card-mod first goes into _every_ div inside #states, and then looks for slider-entity-row inside each of them
"#states div":
hui-toggle-entity-row:
$:
hui-generic-entity-row:
# Once we reach the final shadow-root in our path, there's no need to drill any deeper
$: |
:host {
justify-content: center;
}
.pointer {
display: none;
}
hui-input-datetime-entity-row:
$:
hui-generic-entity-row:
# Once we reach the final shadow-root in our path, there's no need to drill any deeper
$: |
:host {
justify-content: center;
}
.pointer {
display: none;
}
show_header_toggle: false
entities:
- entity: input_datetime.sunrise_time_1
- entity: input_boolean.sunrise_light_toggle_1
- entity: input_boolean.sunrise_bed_light_toggle_left_1
- entity: input_boolean.sunrise_bed_light_toggle_right_1
- entity: input_boolean.sunrise_covers_toggle_1
- type: entities
style:
.: |
ha-card {
box-shadow: none;
}
.card-content {
box-shadow: none;
padding-left: 0;
padding-right: 0;
}
# The following two lines are separated to make sure card-mod first goes into _every_ div inside #states, and then looks for slider-entity-row inside each of them
"#states div":
hui-toggle-entity-row:
$:
hui-generic-entity-row:
# Once we reach the final shadow-root in our path, there's no need to drill any deeper
$: |
:host {
justify-content: center;
}
.pointer {
display: none;
}
hui-input-datetime-entity-row:
$:
hui-generic-entity-row:
# Once we reach the final shadow-root in our path, there's no need to drill any deeper
$: |
:host {
justify-content: center;
}
.pointer {
display: none;
}
show_header_toggle: false
entities:
- entity: input_datetime.sunrise_time_2
- entity: input_boolean.sunrise_light_toggle_2
- entity: input_boolean.sunrise_bed_light_toggle_left_2
- entity: input_boolean.sunrise_bed_light_toggle_right_2
- entity: input_boolean.sunrise_covers_toggle_2
- type: entities
style:
.: |
ha-card {
box-shadow: none;
}
.card-content {
padding-left: 0;
padding-right: 0;
}
# The following two lines are separated to make sure card-mod first goes into _every_ div inside #states, and then looks for slider-entity-row inside each of them
"#states div":
hui-toggle-entity-row:
$:
hui-generic-entity-row:
# Once we reach the final shadow-root in our path, there's no need to drill any deeper
$: |
:host {
justify-content:center;
}
.pointer {
display: none;
}
hui-input-datetime-entity-row:
$:
hui-generic-entity-row:
# Once we reach the final shadow-root in our path, there's no need to drill any deeper
$: |
:host {
justify-content:center;
}
.pointer {
display: none;
}
show_header_toggle: false
entities:
- entity: input_datetime.sunrise_time_3
- entity: input_boolean.sunrise_light_toggle_3
- entity: input_boolean.sunrise_bed_light_toggle_left_3
- entity: input_boolean.sunrise_bed_light_toggle_right_3
- entity: input_boolean.sunrise_covers_toggle_3
- type: custom:mod-card # temperatura i wilgotność
report_size: 17
style: |
ha-card {
background-color: var(--paper-card-background-color);
border-radius: 4px;
padding: 15px;
}
card:
type: vertical-stack
cards:
- type: "custom:button-card"
name: Temperatura i wilgotność
styles:
name:
- font-size: 20px
- line-height: 1
- font-weight: bold
card:
- box-shadow: none
- height: 30px
- type: horizontal-stack
cards:
- type: 'custom:button-card' # livingroom_humidity livingroom_temperature
entity: sensor.livingroom_humidity
icon: 'mdi:sofa'
show_name: true
show_label: true
name: >
[[[
return parseFloat(states['sensor.livingroom_temperature'].state).toFixed(1) + '°C';
]]]
label: >
[[[
return parseFloat(states['sensor.livingroom_humidity'].state).toFixed(0) + '%';
]]]
styles:
name:
- font-size: 18px
- margin-top: 6px
label:
- font-size: 18px
- margin-top: 6px
card:
- height: 100px
- box-shadow: none
tap_action:
action: none
hold_action:
action: more-info
- type: 'custom:button-card' # bedroom_humidity bedroom_temperature
entity: sensor.bedroom_humidity
icon: 'mdi:bed-king-outline'
show_name: true
show_label: true
name: >
[[[
return parseFloat(states['sensor.bedroom_temperature'].state).toFixed(1) + '°C';
]]]
label: >
[[[
return parseFloat(states['sensor.bedroom_humidity'].state).toFixed(0) + '%';
]]]
styles:
name:
- font-size: 18px
- margin-top: 6px
label:
- font-size: 18px
- margin-top: 6px
card:
- height: 100px
- box-shadow: none
tap_action:
action: none
hold_action:
action: more-info
- type: 'custom:button-card' # office_humidity office_temperature
entity: sensor.office_humidity
icon: 'mdi:laptop'
show_name: true
show_label: true
name: >
[[[
return parseFloat(states['sensor.office_temperature'].state).toFixed(1) + '°C';
]]]
label: >
[[[
return parseFloat(states['sensor.office_humidity'].state).toFixed(0) + '%';
]]]
styles:
name:
- font-size: 18px
- margin-top: 6px
label:
- font-size: 18px
- margin-top: 6px
card:
- height: 100px
- box-shadow: none
tap_action:
action: none
hold_action:
action: more-info
- type: 'custom:button-card' # bathroom_humidity bathroom_temperature
entity: sensor.bathroom_humidity
icon: 'mdi:shower'
show_name: true
show_label: true
name: >
[[[
return parseFloat(states['sensor.bathroom_temperature'].state).toFixed(1) + '°C';
]]]
label: >
[[[
return parseFloat(states['sensor.bathroom_humidity'].state).toFixed(0) + '%';
]]]
styles:
name:
- font-size: 18px
- margin-top: 6px
label:
- font-size: 18px
- margin-top: 6px
card:
- height: 100px
- box-shadow: none
tap_action:
action: none
hold_action:
action: more-info
- type: 'custom:button-card' # outdoor_humidity outdoor_temperature
entity: sensor.outdoor_temperature
icon: 'mdi:tree-outline'
show_name: true
show_label: true
name: >
[[[
return parseFloat(states['sensor.outdoor_temperature'].state).toFixed(1) + '°C';
]]]
label: >
[[[
return parseFloat(states['sensor.outdoor_humidity'].state).toFixed(0) + '%';
]]]
styles:
name:
- font-size: 18px
- margin-top: 6px
label:
- font-size: 18px
- margin-top: 6px
card:
- height: 100px
- box-shadow: none
tap_action:
action: none
hold_action:
action: more-info
- type: custom:mod-card # klimatyzacja
report_size: 4
style: |
ha-card {
background-color: var(--paper-card-background-color);
border-radius: 4px;
padding: 15px;
}
card:
type: vertical-stack
cards:
- type: "custom:button-card"
name: Klimatyzacja
styles:
name:
- font-size: 20px
- line-height: 1
- font-weight: bold
card:
- box-shadow: none
- height: 30px
- type: horizontal-stack
cards:
- entity: climate.livingroom_ac # ac minus
icon: 'mdi:minus'
show_icon: true
show_name: false
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: call-service
service: input_number.decrement
service_data:
entity_id: input_number.livingroom_ac_set_temperature
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: climate.livingroom_ac # ac value
icon: 'mdi:fire'
show_icon: false
show_name: true
name: >
[[[
return parseFloat(states['input_number.livingroom_ac_set_temperature'].state);
]]]
styles:
name:
- font-size: 30px
- line-height: 1
card:
- height: 70px
- box-shadow: none
# - border-radius: 4px
# - background-color: var(--primary-background-color)
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: climate.livingroom_ac # ac plus
icon: 'mdi:plus'
show_icon: true
show_name: false
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: call-service
service: input_number.increment
service_data:
entity_id: input_number.livingroom_ac_set_temperature
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- cards:
- entity: climate.livingroom_ac # ac toggle
icon: 'mdi:power'
show_icon: true
show_name: false
state:
- operator: template
value: >
[[[ return states['climate.livingroom_ac'].state != 'off' ]]]
styles:
icon:
- color: 'var(--paper-item-icon-active-color)'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: toggle
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: climate.livingroom_ac # ac heat
icon: 'mdi:fire'
show_icon: true
show_name: false
state:
- operator: template
value: >
[[[ return states['climate.livingroom_ac'].state === 'heat' ]]]
styles:
icon:
- color: 'var(--paper-item-icon-active-color)'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: call-service
service: climate.set_hvac_mode
service_data:
entity_id: climate.livingroom_ac
hvac_mode: heat
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: climate.livingroom_ac # ac cool
icon: 'mdi:snowflake'
show_icon: true
show_name: false
state:
- operator: template
value: >
[[[ return states['climate.livingroom_ac'].state === 'cool' ]]]
styles:
icon:
- color: 'var(--paper-item-icon-active-color)'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: call-service
service: climate.set_hvac_mode
service_data:
entity_id: climate.livingroom_ac
hvac_mode: cool
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: climate.livingroom_ac # ac dry
icon: 'mdi:water-percent'
show_icon: true
show_name: false
state:
- operator: template
value: >
[[[ return states['climate.livingroom_ac'].state === 'dry' ]]]
styles:
icon:
- color: 'var(--paper-item-icon-active-color)'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: call-service
service: climate.set_hvac_mode
service_data:
entity_id: climate.livingroom_ac
hvac_mode: dry
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: climate.livingroom_ac # ac auto
icon: 'mdi:autorenew'
show_icon: true
show_name: false
state:
- operator: template
value: >
[[[ return states['climate.livingroom_ac'].state === 'heat_cool' ]]]
styles:
icon:
- color: 'var(--paper-item-icon-active-color)'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: call-service
service: climate.set_hvac_mode
service_data:
entity_id: climate.livingroom_ac
hvac_mode: heat_cool
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
type: horizontal-stack
- type: custom:mod-card # oczyszczacz
report_size: 7
style: |
ha-card {
background-color: var(--paper-card-background-color);
border-radius: 4px;
padding: 15px;
}
card:
type: vertical-stack
cards:
- type: "custom:button-card" # header
name: Oczyszczacz powietrza
styles:
name:
- font-size: 20px
- line-height: 1
- font-weight: bold
card:
- box-shadow: none
- height: 30px
- cards:
- type: 'custom:button-card' # air_quality
entity: sensor.bedroom_purifier_aqi
icon: 'mdi:air-filter'
show_name: true
name: >
[[[
return parseFloat(states['sensor.bedroom_purifier_aqi'].state) + '%';
]]]
styles:
name:
- font-size: 18px
- margin-top: 6px
card:
- height: 60px
- box-shadow: none
- margin-top: 5px
tap_action:
action: none
hold_action:
action: more-info
- entity: fan.bedroom_air_purifier # purifier toggle
icon: 'mdi:power'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: call-service
service: fan.toggle
service_data:
entity_id: fan.bedroom_air_purifier
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: fan.bedroom_air_purifier # purifier auto
icon: 'mdi:alpha-a-circle-outline'
show_icon: true
show_name: false
state:
- operator: template
value: >
[[[ return states['fan.bedroom_air_purifier'].attributes.speed === 'Auto' ]]]
styles:
icon:
- color: 'var(--paper-item-icon-active-color)'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: call-service
service: fan.set_speed
service_data:
entity_id: fan.bedroom_air_purifier
speed: Auto
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: fan.bedroom_air_purifier # purifier silent
icon: 'mdi:weather-night'
show_icon: true
show_name: false
state:
- operator: template
value: >
[[[ return states['fan.bedroom_air_purifier'].attributes.speed === 'Silent' ]]]
styles:
icon:
- color: 'var(--paper-item-icon-active-color)'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: call-service
service: fan.set_speed
service_data:
entity_id: fan.bedroom_air_purifier
speed: Silent
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: fan.bedroom_air_purifier # purifier favorite
icon: 'mdi:heart-outline'
show_icon: true
show_name: false
state:
- operator: template
value: >
[[[ return states['fan.bedroom_air_purifier'].attributes.speed === 'Favorite' ]]]
styles:
icon:
- color: 'var(--paper-item-icon-active-color)'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: call-service
service: fan.set_speed
service_data:
entity_id: fan.bedroom_air_purifier
speed: Favorite
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
type: horizontal-stack
- type: custom:mod-card # nawilżacz
report_size: 6
style: |
ha-card {
background-color: var(--paper-card-background-color);
border-radius: 4px;
padding: 15px;
}
card:
type: vertical-stack
cards:
- type: "custom:button-card" # header
name: Nawilżacz powietrza
styles:
name:
- font-size: 20px
- line-height: 1
- font-weight: bold
card:
- box-shadow: none
- height: 30px
- type: horizontal-stack
cards:
- type: "custom:button-card"
color_type: blank-card
- cards:
- type: 'custom:button-card' # remaining_water
entity: sensor.bedroom_humidifier_remaining_water
icon: 'mdi:wave'
show_name: true
name: >
[[[
return parseFloat(states['sensor.bedroom_humidifier_remaining_water'].state) + '%';
]]]
styles:
name:
- font-size: 18px
- margin-top: 6px
card:
- height: 60px
- box-shadow: none
tap_action:
action: none
hold_action:
action: more-info
- entity: fan.bedroom_air_humidifier # humidifier toggle
icon: 'mdi:power'
show_icon: true
show_name: false
state:
- styles:
icon:
- color: 'var(--paper-item-icon-active-color) '
value: 'on'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: call-service
service: fan.toggle
service_data:
entity_id: fan.bedroom_air_humidifier
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: fan.bedroom_air_humidifier # humidifier auto
icon: 'mdi:alpha-a-circle-outline'
show_icon: true
show_name: false
state:
- operator: template
value: >
[[[ return states['fan.bedroom_air_humidifier'].attributes.speed === 'Auto' ]]]
styles:
icon:
- color: 'var(--paper-item-icon-active-color)'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: call-service
service: fan.set_speed
service_data:
entity_id: fan.bedroom_air_humidifier
speed: Auto
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: fan.bedroom_air_humidifier # humidifier silent
icon: 'mdi:speedometer-slow'
show_icon: true
show_name: false
state:
- operator: template
value: >
[[[ return states['fan.bedroom_air_humidifier'].attributes.speed === 'Silent' ]]]
styles:
icon:
- color: 'var(--paper-item-icon-active-color)'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: call-service
service: fan.set_speed
service_data:
entity_id: fan.bedroom_air_humidifier
speed: Silent
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: fan.bedroom_air_humidifier # humidifier Medium
icon: 'mdi:speedometer-medium'
show_icon: true
show_name: false
state:
- operator: template
value: >
[[[ return states['fan.bedroom_air_humidifier'].attributes.speed === 'Medium' ]]]
styles:
icon:
- color: 'var(--paper-item-icon-active-color)'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: call-service
service: fan.set_speed
service_data:
entity_id: fan.bedroom_air_humidifier
speed: Medium
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: fan.bedroom_air_humidifier # humidifier High
icon: 'mdi:speedometer'
show_icon: true
show_name: false
state:
- operator: template
value: >
[[[ return states['fan.bedroom_air_humidifier'].attributes.speed === 'High' ]]]
styles:
icon:
- color: 'var(--paper-item-icon-active-color)'
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: call-service
service: fan.set_speed
service_data:
entity_id: fan.bedroom_air_humidifier
speed: High
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
type: horizontal-stack
- type: custom:mod-card # odkurzacz
report_size: 5
# style: |
# ha-card {
# background-color: var(--paper-card-background-color);
# border-radius: 4px;
# padding: 15px;
# }
card:
type: vertical-stack
cards:
- type: 'custom:vacuum-card'
entity: vacuum.zumba
show_name: false
style: |
:host {
background-color: var(--paper-card-background-color);
}
stats:
default:
- attribute: filter_left
unit: h
subtitle: filtr
- attribute: side_brush_left
unit: h
subtitle: b. szczotka
- attribute: main_brush_left
unit: h
subtitle: gł. szczotka
- attribute: sensor_dirty_left
unit: h
subtitle: czujniki
cleaning:
- attribute: cleaned_area
unit: m2
subtitle: powierzchnia
- attribute: cleaning_time
unit: min
subtitle: czas
actions:
- name: Salon
icon: 'mdi:sofa'
service: vacuum.send_command
service_data:
entity_id: vacuum.zumba
command: app_segment_clean
params: [22]
- name: Sypialnia
icon: 'mdi:bed-king-outline'
service: vacuum.send_command
service_data:
entity_id: vacuum.zumba
command: app_segment_clean
params: [16]
- name: Kuchnia
icon: 'mdi:fridge-outline'
service: vacuum.send_command
service_data:
entity_id: vacuum.zumba
command: app_segment_clean
params: [23]
- name: Jadalnia
icon: 'mdi:table-chair'
service: vacuum.send_command
service_data:
entity_id: vacuum.zumba
command: app_segment_clean
params: [17]
- name: Korytarz
icon: 'mdi:door'
service: vacuum.send_command
service_data:
entity_id: vacuum.zumba
command: app_segment_clean
params: [21]
- name: Łazienka
icon: 'mdi:shower'
service: vacuum.send_command
service_data:
entity_id: vacuum.zumba
command: app_segment_clean
params: [20]
- name: Biuro
icon: 'mdi:laptop'
service: vacuum.send_command
service_data:
entity_id: vacuum.zumba
command: app_segment_clean
params: [19]
# - type: "custom:button-card" # header
# name: Odkurzacz
# styles:
# name:
# - font-size: 20px
# - line-height: 1
# - font-weight: bold
# card:
# - box-shadow: none
# - height: 30px
# - type: entities
# show_header_toggle: false
# style: |
# ha-card {
# background: none;
# box-shadow: none;
# }
# .card-content {
# padding-bottom: 0px;
# padding-top: 0px;
# }
# .card-header {
# text-align: center;
# padding-top: 10px;
# padding-bottom: 10px;
# font-size: 20px;
# font-weight: bold;
# letter-spacing: '-0.01em';
# color: var(--primary-text-color);
# }
# .card-header .name {
# width: 100%;
# }
# entities:
# - entity: sensor.vacuum_status
# name: "status"
# - entity: sensor.vacuum_battery
# name: "bateria"
# - cards:
# - entity: vacuum.zumba # vacuum start
# icon: 'mdi:play'
# show_icon: true
# show_name: false
# state:
# - styles:
# icon:
# - color: 'var(--paper-item-icon-active-color) '
# value: 'on'
# styles:
# card:
# - height: 70px
# - border-radius: 4px
# - background-color: var(--primary-background-color)
# icon:
# - height: 80%
# - color: var(--primary-text-color)
# tap_action:
# action: call-service
# service: vacuum.start
# service_data:
# entity_id: vacuum.zumba
# haptic: light
# hold_action:
# action: more-info
# type: 'custom:button-card'
# - entity: vacuum.zumba # vacuum pause
# icon: 'mdi:pause'
# show_icon: true
# show_name: false
# state:
# - styles:
# icon:
# - color: 'var(--paper-item-icon-active-color) '
# value: 'on'
# styles:
# card:
# - height: 70px
# - border-radius: 4px
# - background-color: var(--primary-background-color)
# icon:
# - height: 80%
# - color: var(--primary-text-color)
# tap_action:
# action: call-service
# service: vacuum.pause
# service_data:
# entity_id: vacuum.zumba
# haptic: light
# hold_action:
# action: more-info
# type: 'custom:button-card'
# - entity: vacuum.zumba # vacuum stop
# icon: 'mdi:stop'
# show_icon: true
# show_name: false
# state:
# - styles:
# icon:
# - color: 'var(--paper-item-icon-active-color) '
# value: 'on'
# styles:
# card:
# - height: 70px
# - border-radius: 4px
# - background-color: var(--primary-background-color)
# icon:
# - height: 80%
# - color: var(--primary-text-color)
# tap_action:
# action: call-service
# service: vacuum.stop
# service_data:
# entity_id: vacuum.zumba
# haptic: light
# hold_action:
# action: more-info
# type: 'custom:button-card'
# - entity: vacuum.zumba # vacuum return
# icon: 'mdi:home'
# show_icon: true
# show_name: false
# state:
# - styles:
# icon:
# - color: 'var(--paper-item-icon-active-color) '
# value: 'on'
# styles:
# card:
# - height: 70px
# - border-radius: 4px
# - background-color: var(--primary-background-color)
# icon:
# - height: 80%
# - color: var(--primary-text-color)
# tap_action:
# action: call-service
# service: vacuum.return_to_base
# service_data:
# entity_id: vacuum.zumba
# haptic: light
# hold_action:
# action: more-info
# type: 'custom:button-card'
# - entity: vacuum.zumba # vacuum locate
# icon: 'mdi:bell-ring'
# show_icon: true
# show_name: false
# state:
# - styles:
# icon:
# - color: 'var(--paper-item-icon-active-color) '
# value: 'on'
# styles:
# card:
# - height: 70px
# - border-radius: 4px
# - background-color: var(--primary-background-color)
# icon:
# - height: 80%
# - color: var(--primary-text-color)
# tap_action:
# action: call-service
# service: vacuum.locate
# service_data:
# entity_id: vacuum.zumba
# haptic: light
# hold_action:
# action: more-info
# type: 'custom:button-card'
# type: horizontal-stack
- type: custom:mod-card # kaloryfery
report_size: 17
style: |
ha-card {
background-color: var(--paper-card-background-color);
border-radius: 4px;
padding: 15px;
}
card:
type: vertical-stack
cards:
- type: "custom:button-card"
name: Kaloryfery
styles:
name:
- font-size: 20px
- line-height: 1
- font-weight: bold
card:
- box-shadow: none
- height: 30px
- type: horizontal-stack
cards:
- entity: climate.livingroom_radiator # livingroom_setpoint minus
icon: 'mdi:minus'
show_icon: true
show_name: false
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: call-service
service: input_number.decrement
service_data:
entity_id: input_number.livingroom_setpoint
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: climate.livingroom_radiator # livingroom_setpoint value
icon: 'mdi:sofa'
show_icon: true
show_name: true
name: >
[[[
return parseFloat(states['input_number.livingroom_setpoint'].state) + '°C';
]]]
styles:
icon:
- color: var(--primary-text-color)
name:
- font-size: 20px
- line-height: 1
- margin-bottom: 5px
card:
- height: 70px
- box-shadow: none
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: climate.livingroom_radiator # livingroom_setpoint plus
icon: 'mdi:plus'
show_icon: true
show_name: false
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: call-service
service: input_number.increment
service_data:
entity_id: input_number.livingroom_setpoint
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- type: horizontal-stack
cards:
- entity: climate.office_radiator # office_setpoint minus
icon: 'mdi:minus'
show_icon: true
show_name: false
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: call-service
service: input_number.decrement
service_data:
entity_id: input_number.office_setpoint
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: climate.office_radiator # office_setpoint value
icon: 'mdi:laptop'
show_icon: true
show_name: true
name: >
[[[
return parseFloat(states['input_number.office_setpoint'].state) + '°C';
]]]
styles:
icon:
- color: var(--primary-text-color)
name:
- font-size: 20px
- line-height: 1
- margin-bottom: 5px
card:
- height: 70px
- box-shadow: none
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: climate.office_radiator # office_setpoint plus
icon: 'mdi:plus'
show_icon: true
show_name: false
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: call-service
service: input_number.increment
service_data:
entity_id: input_number.office_setpoint
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- type: horizontal-stack
cards:
- entity: climate.bedroom_radiator # bedroom_setpoint minus
icon: 'mdi:minus'
show_icon: true
show_name: false
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: call-service
service: input_number.decrement
service_data:
entity_id: input_number.bedroom_setpoint
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: climate.bedroom_radiator # bedroom_setpoint value
icon: 'mdi:bed-king-outline'
show_icon: true
show_name: true
name: >
[[[
return parseFloat(states['input_number.bedroom_setpoint'].state) + '°C';
]]]
styles:
icon:
- color: var(--primary-text-color)
name:
- font-size: 20px
- line-height: 1
- margin-bottom: 5px
card:
- height: 70px
- box-shadow: none
# - border-radius: 4px
# - background-color: var(--primary-background-color)
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
- entity: climate.bedroom_radiator # bedroom_setpoint plus
icon: 'mdi:plus'
show_icon: true
show_name: false
styles:
card:
- height: 70px
- border-radius: 4px
- background-color: var(--primary-background-color)
icon:
- height: 80%
- color: var(--primary-text-color)
tap_action:
action: call-service
service: input_number.increment
service_data:
entity_id: input_number.bedroom_setpoint
haptic: light
hold_action:
action: more-info
type: 'custom:button-card'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment