diff --git a/.gitignore b/.gitignore index a254933..1b81205 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ watchman_report.txt .exports .jwt_secret .version +.ha_run.lock backup_config.yaml .storage/ diff --git a/automations/people/Bridget/bridget_in_bed.yaml b/automations/people/Bridget/bridget_in_bed.yaml index 45820a4..5ae3599 100644 --- a/automations/people/Bridget/bridget_in_bed.yaml +++ b/automations/people/Bridget/bridget_in_bed.yaml @@ -5,7 +5,7 @@ mode: restart trigger: - trigger: state - entity_id: binary_sensor.white_bed_occupied + entity_id: binary_sensor.black_bed_occupied to: "on" for: "00:10:00" - trigger: state @@ -22,17 +22,12 @@ condition: state: "on" - condition: state entity_id: - - binary_sensor.white_bed_occupied + - binary_sensor.black_bed_occupied state: "on" - for: "00:10:00" + for: "00:05:00" - condition: state entity_id: input_boolean.bridget_in_bed state: "off" - #- condition: state - # entity_id: binary_sensor.white_bed_occupied - # state: 'on' - # for: - # minutes: 5 action: - action: homeassistant.turn_on diff --git a/automations/people/Emmett/emmett_in_bed.yaml b/automations/people/Emmett/emmett_in_bed.yaml index 2300e9a..0926575 100644 --- a/automations/people/Emmett/emmett_in_bed.yaml +++ b/automations/people/Emmett/emmett_in_bed.yaml @@ -4,7 +4,7 @@ mode: restart trigger: - platform: state - entity_id: binary_sensor.black_bed_occupied + entity_id: binary_sensor.white_bed_occupied to: 'on' for: '00:10:00' - platform: state @@ -21,7 +21,7 @@ condition: state: 'on' - condition: state entity_id: - - binary_sensor.black_bed_occupied + - binary_sensor.white_bed_occupied state: 'on' for: '00:10:00' - condition: state diff --git a/automations/people/Kristy/kristy_home.yaml b/automations/people/Kristy/kristy_home.yaml index db1facd..6f11b70 100644 --- a/automations/people/Kristy/kristy_home.yaml +++ b/automations/people/Kristy/kristy_home.yaml @@ -9,7 +9,7 @@ trigger: - platform: state entity_id: - group.person_kristy - - device_tracker.kristy_s_phone + - device_tracker.nmap_tracker_d6_28_7a_58_b8_da to: 'home' - platform: event diff --git a/automations/people/goodnight_kids.yaml b/automations/people/goodnight_kids.yaml index 65b8d40..94c60f5 100644 --- a/automations/people/goodnight_kids.yaml +++ b/automations/people/goodnight_kids.yaml @@ -151,28 +151,52 @@ action: - delay: "00:05:00" - choose: - - conditions: "{{is_state('input_boolean.emmett_home','on') or is_state('input_boolean.bridget_home','on')}}" + - conditions: "{{is_state('input_boolean.bridget_home','on')}}" sequence: - service: input_button.press data: {} target: entity_id: input_button.nursery_bedtime - - delay: "00:45:00" + - service: input_select.select_option + data: + option: Running Rainbow + target: + entity_id: input_select.nursery_wled + + # - service: automation.trigger + # target: + # entity_id: automation.nursery_wled_changed + + # - choose: + # - conditions: "{{is_state('input_boolean.bridget_home','on')}}" + # sequence: + # - service: input_boolean.turn_on + # data: {} + # target: + # entity_id: input_boolean.nursery_asleep + + # - delay: "00:00:05" + + # - choose: + # - conditions: "{{is_state('media_player.ytube_music_player','on')}}" + # sequence: + # - service: media_player.turn_off + # target: + # entity_id: media_player.ytube_music_player + + - delay: "00:25:00" - choose: - - conditions: "{{is_state('input_boolean.emmett_home','on') or is_state('input_boolean.bridget_home','on')}}" + - conditions: "{{is_state('input_boolean.emmett_home','on')}}" sequence: - service: input_boolean.turn_on data: {} target: - entity_id: input_boolean.nursery_asleep + entity_id: input_boolean.blue_room_asleep - - delay: "00:00:05" - - - choose: - - conditions: "{{is_state('media_player.ytube_music_player','on')}}" - sequence: - - service: media_player.turn_off + - service: input_select.select_option target: - entity_id: media_player.ytube_music_player + entity_id: input_select.blue_room_mode + data: + option: "Nightlight" \ No newline at end of file diff --git a/automations/rooms/blue_room/blue_room_into_bed.yaml b/automations/rooms/blue_room/blue_room_into_bed.yaml new file mode 100644 index 0000000..f4298af --- /dev/null +++ b/automations/rooms/blue_room/blue_room_into_bed.yaml @@ -0,0 +1,44 @@ +alias: Blue Room Into Bed +id: automation_blue_room_into_bed + +trigger: + - platform: state + entity_id: binary_sensor.white_bed_occupied + to: "on" + for: "00:00:10" + +condition: + - condition: or + conditions: + - condition: state + entity_id: input_boolean.home_occupied + state: "on" + - condition: state + entity_id: input_boolean.guest_mode + state: "on" + - condition: or + conditions: + - condition: state + entity_id: input_boolean.emmett_home + state: "on" + - condition: state + entity_id: input_boolean.bridget_home + state: "on" + - condition: state + entity_id: input_boolean.ebin_home + state: "on" + - condition: state + entity_id: input_boolean.nursery_light_cycle + state: "off" + - condition: state + entity_id: input_select.blue_room_mode + state: "Nightlight" + - condition: state + entity_id: light.blue_room_hue + state: "on" + +action: + - service: light.turn_on + data: + entity_id: + - light.blue_room_closet diff --git a/automations/rooms/blue_room/blue_room_out_of_bed.yaml b/automations/rooms/blue_room/blue_room_out_of_bed.yaml new file mode 100644 index 0000000..4ef0258 --- /dev/null +++ b/automations/rooms/blue_room/blue_room_out_of_bed.yaml @@ -0,0 +1,157 @@ +alias: Blue Room Out of Bed +id: automation_blue_room_out_of_bed +mode: single +# Hide warnings when triggered while in delay. +max_exceeded: silent + +trigger: + - trigger: state + entity_id: binary_sensor.white_bed_occupied + from: "on" + to: "off" + for: "00:00:03" + - trigger: state + entity_id: binary_sensor.blue_room_door + from: "off" + to: "on" + +condition: + - alias: "Do we want to be alerted?" + condition: state + entity_id: input_boolean.out_of_bed_alert + state: "on" + + - alias: "Is the home occupied or in guest mode?" + condition: or + conditions: + - condition: state + entity_id: input_boolean.home_occupied + state: "on" + - condition: state + entity_id: input_boolean.guest_mode + state: "on" + + - alias: "Are any of the kids considered home?" + condition: or + conditions: + - condition: state + entity_id: input_boolean.emmett_home + state: "on" + - condition: state + entity_id: input_boolean.bridget_home + state: "on" + - condition: state + entity_id: input_boolean.ebin_home + state: "on" + + - alias: "Is at a time of day when the kids should be sleeping?" + condition: or + conditions: + - condition: state + entity_id: binary_sensor.evening + state: "on" + - condition: state + entity_id: binary_sensor.late_evening + state: "on" + - condition: state + entity_id: binary_sensor.night + state: "on" + - condition: state + entity_id: binary_sensor.early_morning + state: "on" + + - alias: "Is Nursery Light Cycle turned off?" + condition: state + entity_id: input_boolean.nursery_light_cycle + state: "off" + + - alias: "Are the kids asleep?" + condition: state + entity_id: input_boolean.kids_asleep + state: "on" + + - alias: "Is an adult awake?" + condition: state + entity_id: binary_sensor.adults_asleep + state: "off" + +variables: + computer_area: "{{ states('binary_sensor.computer_area_person_occupancy') }}" + front_room: "{{ states('binary_sensor.front_room_person_occupancy') }}" + entryway: "{{ states('input_boolean.entryway_occupied') }}" + +action: + - choose: + - conditions: + - condition: state + entity_id: binary_sensor.garage_occupied + state: "on" + sequence: + - action: script.blink_garage_lights + + - choose: + - conditions: + - condition: state + entity_id: binary_sensor.computer_area_occupied + state: "on" + sequence: + - action: webrtc.dash_cast + data: + entity_id: media_player.computer_area_hub + url: rtsp_cam01_sub + force: true + extra: + mode: webrtc + + - choose: + - conditions: + - condition: state + entity_id: binary_sensor.front_room_occupied + state: "on" + sequence: + - action: webrtc.dash_cast + data: + entity_id: media_player.front_room_hub + url: rtsp_cam01_sub + force: true + extra: + mode: webrtc + + - delay: "00:10:00" + + - action: media_player.turn_off + entity_id: media_player.front_room_hub, media_player.computer_area_hub + + # - alias: "Flash some lights" + # repeat: + # count: 6 + # sequence: + # - delay: 1 + # - service: light.toggle + # target: + # entity_id: + # - light.entryway_hue + # - light.computer_area_hue + # - light.front_room_hue + #- delay: '00:00:02' + + # - alias: "Fix computer area lights" + # service: automation.trigger + # target: + # entity_id: "automation.computer_area_lights_to_{{ computer_area }}" + # data: + # skip_condition: true + + # - alias: "Fix front room lights" + # service: automation.trigger + # target: + # entity_id: "automation.front_room_lights_to_{{ front_room }}" + # data: + # skip_condition: true + + # - alias: "Fix entryway lights" + # service: automation.trigger + # target: + # entity_id: "automation.entryway_lights_to_{{ entryway }}" + # data: + # skip_condition: true diff --git a/automations/rooms/blue_room/blue_room_white_noise_off.yaml b/automations/rooms/blue_room/blue_room_white_noise_off.yaml new file mode 100644 index 0000000..0670531 --- /dev/null +++ b/automations/rooms/blue_room/blue_room_white_noise_off.yaml @@ -0,0 +1,12 @@ +alias: Blue Room White Noise Off +id: automation_blue_room_white_noise_off + +trigger: + - platform: state + entity_id: input_boolean.blue_room_asleep + to: "off" + +action: + - service: media_player.turn_off + entity_id: media_player.ma_blue_room_clock + diff --git a/automations/rooms/blue_room/blue_room_white_noise_on.yaml b/automations/rooms/blue_room/blue_room_white_noise_on.yaml new file mode 100644 index 0000000..ce24e89 --- /dev/null +++ b/automations/rooms/blue_room/blue_room_white_noise_on.yaml @@ -0,0 +1,49 @@ +alias: Blue Room White Noise On +id: automation_blue_room_white_noise_on + +trigger: + - platform: state + entity_id: input_boolean.blue_room_asleep + to: "on" + +action: + - choose: + - conditions: + - condition: state + entity_id: media_player.ma_blue_room_clock + state: "playing" + sequence: + - service: media_player.media_stop + target: + entity_id: media_player.ma_blue_room_clock + + - action: media_player.volume_set + data: + volume_level: 0.30 + target: + entity_id: media_player.ma_blue_room_clock + + + #- service: script.goodnight_kids_youtube_music + + - action: media_player.shuffle_set + metadata: {} + data: + shuffle: false + target: + entity_id: media_player.ma_blue_room_clock + - action: media_player.repeat_set + metadata: {} + data: + repeat: "all" + target: + entity_id: media_player.ma_blue_room_clock + - action: music_assistant.play_media + metadata: {} + data: + media_id: library://track/101 + media_type: track + enqueue: replace + target: + entity_id: media_player.ma_blue_room_clock + diff --git a/automations/rooms/nursery/nursery_bedtime_button.yaml b/automations/rooms/nursery/nursery_bedtime_button.yaml index 250ebc2..45836bd 100644 --- a/automations/rooms/nursery/nursery_bedtime_button.yaml +++ b/automations/rooms/nursery/nursery_bedtime_button.yaml @@ -14,15 +14,15 @@ action: target: entity_id: input_select.nursery_mode - - service: input_select.select_option - data: - option: Running Rainbow - target: - entity_id: input_select.nursery_wled + # - service: input_select.select_option + # data: + # option: Running Rainbow + # target: + # entity_id: input_select.nursery_wled - - service: automation.trigger - target: - entity_id: automation.nursery_wled_changed + # - service: automation.trigger + # target: + # entity_id: automation.nursery_wled_changed #- condition: - alias: "Do not restart the music if it is already playing" @@ -38,20 +38,20 @@ action: data: volume_level: 0.4 target: - device_id: be28c87a729c28b9b27b540589895e20 + entity_id: media_player.ma_nursery_hub #- service: script.goodnight_kids_youtube_music - action: media_player.shuffle_set data: shuffle: false target: - device_id: be28c87a729c28b9b27b540589895e20 + entity_id: media_player.ma_nursery_hub - action: media_player.repeat_set data: repeat: all target: - device_id: be28c87a729c28b9b27b540589895e20 + entity_id: media_player.ma_nursery_hub - action: music_assistant.play_media data: @@ -59,4 +59,4 @@ action: media_type: playlist enqueue: replace target: - device_id: be28c87a729c28b9b27b540589895e20 \ No newline at end of file + entity_id: media_player.ma_nursery_hub \ No newline at end of file diff --git a/automations/rooms/nursery/nursery_into_bed.yaml b/automations/rooms/nursery/nursery_into_bed.yaml index 3ddc8b4..12b56dd 100644 --- a/automations/rooms/nursery/nursery_into_bed.yaml +++ b/automations/rooms/nursery/nursery_into_bed.yaml @@ -5,12 +5,7 @@ trigger: - platform: state entity_id: binary_sensor.black_bed_occupied to: "on" - for: "00:00:30" - - platform: state - entity_id: binary_sensor.white_bed_occupied - to: "on" - for: "00:00:30" - + for: "00:00:10" condition: - condition: or conditions: diff --git a/components/binary_sensors/rooms/blue_room_occupied.yaml b/components/binary_sensors/rooms/blue_room_occupied.yaml index b6f8ad8..ac9a031 100644 --- a/components/binary_sensors/rooms/blue_room_occupied.yaml +++ b/components/binary_sensors/rooms/blue_room_occupied.yaml @@ -23,3 +23,9 @@ observations: prob_given_true: .99 prob_given_false: 0.01 to_state: 'on' + + - platform: state + entity_id: binary_sensor.white_bed_occupied + to_state: "on" + prob_given_true: .67 + prob_given_false: 0.0 diff --git a/components/binary_sensors/rooms/nursery_occupied.yaml b/components/binary_sensors/rooms/nursery_occupied.yaml index bdd854b..20db02b 100644 --- a/components/binary_sensors/rooms/nursery_occupied.yaml +++ b/components/binary_sensors/rooms/nursery_occupied.yaml @@ -23,12 +23,6 @@ observations: prob_given_true: .67 prob_given_false: 0.0 - - platform: state - entity_id: binary_sensor.white_bed_occupied - to_state: "on" - prob_given_true: .67 - prob_given_false: 0.0 - - entity_id: input_boolean.home_occupied platform: state prob_given_true: .92 diff --git a/components/binary_sensors/template.yaml b/components/binary_sensors/template.yaml index c797efa..087dc7b 100644 --- a/components/binary_sensors/template.yaml +++ b/components/binary_sensors/template.yaml @@ -695,14 +695,14 @@ sensors: emmetts_bed: unique_id: templatebinarysensor.emmetts_bed friendly_name: Emmett's Bed - value_template: "{{ states('binary_sensor.black_bed_occupied') }}" - icon_template: "{{ iif(is_state('binary_sensor.black_bed_occupied','on'),'mdi:bed','mdi:bed-empty','mdi:bed-outline')}}" + value_template: "{{ states('binary_sensor.white_bed_occupied') }}" + icon_template: "{{ iif(is_state('binary_sensor.white_bed_occupied','on'),'mdi:bed','mdi:bed-empty','mdi:bed-outline')}}" bridgets_bed: unique_id: templatebinarysensor.bridgets_bed friendly_name: Bridget's Bed - value_template: "{{ states('binary_sensor.bed_presence_2d14a4_bed_occupied_either') }}" - icon_template: "{{ iif(is_state('binary_sensor.bed_presence_2d14a4_bed_occupied_either','on'),'mdi:bed','mdi:bed-empty','mdi:bed-outline')}}" + value_template: "{{ states('binary_sensor.black_bed_occupied') }}" + icon_template: "{{ iif(is_state('binary_sensor.black_bed_occupied','on'),'mdi:bed','mdi:bed-empty','mdi:bed-outline')}}" check_mail: unique_id: templatebinarysensor.check_mail diff --git a/components/packages/synology_srm.yaml b/components/packages/synology_srm.yaml new file mode 100644 index 0000000..c5541c1 --- /dev/null +++ b/components/packages/synology_srm.yaml @@ -0,0 +1,7 @@ +device_tracker: + - platform: synology_srm + host: 192.168.1.1 + username: !secret router_username + password: !secret router_password + new_device_defaults: + track_new_devices: true \ No newline at end of file diff --git a/groups.yaml b/groups.yaml index bba6845..2d41c36 100644 --- a/groups.yaml +++ b/groups.yaml @@ -191,7 +191,7 @@ phone_clint: person_kristy: name: Kristy entities: - # - device_tracker.kristy_s_phone + - device_tracker.nmap_tracker_d6_28_7a_58_b8_da person_marshall: name: Marshall diff --git a/lovelace/cameras/view-camera-01.yaml b/lovelace/cameras/view-camera-01.yaml index 6cc1e77..c1f81e9 100644 --- a/lovelace/cameras/view-camera-01.yaml +++ b/lovelace/cameras/view-camera-01.yaml @@ -76,6 +76,13 @@ card: style: left: 8% top: 95% + + - type: state-icon + entity: binary_sensor.white_bed_occupied + style: + left: 32% + top: 95% + - type: state-icon entity: sensor.furnace_room_person_count style: @@ -153,3 +160,20 @@ card: left: 82% tap_action: action: toggle + + - type: conditional + conditions: + - entity: binary_sensor.white_bed_occupied + state: "on" + elements: + - type: state-icon + entity: binary_sensor.white_bed_occupied + style: + top: 45% + left: 40% + + - type: state-icon + entity: media_player.blue_room_clock + style: + left: 38% + top: 22% diff --git a/lovelace/cameras/view-camera-08.yaml b/lovelace/cameras/view-camera-08.yaml index c74e248..bf7b428 100644 --- a/lovelace/cameras/view-camera-08.yaml +++ b/lovelace/cameras/view-camera-08.yaml @@ -78,12 +78,6 @@ card: style: left: 40% top: 95% - - type: state-icon - entity: binary_sensor.white_bed_occupied - style: - left: 60% - top: 95% - transform: scaleX(-1) translate(50%, -50%) - type: state-icon entity: input_boolean.nursery_occupied tap_action: @@ -108,16 +102,7 @@ card: top: 30% left: 18% - - type: conditional - conditions: - - entity: binary_sensor.white_bed_occupied - state: "on" - elements: - - type: state-icon - entity: binary_sensor.white_bed_occupied - style: - top: 65% - left: 80% + - type: conditional conditions: - entity: binary_sensor.nursery_person_occupancy @@ -129,12 +114,6 @@ card: top: 50% left: 50% - - type: state-icon - entity: media_player.nursery_hub - style: - left: 45% - top: 16% - - type: state-icon entity: light.nursery_hue style: diff --git a/lovelace/raw-cameras/indoor-camera-card.yaml b/lovelace/raw-cameras/indoor-camera-card.yaml index 984acf3..6027b47 100644 --- a/lovelace/raw-cameras/indoor-camera-card.yaml +++ b/lovelace/raw-cameras/indoor-camera-card.yaml @@ -12,8 +12,20 @@ cameras: motion: false entities: - group.nursery_motion - - binary_sensor.emmetts_bed - binary_sensor.bridgets_bed + - camera_entity: camera.frigate_cam01 + title: Blue Room + live_provider: go2rtc + go2rtc: + modes: + - webrtc + stream: rtsp_cam01_sub + triggers: + occupancy: false + motion: false + entities: + - group.blue_room_motion + - binary_sensor.emmetts_bed - camera_entity: camera.frigate_cam13 title: Front Room live_provider: go2rtc diff --git a/lovelace/resources.yaml b/lovelace/resources.yaml index b01775e..aea1f97 100644 --- a/lovelace/resources.yaml +++ b/lovelace/resources.yaml @@ -17,9 +17,6 @@ - url: /hacsfiles/mini-graph-card/mini-graph-card-bundle.js type: module -- url: /hacsfiles/DailyGrapher/dailygrapher-card.js - type: module - - url: /hacsfiles/roku-card/roku-card.js type: module diff --git a/lovelace/room_cards/blue_room.yaml b/lovelace/room_cards/blue_room.yaml index 349b983..c9db60a 100644 --- a/lovelace/room_cards/blue_room.yaml +++ b/lovelace/room_cards/blue_room.yaml @@ -9,7 +9,7 @@ elements: action: more-info style: font-style: italic - left: 25% + left: 14% top: 88% - type: custom:mushroom-template-card primary: Closet @@ -17,7 +17,7 @@ elements: tap_action: action: toggle style: - left: 75% + left: 86% top: 88% - type: state-label @@ -35,7 +35,7 @@ elements: text-align: right #Card title - type: custom:mushroom-title-card - title: "Blue Room" + title: "Boy's Room" style: font-size: 130% left: -2% @@ -87,7 +87,7 @@ elements: show_name: false show_entity_picture: true style: - left: 25% + left: 14% top: 65% styles: card: @@ -102,6 +102,25 @@ elements: hold_action: action: more-info + #button #2 + - color: auto + entity: binary_sensor.emmetts_bed + show_name: false + style: + left: 38% + top: 65% + styles: + card: + - border-radius: 50px + - width: 50px + - height: 50px + icon: + - width: 30px + - height: 30px + tap_action: + action: more-info + type: "custom:button-card" + #button #3 - type: "custom:button-card" color: auto @@ -109,7 +128,7 @@ elements: show_name: false show_entity_picture: true style: - left: 50% + left: 62% top: 65% styles: card: @@ -129,7 +148,7 @@ elements: show_name: false show_entity_picture: true style: - left: 75% + left: 86% top: 65% styles: card: diff --git a/lovelace/room_cards/computer_area.yaml b/lovelace/room_cards/computer_area.yaml index 34d9b8f..1db730d 100644 --- a/lovelace/room_cards/computer_area.yaml +++ b/lovelace/room_cards/computer_area.yaml @@ -11,6 +11,7 @@ elements: font-style: italic left: 12% top: 88% + border: none - type: custom:mushroom-template-card primary: "{{ states('sensor.steam1_game') }}" @@ -22,6 +23,7 @@ elements: left: 50% top: 88% text-transform: capitalize + border: none - type: state-label entity: sensor.computer_area_multisensor_air_temperature @@ -36,6 +38,8 @@ elements: top: 35% font-size: 180% text-align: right + border: none + #Card title - type: custom:mushroom-title-card title: "Computer Area" @@ -44,12 +48,16 @@ elements: left: -2% top: -10% transform: initial + border: none + #top left icon spot #1 - type: state-icon entity: binary_sensor.computer_area_occupied style: left: 68% top: 9% + border: none + #top left icon #2 spot # - type: state-icon # entity: group.computer_area_motion @@ -62,6 +70,8 @@ elements: style: left: 76% top: 9% + border: none + #top icon spot #3 - type: state-icon entity: switch.computer_area_light_cycle @@ -72,6 +82,8 @@ elements: action: toggle hold_action: action: more-info + border: none + #top icon spot #4 - type: state-icon entity: input_boolean.computer_area_occupied @@ -82,6 +94,7 @@ elements: action: toggle hold_action: action: more-info + border: none #button #1 - type: "custom:button-card" @@ -92,11 +105,13 @@ elements: style: left: 12% top: 65% + border: none styles: card: - border-radius: 50px - width: 50px - height: 50px + - border: none icon: - width: 30px - height: 30px @@ -113,11 +128,13 @@ elements: style: left: 31% top: 65% + border: none styles: card: #- border-radius: 50px - width: 50px - height: 50px + - border: none icon: - width: 45px - height: 45px @@ -155,6 +172,7 @@ elements: #- border-radius: 50px - width: 50px - height: 50px + - border: none icon: - width: 45px - height: 45px @@ -173,6 +191,7 @@ elements: #- border-radius: 50px - width: 50px - height: 50px + - border: none icon: - width: 45px - height: 45px @@ -193,6 +212,7 @@ elements: #- border-radius: 50px - width: 50px - height: 50px + - border: none icon: - width: 45px - height: 45px diff --git a/lovelace/room_cards/nursery.yaml b/lovelace/room_cards/nursery.yaml index 5931514..7264548 100644 --- a/lovelace/room_cards/nursery.yaml +++ b/lovelace/room_cards/nursery.yaml @@ -9,7 +9,7 @@ elements: action: more-info style: font-style: italic - left: 12% + left: 14% top: 88% - type: custom:mushroom-template-card @@ -19,7 +19,7 @@ elements: action: more-info style: font-style: italic - left: 31% + left: 38% top: 88% - type: custom:mushroom-template-card @@ -29,7 +29,7 @@ elements: action: more-info style: font-style: italic - left: 69% + left: 62% top: 88% - type: state-label @@ -47,7 +47,7 @@ elements: text-align: right #Card title - type: custom:mushroom-title-card - title: "Nursery" + title: "Girl's Room" style: font-size: 130% left: -2% @@ -117,7 +117,7 @@ elements: entity: light.nursery_hue show_name: false style: - left: 12% + left: 14% top: 65% styles: card: @@ -131,24 +131,7 @@ elements: action: toggle hold_action: action: more-info - #button #2 - - color: auto - entity: binary_sensor.emmetts_bed - show_name: false - style: - left: 31% - top: 65% - styles: - card: - - border-radius: 50px - - width: 50px - - height: 50px - icon: - - width: 30px - - height: 30px - tap_action: - action: more-info - type: "custom:button-card" + #button #3 - type: "custom:button-card" color: auto @@ -156,7 +139,7 @@ elements: show_name: false show_entity_picture: true style: - left: 50% + left: 38% top: 65% styles: card: @@ -175,9 +158,9 @@ elements: entity: binary_sensor.bridgets_bed show_name: false style: - left: 69% + left: 62% top: 65% - transform: scaleX(-1) translate(50%, -50%) + #transform: scaleX(-1) translate(50%, -50%) styles: card: - border-radius: 50px @@ -195,7 +178,7 @@ elements: show_name: false show_entity_picture: true style: - left: 88% + left: 86% top: 65% styles: card: diff --git a/lovelace/view-ha-floorplan.yaml b/lovelace/view-ha-floorplan.yaml index bd2ff48..a1518bf 100644 --- a/lovelace/view-ha-floorplan.yaml +++ b/lovelace/view-ha-floorplan.yaml @@ -10,12 +10,21 @@ cards: - type: custom:floorplan-card config: image: /local/floorplan/fullsized_floorplan.svg + # image: + # location: /local/floorplan/fullsized_floorplan.svg + # cache: false stylesheet: /local/floorplan/floorplan.css # log_level: debug # console_log_level: debug defaults: hover_action: hover-info - #tap_action: more-info + hover_info_filter: + - min_mireds + - max_mireds + - icon + - order + - color_mode + tap_action: more-info rules: - entities: - fan.master_bedroom @@ -72,10 +81,10 @@ cards: class: bin-today - state: "tomorrow" class: bin-tomorrow - # - state: 'future' - # class: bin-future - # - state: 'false' - # class: bin-false + - state: 'future' + class: bin-future + - state: 'false' + class: bin-false - entities: - binary_sensor.furnace_room_water_sensor_water_alarm_water_leak_detected @@ -166,7 +175,7 @@ cards: - state: "severely_high" class: "green-to-red-grad-18" - state: "unavailable" - class: "dew-point-unavailable" + class: "entity-unavailable" - entities: - sensor.thermal_comfort_humidex_perception @@ -192,7 +201,7 @@ cards: - state: "heat_stroke" class: "green-to-red-grad-18" - state: "unavailable" - class: "humidex-unavailable" + class: "entity-unavailable" - entities: - sensor.thermal_comfort_summer_simmer_perception @@ -206,7 +215,7 @@ cards: - sensor.utility_room_thermal_comfort_summer_simmer_perception states: - state: "unavailable" - class: "summer-simmer-unavailable" + class: "entity-unavailable" - state: "cool" class: "green-to-red-grad-2" - state: "slightly_cool" @@ -281,6 +290,7 @@ cards: - media_player.master_bedroom_clock - media_player.front_room_hub - media_player.nursery_hub + - media_player.blue_room_clock states: - state: "playing" class: "squeezebox-on" @@ -617,7 +627,7 @@ cards: - state: "off" class: "light-off" - state: "unavailable" - class: "light-unavailable" + class: "entity-unavailable" action: domain: homeassistant service: homeassistant.toggle @@ -641,7 +651,7 @@ cards: - state: "off" class: "light-off" - state: "unavailable" - class: "light-unavailable" + class: "entity-unavailable" - state: "unknown" class: "light-unavailable" @@ -700,6 +710,7 @@ cards: - binary_sensor.utility_room_motion_switch_home_security_motion_detection - binary_sensor.mancave_motion_switch_home_security_motion_detection - binary_sensor.dining_room_motion_switch_home_security_motion_detection + - binary_sensor.blue_room_multisensor_motion_detection - binary_sensor.blue_room_motion_switch_home_security_motion_detection - binary_sensor.furnace_room_motion_switch_home_security_motion_detection - binary_sensor.front_room_motion @@ -796,6 +807,8 @@ cards: class: "camera-unavailable" - state: "streaming" class: "camera-streaming" + - state: "recording" + class: "camera-recording" - name: thermostat_temp entities: diff --git a/scripts/master_bedroom/wake_up_the_master_bedroom.yaml b/scripts/master_bedroom/wake_up_the_master_bedroom.yaml index 39367cf..70c3f6f 100644 --- a/scripts/master_bedroom/wake_up_the_master_bedroom.yaml +++ b/scripts/master_bedroom/wake_up_the_master_bedroom.yaml @@ -17,12 +17,6 @@ sequence: data: volume_level: "{{iif(volume>1,1,volume)}}" - - action: google_generative_ai_conversation.generate_content - metadata: {} - data: - prompt: Say something to help me wake up and get ready for work. Use up to three sentences. - response_variable: response - - action: media_player.play_media data: media_content_id: media-source://media_source/alarms/Alarm_Clock.mp3 @@ -41,7 +35,7 @@ sequence: entity_id: tts.google_translate_en_com data: media_player_entity_id: media_player.master_bedroom_clock - message: "{{ response.text }}" + message: "It is time to wake up, so get your booty out of bed" # - action: tts.speak # target: diff --git a/themes/mushroom/mushroom-shadow.yaml b/themes/mushroom/mushroom-shadow.yaml deleted file mode 100644 index 47995f8..0000000 --- a/themes/mushroom/mushroom-shadow.yaml +++ /dev/null @@ -1,11 +0,0 @@ -# DO NOT EDIT THIS FILE. -# This file will be reset with updates. -# If you want to customize it, copy the content in another folder and file and change the name. -# https://www.home-assistant.io/integrations/frontend/#defining-themes -Mushroom Shadow: - # Home Assistant override - ha-card-box-shadow: 0px 2px 4px 0px rgba(0,0,0,0.16) - ha-card-border-width: 0 - modes: - light: {} - dark: {} diff --git a/themes/mushroom/mushroom-square-shadow.yaml b/themes/mushroom/mushroom-square-shadow.yaml deleted file mode 100644 index d1449af..0000000 --- a/themes/mushroom/mushroom-square-shadow.yaml +++ /dev/null @@ -1,20 +0,0 @@ -# DO NOT EDIT THIS FILE. -# This file will be reset with updates. -# If you want to customize it, copy the content in another folder and file and change the name. -# https://www.home-assistant.io/integrations/frontend/#defining-themes -Mushroom Square Shadow: - # Home Assistant override - ha-card-box-shadow: 0px 2px 4px 0px rgba(0,0,0,0.16) - ha-card-border-width: 0 - ha-card-border-radius: 6px - ha-badge-border-radius: 6px - # Layout - mush-spacing: 8px - # Elements - mush-icon-border-radius: 6px - mush-control-border-radius: 6px - # Chips - mush-chip-border-radius: 6px - modes: - light: {} - dark: {} diff --git a/themes/mushroom/mushroom-square.yaml b/themes/mushroom/mushroom-square.yaml deleted file mode 100644 index 00f90c3..0000000 --- a/themes/mushroom/mushroom-square.yaml +++ /dev/null @@ -1,18 +0,0 @@ -# DO NOT EDIT THIS FILE. -# This file will be reset with updates. -# If you want to customize it, copy the content in another folder and file and change the name. -# https://www.home-assistant.io/integrations/frontend/#defining-themes -Mushroom Square: - # Home Assistant override - ha-card-border-radius: 6px - ha-badge-border-radius: 6px - # Layout - mush-spacing: 8px - # Elements - mush-icon-border-radius: 6px - mush-control-border-radius: 6px - # Chips - mush-chip-border-radius: 6px - modes: - light: {} - dark: {} diff --git a/themes/mushroom/mushroom.yaml b/themes/mushroom/mushroom.yaml deleted file mode 100644 index bba28dd..0000000 --- a/themes/mushroom/mushroom.yaml +++ /dev/null @@ -1,9 +0,0 @@ -# DO NOT EDIT THIS FILE. -# This file will be reset with updates. -# If you want to customize it, copy the content in another folder and file and change the name. -# https://www.home-assistant.io/integrations/frontend/#defining-themes -Mushroom: - # Nothing here as it's the default HA theme since 2022.11 - modes: - light: {} - dark: {} diff --git a/www/floorplan/floorplan.css b/www/floorplan/floorplan.css index a9e7e3b..f8a89d4 100644 --- a/www/floorplan/floorplan.css +++ b/www/floorplan/floorplan.css @@ -1,18 +1,51 @@ + + /* SVG shapes */ svg, svg * { vector-effect: non-scaling-stroke !important; pointer-events: all !important; - background-color: var(--primary-background-color); + background-color: var(--card-background-color); max-height: calc( 100vh - 50px); } +/* Hover over */ + +/* .svg-shape:hover, +g.svg-hover> :not(text):hover, +g.svg-click> :not(text):hover, +g.svg-long-click> :not(text):hover, +:not(text).svg-hover:hover,a +:not(text).svg-click:hover, +:not(text).svg-long-click:hover { + stroke: #03a9f4 !important; + stroke-width: 1px !important; + stroke-opacity: 1 !important; +} */ + + +/* Generic/default entity statuses */ +.entity-unavailable { + fill: var(--disabled-color) !important; + stroke: var(--white-color) !important; + stroke-width: 1px !important; +} + +/* Highlighting an element when hovering over it */ +/* .ha-entity:hover { + fill: var(--yellow-color) !important; + stroke: var(--blue-color) !important; + stroke-width: 1px !important; + stroke-opacity: 1 !important; +} */ + /* Hover over */ -.entity:hover { - stroke: var(--text-primary-color) !important; +.hover-info { + fill: var(--blue-color) !important; + stroke: var(--green-color) !important; stroke-width: 1px !important; stroke-opacity: 1 !important; } @@ -62,7 +95,7 @@ svg * { } .room-occupied { - fill: var(--grey-color) !important; + fill: var(--light-grey-color) !important; fill-opacity: 1 !important; /* fill: #5d5d6f !important;*/ } @@ -279,7 +312,6 @@ svg * { .motion-unavailable { /* fill: #B9CEF7 !important; */ fill: #6FAECE !important; - /* fill: #8270A2 !important; */ } @@ -332,12 +364,15 @@ svg * { fill: var(--light-blue-color) !important; } +.camera-recording { + fill: var(--red-color) !important; +} /* Light */ .light-unavailable { - fill: #8270A2 !important; - stroke: #FFFFFF !important; + fill: var(--disabled-color) !important; + stroke: var(--white-color) !important; stroke-width: 1px !important; } @@ -349,38 +384,38 @@ svg * { .light-on, .light-on * { fill: var(--yellow-color) !important; - stroke: var(--yellow-color) !important; + stroke: var(--amber-color) !important; stroke-width: 7px !important; stroke-opacity: 0.25 !important; } .sun-on { fill: var(--yellow-color) !important; - stroke: var(--yellow-color) !important; - stroke-width: 2px !important; + stroke: var(--amber-color) !important; + stroke-width: 7px !important; stroke-opacity: 0.25 !important; } .light-strip-on { fill: var(--yellow-color) !important; - stroke: var(--yellow-color) !important; - stroke-width: 3px !important; + stroke: var(--amber-color) !important; + stroke-width: 7px !important; stroke-opacity: 0.25 !important; } -.indicator-on { +/* .indicator-on { fill: var(--yellow-color) !important; - /* stroke: var(--yellow-color) !important; - stroke-width: 20px !important; - stroke-opacity: 0.25 !important; */ -} + stroke: var(--amber-color) !important; + stroke-width: 0.25px !important; + stroke-opacity: .75 !important; +} */ /* Doorbell */ .doorbell-off { /* fill: #92C0AD !important; */ - fill: #4d4d3e !important; + fill: var(--ha-color-fill-neutral-loud-active) !important; } .doorbell-on { @@ -450,7 +485,7 @@ svg * { } .suv-home { - fill: #4b4b4b !important; + fill: var(--ha-color-fill-neutral-loud-active) !important; } .tracker-away { @@ -501,8 +536,9 @@ svg * { .fridge-high { fill: var(--error-color) !important; - /* stroke-width: 2px !important; - stroke-opacity: 1 !important; */ + stroke: var(--primary-text-color) !important; + stroke-width: 0.25px !important; + stroke-opacity: .75 !important; } .temp-freeze { @@ -575,11 +611,11 @@ svg * { } .light-low { - fill: var(--ha-color-neutral-95) !important; + fill: var(--ha-color-orange-05) !important; } .light-medium-low { - fill: var(--ha-color-orange-30) !important; + fill: var(--ha-color-orange-20) !important; } .light-medium { @@ -601,18 +637,30 @@ svg * { .bin-today { fill: var(--error-color) !important; + stroke: var(--black-color) !important; + stroke-width: 0.25px !important; + stroke-opacity: .75 !important; } .bin-tomorrow { fill: var(--warning-color) !important; + stroke: var(--black-color) !important; + stroke-width: 0.25px !important; + stroke-opacity: .75 !important; } .bin-future { - fill: var(--ha-color-green-50) !important; + fill: var(--disabled-color) !important; + stroke: var(--black-color) !important; + stroke-width: 0.25px !important; + stroke-opacity: .75 !important; } .bin-false { - fill: var(--black-color) !important; + fill: var(--dark-grey-color) !important; + stroke: var(--black-color) !important; + stroke-width: 0.25px !important; + stroke-opacity: .75 !important; } .bags-five { diff --git a/www/floorplan/fullsized_floorplan.svg b/www/floorplan/fullsized_floorplan.svg index 2447d6e..be7da8d 100644 --- a/www/floorplan/fullsized_floorplan.svg +++ b/www/floorplan/fullsized_floorplan.svg @@ -38,9 +38,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="0.01" - inkscape:cx="46550" - inkscape:cy="29250" + inkscape:zoom="0.028284271" + inkscape:cx="53121.397" + inkscape:cy="37388.271" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -49,7 +49,7 @@ showborder="true" inkscape:window-width="1920" inkscape:window-height="1009" - inkscape:window-x="1912" + inkscape:window-x="-8" inkscape:window-y="-8" inkscape:window-maximized="1" showguides="true" @@ -2608,12 +2608,12 @@ @@ -3700,7 +3700,7 @@ sodipodi:arc-type="slice" /> + - inkscape:label="light.front_porch_overhead" /> + + + + + + --------- + x="715.41528" + y="-16353.23">--------- --------- + x="715.41528" + y="-16342.976">--------- @@ -6007,7 +6046,7 @@ + transform="matrix(0.52345088,0,0,0.52345088,253.46263,-8127.2771)">