From 01872f4cb57da153e746ac0c52b59bc6b91448f0 Mon Sep 17 00:00:00 2001 From: Claus Dethlefsen Date: Wed, 8 Apr 2026 16:36:11 +0200 Subject: [PATCH] Refine Andreas and Daniel room dashboards --- dashboards/views/03_andreas.yaml | 327 +++++++++++++++++ dashboards/views/04_daniel.yaml | 333 ++++++++++++++++++ dashboards/views/05_daniel.yaml | 48 --- .../views/{02_rooms.yaml => 05_rooms.yaml} | 0 dashboards/views/06_andreas.yaml | 48 --- .../views/{03_vacuum.yaml => 06_vacuum.yaml} | 0 .../views/{04_energy.yaml => 07_energy.yaml} | 0 .../views/{07_tesla.yaml => 08_tesla.yaml} | 0 include/switches/room_dashboard_toggles.yaml | 62 ++++ 9 files changed, 722 insertions(+), 96 deletions(-) create mode 100644 dashboards/views/03_andreas.yaml create mode 100644 dashboards/views/04_daniel.yaml delete mode 100644 dashboards/views/05_daniel.yaml rename dashboards/views/{02_rooms.yaml => 05_rooms.yaml} (100%) delete mode 100644 dashboards/views/06_andreas.yaml rename dashboards/views/{03_vacuum.yaml => 06_vacuum.yaml} (100%) rename dashboards/views/{04_energy.yaml => 07_energy.yaml} (100%) rename dashboards/views/{07_tesla.yaml => 08_tesla.yaml} (100%) create mode 100644 include/switches/room_dashboard_toggles.yaml diff --git a/dashboards/views/03_andreas.yaml b/dashboards/views/03_andreas.yaml new file mode 100644 index 0000000..7d2d337 --- /dev/null +++ b/dashboards/views/03_andreas.yaml @@ -0,0 +1,327 @@ +title: Andreas +path: andreas +icon: mdi:face-man-glasses +type: sections + +sections: + - type: grid + cards: + - type: heading + heading: Musik + + - type: media-control + entity: media_player.andreas + name: Sonos Andreas + + - type: grid + columns: 2 + square: false + cards: + - type: custom:button-card + name: DR P3 + icon: mdi:radio + tap_action: + action: perform-action + perform_action: media_player.select_source + target: + entity_id: media_player.andreas + data: + source: "0 DR P3" + styles: + card: + - height: 52px + - padding: 6px 8px + icon: + - width: 18px + name: + - font-size: 11px + + - type: custom:button-card + name: Family Mix + icon: mdi:account-music + tap_action: + action: perform-action + perform_action: media_player.select_source + target: + entity_id: media_player.andreas + data: + source: "1 Family Mix" + styles: + card: + - height: 52px + - padding: 6px 8px + icon: + - width: 18px + name: + - font-size: 11px + + - type: custom:button-card + name: Spil dansk + icon: mdi:music-note + tap_action: + action: perform-action + perform_action: media_player.select_source + target: + entity_id: media_player.andreas + data: + source: "3 Spil dansk dag - Danske tracks" + styles: + card: + - height: 52px + - padding: 6px 8px + icon: + - width: 18px + name: + - font-size: 11px + + - type: custom:button-card + name: Andreas Mix 1 + icon: mdi:playlist-music + tap_action: + action: perform-action + perform_action: media_player.select_source + target: + entity_id: media_player.andreas + data: + source: "Andreas Daily Mix 1" + styles: + card: + - height: 52px + - padding: 6px 8px + icon: + - width: 18px + name: + - font-size: 11px + + - type: custom:button-card + name: Andreas Mix 2 + icon: mdi:playlist-music + tap_action: + action: perform-action + perform_action: media_player.select_source + target: + entity_id: media_player.andreas + data: + source: "Andreas Daily Mix 2" + styles: + card: + - height: 52px + - padding: 6px 8px + icon: + - width: 18px + name: + - font-size: 11px + + - type: custom:button-card + name: Andreas Mix 3 + icon: mdi:playlist-music + tap_action: + action: perform-action + perform_action: media_player.select_source + target: + entity_id: media_player.andreas + data: + source: "Andreas Daily Mix 3" + styles: + card: + - height: 52px + - padding: 6px 8px + icon: + - width: 18px + name: + - font-size: 11px + + - type: custom:button-card + name: Andreas Mix 4 + icon: mdi:playlist-music + tap_action: + action: perform-action + perform_action: media_player.select_source + target: + entity_id: media_player.andreas + data: + source: "Andreas Daily Mix 4" + styles: + card: + - height: 52px + - padding: 6px 8px + icon: + - width: 18px + name: + - font-size: 11px + + - type: custom:button-card + name: Andreas Mix 5 + icon: mdi:playlist-music + tap_action: + action: perform-action + perform_action: media_player.select_source + target: + entity_id: media_player.andreas + data: + source: "Andreas Daily Mix 5" + styles: + card: + - height: 52px + - padding: 6px 8px + icon: + - width: 18px + name: + - font-size: 11px + + - type: custom:button-card + name: Andreas Mix 6 + icon: mdi:playlist-music + tap_action: + action: perform-action + perform_action: media_player.select_source + target: + entity_id: media_player.andreas + data: + source: "Andreas Daily Mix 6" + styles: + card: + - height: 52px + - padding: 6px 8px + icon: + - width: 18px + name: + - font-size: 11px + + - type: grid + cards: + - type: heading + heading: Lys + + - type: horizontal-stack + cards: + - type: custom:button-card + entity: light.andreas_vaerelse + name: Værelse + show_state: false + tap_action: + action: toggle + hold_action: + action: more-info + styles: + card: + - padding: 8px 6px + - height: 72px + icon: + - width: 22px + name: + - font-size: 11px + - white-space: normal + - word-break: break-word + - line-height: 1.15 + + - type: custom:button-card + entity: light.andreas_lysstrip + name: Lysstrip + show_state: false + tap_action: + action: toggle + hold_action: + action: more-info + styles: + card: + - padding: 8px 6px + - height: 72px + icon: + - width: 22px + name: + - font-size: 11px + - white-space: normal + - word-break: break-word + - line-height: 1.15 + + - type: custom:button-card + entity: light.andreas_stol + name: Stol + show_state: false + tap_action: + action: toggle + hold_action: + action: more-info + styles: + card: + - padding: 8px 6px + - height: 72px + icon: + - width: 22px + name: + - font-size: 11px + - white-space: normal + - word-break: break-word + - line-height: 1.15 + + - type: grid + cards: + - type: heading + heading: Klima + + - type: tile + entity: sensor.sovevaerelse_stue_temperatur + name: Temperatur + + - type: tile + entity: sensor.sovevaerelse_stue_luftfugtighed + name: Luftfugtighed + + - type: tile + entity: sensor.sovevaerelse_stue_carbon_dioxide + name: CO₂ + + - type: grid + cards: + - type: heading + heading: Alarmer + + - type: button + name: Alarmer til + icon: mdi:alarm-check + tap_action: + action: perform-action + perform_action: homeassistant.turn_on + target: + entity_id: + - switch.sonos_alarm_445 + - switch.sonos_alarm_1824 + - switch.sonos_alarm_1874 + + - type: button + name: Alarmer fra + icon: mdi:alarm-off + tap_action: + action: perform-action + perform_action: homeassistant.turn_off + target: + entity_id: + - switch.sonos_alarm_445 + - switch.sonos_alarm_1824 + - switch.sonos_alarm_1874 + + - type: tile + entity: switch.sonos_alarm_445 + name: Hverdage + + - type: tile + entity: switch.sonos_alarm_1824 + name: Tirsdag + + - type: tile + entity: switch.sonos_alarm_1874 + name: Lørdag + + - type: grid + cards: + - type: heading + heading: Automatik + + - type: tile + entity: switch.andreas_colorloop_toggle + name: Colorloop + + - type: tile + entity: switch.andreas_motionlys_toggle + name: Motionlys diff --git a/dashboards/views/04_daniel.yaml b/dashboards/views/04_daniel.yaml new file mode 100644 index 0000000..9c0743d --- /dev/null +++ b/dashboards/views/04_daniel.yaml @@ -0,0 +1,333 @@ +title: Daniel +path: daniel +icon: mdi:face-man-outline +type: sections + +sections: + - type: grid + cards: + - type: heading + heading: Musik + + - type: media-control + entity: media_player.daniel + name: Sonos Daniel + + - type: grid + columns: 2 + square: false + cards: + - type: custom:button-card + name: DR P3 + icon: mdi:radio + tap_action: + action: perform-action + perform_action: media_player.select_source + target: + entity_id: media_player.daniel + data: + source: "0 DR P3" + styles: + card: + - height: 52px + - padding: 6px 8px + icon: + - width: 18px + name: + - font-size: 11px + + - type: custom:button-card + name: Family Mix + icon: mdi:account-music + tap_action: + action: perform-action + perform_action: media_player.select_source + target: + entity_id: media_player.daniel + data: + source: "1 Family Mix" + styles: + card: + - height: 52px + - padding: 6px 8px + icon: + - width: 18px + name: + - font-size: 11px + + - type: custom:button-card + name: Spil dansk + icon: mdi:music-note + tap_action: + action: perform-action + perform_action: media_player.select_source + target: + entity_id: media_player.daniel + data: + source: "3 Spil dansk dag - Danske tracks" + styles: + card: + - height: 52px + - padding: 6px 8px + icon: + - width: 18px + name: + - font-size: 11px + + - type: custom:button-card + name: Daniel Mix 1 + icon: mdi:playlist-music + tap_action: + action: perform-action + perform_action: media_player.select_source + target: + entity_id: media_player.daniel + data: + source: "Daniel Daily Mix 1" + styles: + card: + - height: 52px + - padding: 6px 8px + icon: + - width: 18px + name: + - font-size: 11px + + - type: custom:button-card + name: Daniel Mix 2 + icon: mdi:playlist-music + tap_action: + action: perform-action + perform_action: media_player.select_source + target: + entity_id: media_player.daniel + data: + source: "Daniel Daily Mix 2" + styles: + card: + - height: 52px + - padding: 6px 8px + icon: + - width: 18px + name: + - font-size: 11px + + - type: custom:button-card + name: Daniel Mix 3 + icon: mdi:playlist-music + tap_action: + action: perform-action + perform_action: media_player.select_source + target: + entity_id: media_player.daniel + data: + source: "Daniel Daily Mix 3" + styles: + card: + - height: 52px + - padding: 6px 8px + icon: + - width: 18px + name: + - font-size: 11px + + - type: custom:button-card + name: Daniel Mix 4 + icon: mdi:playlist-music + tap_action: + action: perform-action + perform_action: media_player.select_source + target: + entity_id: media_player.daniel + data: + source: "Daniel Daily Mix 4" + styles: + card: + - height: 52px + - padding: 6px 8px + icon: + - width: 18px + name: + - font-size: 11px + + - type: custom:button-card + name: Daniel Mix 5 + icon: mdi:playlist-music + tap_action: + action: perform-action + perform_action: media_player.select_source + target: + entity_id: media_player.daniel + data: + source: "Daniel Daily Mix 5" + styles: + card: + - height: 52px + - padding: 6px 8px + icon: + - width: 18px + name: + - font-size: 11px + + - type: custom:button-card + name: Daniel Mix 6 + icon: mdi:playlist-music + tap_action: + action: perform-action + perform_action: media_player.select_source + target: + entity_id: media_player.daniel + data: + source: "Daniel Daily Mix 6" + styles: + card: + - height: 52px + - padding: 6px 8px + icon: + - width: 18px + name: + - font-size: 11px + + - type: grid + cards: + - type: heading + heading: Lys + + - type: horizontal-stack + cards: + - type: custom:button-card + entity: light.daniels_vaerelse + name: Værelse + show_state: false + tap_action: + action: toggle + hold_action: + action: more-info + styles: + card: + - padding: 8px 6px + - height: 72px + icon: + - width: 22px + name: + - font-size: 11px + - white-space: normal + - word-break: break-word + - line-height: 1.15 + + - type: custom:button-card + entity: light.daniel_lysstrip + name: Lysstrip + show_state: false + tap_action: + action: toggle + hold_action: + action: more-info + styles: + card: + - padding: 8px 6px + - height: 72px + icon: + - width: 22px + name: + - font-size: 11px + - white-space: normal + - word-break: break-word + - line-height: 1.15 + + - type: custom:button-card + entity: light.bamse + name: Bamse + show_state: false + tap_action: + action: toggle + hold_action: + action: more-info + styles: + card: + - padding: 8px 6px + - height: 72px + icon: + - width: 22px + name: + - font-size: 11px + - white-space: normal + - word-break: break-word + - line-height: 1.15 + + - type: grid + cards: + - type: heading + heading: Klima + + - type: tile + entity: sensor.sovevaerelse_daniel_temperatur + name: Temperatur + + - type: tile + entity: sensor.sovevaerelse_daniel_luftfugtighed + name: Luftfugtighed + + - type: tile + entity: sensor.sovevaerelse_daniel_carbon_dioxide + name: CO₂ + + - type: grid + cards: + - type: heading + heading: Alarmer + + - type: button + name: Alarmer til + icon: mdi:alarm-check + tap_action: + action: perform-action + perform_action: homeassistant.turn_on + target: + entity_id: + - switch.sonos_alarm_377 + - switch.sonos_alarm_1894 + - switch.sonos_alarm_2273 + - switch.sonos_alarm_3471 + + - type: button + name: Alarmer fra + icon: mdi:alarm-off + tap_action: + action: perform-action + perform_action: homeassistant.turn_off + target: + entity_id: + - switch.sonos_alarm_377 + - switch.sonos_alarm_1894 + - switch.sonos_alarm_2273 + - switch.sonos_alarm_3471 + + - type: tile + entity: switch.sonos_alarm_377 + name: Hverdage + + - type: tile + entity: switch.sonos_alarm_1894 + name: Afsted + + - type: tile + entity: switch.sonos_alarm_2273 + name: Man/Fre + + - type: tile + entity: switch.sonos_alarm_3471 + name: Lørdag + + - type: grid + cards: + - type: heading + heading: Automatik + + - type: tile + entity: switch.daniel_colorloop_toggle + name: Colorloop + + - type: tile + entity: switch.daniel_motionlys_toggle + name: Motionlys diff --git a/dashboards/views/05_daniel.yaml b/dashboards/views/05_daniel.yaml deleted file mode 100644 index c271d3c..0000000 --- a/dashboards/views/05_daniel.yaml +++ /dev/null @@ -1,48 +0,0 @@ -title: Daniel -path: daniel -icon: mdi:bed -type: sections - -sections: - - # 🎵 Musik - - type: grid - cards: - - type: heading - heading: Musik - - - type: media-control - entity: media_player.daniel - name: Sonos Daniel - - # 💡 Lys - - type: grid - cards: - - type: heading - heading: Lys - - - type: light - entity: light.daniel - name: Daniel Lys - - - type: light - entity: light.daniel_spot - name: Spot - - # 🌡️ Temperatur - - type: grid - cards: - - type: heading - heading: Temperatur - - - type: tile - entity: sensor.sovevaerelse_daniel_temperatur - name: Temperatur - - - type: tile - entity: sensor.sovevaerelse_daniel_luftfugtighed - name: Luftfugtighed - - - type: tile - entity: sensor.sovevaerelse_daniel_carbon_dioxide - name: CO₂ diff --git a/dashboards/views/02_rooms.yaml b/dashboards/views/05_rooms.yaml similarity index 100% rename from dashboards/views/02_rooms.yaml rename to dashboards/views/05_rooms.yaml diff --git a/dashboards/views/06_andreas.yaml b/dashboards/views/06_andreas.yaml deleted file mode 100644 index 036e1be..0000000 --- a/dashboards/views/06_andreas.yaml +++ /dev/null @@ -1,48 +0,0 @@ -title: Andreas -path: andreas -icon: mdi:bed -type: sections - -sections: - - # 🎵 Musik - - type: grid - cards: - - type: heading - heading: Musik - - - type: media-control - entity: media_player.andreas - name: Sonos Andreas - - # 💡 Lys - - type: grid - cards: - - type: heading - heading: Lys - - - type: light - entity: light.andreas - name: Andreas Lys - - - type: light - entity: light.andreas_spot - name: Spot - - # 🌡️ Temperatur - - type: grid - cards: - - type: heading - heading: Temperatur - - - type: tile - entity: sensor.sovevaerelse_stue_temperatur - name: Temperatur - - - type: tile - entity: sensor.sovevaerelse_stue_luftfugtighed - name: Luftfugtighed - - - type: tile - entity: sensor.sovevaerelse_stue_carbon_dioxide - name: CO₂ diff --git a/dashboards/views/03_vacuum.yaml b/dashboards/views/06_vacuum.yaml similarity index 100% rename from dashboards/views/03_vacuum.yaml rename to dashboards/views/06_vacuum.yaml diff --git a/dashboards/views/04_energy.yaml b/dashboards/views/07_energy.yaml similarity index 100% rename from dashboards/views/04_energy.yaml rename to dashboards/views/07_energy.yaml diff --git a/dashboards/views/07_tesla.yaml b/dashboards/views/08_tesla.yaml similarity index 100% rename from dashboards/views/07_tesla.yaml rename to dashboards/views/08_tesla.yaml diff --git a/include/switches/room_dashboard_toggles.yaml b/include/switches/room_dashboard_toggles.yaml new file mode 100644 index 0000000..93bb06a --- /dev/null +++ b/include/switches/room_dashboard_toggles.yaml @@ -0,0 +1,62 @@ +- platform: template + switches: + andreas_colorloop_toggle: + friendly_name: Andreas colorloop + unique_id: andreas_colorloop_toggle + value_template: "{{ is_state('script.colorloopandreas', 'on') }}" + turn_on: + service: script.turn_on + target: + entity_id: script.colorloopandreas + turn_off: + service: script.turn_off + target: + entity_id: script.colorloopandreas + + daniel_colorloop_toggle: + friendly_name: Daniel colorloop + unique_id: daniel_colorloop_toggle + value_template: "{{ is_state('script.colorloopdaniel', 'on') }}" + turn_on: + service: script.turn_on + target: + entity_id: script.colorloopdaniel + turn_off: + service: script.turn_off + target: + entity_id: script.colorloopdaniel + + andreas_motionlys_toggle: + friendly_name: Andreas motionlys + unique_id: andreas_motionlys_toggle + value_template: "{{ is_state('automation.andreas_lys_motion', 'on') }}" + turn_on: + service: automation.turn_on + target: + entity_id: automation.andreas_lys_motion + turn_off: + service: automation.turn_off + target: + entity_id: automation.andreas_lys_motion + + daniel_motionlys_toggle: + friendly_name: Daniel motionlys + unique_id: daniel_motionlys_toggle + value_template: >- + {{ is_state('automation.lys_daniel_dag_arbejdsdag', 'on') + and is_state('automation.lys_daniel_dag_ikke_arbejdsdag', 'on') + and is_state('automation.sluk_lys_i_daniel', 'on') }} + turn_on: + service: automation.turn_on + target: + entity_id: + - automation.lys_daniel_dag_arbejdsdag + - automation.lys_daniel_dag_ikke_arbejdsdag + - automation.sluk_lys_i_daniel + turn_off: + service: automation.turn_off + target: + entity_id: + - automation.lys_daniel_dag_arbejdsdag + - automation.lys_daniel_dag_ikke_arbejdsdag + - automation.sluk_lys_i_daniel \ No newline at end of file