mirror of
https://github.com/GeorgeSG/sarah.git
synced 2025-12-28 20:30:29 +00:00
Simplify hallway dashboard and add bus info
This commit is contained in:
@@ -3,15 +3,316 @@ button_card_templates: !include_dir_merge_named lovelace/button_card_templates
|
||||
|
||||
title: Sarah
|
||||
views:
|
||||
- title: Sarah
|
||||
- title: Inside
|
||||
path: hallway_dashboard
|
||||
icon: mdi:tablet-dashboard
|
||||
background: '#333'
|
||||
panel: true
|
||||
cards:
|
||||
- type: custom:state-switch
|
||||
entity: input_select.hallway_dashboard_mode
|
||||
states:
|
||||
Home: !include lovelace/hallway_dashboard/at_home_dashboard.yaml
|
||||
Leaving: !include lovelace/hallway_dashboard/leaving_home_dashboard.yaml
|
||||
"Coming Home": !include lovelace/hallway_dashboard/coming_home_dashboard.yaml
|
||||
- type: custom:mod-card
|
||||
style:
|
||||
layout-card:
|
||||
$:
|
||||
horizontal-layout:
|
||||
$:
|
||||
.: |
|
||||
#columns {
|
||||
padding-left: 10px;
|
||||
margin: 0 20px;
|
||||
grid-gap: 20px;
|
||||
}
|
||||
card:
|
||||
type: custom:layout-card
|
||||
layout_type: custom:horizontal-layout
|
||||
layout:
|
||||
max_cols: 2
|
||||
cards:
|
||||
# Column 1
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: 'custom:simple-clock-card'
|
||||
hide_seconds: true
|
||||
font_size: 4rem
|
||||
paddingTop_size: 25px
|
||||
paddingBottom_size: 25px
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: v3_chip_person
|
||||
entity: input_boolean.georgi_home
|
||||
entity_picture: /local/images/people/georgi.jpg
|
||||
name: Georgi
|
||||
- type: custom:button-card
|
||||
template: v3_chip_person
|
||||
entity: input_boolean.player_2_home
|
||||
entity_picture: /local/images/people/maya.jpg
|
||||
name: Maya
|
||||
- type: custom:button-card
|
||||
template: v3_chip
|
||||
entity: sensor.average_temperature
|
||||
icon: mdi:thermometer
|
||||
- type: custom:button-card
|
||||
template: v3_chip
|
||||
entity: sensor.average_humidity
|
||||
icon: mdi:water-percent
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: v3_chip_name
|
||||
entity: group.all_motion_sensors
|
||||
icon: |
|
||||
[[[
|
||||
return entity.state === 'off' ? 'mdi:motion-sensor-off' : 'mdi:motion-sensor';
|
||||
]]]
|
||||
name: Motion
|
||||
tap_action:
|
||||
action: more-info
|
||||
- type: custom:button-card
|
||||
template: v3_chip_entity_count
|
||||
entity: sensor.open_window_count
|
||||
variables:
|
||||
entity_type: window
|
||||
icon: |
|
||||
[[[
|
||||
return entity.state === 0 ? 'mdi:window-closed' : 'mdi:window-open';
|
||||
]]]
|
||||
- type: custom:button-card
|
||||
template: v3_chip_entity_count
|
||||
entity: sensor.open_door_count
|
||||
variables:
|
||||
entity_type: door
|
||||
icon: |
|
||||
[[[
|
||||
return entity.state === 0 ? 'mdi:door-closed' : 'mdi:door-open';
|
||||
]]]
|
||||
|
||||
- type: custom:decluttering-card
|
||||
template: v3_section_title
|
||||
variables:
|
||||
- title: Modes & Devices
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: input_boolean.guest_mode
|
||||
tap_action:
|
||||
action: toggle
|
||||
- type: custom:button-card
|
||||
template: [v3_button, v3_tablet_button]
|
||||
entity: input_select.bedroom_mode
|
||||
name: Mode
|
||||
icon: mdi:bed
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: script.toggle_bedroom_mode
|
||||
- type: custom:button-card
|
||||
template: [v3_button_tv, v3_tablet_button]
|
||||
entity: media_player.living_room_tv
|
||||
name: TV
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: media_player.master_bedroom
|
||||
name: Sonos
|
||||
hold_action:
|
||||
action: call-service
|
||||
service: media_player.media_play_pause
|
||||
service_data:
|
||||
entity_id: media_player.master_bedroom
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: [v3_button_ac, v3_tablet_button]
|
||||
entity: climate.toshiba_ac
|
||||
name: AC
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: script.toshiba_ac_toggle
|
||||
- type: custom:button-card
|
||||
template: [v3_button_radiator, v3_tablet_button]
|
||||
entity: climate.living_room_valve
|
||||
name: "Living room"
|
||||
- type: custom:button-card
|
||||
template: [v3_button_radiator, v3_tablet_button]
|
||||
entity: climate.bedroom_radiator
|
||||
name: "Bedroom"
|
||||
- type: custom:button-card
|
||||
template: [v3_button_radiator, v3_tablet_button]
|
||||
entity: climate.kitchen_radiator_mode
|
||||
name: "Kitchen"
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
|
||||
- type: custom:button-card
|
||||
template: [v3_button_purifier, v3_tablet_button]
|
||||
entity: fan.philips_airpurifier
|
||||
name: Air Purifier
|
||||
- type: custom:button-card
|
||||
template: v3_button_brita_water
|
||||
variables:
|
||||
long_state: false
|
||||
styles:
|
||||
card:
|
||||
- width: 100px
|
||||
- height: 100px
|
||||
- border-radius: 16px
|
||||
icon:
|
||||
- top: 4px
|
||||
- left: 12px
|
||||
- width: 20px
|
||||
- height: 20px
|
||||
- --mdc-icon-size: 20px
|
||||
state:
|
||||
- bottom: 4px
|
||||
- left: 12px
|
||||
name:
|
||||
- left: 12px
|
||||
- bottom: 22px
|
||||
- width: 60px
|
||||
- font-size: 13px
|
||||
|
||||
# Column 2
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: custom:decluttering-card
|
||||
template: v3_section_title
|
||||
variables:
|
||||
- title: Lights
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: light.living_room
|
||||
name: Living room
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: light.living_room_main
|
||||
name: Main
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: light.hue_ambiance_7
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: light.living_room_ambient
|
||||
name: Ambient
|
||||
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: light.master_bedroom
|
||||
name: Bedroom
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: light.master_bedroom_main
|
||||
name: Main
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: light.bedside
|
||||
name: Bedside
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: light.kitchen
|
||||
name: Kitchen
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: light.bathroom
|
||||
name: Bath
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: light.hallway_main
|
||||
name: Hallway
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: light.hallway_entrance
|
||||
name: Entrance
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: light.tradfri_large
|
||||
name: G. Bedroom
|
||||
- !include ./lovelace/popup_cards.yaml
|
||||
|
||||
- title: Outside
|
||||
background: '#333'
|
||||
panel: true
|
||||
cards:
|
||||
- type: custom:mod-card
|
||||
style:
|
||||
layout-card:
|
||||
$:
|
||||
horizontal-layout:
|
||||
$:
|
||||
.: |
|
||||
#columns {
|
||||
padding-left: 10px;
|
||||
margin: 0 20px;
|
||||
grid-gap: 20px;
|
||||
}
|
||||
card:
|
||||
type: custom:layout-card
|
||||
layout_type: custom:horizontal-layout
|
||||
layout:
|
||||
max_cols: 2
|
||||
cards:
|
||||
# Column 1
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: 'custom:simple-clock-card'
|
||||
hide_seconds: true
|
||||
font_size: 4rem
|
||||
paddingTop_size: 25px
|
||||
paddingBottom_size: 25px
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: v3_chip_person
|
||||
entity: input_boolean.georgi_home
|
||||
entity_picture: /local/images/people/georgi.jpg
|
||||
name: Georgi
|
||||
- type: custom:button-card
|
||||
template: v3_chip_person
|
||||
entity: input_boolean.player_2_home
|
||||
entity_picture: /local/images/people/maya.jpg
|
||||
name: Maya
|
||||
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:decluttering-card
|
||||
template: bus_departure
|
||||
variables:
|
||||
- title: Bus 1 (1257)
|
||||
- entity: sensor.sofia_traffic_bus_1
|
||||
- empty: No upcoming buses
|
||||
- type: custom:decluttering-card
|
||||
template: bus_departure
|
||||
variables:
|
||||
- title: Bus 5 (1257)
|
||||
- entity: sensor.sofia_traffic_bus_5
|
||||
- empty: No upcoming buses
|
||||
- type: custom:decluttering-card
|
||||
template: bus_departure
|
||||
variables:
|
||||
- title: Bus 6 (1257)
|
||||
- entity: sensor.sofia_traffic_bus_6
|
||||
- empty: No upcoming buses
|
||||
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:decluttering-card
|
||||
template: bus_departure
|
||||
variables:
|
||||
- title: Metro M1
|
||||
- entity: sensor.sofia_traffic_subway_m1
|
||||
- empty: No upcoming trains
|
||||
- type: custom:decluttering-card
|
||||
template: bus_departure
|
||||
variables:
|
||||
- title: Metro M4
|
||||
- entity: sensor.sofia_traffic_subway_m4
|
||||
- empty: No upcoming trains
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: custom:decluttering-card
|
||||
template: stacked-weather
|
||||
- type: custom:horizon-card
|
||||
darkMode: true
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
hallway_dashboard_mode:
|
||||
template: [small]
|
||||
entity: input_select.hallway_dashboard_mode
|
||||
show_state: true
|
||||
show_name: false
|
||||
styles:
|
||||
state:
|
||||
- position: relative
|
||||
- top: -6px
|
||||
icon:
|
||||
- position: relative
|
||||
- top: -2px
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: input_select.select_next
|
||||
service_data:
|
||||
entity_id: input_select.hallway_dashboard_mode
|
||||
13
config/lovelace/decluttering_templates/bus_departure.yaml
Normal file
13
config/lovelace/decluttering_templates/bus_departure.yaml
Normal file
@@ -0,0 +1,13 @@
|
||||
bus_departure:
|
||||
card:
|
||||
type: markdown
|
||||
content: >
|
||||
### [[title]]
|
||||
{% set departures = states('[[entity]]') | from_json %}
|
||||
{% if departures %}
|
||||
- {% if departures | length >= 1 %}{{ departures[0] }} min<br />{% endif %}
|
||||
- {% if departures | length >= 2 %}{{ departures[1] }} min<br />{% endif %}
|
||||
- {% if departures | length >= 3 %}{{ departures[2] }} min<br />{% endif %}
|
||||
{% else %}
|
||||
_[[empty]]_
|
||||
{% endif %}
|
||||
@@ -1,260 +0,0 @@
|
||||
type: custom:mod-card
|
||||
style:
|
||||
layout-card:
|
||||
$:
|
||||
horizontal-layout:
|
||||
$:
|
||||
.: |
|
||||
#columns {
|
||||
padding-left: 10px;
|
||||
margin: 0 20px;
|
||||
grid-gap: 20px;
|
||||
}
|
||||
card:
|
||||
type: custom:layout-card
|
||||
layout_type: custom:horizontal-layout
|
||||
layout:
|
||||
max_cols: 2
|
||||
cards:
|
||||
# Column 1
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: 'custom:simple-clock-card'
|
||||
hide_seconds: true
|
||||
font_size: 4rem
|
||||
paddingTop_size: 0px
|
||||
paddingBottom_size: 0px
|
||||
style: |
|
||||
ha-card {
|
||||
background: none;
|
||||
box-shadow: none;
|
||||
margin-top: 30px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: v3_chip_person
|
||||
entity: input_boolean.georgi_home
|
||||
entity_picture: /local/images/people/georgi.jpg
|
||||
name: Georgi
|
||||
- type: custom:button-card
|
||||
template: v3_chip_person
|
||||
entity: input_boolean.player_2_home
|
||||
entity_picture: /local/images/people/maya.jpg
|
||||
name: Maya
|
||||
- type: custom:button-card
|
||||
template: v3_chip
|
||||
entity: sensor.average_temperature
|
||||
icon: mdi:thermometer
|
||||
- type: custom:button-card
|
||||
template: v3_chip
|
||||
entity: sensor.average_humidity
|
||||
icon: mdi:water-percent
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: v3_chip_name
|
||||
entity: group.all_motion_sensors
|
||||
icon: |
|
||||
[[[
|
||||
return entity.state === 'off' ? 'mdi:motion-sensor-off' : 'mdi:motion-sensor';
|
||||
]]]
|
||||
name: Motion
|
||||
tap_action:
|
||||
action: more-info
|
||||
- type: custom:button-card
|
||||
template: v3_chip_entity_count
|
||||
entity: sensor.open_window_count
|
||||
variables:
|
||||
entity_type: window
|
||||
icon: |
|
||||
[[[
|
||||
return entity.state === 0 ? 'mdi:window-closed' : 'mdi:window-open';
|
||||
]]]
|
||||
- type: custom:button-card
|
||||
template: v3_chip_entity_count
|
||||
entity: sensor.open_door_count
|
||||
variables:
|
||||
entity_type: door
|
||||
icon: |
|
||||
[[[
|
||||
return entity.state === 0 ? 'mdi:door-closed' : 'mdi:door-open';
|
||||
]]]
|
||||
|
||||
- type: custom:decluttering-card
|
||||
template: v3_section_title
|
||||
variables:
|
||||
- title: Modes & Devices
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: input_select.hallway_dashboard_mode
|
||||
name: Mode
|
||||
styles:
|
||||
card:
|
||||
- background-color: var(--primary-color)
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: input_select.select_next
|
||||
service_data:
|
||||
entity_id: input_select.hallway_dashboard_mode
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: input_boolean.guest_mode
|
||||
tap_action:
|
||||
action: toggle
|
||||
- type: custom:button-card
|
||||
template: [v3_button, v3_tablet_button]
|
||||
entity: input_select.bedroom_mode
|
||||
name: Mode
|
||||
icon: mdi:bed
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: script.toggle_bedroom_mode
|
||||
- type: custom:button-card
|
||||
template: [v3_button_tv, v3_tablet_button]
|
||||
entity: media_player.living_room_tv
|
||||
name: TV
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: [v3_button_ac, v3_tablet_button]
|
||||
entity: climate.toshiba_ac
|
||||
name: AC
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: script.toshiba_ac_toggle
|
||||
- type: custom:button-card
|
||||
template: [v3_button_radiator, v3_tablet_button]
|
||||
entity: climate.living_room_valve
|
||||
name: "Living room"
|
||||
- type: custom:button-card
|
||||
template: [v3_button_radiator, v3_tablet_button]
|
||||
entity: climate.bedroom_radiator
|
||||
name: "Bedroom"
|
||||
- type: custom:button-card
|
||||
template: [v3_button_radiator, v3_tablet_button]
|
||||
entity: climate.kitchen_radiator_mode
|
||||
name: "Kitchen"
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: media_player.master_bedroom
|
||||
name: Sonos
|
||||
hold_action:
|
||||
action: call-service
|
||||
service: media_player.media_play_pause
|
||||
service_data:
|
||||
entity_id: media_player.master_bedroom
|
||||
- type: custom:button-card
|
||||
template: [v3_button_cover, v3_tablet_button]
|
||||
entity: cover.living_room
|
||||
name: LR Blinds
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: script.toggle_living_room_cover
|
||||
- type: custom:button-card
|
||||
template: [v3_button_purifier, v3_tablet_button]
|
||||
entity: fan.philips_airpurifier
|
||||
name: Air Purifier
|
||||
- type: custom:button-card
|
||||
template: v3_button_brita_water
|
||||
variables:
|
||||
long_state: false
|
||||
styles:
|
||||
card:
|
||||
- width: 100px
|
||||
- height: 100px
|
||||
- border-radius: 16px
|
||||
icon:
|
||||
- top: 4px
|
||||
- left: 12px
|
||||
- width: 20px
|
||||
- height: 20px
|
||||
- --mdc-icon-size: 20px
|
||||
state:
|
||||
- bottom: 4px
|
||||
- left: 12px
|
||||
name:
|
||||
- left: 12px
|
||||
- bottom: 22px
|
||||
- width: 60px
|
||||
- font-size: 13px
|
||||
|
||||
# Column 2
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: custom:decluttering-card
|
||||
template: stacked-weather
|
||||
- type: custom:decluttering-card
|
||||
template: v3_section_title
|
||||
variables:
|
||||
- title: Lights
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: v3_xs_button
|
||||
entity: light.living_room
|
||||
name: Living room
|
||||
- type: custom:button-card
|
||||
template: v3_xs_button
|
||||
entity: light.living_room_main
|
||||
name: Main
|
||||
- type: custom:button-card
|
||||
template: v3_xs_button
|
||||
entity: light.hue_ambiance_7
|
||||
- type: custom:button-card
|
||||
template: v3_xs_button
|
||||
entity: light.living_room_ambient
|
||||
name: Ambient
|
||||
- type: custom:button-card
|
||||
template: v3_xs_button
|
||||
entity: script.living_room_candle_on
|
||||
name: Candles
|
||||
icon: mdi:candle
|
||||
show_state: false
|
||||
tap_action:
|
||||
action: more-info
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: v3_xs_button
|
||||
entity: light.master_bedroom
|
||||
name: Bedroom
|
||||
- type: custom:button-card
|
||||
template: v3_xs_button
|
||||
entity: light.master_bedroom_main
|
||||
name: Main
|
||||
- type: custom:button-card
|
||||
template: v3_xs_button
|
||||
entity: light.bedside
|
||||
name: Bedside
|
||||
- type: custom:button-card
|
||||
template: v3_xs_button
|
||||
entity: light.kitchen
|
||||
name: Kitchen
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: v3_xs_button
|
||||
entity: light.bathroom
|
||||
name: Bath
|
||||
- type: custom:button-card
|
||||
template: v3_xs_button
|
||||
entity: light.hallway_main
|
||||
name: Hallway
|
||||
- type: custom:button-card
|
||||
template: v3_xs_button
|
||||
entity: light.hallway_entrance
|
||||
name: Entrance
|
||||
- type: custom:button-card
|
||||
template: v3_xs_button
|
||||
entity: light.tradfri_large
|
||||
name: G. Bedroom
|
||||
|
||||
|
||||
- !include ../popup_cards.yaml
|
||||
@@ -1,325 +0,0 @@
|
||||
type: custom:mod-card
|
||||
style:
|
||||
layout-card:
|
||||
$:
|
||||
horizontal-layout:
|
||||
$:
|
||||
.: |
|
||||
#columns {
|
||||
padding-left: 10px;
|
||||
margin: 0 20px;
|
||||
grid-gap: 20px;
|
||||
}
|
||||
card:
|
||||
type: custom:layout-card
|
||||
layout_type: custom:horizontal-layout
|
||||
layout:
|
||||
max_cols: 2
|
||||
cards:
|
||||
# Column 1
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: custom:decluttering-card
|
||||
template: v3_section_title
|
||||
variables:
|
||||
- title: Welcome!
|
||||
- type: markdown
|
||||
content: !include ../../templates/partials/tasks.yaml
|
||||
|
||||
- type: 'custom:simple-clock-card'
|
||||
hide_seconds: true
|
||||
font_size: 4rem
|
||||
paddingTop_size: 0px
|
||||
paddingBottom_size: 0px
|
||||
style: |
|
||||
ha-card {
|
||||
background: none;
|
||||
box-shadow: none;
|
||||
margin-top: 30px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: v3_chip_person
|
||||
entity: input_boolean.georgi_home
|
||||
entity_picture: /local/images/people/georgi.jpg
|
||||
name: Georgi
|
||||
- type: custom:button-card
|
||||
template: v3_chip_person
|
||||
entity: input_boolean.player_2_home
|
||||
entity_picture: /local/images/people/maya.jpg
|
||||
name: Maya
|
||||
- type: custom:button-card
|
||||
template: v3_chip
|
||||
entity: sensor.average_temperature
|
||||
icon: mdi:thermometer
|
||||
- type: custom:button-card
|
||||
template: v3_chip
|
||||
entity: sensor.average_humidity
|
||||
icon: mdi:water-percent
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: v3_chip_name
|
||||
entity: group.all_motion_sensors
|
||||
icon: |
|
||||
[[[
|
||||
return entity.state === 'off' ? 'mdi:motion-sensor-off' : 'mdi:motion-sensor';
|
||||
]]]
|
||||
name: Motion
|
||||
tap_action:
|
||||
action: more-info
|
||||
- type: custom:button-card
|
||||
template: v3_chip_entity_count
|
||||
entity: sensor.open_window_count
|
||||
variables:
|
||||
entity_type: window
|
||||
icon: |
|
||||
[[[
|
||||
return entity.state === 0 ? 'mdi:window-closed' : 'mdi:window-open';
|
||||
]]]
|
||||
- type: custom:button-card
|
||||
template: v3_chip_entity_count
|
||||
entity: sensor.open_door_count
|
||||
variables:
|
||||
entity_type: door
|
||||
icon: |
|
||||
[[[
|
||||
return entity.state === 0 ? 'mdi:door-closed' : 'mdi:door-open';
|
||||
]]]
|
||||
|
||||
- type: custom:decluttering-card
|
||||
template: v3_section_title
|
||||
variables:
|
||||
- title: Modes & Devices
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: input_select.hallway_dashboard_mode
|
||||
name: Mode
|
||||
styles:
|
||||
card:
|
||||
- background-color: var(--primary-color)
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: input_select.select_next
|
||||
service_data:
|
||||
entity_id: input_select.hallway_dashboard_mode
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: input_boolean.simulation_mode
|
||||
name: Simulation
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: input_boolean.guest_mode
|
||||
tap_action:
|
||||
action: toggle
|
||||
- type: custom:button-card
|
||||
template: [v3_button_cover, v3_tablet_button]
|
||||
entity: cover.living_room
|
||||
name: LR Blinds
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: script.toggle_living_room_cover
|
||||
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: [v3_button_ac, v3_tablet_button]
|
||||
entity: climate.toshiba_ac
|
||||
name: AC
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: script.toshiba_ac_toggle
|
||||
- type: custom:button-card
|
||||
template: [v3_button_radiator, v3_tablet_button]
|
||||
entity: climate.living_room_valve
|
||||
name: "Living room"
|
||||
- type: custom:button-card
|
||||
template: [v3_button_radiator, v3_tablet_button]
|
||||
entity: climate.bedroom_radiator
|
||||
name: "Bedroom"
|
||||
- type: custom:button-card
|
||||
template: [v3_button_radiator, v3_tablet_button]
|
||||
entity: climate.kitchen_radiator_mode
|
||||
name: "Kitchen"
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: [v3_button_tv, v3_tablet_button]
|
||||
entity: media_player.living_room_tv
|
||||
name: TV
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: switch.cadmium
|
||||
- type: custom:button-card
|
||||
template: [v3_button_purifier, v3_tablet_button]
|
||||
entity: fan.philips_airpurifier
|
||||
name: Air Purifier
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: vacuum.vacuum
|
||||
name: Vacuum
|
||||
|
||||
# Column 2
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: custom:decluttering-card
|
||||
template: v3_section_title
|
||||
variables:
|
||||
- title: Lights
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: light.living_room
|
||||
name: Living room
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: light.living_room_main
|
||||
name: Main
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: light.hue_ambiance_7
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: light.living_room_ambient
|
||||
name: Ambient
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: light.master_bedroom
|
||||
name: Bedroom
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: light.master_bedroom_main
|
||||
name: Main
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: light.bedside
|
||||
name: Bedside
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: light.kitchen
|
||||
name: Kitchen
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: light.bathroom
|
||||
name: Bath
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: light.hallway_main
|
||||
name: Hallway
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: light.hallway_entrance
|
||||
name: Entrance
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: light.tradfri_large
|
||||
name: G. Bedroom
|
||||
|
||||
- type: custom:decluttering-card
|
||||
template: v3_section_title
|
||||
variables:
|
||||
- title: Media
|
||||
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: v3_xs_button
|
||||
entity: media_player.master_bedroom
|
||||
name: Sonos
|
||||
hold_action:
|
||||
action: call-service
|
||||
service: media_player.media_play_pause
|
||||
service_data:
|
||||
entity_id: media_player.master_bedroom
|
||||
- type: custom:button-card
|
||||
template: v3_xs_button
|
||||
show_state: false
|
||||
entity: script.sonos_volume_10
|
||||
icon: mdi:volume-medium
|
||||
name: Vol 10
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: script.sonos_volume_10
|
||||
- type: custom:button-card
|
||||
template: v3_xs_button
|
||||
show_state: false
|
||||
entity: script.sonos_volume_20
|
||||
icon: mdi:volume-high
|
||||
name: Vol 20
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: script.sonos_volume_20
|
||||
- type: custom:button-card
|
||||
template: v3_xs_button
|
||||
entity: binary_sensor.sonos_is_bedroom_master
|
||||
name: Bedroom
|
||||
icon: mdi:speaker-multiple
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: script.sonos_join_bedroom
|
||||
- type: custom:button-card
|
||||
template: v3_xs_button
|
||||
entity: binary_sensor.sonos_is_living_room_master
|
||||
name: TV
|
||||
icon: mdi:speaker-multiple
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: script.sonos_join_tv
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: v3_xs_button
|
||||
entity: script.music_play
|
||||
name: Chill
|
||||
icon: mdi:music
|
||||
tap_action:
|
||||
action: toggle
|
||||
- type: custom:button-card
|
||||
template: v3_xs_button
|
||||
entity: script.music_play
|
||||
name: Chill 2
|
||||
icon: mdi:music
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: script.music_play
|
||||
service_data:
|
||||
playlist: "Songs for a Romantic Evening"
|
||||
shuffle: true
|
||||
volume_level: 0.1
|
||||
- type: custom:button-card
|
||||
template: v3_xs_button
|
||||
entity: script.music_play
|
||||
name: Jazz
|
||||
icon: mdi:music
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: script.music_play
|
||||
service_data:
|
||||
playlist: "Smooth Romantic Evening"
|
||||
shuffle: true
|
||||
volume_level: 0.1
|
||||
- type: custom:button-card
|
||||
template: v3_xs_button
|
||||
entity: script.music_play
|
||||
name: Retro
|
||||
icon: mdi:music
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: script.music_play
|
||||
service_data:
|
||||
playlist: "Retro"
|
||||
styles:
|
||||
card:
|
||||
- margin-bottom: 8px
|
||||
|
||||
- !include ../popup_cards.yaml
|
||||
@@ -1,125 +0,0 @@
|
||||
type: custom:mod-card
|
||||
style:
|
||||
layout-card:
|
||||
$:
|
||||
horizontal-layout:
|
||||
$:
|
||||
.: |
|
||||
#columns {
|
||||
padding-left: 10px;
|
||||
margin: 0 20px;
|
||||
grid-gap: 20px;
|
||||
}
|
||||
card:
|
||||
type: custom:layout-card
|
||||
layout_type: custom:horizontal-layout
|
||||
layout:
|
||||
max_cols: 2
|
||||
cards:
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: 'custom:simple-clock-card'
|
||||
hide_seconds: true
|
||||
font_size: 4rem
|
||||
paddingTop_size: 0px
|
||||
paddingBottom_size: 0px
|
||||
style: |
|
||||
ha-card {
|
||||
background: none;
|
||||
box-shadow: none;
|
||||
margin-top: 30px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: v3_chip_person
|
||||
entity: input_boolean.georgi_home
|
||||
entity_picture: /local/images/people/georgi.jpg
|
||||
name: Georgi
|
||||
- type: custom:button-card
|
||||
template: v3_chip_person
|
||||
entity: input_boolean.player_2_home
|
||||
entity_picture: /local/images/people/maya.jpg
|
||||
name: Maya
|
||||
- type: custom:button-card
|
||||
template: v3_chip
|
||||
entity: sensor.average_temperature
|
||||
icon: mdi:thermometer
|
||||
- type: custom:button-card
|
||||
template: v3_chip
|
||||
entity: sensor.average_humidity
|
||||
icon: mdi:water-percent
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: v3_chip_name
|
||||
entity: group.all_motion_sensors
|
||||
icon: |
|
||||
[[[
|
||||
return entity.state === 'off' ? 'mdi:motion-sensor-off' : 'mdi:motion-sensor';
|
||||
]]]
|
||||
name: Motion
|
||||
tap_action:
|
||||
action: more-info
|
||||
- type: custom:button-card
|
||||
template: v3_chip_entity_count
|
||||
entity: sensor.open_window_count
|
||||
variables:
|
||||
entity_type: window
|
||||
icon: |
|
||||
[[[
|
||||
return entity.state === 0 ? 'mdi:window-closed' : 'mdi:window-open';
|
||||
]]]
|
||||
|
||||
- type: custom:button-card
|
||||
template: v3_chip_entity_count
|
||||
entity: sensor.open_door_count
|
||||
variables:
|
||||
entity_type: door
|
||||
icon: |
|
||||
[[[
|
||||
return entity.state === 0 ? 'mdi:door-closed' : 'mdi:door-open';
|
||||
]]]
|
||||
|
||||
|
||||
- type: custom:decluttering-card
|
||||
template: v3_section_title
|
||||
variables:
|
||||
- title: Modes & Devices
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: input_select.hallway_dashboard_mode
|
||||
name: Mode
|
||||
styles:
|
||||
card:
|
||||
- background-color: var(--primary-color)
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: input_select.select_next
|
||||
service_data:
|
||||
entity_id: input_select.hallway_dashboard_mode
|
||||
- type: custom:button-card
|
||||
template: [v3_button_cover, v3_tablet_button]
|
||||
entity: cover.living_room
|
||||
name: LR Blinds
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: script.toggle_living_room_cover
|
||||
- type: custom:button-card
|
||||
template: v3_tablet_button
|
||||
entity: input_boolean.simulation_mode
|
||||
name: Simulation
|
||||
|
||||
|
||||
- type: custom:horizon-card
|
||||
darkMode: true
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: custom:decluttering-card
|
||||
template: stacked-weather
|
||||
|
||||
- !include ../popup_cards.yaml
|
||||
@@ -1,46 +0,0 @@
|
||||
input_select:
|
||||
hallway_dashboard_mode:
|
||||
name: Hallway dashboard mode
|
||||
icon: mdi:tablet-dashboard
|
||||
options:
|
||||
- "Home"
|
||||
- "Leaving"
|
||||
- "Coming Home"
|
||||
|
||||
automation:
|
||||
- alias: "Hallway tablet · Set to home after 10 minutes"
|
||||
trigger:
|
||||
platform: state
|
||||
entity_id: binary_sensor.someone_home
|
||||
to: "on"
|
||||
for:
|
||||
minutes: 10
|
||||
action:
|
||||
- service: input_select.select_option
|
||||
entity_id: input_select.hallway_dashboard_mode
|
||||
data:
|
||||
option: "Home"
|
||||
|
||||
- alias: Hallway tablet · Leaving · Goodbye after door opened
|
||||
trigger:
|
||||
platform: state
|
||||
entity_id: input_select.hallway_dashboard_mode
|
||||
to: "Leaving"
|
||||
condition:
|
||||
condition: state
|
||||
entity_id: input_boolean.guest_bedroom
|
||||
state: "off"
|
||||
action:
|
||||
- service: script.say
|
||||
data:
|
||||
message: "Waiting for front door to open. Have a great time!"
|
||||
- wait_for_trigger:
|
||||
- platform: state
|
||||
entity_id: binary_sensor.front_door_contact
|
||||
to: "on"
|
||||
timeout:
|
||||
minutes: 5
|
||||
continue_on_timeout: false
|
||||
- service: script.say
|
||||
data:
|
||||
message: "Goodbye!"
|
||||
47
config/packages/modules/sofia_traffic.yaml
Normal file
47
config/packages/modules/sofia_traffic.yaml
Normal file
@@ -0,0 +1,47 @@
|
||||
# for some reason this is needed to update the sensors below.. scan_interval doesnt work
|
||||
automation:
|
||||
- alias: Sofia Traffic - Bus Departure
|
||||
triggers:
|
||||
trigger: time_pattern
|
||||
seconds: "/10"
|
||||
action:
|
||||
action: homeassistant.update_entity
|
||||
target:
|
||||
entity_id:
|
||||
- sensor.sofia_traffic_subway_m1
|
||||
- sensor.sofia_traffic_subway_m4
|
||||
- sensor.sofia_traffic_bus_1
|
||||
- sensor.sofia_traffic_bus_5
|
||||
- sensor.sofia_traffic_bus_6
|
||||
|
||||
sensor:
|
||||
- platform: rest
|
||||
name: sofia_traffic_subway_m1
|
||||
resource: http://192.168.0.27:3013/departures?stop=10&line=M1
|
||||
method: GET
|
||||
value_template: "{{ value_json }}"
|
||||
scan_interval: 60
|
||||
- platform: rest
|
||||
name: sofia_traffic_subway_m4
|
||||
resource: http://192.168.0.27:3013/departures?stop=10&line=M4
|
||||
method: GET
|
||||
value_template: "{{ value_json }}"
|
||||
scan_interval: 60
|
||||
- platform: rest
|
||||
name: sofia_traffic_bus_1
|
||||
resource: http://192.168.0.27:3013/departures?stop=1257&line=1
|
||||
method: GET
|
||||
value_template: "{{ value_json }}"
|
||||
scan_interval: 60
|
||||
- platform: rest
|
||||
name: sofia_traffic_bus_5
|
||||
resource: http://192.168.0.27:3013/departures?stop=1257&line=5
|
||||
method: GET
|
||||
value_template: "{{ value_json }}"
|
||||
scan_interval: 60
|
||||
- platform: rest
|
||||
name: sofia_traffic_bus_6
|
||||
resource: http://192.168.0.27:3013/departures?stop=1257&line=6
|
||||
method: GET
|
||||
value_template: "{{ value_json }}"
|
||||
scan_interval: 60
|
||||
@@ -11,11 +11,6 @@ script:
|
||||
routine_coming_home:
|
||||
alias: Routine · Coming home
|
||||
sequence:
|
||||
- service: input_select.select_option
|
||||
entity_id: input_select.hallway_dashboard_mode
|
||||
data:
|
||||
option: "Coming Home"
|
||||
|
||||
# Lights
|
||||
- service: light.turn_on
|
||||
entity_id:
|
||||
|
||||
@@ -22,11 +22,6 @@ script:
|
||||
|
||||
- service: script.browsers_low
|
||||
|
||||
- service: input_select.select_option
|
||||
entity_id: input_select.hallway_dashboard_mode
|
||||
data:
|
||||
option: "Coming Home"
|
||||
|
||||
- service: cover.close_cover
|
||||
entity_id: cover.living_room
|
||||
|
||||
|
||||
Reference in New Issue
Block a user