- type: custom:mod-card style: layout-card: $: .: | #columns { padding: 0 10px; } #columns .column { padding: 0 10px; } card: type: custom:layout-card layout: horizontal max_columns: 3 cards: # Column 1 - type: vertical-stack cards: - type: vertical-stack title: Lights cards: - type: horizontal-stack cards: - type: custom:button-card template: half icon: none entity: light.all name: All - type: custom:button-card template: half icon: none entity: light.ceiling name: Ceiling - type: horizontal-stack cards: - type: custom:button-card template: default entity: light.living_room name: Living room - type: custom:button-card template: default entity: light.living_room_main name: Main - type: custom:button-card template: default entity: light.light_avatar_small_2 - type: custom:button-card template: default entity: light.living_room_ambient name: Ambient - type: horizontal-stack cards: - type: custom:button-card template: default entity: light.master_bedroom name: Bedroom - type: custom:button-card template: default entity: light.master_bedroom_main name: Main - type: custom:button-card template: default entity: light.bed_led name: Bed - type: custom:button-card template: default entity: light.bedside name: Bedside - type: horizontal-stack cards: - type: custom:button-card template: default entity: light.tuya_kitchen name: Kitchen - type: custom:button-card template: default entity: light.tuya_hallway_main name: Hallway - type: custom:button-card template: default entity: light.hallway_entrance name: Entrance - type: horizontal-stack title: Manual controls cards: - type: custom:button-card template: - default - with_state_indicator entity: input_boolean.alarm_enabled state_display: >- [[[ const time = states['input_datetime.alarm_time'].state; return time.split(':').slice(0, -1).join(':'); ]]] show_state: true show_name: false styles: icon: - transform: translateY(-8px) # adjusted for state indicator size state: - transform: translateY(-13px) # adjusted for state indicator size variables: state_indicator_id: automation.alarm_set_time - type: custom:button-card template: default entity: input_boolean.speech_notifications name: Speech - type: custom:button-card template: default entity: binary_sensor.house_mode tap_action: action: call-service service: input_select.select_next service_data: entity_id: input_select.house_mode - type: custom:button-card template: default entity: input_boolean.guest_mode tap_action: action: toggle - type: vertical-stack title: Devices cards: - type: horizontal-stack cards: - type: custom:button-card template: small entity: media_player.living_room_tv name: TV icon: mdi:television tap_action: action: toggle state: - value: 'playing' styles: &on_styles card: - background-color: var(--primary-color) - color: black icon: - color: black - value: 'standby' styles: *on_styles - value: 'on' styles: *on_styles - value: 'home' styles: *on_styles - value: 'idle' styles: *on_styles - type: custom:button-card template: - default - with_state_indicator entity: switch.titanium variables: state_indicator_id: automation.titanium_turn_off_when_idle - type: custom:button-card template: default entity: sensor.synology_type_volume_1 name: Platinum icon: mdi:nas tap_action: action: more-info - type: custom:button-card template: default entity: binary_sensor.pi_hole_enabled name: Pi-Hole icon: mdi:pi-hole - type: horizontal-stack cards: - type: custom:button-card template: default entity: climate.toshiba_ac name: AC state: - value: 'off' operator: '!=' styles: card: - background-color: var(--primary-color) - color: black icon: - color: black tap_action: action: call-service service: script.toshiba_ac_toggle_cool - type: custom:button-card template: default entity: switch.camera name: Camera - type: custom:button-card template: - default - with_state_indicator entity: fan.philips_airpurifier variables: state_indicator_id: binary_sensor.purifier_filter_needs_change state_indicator_size: 5px state_indicator_off_size: 0px state_indicator_on_color: var(--color-red) state_on_indicator_on_color: var(--color-red) - type: custom:decluttering-card template: brita_water_card # Column 2 - type: vertical-stack cards: - type: vertical-stack cards: - type: vertical-stack title: Sensors cards: - type: horizontal-stack cards: - type: custom:button-card template: default entity: binary_sensor.multisensor_motion name: Living room - type: custom:button-card template: default entity: binary_sensor.trisensor_motion name: Desk - type: custom:button-card template: - default - with_state_indicator entity: binary_sensor.kitchen_motion_occupancy name: Kitchen variables: state_indicator_id: automation.lighting_kitchen_day_mode_motion_turn_lights_on - type: custom:button-card template: - default - with_state_indicator entity: binary_sensor.hallway_motion_occupancy name: Hallway variables: state_indicator_id: automation.lighting_hallway_day_mode_motion_turn_lights_on - type: horizontal-stack cards: - type: custom:button-card template: default entity: binary_sensor.living_room_right_window name: Living room - type: custom:button-card template: default entity: binary_sensor.bedroom_left_window name: Bedroom left - type: custom:button-card template: default entity: binary_sensor.bedroom_right_window name: Bedroom right - type: custom:button-card template: default entity: binary_sensor.kitchen_window name: Kitchen - type: horizontal-stack cards: - type: custom:button-card template: default entity: binary_sensor.front_door - type: custom:button-card template: default entity: binary_sensor.bedroom_door - type: horizontal-stack cards: - type: custom:button-card template: default entity: binary_sensor.georgi_home tap_action: action: call-service service: input_boolean.toggle service_data: entity_id: input_boolean.georgi_home - type: entity entity: device_tracker.mikrotik_carbon name: Wifi - type: entity entity: device_tracker.carbon name: GPS - type: vertical-stack title: Climate cards: - type: horizontal-stack cards: - type: custom:button-card template: - small - progress entity: sensor.average_temperature icon: mdi:thermometer state_display: "[[[ return Math.round(entity.state) + ' °C' ]]]" - type: custom:button-card template: - small - progress entity: sensor.average_humidity icon: mdi:water-percent state_display: "[[[ return Math.round(entity.state) + ' %' ]]]" variables: min_value: 25 max_value: 90 normal_value: 40 high_value: 65 low_color: "var(--color-red)" # Column 3 - type: vertical-stack cards: - type: vertical-stack cards: - type: custom:decluttering-card template: media_with_controls variables: - player: media_player.master_bedroom - player_name: Bathroom - type: custom:decluttering-card template: sonos_media_player_small variables: - player: media_player.living_room - name: Living room - type: custom:decluttering-card template: sonos_media_player_small variables: - player: media_player.kitchen - name: Kitchen - type: custom:decluttering-card template: sonos_media_player_small variables: - player: media_player.bathroom - name: Bathroom