diff --git a/automations/rooms/driveway_lights.yaml b/automations/rooms/driveway_lights.yaml index 5c0da2d..76ee198 100644 --- a/automations/rooms/driveway_lights.yaml +++ b/automations/rooms/driveway_lights.yaml @@ -9,7 +9,6 @@ trigger: - binary_sensor.from_street_vehicle_occupancy - binary_sensor.driveway_person_occupancy - binary_sensor.front_yard_person_occupancy - - binary_sensor.front_yard_animal_occupancy - binary_sensor.garage_door from: "off" to: "on" @@ -20,7 +19,6 @@ trigger: - binary_sensor.from_street_vehicle_occupancy - binary_sensor.driveway_person_occupancy - binary_sensor.front_yard_person_occupancy - - binary_sensor.front_yard_animal_occupancy - binary_sensor.garage_door from: "on" to: "off" diff --git a/automations/things/doorbell.yaml b/automations/things/doorbell.yaml index c0e6b95..6d98377 100644 --- a/automations/things/doorbell.yaml +++ b/automations/things/doorbell.yaml @@ -7,18 +7,20 @@ trigger: webhook_id: "synology_doorbell_actionrule" local_only: true - - id: button_pressed - platform: event - event_type: "amcrest" - event_data: - camera: "Front Porch" - event: "AlarmLocal" + # - id: button_pressed + # platform: event + # event_type: "amcrest" + # event_data: + # camera: "Front Porch" + # event: "AlarmLocal" - id: button_pressed - platform: state - entity_id: binary_sensor.front_porch_button_pressed - from: "off" - to: "on" + trigger: event + event_type: amcrest + event_data: + event: "CallNoAnswered" + payload: + action: "Start" - id: door_opened platform: state diff --git a/blueprints/script/homeassistant/ask_yes_no_question.yaml b/blueprints/script/homeassistant/ask_yes_no_question.yaml deleted file mode 100644 index e301b12..0000000 --- a/blueprints/script/homeassistant/ask_yes_no_question.yaml +++ /dev/null @@ -1,264 +0,0 @@ -blueprint: - name: Ask a Yes/No question - description: 'Ask a simple Yes/No question. Supports 50 different ways of confirming - or rejecting the question. Supports retries. - - ' - domain: script - author: JLo - homeassistant: - min_version: 2025.6.99 - input: - question: - name: Question - description: The question that will be asked by the voice assistant. - selector: - text: {} - yes_section: - name: Confirmation ('Yes', 'Of course', ...) - description: Define what should happen if you reply positively to the question - asked. - icon: mdi:play - input: - yes_actions: - name: Actions - description: Actions to perform if you reply positively to the question - asked. - default: [] - selector: - action: {} - yes_answer: - name: Answer - description: Answer of the voice assistant if you reply positively to the - question asked. - default: Done - selector: - text: {} - no_section: - name: Rejection ('No', 'Negative', ...) - description: Define what should happen if you reply negatively to the question - asked. - icon: mdi:stop - input: - no_actions: - name: Actions - description: Actions to perform if you reply negatively to the question - asked. - default: [] - selector: - action: {} - no_answer: - name: Answer - description: Answer of the voice assistant if you reply negatively to the - question asked. - default: Action cancelled - selector: - text: {} - other_section: - name: Other responses - description: Define what should happen if the response is not understood. - icon: mdi:help - collapsed: true - input: - other_actions: - name: Actions - description: Actions to perform if the response is not understood. - default: [] - selector: - action: {} - other_answer: - name: Answer - description: Answer of the voice assistant if the response is not understood. - default: Sorry, I couldn't understand that - selector: - text: {} - repeat_section: - name: Advanced parameters (Retries) - description: Define how many times the question should be asked if the answer - is not understood. - icon: mdi:cog - collapsed: true - input: - number_of_retries: - name: Number of retries - description: Number of times the question should be re-asked if the answer - is not understood. - default: 0 - selector: - number: - min: 0.0 - max: 10.0 - mode: slider - step: 1.0 - source_url: https://www.home-assistant.io/blueprints/blog/2025-07/ask_yes_no_question.yaml -fields: - voice_assistant: - name: Voice assistant - description: The voice assistant that will be used for that conversation. - required: true - selector: - entity: - multiple: false - filter: - - domain: assist_satellite - preannounce: - name: Preannounce - description: Play a sound before the question is asked. - required: true - default: true - selector: - boolean: -sequence: -- variables: - number_of_retries: !input number_of_retries -- repeat: - sequence: - - action: assist_satellite.ask_question - continue_on_error: true - data: - question: !input question - preannounce: '{{preannounce}}' - entity_id: '{{voice_assistant}}' - answers: - - id: 'yes' - sentences: - - 'Yes' - - Sure - - Absolutely - - Go ahead - - Please do - - Of course - - That's fine - - Do it - - Yep - - Yeah - - Ok - - Okay - - Affirmative - - I agree - - Sounds good - - You got it - - Definitely - - By all means - - Why not - - Indeed - - Confirmed - - Let's do it - - Certainly - - Right - - Fine - - All good - - Make it so - - I approve - - That's right - - I'm okay with that - - No problem - - Go for it - - Sounds fine - - I'm on board - - Proceed - - It's a yes - - I'm in - - Okay yes - - That's a yes - - Yeah go ahead - - I'm good with that - - Positive - - Do that - - It's okay - - Works for me - - I'm fine with that - - Yep do it - - Please go ahead - - That's what I want - - Exactly - - id: 'no' - sentences: - - 'No' - - Nope - - Don't - - Please don't - - No thank you - - I don't think so - - Not now - - That's a no - - I'd rather not - - No way - - Not really - - Cancel that - - Negative - - Stop - - Don't do it - - I said no - - No need - - Never mind - - Not necessary - - No that's not right - - I disagree - - Skip it - - Don't proceed - - I don't want that - - Don't go ahead - - Leave it - - That's incorrect - - I prefer not to - - No thanks - - I'm not okay with that - - I'm saying no - - Let's not - - Not this time - - I'm not in - - Please don't do that - - Don't take action - - I'd say no - - No action needed - - I'm against that - - I'd skip it - - Rather not - - Not today - - I'm not sure better not - - That's not what I want - - That won't be necessary - - I don't agree - - No that's wrong - - Let's skip that - - I'm not comfortable with that - response_variable: response - - choose: - - conditions: - - condition: template - value_template: '{{response.id == ''yes''}}' - sequence: - - sequence: !input yes_actions - - action: assist_satellite.announce - metadata: {} - data: - message: !input yes_answer - preannounce: false - target: - entity_id: '{{voice_assistant}}' - - conditions: - - condition: template - value_template: '{{response.id == ''no''}}' - sequence: - - sequence: !input no_actions - - action: assist_satellite.announce - metadata: {} - data: - message: !input no_answer - preannounce: false - target: - entity_id: '{{voice_assistant}}' - default: - - sequence: !input other_actions - - action: assist_satellite.announce - metadata: {} - data: - message: !input other_answer - preannounce: false - target: - entity_id: '{{voice_assistant}}' - until: - - condition: template - value_template: '{{ (response is defined and response.id in [''yes'',''no'']) - or repeat.index > number_of_retries}}' diff --git a/components/packages/camera_ptz/cam14.yaml b/components/packages/camera_ptz/cam14.yaml deleted file mode 100644 index 892cafb..0000000 --- a/components/packages/camera_ptz/cam14.yaml +++ /dev/null @@ -1,598 +0,0 @@ -input_text: - camera14_status: - name: Camera14 Status - icon: mdi:cctv - -input_select: - camera14_preset: - name: Camera14 Preset - options: - - Deck - - Sandbox - - Grove - - Grass - - Yard - - Stairs - - BesideStairs - -input_button: - # PTZ Controls - cam14_ptz_up: - name: Cam14 PTZ Up - icon: mdi:arrow-up - cam14_ptz_right_up: - name: Cam14 PTZ Right Up - icon: mdi:arrow-top-right - cam14_ptz_right: - name: Cam14 PTZ Right - icon: mdi:arrow-right - cam14_ptz_right_down: - name: Cam14 Right Down - icon: mdi:arrow-bottom-right - cam14_ptz_down: - name: Cam14 PTZ Down - icon: mdi:arrow-down - cam14_ptz_left_down: - name: Cam14 PTZ Left Down - icon: mdi:arrow-bottom-left - cam14_ptz_left: - name: Cam14 PTZ Left - icon: mdi:arrow-left - cam14_ptz_left_up: - name: Cam14 Left Up - icon: mdi:arrow-top-left - cam14_ptz_zoom_in: - name: Cam14 Zoom In - icon: mdi:magnify-plus - cam14_ptz_zoom_out: - name: Cam14 Zoom Out - icon: mdi:magnify-minus - - # Camera Preset - cam14_ptz_preset_1: - name: Cam14 Deck - icon: mdi:grill - cam14_ptz_preset_2: - name: Cam14 Sandbox - icon: mdi:pail - cam14_ptz_preset_3: - name: Cam14 Yard - icon: mdi:slide - cam14_ptz_preset_4: - name: Cam14 Grove - icon: mdi:forest - cam14_ptz_preset_5: - name: Cam14 Stairs - icon: mdi:stairs - cam14_ptz_preset_6: - name: Cam14 Preset 6 - icon: mdi:stairs-down - cam14_ptz_preset_7: - name: Cam14 Preset 7 - icon: mdi:grass - cam14_ptz_preset_8: - name: Cam14 Preset 8 - icon: mdi:map-marker - cam14_ptz_preset_9: - name: Cam14 Preset 9 - icon: mdi:map-marker - cam14_ptz_preset_10: - name: Cam14 Preset 10 - icon: mdi:map-marker - -automation: - # - id: automation_cam14_ptz_controls - # alias: Cam14 PTZ Controls - # mode: queued - # trigger: - # - id: up - # platform: state - # entity_id: input_button.cam14_ptz_up - - # - id: right_up - # platform: state - # entity_id: input_button.cam14_ptz_right_up - - # - id: right - # platform: state - # entity_id: input_button.cam14_ptz_right - - # - id: right_down - # platform: state - # entity_id: input_button.cam14_ptz_right_down - - # - id: down - # platform: state - # entity_id: input_button.cam14_ptz_down - - # - id: left_down - # platform: state - # entity_id: input_button.cam14_ptz_left_down - - # - id: left - # platform: state - # entity_id: input_button.cam14_ptz_left - - # - id: left_up - # platform: state - # entity_id: input_button.cam14_ptz_left_up - - # - id: zoom_in - # platform: state - # entity_id: input_button.cam14_ptz_zoom_in - - # - id: zoom_out - # platform: state - # entity_id: input_button.cam14_ptz_zoom_out - - # condition: [] - # action: - # - service: amcrest.ptz_control - # data: - # entity_id: camera.frigate_cam14 - # movement: "{{ trigger.id }}" - # travel_time: 0.5 - - # - delay: '00:00:01' - - # - id: automation_manage_frigate_cam14_motion - # mode: single - # alias: Manage Frigate Cam14 Motion - # description: "" - # trigger: - # - platform: state - # entity_id: input_boolean.cycle_cam14 - - # - platform: homeassistant - # event: start - - # - platform: event - # event_type: automation_reloaded - - # action: - # - choose: - # - conditions: - # - condition: state - # entity_id: input_boolean.cycle_cam14 - # state: 'off' - # sequence: - # - service: switch.turn_on - # target: - # entity_id: switch.frigate_cam14_motion - # default: - # - service: switch.turn_off - # target: - # entity_id: switch.frigate_cam14_motion - - - id: automation_cycle_back_yard_camera - mode: single - alias: Cycle Back Yard Camera - description: "" - trigger: - - platform: state - entity_id: input_boolean.cycle_cam14 - - - platform: homeassistant - event: start - - - platform: event - event_type: automation_reloaded - - condition: - - "{{ states('camera.frigate_cam14') not in ['unknown', 'unavailable'] }}" - # - alias: "The input_boolean controlling the cycling of cam14 is on" - # condition: state - # entity_id: input_boolean.cycle_cam14 - # state: "on" - # - alias: "No people or animals detected by Frigate for the last 5 seconds" - # condition: state - # entity_id: binary_sensor.frigate_cam14_all_occupancy - # state: "off" - # for: - # hours: 0 - # minutes: 0 - # seconds: 5 - # # Either the camera isn't looking at the deck - # # or the camera is looking at the deck and the deck motion sensor has been off for at least 30 seconds - # # or the camera is looking at the deck and the patio door has been closed for at least 30 seconds - # - condition: or - # conditions: - # - alias: "The input_select isn't set to Deck" - # condition: not - # conditions: - # - condition: state - # entity_id: input_select.camera14_preset - # state: "Deck" - # - alias: "The input_select is set to Deck and there hasn't been motion detected on the deck for the last 30 seconds" - # condition: and - # conditions: - # - condition: state - # entity_id: input_select.camera14_preset - # state: "Deck" - # - condition: state - # entity_id: binary_sensor.deck_motion - # state: "off" - # for: - # seconds: 30 - # - alias: "The input_select is set to deck and the patio door has been shut for at least 30 seconds" - # condition: and - # conditions: - # - condition: state - # entity_id: input_select.camera14_preset - # state: "Deck" - # - condition: state - # entity_id: binary_sensor.patio_door_contact - # state: "off" - # for: - # seconds: 30 - - action: - # - alias: "This always cycles the back yard camera every 45 seconds. It should stop cycling when a person is found, but this version doesn't" - # repeat: - # while: "{{ is_state('input_boolean.cycle_cam14', 'on') }}" - # sequence: - # - service: input_select.select_next - # data: - # cycle: true - # target: - # entity_id: input_select.camera14_preset - - # - delay: "00:00:45" - - - alias: "This should only cycle the back yard camera, if a person isn't found." - repeat: - while: "{{ is_state('input_boolean.cycle_cam14', 'on') }}" - sequence: - - choose: - # If the camera is looking at the deck and the deck motion sensor is on, then wait 5 seconds. - - conditions: - - condition: state - entity_id: input_select.camera14_preset - state: Deck - - condition: state - entity_id: binary_sensor.deck_motion - state: "on" - sequence: - - service: input_text.set_value - target: - entity_id: input_text.camera14_status - data: - value: "Deck" - - delay: 5 - - # If a person is not found, cycle to the next preset, then wait 30 seconds. - - conditions: - - condition: template - value_template: "{{ is_state('binary_sensor.frigate_cam14_person_occupancy','off') }}" - sequence: - - service: input_text.set_value - target: - entity_id: input_text.camera14_status - data: - value: "Cycling" - - service: input_select.select_next - data: - cycle: true - target: - entity_id: input_select.camera14_preset - - - delay: 30 - - # If a person is found, check if the person is still present every 5 seconds - default: - - service: input_text.set_value - target: - entity_id: input_text.camera14_status - data: - value: "Focusing" - - - repeat: - while: "{{ is_state('binary_sensor.frigate_cam14_person_occupancy','off') }}" - sequence: - - delay: 5 - - - service: input_text.set_value - target: - entity_id: input_text.camera14_status - data: - value: "Static" - - - id: automation_look_at_deck - mode: restart - alias: "Look at deck" - description: "When the patio door is opened, set the camera to the deck preset, if frigate isn't currently detecting anything" - trigger: - - platform: state - entity_id: binary_sensor.patio_door_contact - from: "off" - to: "on" - condition: - - condition: numeric_state - entity_id: sensor.frigate_cam14_all_count - below: 2 - - - "{{ states('camera.frigate_cam14') not in ['unknown', 'unavailable'] }}" - - action: - # We don't need to turn off cycling the back yard camera. - # - service: input_boolean.turn_off - # target: - # entity_id: input_boolean.cycle_cam14 - - - service: input_text.set_value - target: - entity_id: input_text.camera14_status - data: - value: "Deck" - - - service: input_select.select_option - data: - option: Deck - target: - entity_id: input_select.camera14_preset - - # the Cycle cam 14 automation already checks if something is detected. All we need to do is force cam14 to look at the deck - # - delay: "00:00:05" - # - repeat: - # while: "{{ is_state('binary_sensor.frigate_cam14_all_occupancy', 'on')}}" - # sequence: - # - delay: "00:00:05" - # - service: input_boolean.turn_on - # target: - # entity_id: input_boolean.cycle_cam14 - - - id: automation_back_yard_snapshot - mode: restart - alias: "Back Yard Snapshot" - trigger: - - platform: homeassistant - event: start - - - platform: state - entity_id: camera.frigate_cam14 - to: "streaming" - - action: - - service: camera.snapshot - target: - entity_id: camera.frigate_cam14 - data: - filename: "/config/tmp/snapshots/cam14-{{states('input_select.camera14_preset')}}-{{now().strftime('%y%m%d-%H%M%S')}}.jpg" - - - id: automation_cam14_ptz_preset - alias: Cam14 PTZ Presets - mode: single - max_exceeded: silent - trigger: - - id: Preset 1 - platform: state - entity_id: input_button.cam14_ptz_preset_1 - - - id: Preset 2 - platform: state - entity_id: input_button.cam14_ptz_preset_2 - - - id: Preset 3 - platform: state - entity_id: input_button.cam14_ptz_preset_3 - - - id: Preset 4 - platform: state - entity_id: input_button.cam14_ptz_preset_4 - - - id: Preset 5 - platform: state - entity_id: input_button.cam14_ptz_preset_5 - - - id: Preset 6 - platform: state - entity_id: input_button.cam14_ptz_preset_6 - - - id: Preset 7 - platform: state - entity_id: input_button.cam14_ptz_preset_7 - - - id: Preset 8 - platform: state - entity_id: input_button.cam14_ptz_preset_8 - - - id: Preset 9 - platform: state - entity_id: input_button.cam14_ptz_preset_9 - - - id: Preset 10 - platform: state - entity_id: input_button.cam14_ptz_preset_10 - - condition: - - "{{ states('camera.frigate_cam14') not in ['unknown', 'unavailable'] }}" - - action: - - choose: - - conditions: > - {{ trigger.id|replace('Preset ','')|int(default=0) == 1}} - sequence: - - service: input_select.select_option - target: - entity_id: input_select.camera14_preset - data: - option: "Deck" - - conditions: > - {{ trigger.id|replace('Preset ','')|int(default=0) == 2}} - sequence: - - service: input_select.select_option - target: - entity_id: input_select.camera14_preset - data: - option: "Sandbox" - - conditions: > - {{ trigger.id|replace('Preset ','')|int(default=0) == 3}} - sequence: - - service: input_select.select_option - target: - entity_id: input_select.camera14_preset - data: - option: "Yard" - - conditions: > - {{ trigger.id|replace('Preset ','')|int(default=0) == 4}} - sequence: - - service: input_select.select_option - target: - entity_id: input_select.camera14_preset - data: - option: "Grove" - - conditions: > - {{ trigger.id|replace('Preset ','')|int(default=0) == 5}} - sequence: - - service: input_select.select_option - target: - entity_id: input_select.camera14_preset - data: - option: "Stairs" - - conditions: > - {{ trigger.id|replace('Preset ','')|int(default=0) == 6}} - sequence: - - service: input_select.select_option - target: - entity_id: input_select.camera14_preset - data: - option: "BesideStairs" - - conditions: > - {{ trigger.id|replace('Preset ','')|int(default=0) == 7}} - sequence: - - service: input_select.select_option - target: - entity_id: input_select.camera14_preset - data: - option: "Grass" - - - service: "shell_command.back_yard_preset_{{ trigger.id|replace('Preset ','')|int(default=1) }}" - # - service: amcrest.goto_preset - # data: - # entity_id: camera.frigate_cam14 - # preset: "{{ trigger.id|replace('Preset ','')|int(default=1) }}" - - - delay: "00:00:2" - - - id: automation_cam14_ptz_move - alias: Cam14 PTZ Move - mode: restart - trigger: - - platform: state - entity_id: input_select.camera14_preset - - platform: state - entity_id: camera.frigate_cam14 - from: unavailable - - platform: homeassistant - event: start - - platform: time_pattern - minutes: /10 - - condition: - - "{{ states('camera.frigate_cam14') not in ['unknown', 'unavailable'] }}" - - action: - - choose: - - conditions: - - condition: state - entity_id: input_select.camera14_preset - state: Sandbox - sequence: - - service: input_button.press - data: {} - target: - entity_id: input_button.cam14_ptz_preset_2 - - conditions: - - condition: state - entity_id: input_select.camera14_preset - state: Yard - sequence: - - service: input_button.press - data: {} - target: - entity_id: input_button.cam14_ptz_preset_3 - - conditions: - - condition: state - entity_id: input_select.camera14_preset - state: Grove - sequence: - - service: input_button.press - data: {} - target: - entity_id: input_button.cam14_ptz_preset_4 - - conditions: - - condition: state - entity_id: input_select.camera14_preset - state: Stairs - sequence: - - service: input_button.press - data: {} - target: - entity_id: input_button.cam14_ptz_preset_5 - - conditions: - - condition: state - entity_id: input_select.camera14_preset - state: BesideStairs - sequence: - - service: input_button.press - data: {} - target: - entity_id: input_button.cam14_ptz_preset_6 - - conditions: - - condition: state - entity_id: input_select.camera14_preset - state: Grass - sequence: - - service: input_button.press - data: {} - target: - entity_id: input_button.cam14_ptz_preset_7 - default: - - service: input_button.press - data: {} - target: - entity_id: input_button.cam14_ptz_preset_1 - -template: - - binary_sensor: - - name: Deck Person Occupancy - unique_id: templatebinarysensor.deck_person_occupancy - availability: "{{ states('binary_sensor.possible_deck_person_occupancy') not in ['unknown', 'unavailable'] }}" - state: "{{ is_state('binary_sensor.possible_deck_person_occupancy','on') and is_state('input_select.camera14_preset','Deck') }}" - icon: > - {% if is_state('binary_sensor.deck_person_occupancy','on') %} - mdi:motion-sensor - {% else %} - mdi:motion-sensor-off - {% endif %} - - - name: Deck Animal Motion - unique_id: templatebinarysensor.deck_animal_occupancy - availability: "{{ states('binary_sensor.possible_deck_animal_occupancy') not in ['unknown', 'unavailable'] }}" - state: "{{ is_state('binary_sensor.possible_deck_animal_occupancy','on') and is_state('input_select.camera14_preset','Deck') }}" - icon: mdi:bird - - - sensor: - - name: Deck Person Count - unique_id: templatesensor.deck_person_count - availability: "{{ states('sensor.possible_deck_person_count') not in ['unknown', 'unavailable'] }}" - unit_of_measurement: objects - state: > - {% if is_state('input_select.camera14_preset','Deck') %} - {{ states('sensor.possible_deck_person_count') }} - {% else %} - 0 - {% endif %} - icon: mdi:shield-account - - - name: Deck Animal Count - unique_id: templatesensor.deck_animal_count - availability: "{{ states('sensor.possible_deck_animal_count') not in ['unknown', 'unavailable'] }}" - unit_of_measurement: objects - state: > - {% if is_state('input_select.camera14_preset','Deck') %} - {{ states('sensor.possible_deck_animal_count') }} - {% else %} - 0 - {% endif %} - icon: mdi:paw diff --git a/components/packages/camera_ptz/command_line_ptz_controls.yaml b/components/packages/camera_ptz/command_line_ptz_controls.yaml index 63d2f64..49c451c 100644 --- a/components/packages/camera_ptz/command_line_ptz_controls.yaml +++ b/components/packages/camera_ptz/command_line_ptz_controls.yaml @@ -10,11 +10,3 @@ shell_command: master_bedroom_right_preset_3: !secret master_bedroom_right_preset_3 master_bedroom_right_preset_4: !secret master_bedroom_right_preset_4 master_bedroom_right_preset_5: !secret master_bedroom_right_preset_5 - - back_yard_preset_1: !secret back_yard_preset_1 - back_yard_preset_2: !secret back_yard_preset_2 - back_yard_preset_3: !secret back_yard_preset_3 - back_yard_preset_4: !secret back_yard_preset_4 - back_yard_preset_5: !secret back_yard_preset_5 - back_yard_preset_6: !secret back_yard_preset_6 - back_yard_preset_7: !secret back_yard_preset_7 \ No newline at end of file diff --git a/components/packages/hass_agent/dreambox.yaml b/components/packages/hass_agent/dreambox.yaml index e6dd83d..c5ff935 100644 --- a/components/packages/hass_agent/dreambox.yaml +++ b/components/packages/hass_agent/dreambox.yaml @@ -1,13 +1,13 @@ -notify: - name: DreamBox - platform: hass_agent_notifier - resource: !secret dreambox_hassagent +# notify: +# name: DreamBox +# platform: hass_agent_notifier +# resource: !secret dreambox_hassagent -# media_player: -# - name: DreamBox -# platform: hass_agent_mediaplayer -# host: !secret dreambox_ip -# port: 5115 +# # media_player: +# # - name: DreamBox +# # platform: hass_agent_mediaplayer +# # host: !secret dreambox_ip +# # port: 5115 template: - trigger: diff --git a/components/packages/hass_agent/dreamsurface.yaml b/components/packages/hass_agent/dreamsurface.yaml index a78095c..db9738e 100644 --- a/components/packages/hass_agent/dreamsurface.yaml +++ b/components/packages/hass_agent/dreamsurface.yaml @@ -1,25 +1,25 @@ -notify: - name: DreamSurface - platform: hass_agent_notifier - resource: !secret dreamsurface_hassagent +# notify: +# name: DreamSurface +# platform: hass_agent_notifier +# resource: !secret dreamsurface_hassagent -mqtt: - light: - - name: "DreamSurface: Screen Brightness" - unique_id: "dreamsurface_screen_brightness" - object_id: "dreamsurface_monitor_brightness" - command_topic: "homeassistant/light/DREAMSURFACE/DREAMSURFACE_screen_brightness/action" - brightness_command_topic: "homeassistant/light/HASSAGENT/dreamsurface_monitor_brightness/action" - brightness_command_template: "%PROGRAMFILES(X86)%\\Monitorian\\Monitorian.exe /set {{ value }}" - brightness_scale: 100 - on_command_type: "brightness" - icon: mdi:monitor-shimmer +# mqtt: +# light: +# - name: "DreamSurface: Screen Brightness" +# unique_id: "dreamsurface_screen_brightness" +# object_id: "dreamsurface_monitor_brightness" +# command_topic: "homeassistant/light/DREAMSURFACE/DREAMSURFACE_screen_brightness/action" +# brightness_command_topic: "homeassistant/light/HASSAGENT/dreamsurface_monitor_brightness/action" +# brightness_command_template: "%PROGRAMFILES(X86)%\\Monitorian\\Monitorian.exe /set {{ value }}" +# brightness_scale: 100 +# on_command_type: "brightness" +# icon: mdi:monitor-shimmer -# media_player: -# - name: Dreamsurface -# platform: hass_agent_mediaplayer -# host: !secret dreamsurface_ip -# port: 5115 +# # media_player: +# # - name: Dreamsurface +# # platform: hass_agent_mediaplayer +# # host: !secret dreamsurface_ip +# # port: 5115 template: - trigger: diff --git a/components/packages/hass_agent/notify_hass_agent_group.yaml b/components/packages/hass_agent/notify_hass_agent_group.yaml index dacf60d..a79f610 100644 --- a/components/packages/hass_agent/notify_hass_agent_group.yaml +++ b/components/packages/hass_agent/notify_hass_agent_group.yaml @@ -1,6 +1,6 @@ notify: - platform: group - name: "Hass Agent Group" + name: "Dream Computers" services: - service: dreambox - service: dreamsurface diff --git a/components/packages/mqtt_traverse.yaml b/components/packages/mqtt_traverse.yaml new file mode 100644 index 0000000..282db62 --- /dev/null +++ b/components/packages/mqtt_traverse.yaml @@ -0,0 +1,14 @@ +mqtt: + - device_tracker: + - name: "Location" + #state_topic: "clever_devices/67f7ffaa-723d-4a93-bd9a-3e97a466a468" + json_attributes_topic: "clever_devices/67f7ffaa-723d-4a93-bd9a-3e97a466a468/attributes" + source_type: gps + unique_id: clever_chevy_traverse + icon: mdi:car-estate + device: + identifiers: 67f7ffaa-723d-4a93-bd9a-3e97a466a468 + name: Chevrolet Traverse + model: Traverse + manufacturer: Chevrolet + suggested_area: Garage diff --git a/customizations/entities/chevy_traverse.yaml b/customizations/entities/chevy_traverse.yaml new file mode 100644 index 0000000..71f4c8c --- /dev/null +++ b/customizations/entities/chevy_traverse.yaml @@ -0,0 +1,2 @@ +# device_tracker.chevrolet_traverse_location: +# icon: "{% if is_state('device_tracker.chevrolet_traverse_location', 'home') %}mdi:car-estate{% else %}mdi:road-variant{% endif %}" diff --git a/esphome/bed-presence/base.yaml b/esphome/bed-presence/base.yaml index 9dec910..45a27da 100644 --- a/esphome/bed-presence/base.yaml +++ b/esphome/bed-presence/base.yaml @@ -1,6 +1,6 @@ substitutions: - sensor_gpio_left: GPIO10 - sensor_gpio_right: GPIO20 + sensor_gpio_left: GPIO34 + sensor_gpio_right: GPIO35 packages: diagnostics: !include diff --git a/lovelace/cameras/view-camera-01.yaml b/lovelace/cameras/view-camera-01.yaml index b1efa98..6cc1e77 100644 --- a/lovelace/cameras/view-camera-01.yaml +++ b/lovelace/cameras/view-camera-01.yaml @@ -1,154 +1,155 @@ -type: vertical-stack -cards: - - type: custom:advanced-camera-card - cameras_global: +type: conditional +conditions: + - condition: state + entity: sensor.frigate_cam01_camera_fps + state_not: "0" +card: + type: vertical-stack + cards: + - type: custom:advanced-camera-card + cameras_global: + dimensions: + layout: + fit: fill + status_bar: + style: none + cameras: + - camera_entity: camera.frigate_cam01 + live_provider: go2rtc + go2rtc: + modes: + - webrtc + stream: rtsp_cam01_sub + icon: mdi:yoga + title: Blue Room + id: blue_room + live: + preload: true + draggable: true + show_image_during_load: false + lazy_load: false + controls: + title: + mode: none + timeline: + mode: none + thumbnails: + mode: none + menu: + buttons: + frigate: + enabled: false + style: none + media_viewer: + draggable: false + lazy_load: false dimensions: - layout: - fit: fill - status_bar: - style: none - cameras: - - camera_entity: camera.frigate_cam01 - live_provider: go2rtc - go2rtc: - modes: - - webrtc - stream: rtsp_cam01_sub - icon: mdi:yoga - title: Blue Room - id: blue_room - live: - preload: true - draggable: true - show_image_during_load: false - lazy_load: false - controls: - title: - mode: none - timeline: - mode: none - thumbnails: - mode: none - menu: - buttons: - frigate: - enabled: false - style: none - media_viewer: - draggable: false - lazy_load: false - dimensions: - aspect_ratio_mode: static - aspect_ratio: "16:9" - elements: - - type: image - image: /local/title-dark-double.png - style: - transform: initial - top: 90% - left: 0px - width: 100% - height: 10% - opacity: 70% - - type: image - entity: camera.frigate_cam01 - image: /local/title-dark-double.png - aspect_ratio: 100% - tap_action: - action: navigate - navigation_path: /ai-yml/ai-cam01 - style: - transform: initial - top: 0px - left: 0px - width: 100% - height: 100% - opacity: 0% + aspect_ratio_mode: static + aspect_ratio: "16:9" + elements: + - type: image + image: /local/title-dark-double.png + style: + transform: initial + top: 90% + left: 0px + width: 100% + height: 10% + opacity: 70% + - type: image + entity: camera.frigate_cam01 + image: /local/title-dark-double.png + aspect_ratio: 100% + tap_action: + action: navigate + navigation_path: /ai-yml/ai-cam01 + style: + transform: initial + top: 0px + left: 0px + width: 100% + height: 100% + opacity: 0% - - type: state-icon - entity: group.blue_room_motion - style: - left: 8% - top: 95% - - type: state-icon - entity: binary_sensor.frigate_cam01_speech_sound - style: - left: 30% - top: 95% - - type: state-icon - entity: sensor.furnace_room_person_count - style: - left: 50% - top: 95% - - type: state-icon - entity: input_boolean.blue_room_occupied - tap_action: - action: toggle - style: - left: 70% - top: 95% - - type: state-icon - entity: binary_sensor.blue_room_occupied - style: - top: 95% - left: 92% + - type: state-icon + entity: group.blue_room_motion + style: + left: 8% + top: 95% + - type: state-icon + entity: sensor.furnace_room_person_count + style: + left: 50% + top: 95% + - type: state-icon + entity: input_boolean.blue_room_occupied + tap_action: + action: toggle + style: + left: 70% + top: 95% + - type: state-icon + entity: binary_sensor.blue_room_occupied + style: + top: 95% + left: 92% - - type: conditional - conditions: - - entity: binary_sensor.blue_room_person_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.blue_room_person_occupancy - style: - top: 65% - left: 45% - - type: conditional - conditions: - - entity: binary_sensor.furnace_room_person_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.furnace_room_person_occupancy - style: - top: 22% - left: 83% + - type: conditional + conditions: + - entity: binary_sensor.blue_room_person_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.blue_room_person_occupancy + style: + top: 65% + left: 45% + - type: conditional + conditions: + - entity: binary_sensor.furnace_room_person_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.furnace_room_person_occupancy + style: + top: 22% + left: 83% - - type: conditional - conditions: - - entity: light.blue_room_closet - state: "on" - elements: - - type: state-icon - entity: light.blue_room_closet - style: - top: 7% - left: 60% - tap_action: - action: toggle + - type: conditional + conditions: + - entity: light.blue_room_closet + state: "on" + elements: + - type: state-icon + entity: light.blue_room_closet + style: + top: 7% + left: 60% + tap_action: + action: toggle - - type: conditional - conditions: - - entity: light.blue_room_hue - state: "on" - elements: - - type: state-icon - entity: light.blue_room_hue - style: - top: 7% - left: 50% - tap_action: - action: toggle + - type: conditional + conditions: + - entity: light.blue_room_hue + state: "on" + elements: + - type: state-icon + entity: light.blue_room_hue + style: + top: 7% + left: 50% + tap_action: + action: toggle - - type: conditional - conditions: - - entity: light.furnace_room - state: "on" - elements: - - type: state-icon - entity: light.furnace_room - style: - top: 7% - left: 82% - tap_action: - action: toggle + - type: conditional + conditions: + - entity: light.furnace_room + state: "on" + elements: + - type: state-icon + entity: light.furnace_room + style: + top: 7% + left: 82% + tap_action: + action: toggle diff --git a/lovelace/cameras/view-camera-03.yaml b/lovelace/cameras/view-camera-03.yaml index f28f6f2..db418e6 100644 --- a/lovelace/cameras/view-camera-03.yaml +++ b/lovelace/cameras/view-camera-03.yaml @@ -1,148 +1,149 @@ -type: vertical-stack -cards: - - type: custom:advanced-camera-card - cameras_global: +type: conditional +conditions: + - condition: state + entity: sensor.frigate_cam03_camera_fps + state_not: "0" +card: + type: vertical-stack + cards: + - type: custom:advanced-camera-card + cameras_global: + dimensions: + layout: + fit: fill + status_bar: + style: none + cameras: + - camera_entity: camera.frigate_cam03 + live_provider: go2rtc + go2rtc: + modes: + - webrtc + stream: rtsp_cam03_sub + icon: mdi:desktop-classic + title: Computer Area + id: computer_area + live: + preload: true + draggable: true + show_image_during_load: false + lazy_load: false + controls: + title: + mode: none + timeline: + mode: none + thumbnails: + mode: none + menu: + buttons: + frigate: + enabled: false + style: none + media_viewer: + draggable: false + lazy_load: false dimensions: - layout: - fit: fill - status_bar: - style: none - cameras: - - camera_entity: camera.frigate_cam03 - live_provider: go2rtc - go2rtc: - modes: - - webrtc - stream: rtsp_cam03_sub - icon: mdi:desktop-classic - title: Computer Area - id: computer_area - live: - preload: true - draggable: true - show_image_during_load: false - lazy_load: false - controls: - title: - mode: none - timeline: - mode: none - thumbnails: - mode: none - menu: - buttons: - frigate: - enabled: false - style: none - media_viewer: - draggable: false - lazy_load: false - dimensions: - aspect_ratio_mode: static - aspect_ratio: '16:9' - elements: - - type: image - image: /local/title-dark-double.png - style: - transform: initial - top: 90% - left: 0px - width: 100% - height: 10% - opacity: 70% - - type: image - entity: camera.frigate_cam03 - image: /local/title-dark-double.png - aspect_ratio: 100% - tap_action: - action: navigate - navigation_path: /ai-yml/ai-cam03 - style: - transform: initial - top: 0px - left: 0px - width: 100% - height: 100% - opacity: 0% - - type: state-icon - entity: group.computer_area_motion - style: - left: 8% - top: 95% - - type: state-icon - entity: binary_sensor.frigate_cam03_speech_sound - style: - left: 30% - top: 95% - - type: state-icon - entity: sensor.great_room_person_count - style: - left: 50% - top: 95% - - type: state-icon - entity: input_boolean.computer_area_occupied - tap_action: - action: toggle - style: - left: 70% - top: 95% - - type: state-icon - entity: binary_sensor.computer_area_occupied - style: - top: 95% - left: 92% + aspect_ratio_mode: static + aspect_ratio: '16:9' + elements: + - type: image + image: /local/title-dark-double.png + style: + transform: initial + top: 90% + left: 0px + width: 100% + height: 10% + opacity: 70% + - type: image + entity: camera.frigate_cam03 + image: /local/title-dark-double.png + aspect_ratio: 100% + tap_action: + action: navigate + navigation_path: /ai-yml/ai-cam03 + style: + transform: initial + top: 0px + left: 0px + width: 100% + height: 100% + opacity: 0% + - type: state-icon + entity: group.computer_area_motion + style: + left: 8% + top: 95% + - type: state-icon + entity: sensor.great_room_person_count + style: + left: 50% + top: 95% + - type: state-icon + entity: input_boolean.computer_area_occupied + tap_action: + action: toggle + style: + left: 70% + top: 95% + - type: state-icon + entity: binary_sensor.computer_area_occupied + style: + top: 95% + left: 92% - - type: conditional - conditions: - - entity: binary_sensor.great_room_person_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.great_room_person_occupancy - style: - top: 20% - left: 25% + - type: conditional + conditions: + - entity: binary_sensor.great_room_person_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.great_room_person_occupancy + style: + top: 20% + left: 25% - - type: conditional - conditions: - - entity: binary_sensor.utility_room_person_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.utility_room_person_occupancy - style: - top: 17% - left: 57% + - type: conditional + conditions: + - entity: binary_sensor.utility_room_person_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.utility_room_person_occupancy + style: + top: 17% + left: 57% - - type: conditional - conditions: - - entity: binary_sensor.entryway_person_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.entryway_person_occupancy - style: - top: 25% - left: 97% + - type: conditional + conditions: + - entity: binary_sensor.entryway_person_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.entryway_person_occupancy + style: + top: 25% + left: 97% - - type: conditional - conditions: - - entity: binary_sensor.computer_area_person_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.computer_area_person_occupancy - style: - top: 87% - left: 80% + - type: conditional + conditions: + - entity: binary_sensor.computer_area_person_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.computer_area_person_occupancy + style: + top: 87% + left: 80% - - type: conditional - conditions: - - entity: binary_sensor.computer_chair_contact_occupied - state: "on" - elements: - - type: state-icon - entity: binary_sensor.computer_chair_contact_occupied - style: - top: 87% - left: 75% + - type: conditional + conditions: + - entity: binary_sensor.computer_chair_contact_occupied + state: "on" + elements: + - type: state-icon + entity: binary_sensor.computer_chair_contact_occupied + style: + top: 87% + left: 75% diff --git a/lovelace/cameras/view-camera-04.yaml b/lovelace/cameras/view-camera-04.yaml index cdb8abd..010c043 100644 --- a/lovelace/cameras/view-camera-04.yaml +++ b/lovelace/cameras/view-camera-04.yaml @@ -1,226 +1,227 @@ -type: vertical-stack -cards: - - type: custom:advanced-camera-card - cameras_global: +type: conditional +conditions: + - condition: state + entity: sensor.frigate_cam04_camera_fps + state_not: "0" +card: + type: vertical-stack + cards: + - type: custom:advanced-camera-card + cameras_global: + dimensions: + layout: + fit: fill + status_bar: + style: none + cameras: + - camera_entity: camera.frigate_cam04 + live_provider: go2rtc + go2rtc: + modes: + - webrtc + stream: rtsp_cam04_sub + live: + preload: true + draggable: true + show_image_during_load: false + lazy_load: false + controls: + title: + mode: none + timeline: + mode: none + thumbnails: + mode: none + menu: + buttons: + frigate: + enabled: false + style: none + media_viewer: + draggable: false + lazy_load: false dimensions: - layout: - fit: fill - status_bar: - style: none - cameras: - - camera_entity: camera.frigate_cam04 - live_provider: go2rtc - go2rtc: - modes: - - webrtc - stream: rtsp_cam04_sub - live: - preload: true - draggable: true - show_image_during_load: false - lazy_load: false - controls: - title: - mode: none - timeline: - mode: none - thumbnails: - mode: none - menu: - buttons: - frigate: - enabled: false - style: none - media_viewer: - draggable: false - lazy_load: false - dimensions: - aspect_ratio_mode: static - aspect_ratio: '16:9' - elements: - - type: image - image: /local/title-dark-double.png - style: - transform: initial - top: 90% - left: 0px - width: 100% - height: 10% - opacity: 70% - - type: image - entity: camera.frigate_cam04 - image: /local/title-dark-double.png - aspect_ratio: 100% - tap_action: - action: navigate - navigation_path: /ai-yml/ai-cam04 - style: - transform: initial - top: 0px - left: 0px - width: 100% - height: 100% - opacity: 0% + aspect_ratio_mode: static + aspect_ratio: '16:9' + elements: + - type: image + image: /local/title-dark-double.png + style: + transform: initial + top: 90% + left: 0px + width: 100% + height: 10% + opacity: 70% + - type: image + entity: camera.frigate_cam04 + image: /local/title-dark-double.png + aspect_ratio: 100% + tap_action: + action: navigate + navigation_path: /ai-yml/ai-cam04 + style: + transform: initial + top: 0px + left: 0px + width: 100% + height: 100% + opacity: 0% - - type: state-icon - entity: group.garage_motion - style: - left: 8% - top: 95% - - type: state-icon - entity: binary_sensor.frigate_cam04_speech_sound - style: - left: 22% - top: 95% - - type: state-icon - entity: sensor.east_side_vehicle_count - style: - left: 36% - top: 95% - - type: state-icon - entity: sensor.workshop_person_count - style: - left: 50% - top: 95% - - type: state-icon - entity: sensor.west_side_vehicle_count - style: - left: 64% - top: 95% - - type: state-icon - entity: input_boolean.garage_occupied - tap_action: - action: toggle - style: - left: 78% - top: 95% - - type: state-icon - entity: binary_sensor.garage_occupied - style: - top: 95% - left: 92% + - type: state-icon + entity: group.garage_motion + style: + left: 8% + top: 95% + - type: state-icon + entity: sensor.east_side_vehicle_count + style: + left: 36% + top: 95% + - type: state-icon + entity: sensor.workshop_person_count + style: + left: 50% + top: 95% + - type: state-icon + entity: sensor.west_side_vehicle_count + style: + left: 64% + top: 95% + - type: state-icon + entity: input_boolean.garage_occupied + tap_action: + action: toggle + style: + left: 78% + top: 95% + - type: state-icon + entity: binary_sensor.garage_occupied + style: + top: 95% + left: 92% - - type: state-icon - entity: light.garage_overhead - tap_action: - action: toggle - style: - top: 5% - left: 50% + - type: state-icon + entity: light.garage_overhead + tap_action: + action: toggle + style: + top: 5% + left: 50% - - type: state-icon - entity: cover.garage_door - tap_action: - action: toggle - style: - top: 40% - left: 83% + - type: state-icon + entity: cover.garage_door + tap_action: + action: toggle + style: + top: 40% + left: 83% - - type: conditional - conditions: - - entity: binary_sensor.parking_spot_vehicle_occupancy - state: "on" - - entity: binary_sensor.garage_door - state: "on" - elements: - - type: state-icon - entity: binary_sensor.parking_spot_vehicle_occupancy - style: - top: 43% - left: 40% + - type: conditional + conditions: + - entity: binary_sensor.parking_spot_vehicle_occupancy + state: "on" + - entity: binary_sensor.garage_door + state: "on" + elements: + - type: state-icon + entity: binary_sensor.parking_spot_vehicle_occupancy + style: + top: 43% + left: 40% - - type: conditional - conditions: - - entity: binary_sensor.from_street_vehicle_occupancy - state: "on" - - entity: binary_sensor.garage_door - state: "on" - elements: - - type: state-icon - entity: binary_sensor.from_street_vehicle_occupancy - style: - top: 40% - left: 60% + - type: conditional + conditions: + - entity: binary_sensor.from_street_vehicle_occupancy + state: "on" + - entity: binary_sensor.garage_door + state: "on" + elements: + - type: state-icon + entity: binary_sensor.from_street_vehicle_occupancy + style: + top: 40% + left: 60% - - type: conditional - conditions: - - entity: binary_sensor.driveway_east_side_vehicle_occupancy - state: "on" - - entity: binary_sensor.garage_door - state: "on" - elements: - - type: state-icon - entity: binary_sensor.driveway_east_side_vehicle_occupancy - style: - top: 50% - left: 63% + - type: conditional + conditions: + - entity: binary_sensor.driveway_east_side_vehicle_occupancy + state: "on" + - entity: binary_sensor.garage_door + state: "on" + elements: + - type: state-icon + entity: binary_sensor.driveway_east_side_vehicle_occupancy + style: + top: 50% + left: 63% - - type: conditional - conditions: - - entity: binary_sensor.driveway_center_vehicle_occupancy - state: "on" - - entity: binary_sensor.garage_door - state: "on" - elements: - - type: state-icon - entity: binary_sensor.driveway_center_vehicle_occupancy - style: - top: 50% - left: 55% + - type: conditional + conditions: + - entity: binary_sensor.driveway_center_vehicle_occupancy + state: "on" + - entity: binary_sensor.garage_door + state: "on" + elements: + - type: state-icon + entity: binary_sensor.driveway_center_vehicle_occupancy + style: + top: 50% + left: 55% - - type: conditional - conditions: - - entity: binary_sensor.driveway_west_side_vehicle_occupancy - state: "on" - - entity: binary_sensor.garage_door - state: "on" - elements: - - type: state-icon - entity: binary_sensor.driveway_west_side_vehicle_occupancy - style: - top: 50% - left: 47% + - type: conditional + conditions: + - entity: binary_sensor.driveway_west_side_vehicle_occupancy + state: "on" + - entity: binary_sensor.garage_door + state: "on" + elements: + - type: state-icon + entity: binary_sensor.driveway_west_side_vehicle_occupancy + style: + top: 50% + left: 47% - - type: conditional - conditions: - - entity: binary_sensor.walkway_person_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.walkway_person_occupancy - style: - top: 26% - left: 72% + - type: conditional + conditions: + - entity: binary_sensor.walkway_person_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.walkway_person_occupancy + style: + top: 26% + left: 72% - - type: conditional - conditions: - - entity: binary_sensor.workshop_person_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.workshop_person_occupancy - style: - top: 50% - left: 85% + - type: conditional + conditions: + - entity: binary_sensor.workshop_person_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.workshop_person_occupancy + style: + top: 50% + left: 85% - - type: conditional - conditions: - - entity: binary_sensor.east_side_vehicle_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.east_side_vehicle_occupancy - style: - top: 80% - left: 63% + - type: conditional + conditions: + - entity: binary_sensor.east_side_vehicle_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.east_side_vehicle_occupancy + style: + top: 80% + left: 63% - - type: conditional - conditions: - - entity: binary_sensor.west_side_vehicle_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.west_side_vehicle_occupancy - style: - top: 80% - left: 30% + - type: conditional + conditions: + - entity: binary_sensor.west_side_vehicle_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.west_side_vehicle_occupancy + style: + top: 80% + left: 30% diff --git a/lovelace/cameras/view-camera-06.yaml b/lovelace/cameras/view-camera-06.yaml index 371bf6e..54ec5c4 100644 --- a/lovelace/cameras/view-camera-06.yaml +++ b/lovelace/cameras/view-camera-06.yaml @@ -1,112 +1,113 @@ -type: vertical-stack -cards: - - type: custom:advanced-camera-card - cameras_global: +type: conditional +conditions: + - condition: state + entity: sensor.frigate_cam06_camera_fps + state_not: "0" +card: + type: vertical-stack + cards: + - type: custom:advanced-camera-card + cameras_global: + dimensions: + layout: + fit: fill + status_bar: + style: none + cameras: + - camera_entity: camera.frigate_cam06 + live_provider: go2rtc + go2rtc: + modes: + - webrtc + stream: rtsp_cam06_sub + live: + preload: true + draggable: true + show_image_during_load: false + lazy_load: false + controls: + title: + mode: none + timeline: + mode: none + thumbnails: + mode: none + menu: + buttons: + frigate: + enabled: false + style: none + media_viewer: + draggable: false + lazy_load: false dimensions: - layout: - fit: fill - status_bar: - style: none - cameras: - - camera_entity: camera.frigate_cam06 - live_provider: go2rtc - go2rtc: - modes: - - webrtc - stream: rtsp_cam06_sub - live: - preload: true - draggable: true - show_image_during_load: false - lazy_load: false - controls: - title: - mode: none - timeline: - mode: none - thumbnails: - mode: none - menu: - buttons: - frigate: - enabled: false - style: none - media_viewer: - draggable: false - lazy_load: false - dimensions: - aspect_ratio_mode: static - aspect_ratio: '16:9' - elements: - - type: image - image: /local/title-dark-double.png - style: - transform: initial - top: 90% - left: 0px - width: 100% - height: 10% - opacity: 70% - - type: image - entity: camera.frigate_cam06 - image: /local/title-dark-double.png - aspect_ratio: 100% - tap_action: - action: navigate - navigation_path: /ai-yml/ai-cam06 - style: - transform: initial - top: 0px - left: 0px - width: 100% - height: 100% - opacity: 0% + aspect_ratio_mode: static + aspect_ratio: '16:9' + elements: + - type: image + image: /local/title-dark-double.png + style: + transform: initial + top: 90% + left: 0px + width: 100% + height: 10% + opacity: 70% + - type: image + entity: camera.frigate_cam06 + image: /local/title-dark-double.png + aspect_ratio: 100% + tap_action: + action: navigate + navigation_path: /ai-yml/ai-cam06 + style: + transform: initial + top: 0px + left: 0px + width: 100% + height: 100% + opacity: 0% - - type: state-icon - entity: group.master_bedroom_motion - style: - left: 8% - top: 95% - - type: state-icon - entity: binary_sensor.frigate_cam06_speech_sound - style: - left: 30% - top: 95% - - type: state-icon - entity: sensor.master_bed_person_count - style: - left: 50% - top: 95% - - type: state-icon - entity: input_boolean.master_bedroom_occupied - tap_action: - action: toggle - style: - left: 70% - top: 95% - - type: state-icon - entity: binary_sensor.master_bedroom_occupied - style: - top: 95% - left: 92% + - type: state-icon + entity: group.master_bedroom_motion + style: + left: 8% + top: 95% + - type: state-icon + entity: sensor.master_bed_person_count + style: + left: 50% + top: 95% + - type: state-icon + entity: input_boolean.master_bedroom_occupied + tap_action: + action: toggle + style: + left: 70% + top: 95% + - type: state-icon + entity: binary_sensor.master_bedroom_occupied + style: + top: 95% + left: 92% - - type: conditional - conditions: - - entity: binary_sensor.master_bedroom_person_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.master_bedroom_person_occupancy - style: - top: 50% - left: 10% - - type: conditional - conditions: - - entity: binary_sensor.master_bed_person_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.master_bed_person_occupancy - style: - top: 50% - left: 70% + - type: conditional + conditions: + - entity: binary_sensor.master_bedroom_person_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.master_bedroom_person_occupancy + style: + top: 50% + left: 10% + - type: conditional + conditions: + - entity: binary_sensor.master_bed_person_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.master_bed_person_occupancy + style: + top: 50% + left: 70% diff --git a/lovelace/cameras/view-camera-07.yaml b/lovelace/cameras/view-camera-07.yaml index fb78d5f..1263d16 100644 --- a/lovelace/cameras/view-camera-07.yaml +++ b/lovelace/cameras/view-camera-07.yaml @@ -1,112 +1,113 @@ -type: vertical-stack -cards: - - type: custom:advanced-camera-card - cameras_global: +type: conditional +conditions: + - condition: state + entity: sensor.frigate_cam07_camera_fps + state_not: "0" +card: + type: vertical-stack + cards: + - type: custom:advanced-camera-card + cameras_global: + dimensions: + layout: + fit: fill + status_bar: + style: none + cameras: + - camera_entity: camera.frigate_cam07 + live_provider: go2rtc + go2rtc: + modes: + - webrtc + stream: rtsp_cam07_sub + live: + preload: true + draggable: true + show_image_during_load: false + lazy_load: false + controls: + title: + mode: none + timeline: + mode: none + thumbnails: + mode: none + menu: + buttons: + frigate: + enabled: false + style: none + media_viewer: + draggable: false + lazy_load: false dimensions: - layout: - fit: fill - status_bar: - style: none - cameras: - - camera_entity: camera.frigate_cam07 - live_provider: go2rtc - go2rtc: - modes: - - webrtc - stream: rtsp_cam07_sub - live: - preload: true - draggable: true - show_image_during_load: false - lazy_load: false - controls: - title: - mode: none - timeline: - mode: none - thumbnails: - mode: none - menu: - buttons: - frigate: - enabled: false - style: none - media_viewer: - draggable: false - lazy_load: false - dimensions: - aspect_ratio_mode: static - aspect_ratio: '16:9' - elements: - - type: image - image: /local/title-dark-double.png - style: - transform: initial - top: 90% - left: 0px - width: 100% - height: 10% - opacity: 70% - - type: image - entity: camera.frigate_cam07 - image: /local/title-dark-double.png - aspect_ratio: 100% - tap_action: - action: navigate - navigation_path: /ai-yml/ai-cam07 - style: - transform: initial - top: 0px - left: 0px - width: 100% - height: 100% - opacity: 0% + aspect_ratio_mode: static + aspect_ratio: '16:9' + elements: + - type: image + image: /local/title-dark-double.png + style: + transform: initial + top: 90% + left: 0px + width: 100% + height: 10% + opacity: 70% + - type: image + entity: camera.frigate_cam07 + image: /local/title-dark-double.png + aspect_ratio: 100% + tap_action: + action: navigate + navigation_path: /ai-yml/ai-cam07 + style: + transform: initial + top: 0px + left: 0px + width: 100% + height: 100% + opacity: 0% - - type: state-icon - entity: group.master_bedroom_motion - style: - left: 8% - top: 95% - - type: state-icon - entity: binary_sensor.frigate_cam07_speech_sound - style: - left: 30% - top: 95% - - type: state-icon - entity: sensor.master_bed_person_count - style: - left: 50% - top: 95% - - type: state-icon - entity: input_boolean.master_bedroom_occupied - tap_action: - action: toggle - style: - left: 70% - top: 95% - - type: state-icon - entity: binary_sensor.master_bedroom_occupied - style: - top: 95% - left: 92% + - type: state-icon + entity: group.master_bedroom_motion + style: + left: 8% + top: 95% + - type: state-icon + entity: sensor.master_bed_person_count + style: + left: 50% + top: 95% + - type: state-icon + entity: input_boolean.master_bedroom_occupied + tap_action: + action: toggle + style: + left: 70% + top: 95% + - type: state-icon + entity: binary_sensor.master_bedroom_occupied + style: + top: 95% + left: 92% - - type: conditional - conditions: - - entity: binary_sensor.master_bedroom_person_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.master_bedroom_person_occupancy - style: - top: 22% - left: 90% - - type: conditional - conditions: - - entity: binary_sensor.master_bed_person_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.master_bed_person_occupancy - style: - top: 50% - left: 30% + - type: conditional + conditions: + - entity: binary_sensor.master_bedroom_person_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.master_bedroom_person_occupancy + style: + top: 22% + left: 90% + - type: conditional + conditions: + - entity: binary_sensor.master_bed_person_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.master_bed_person_occupancy + style: + top: 50% + left: 30% diff --git a/lovelace/cameras/view-camera-08.yaml b/lovelace/cameras/view-camera-08.yaml index 8d04710..49b7cc6 100644 --- a/lovelace/cameras/view-camera-08.yaml +++ b/lovelace/cameras/view-camera-08.yaml @@ -1,203 +1,204 @@ -type: vertical-stack -cards: - - type: custom:advanced-camera-card - cameras_global: +type: conditional +conditions: + - condition: state + entity: sensor.frigate_cam08_camera_fps + state_not: "0" +card: + type: vertical-stack + cards: + - type: custom:advanced-camera-card + cameras_global: + dimensions: + layout: + fit: fill + status_bar: + style: none + cameras: + - camera_entity: camera.frigate_cam08 + live_provider: go2rtc + go2rtc: + modes: + - webrtc + stream: rtsp_cam08_sub + live: + preload: true + draggable: true + show_image_during_load: false + lazy_load: false + controls: + title: + mode: none + timeline: + mode: none + thumbnails: + mode: none + menu: + buttons: + frigate: + enabled: false + style: none + media_viewer: + draggable: false + lazy_load: false dimensions: - layout: - fit: fill - status_bar: - style: none - cameras: - - camera_entity: camera.frigate_cam08 - live_provider: go2rtc - go2rtc: - modes: - - webrtc - stream: rtsp_cam08_sub - live: - preload: true - draggable: true - show_image_during_load: false - lazy_load: false - controls: - title: - mode: none - timeline: - mode: none - thumbnails: - mode: none - menu: - buttons: - frigate: - enabled: false - style: none - media_viewer: - draggable: false - lazy_load: false - dimensions: - aspect_ratio_mode: static - aspect_ratio: '16:9' - elements: - - type: image - image: /local/title-dark-double.png - style: - transform: initial - top: 90% - left: 0px - width: 100% - height: 10% - opacity: 70% - - type: image - entity: camera.frigate_cam08 - image: /local/title-dark-double.png - aspect_ratio: 100% - # tap_action: - # action: navigate - # navigation_path: /ai-yml/ai-cam08 - style: - transform: initial - top: 0px - left: 0px - width: 100% - height: 100% - opacity: 0% + aspect_ratio_mode: static + aspect_ratio: '16:9' + elements: + - type: image + image: /local/title-dark-double.png + style: + transform: initial + top: 90% + left: 0px + width: 100% + height: 10% + opacity: 70% + - type: image + entity: camera.frigate_cam08 + image: /local/title-dark-double.png + aspect_ratio: 100% + # tap_action: + # action: navigate + # navigation_path: /ai-yml/ai-cam08 + style: + transform: initial + top: 0px + left: 0px + width: 100% + height: 100% + opacity: 0% - - type: state-icon - entity: group.nursery_motion - style: - left: 8% - top: 95% - - type: state-icon - entity: binary_sensor.frigate_cam08_speech_sound - style: - left: 24% - top: 95% - - type: state-icon - entity: binary_sensor.black_bed_occupied - 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: - action: toggle - style: - left: 76% - top: 95% - - type: state-icon - entity: binary_sensor.nursery_occupied - style: - top: 95% - left: 92% + - type: state-icon + entity: group.nursery_motion + style: + left: 8% + top: 95% + - type: state-icon + entity: binary_sensor.black_bed_occupied + 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: + action: toggle + style: + left: 76% + top: 95% + - type: state-icon + entity: binary_sensor.nursery_occupied + style: + top: 95% + left: 92% - - type: conditional - conditions: - - entity: binary_sensor.black_bed_person_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.black_bed_person_occupancy - style: - top: 30% - left: 23% - - type: conditional - conditions: - - entity: binary_sensor.black_bed_occupied - state: "on" - elements: - - type: state-icon - entity: binary_sensor.black_bed_occupied - style: - top: 30% - left: 18% - - type: conditional - conditions: - - entity: binary_sensor.white_bed_person_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.white_bed_person_occupancy - style: - top: 65% - left: 85% - - 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 - state: "on" - elements: - - type: state-icon - entity: binary_sensor.nursery_person_occupancy - style: - top: 50% - left: 50% + - type: conditional + conditions: + - entity: binary_sensor.black_bed_person_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.black_bed_person_occupancy + style: + top: 30% + left: 23% + - type: conditional + conditions: + - entity: binary_sensor.black_bed_occupied + state: "on" + elements: + - type: state-icon + entity: binary_sensor.black_bed_occupied + style: + top: 30% + left: 18% + - type: conditional + conditions: + - entity: binary_sensor.white_bed_person_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.white_bed_person_occupancy + style: + top: 65% + left: 85% + - 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 + state: "on" + elements: + - type: state-icon + entity: binary_sensor.nursery_person_occupancy + style: + top: 50% + left: 50% - - type: state-icon - entity: media_player.nursery_hub - style: - left: 45% - top: 16% + - type: state-icon + entity: media_player.nursery_hub + style: + left: 45% + top: 16% - - type: state-icon - entity: light.nursery_ceiling_hue - style: - left: 50% - top: 3% - tap_action: - action: toggle - hold_action: - action: more-info + - type: state-icon + entity: light.nursery_ceiling_hue + style: + left: 50% + top: 3% + tap_action: + action: toggle + hold_action: + action: more-info - - type: state-icon - entity: light.nursery_closet - style: - left: 80% - top: 7% - tap_action: - action: toggle - hold_action: - action: more-info + - type: state-icon + entity: light.nursery_closet + style: + left: 80% + top: 7% + tap_action: + action: toggle + hold_action: + action: more-info - - type: state-icon - entity: light.black_bed_wled - style: - left: 8% - top: 7% + - type: state-icon + entity: light.black_bed_wled + style: + left: 8% + top: 7% - - type: state-icon - entity: select.black_bed_wled_preset - style: - left: 8% - top: 12% + - type: state-icon + entity: select.black_bed_wled_preset + style: + left: 8% + top: 12% - - type: state-icon - entity: light.white_bed_wled - style: - left: 98% - top: 65% - - type: state-icon - entity: select.white_bed_wled_preset - style: - left: 98% - top: 70% + - type: state-icon + entity: light.white_bed_wled + style: + left: 98% + top: 65% + - type: state-icon + entity: select.white_bed_wled_preset + style: + left: 98% + top: 70% - - type: state-icon - entity: binary_sensor.nursery_closet_motion_switch_home_security_motion_detection - style: - left: 84% - top: 22% + - type: state-icon + entity: binary_sensor.nursery_closet_motion_switch_home_security_motion_detection + style: + left: 84% + top: 22% diff --git a/lovelace/cameras/view-camera-12.yaml b/lovelace/cameras/view-camera-12.yaml index 9f844d4..4e024eb 100644 --- a/lovelace/cameras/view-camera-12.yaml +++ b/lovelace/cameras/view-camera-12.yaml @@ -1,122 +1,123 @@ -type: vertical-stack -cards: - - type: custom:advanced-camera-card - cameras_global: +type: conditional +conditions: + - condition: state + entity: sensor.frigate_cam12_camera_fps + state_not: "0" +card: + type: vertical-stack + cards: + - type: custom:advanced-camera-card + cameras_global: + dimensions: + layout: + fit: fill + status_bar: + style: none + cameras: + - camera_entity: camera.frigate_cam12 + live_provider: go2rtc + go2rtc: + modes: + - webrtc + stream: rtsp_cam12_sub + live: + preload: true + draggable: true + show_image_during_load: false + lazy_load: false + controls: + title: + mode: none + timeline: + mode: none + thumbnails: + mode: none + menu: + buttons: + frigate: + enabled: false + style: none + media_viewer: + draggable: false + lazy_load: false dimensions: - layout: - fit: fill - status_bar: - style: none - cameras: - - camera_entity: camera.frigate_cam12 - live_provider: go2rtc - go2rtc: - modes: - - webrtc - stream: rtsp_cam12_sub - live: - preload: true - draggable: true - show_image_during_load: false - lazy_load: false - controls: - title: - mode: none - timeline: - mode: none - thumbnails: - mode: none - menu: - buttons: - frigate: - enabled: false - style: none - media_viewer: - draggable: false - lazy_load: false - dimensions: - aspect_ratio_mode: static - aspect_ratio: '16:9' - elements: - - type: image - image: /local/title-dark-double.png - style: - transform: initial - top: 90% - left: 0px - width: 100% - height: 10% - opacity: 70% - - type: image - entity: camera.frigate_cam12 - image: /local/title-dark-double.png - aspect_ratio: 100% - tap_action: - action: navigate - navigation_path: /ai-yml/ai-cam12 - style: - transform: initial - top: 0px - left: 0px - width: 100% - height: 100% - opacity: 0% + aspect_ratio_mode: static + aspect_ratio: '16:9' + elements: + - type: image + image: /local/title-dark-double.png + style: + transform: initial + top: 90% + left: 0px + width: 100% + height: 10% + opacity: 70% + - type: image + entity: camera.frigate_cam12 + image: /local/title-dark-double.png + aspect_ratio: 100% + tap_action: + action: navigate + navigation_path: /ai-yml/ai-cam12 + style: + transform: initial + top: 0px + left: 0px + width: 100% + height: 100% + opacity: 0% - - type: state-icon - entity: group.kitchen_motion - style: - left: 8% - top: 95% - - type: state-icon - entity: binary_sensor.frigate_cam12_speech_sound - style: - left: 30% - top: 95% - - type: state-icon - entity: input_boolean.kitchen_occupied - tap_action: - action: toggle - style: - left: 70% - top: 95% - - type: state-icon - entity: binary_sensor.kitchen_occupied - style: - top: 95% - left: 92% + - type: state-icon + entity: group.kitchen_motion + style: + left: 8% + top: 95% + - type: state-icon + entity: input_boolean.kitchen_occupied + tap_action: + action: toggle + style: + left: 70% + top: 95% + - type: state-icon + entity: binary_sensor.kitchen_occupied + style: + top: 95% + left: 92% - - type: state-icon - entity: binary_sensor.pantry_door_contact - style: - top: 29% - left: 4% + - type: state-icon + entity: binary_sensor.pantry_door_contact + style: + top: 29% + left: 4% - - type: conditional - conditions: - - entity: binary_sensor.dishwasher - state: "on" - elements: - - type: state-icon - entity: binary_sensor.dishwasher - style: - top: 47% - left: 41% + - type: conditional + conditions: + - entity: binary_sensor.dishwasher + state: "on" + elements: + - type: state-icon + entity: binary_sensor.dishwasher + style: + top: 47% + left: 41% - - type: conditional - conditions: - - entity: binary_sensor.kitchen_person_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.kitchen_person_occupancy - style: - top: 70% - left: 41% + - type: conditional + conditions: + - entity: binary_sensor.kitchen_person_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.kitchen_person_occupancy + style: + top: 70% + left: 41% - - type: state-icon - entity: switch.shelly_sliding_glass_door - style: - top: 3% - left: 55% - tap_action: - action: toggle + - type: state-icon + entity: switch.shelly_sliding_glass_door + style: + top: 3% + left: 55% + tap_action: + action: toggle diff --git a/lovelace/cameras/view-camera-13.yaml b/lovelace/cameras/view-camera-13.yaml index 80a562e..5205972 100644 --- a/lovelace/cameras/view-camera-13.yaml +++ b/lovelace/cameras/view-camera-13.yaml @@ -1,125 +1,126 @@ -type: vertical-stack -cards: - - type: custom:advanced-camera-card - cameras_global: +type: conditional +conditions: + - condition: state + entity: sensor.frigate_cam13_camera_fps + state_not: "0" +card: + type: vertical-stack + cards: + - type: custom:advanced-camera-card + cameras_global: + dimensions: + layout: + fit: fill + status_bar: + style: none + cameras: + - camera_entity: camera.frigate_cam13 + live_provider: go2rtc + go2rtc: + modes: + - webrtc + stream: rtsp_cam13_sub + live: + preload: true + draggable: true + show_image_during_load: false + lazy_load: false + controls: + title: + mode: none + timeline: + mode: none + thumbnails: + mode: none + menu: + buttons: + frigate: + enabled: false + style: none + media_viewer: + draggable: false + lazy_load: false dimensions: - layout: - fit: fill - status_bar: - style: none - cameras: - - camera_entity: camera.frigate_cam13 - live_provider: go2rtc - go2rtc: - modes: - - webrtc - stream: rtsp_cam13_sub - live: - preload: true - draggable: true - show_image_during_load: false - lazy_load: false - controls: - title: - mode: none - timeline: - mode: none - thumbnails: - mode: none - menu: - buttons: - frigate: - enabled: false - style: none - media_viewer: - draggable: false - lazy_load: false - dimensions: - aspect_ratio_mode: static - aspect_ratio: '16:9' - elements: - - type: image - image: /local/title-dark-double.png - style: - transform: initial - top: 90% - left: 0px - width: 100% - height: 10% - opacity: 70% - - type: image - entity: camera.frigate_cam13 - image: /local/title-dark-double.png - aspect_ratio: 100% - tap_action: - action: navigate - navigation_path: /ai-yml/ai-cam13 - style: - transform: initial - top: 0px - left: 0px - width: 100% - height: 100% - opacity: 0% + aspect_ratio_mode: static + aspect_ratio: '16:9' + elements: + - type: image + image: /local/title-dark-double.png + style: + transform: initial + top: 90% + left: 0px + width: 100% + height: 10% + opacity: 70% + - type: image + entity: camera.frigate_cam13 + image: /local/title-dark-double.png + aspect_ratio: 100% + tap_action: + action: navigate + navigation_path: /ai-yml/ai-cam13 + style: + transform: initial + top: 0px + left: 0px + width: 100% + height: 100% + opacity: 0% - - type: state-icon - entity: group.front_room_motion - style: - left: 8% - top: 95% - - type: state-icon - entity: binary_sensor.frigate_cam13_speech_sound - style: - left: 30% - top: 95% - - type: state-icon - entity: sensor.dining_room_person_count - style: - left: 50% - top: 95% - - type: state-icon - entity: input_boolean.front_room_occupied - tap_action: - action: toggle - style: - left: 70% - top: 95% - - type: state-icon - entity: binary_sensor.front_room_occupied - style: - top: 95% - left: 92% + - type: state-icon + entity: group.front_room_motion + style: + left: 8% + top: 95% + - type: state-icon + entity: sensor.dining_room_person_count + style: + left: 50% + top: 95% + - type: state-icon + entity: input_boolean.front_room_occupied + tap_action: + action: toggle + style: + left: 70% + top: 95% + - type: state-icon + entity: binary_sensor.front_room_occupied + style: + top: 95% + left: 92% - - type: state-icon - entity: binary_sensor.patio_door_contact - style: - top: 29% - left: 4% + - type: state-icon + entity: binary_sensor.patio_door_contact + style: + top: 29% + left: 4% - - type: state-icon - entity: switch.shelly_sliding_glass_door - style: - top: 34% - left: 4% + - type: state-icon + entity: switch.shelly_sliding_glass_door + style: + top: 34% + left: 4% - - type: conditional - conditions: - - entity: binary_sensor.front_room_person_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.front_room_person_occupancy - style: - top: 55% - left: 55% + - type: conditional + conditions: + - entity: binary_sensor.front_room_person_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.front_room_person_occupancy + style: + top: 55% + left: 55% - - type: conditional - conditions: - - entity: binary_sensor.dining_room_person_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.dining_room_person_occupancy - style: - top: 33% - left: 20% + - type: conditional + conditions: + - entity: binary_sensor.dining_room_person_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.dining_room_person_occupancy + style: + top: 33% + left: 20% diff --git a/lovelace/cameras/view-camera-14.yaml b/lovelace/cameras/view-camera-14.yaml index 8476bb1..f2bcaae 100644 --- a/lovelace/cameras/view-camera-14.yaml +++ b/lovelace/cameras/view-camera-14.yaml @@ -1,112 +1,113 @@ -type: vertical-stack -cards: - - type: custom:advanced-camera-card - cameras_global: +type: conditional +conditions: + - condition: state + entity: sensor.frigate_cam14_camera_fps + state_not: "0" +card: + type: vertical-stack + cards: + - type: custom:advanced-camera-card + cameras_global: + dimensions: + layout: + fit: fill + status_bar: + style: none + cameras: + - camera_entity: camera.frigate_cam14 + live_provider: go2rtc + go2rtc: + modes: + - webrtc + stream: rtsp_cam14_sub + live: + preload: true + draggable: true + show_image_during_load: false + lazy_load: false + controls: + title: + mode: none + timeline: + mode: none + thumbnails: + mode: none + menu: + buttons: + frigate: + enabled: false + style: none + media_viewer: + draggable: false + lazy_load: false dimensions: - layout: - fit: fill - status_bar: - style: none - cameras: - - camera_entity: camera.frigate_cam14 - live_provider: go2rtc - go2rtc: - modes: - - webrtc - stream: rtsp_cam14_sub - live: - preload: true - draggable: true - show_image_during_load: false - lazy_load: false - controls: - title: - mode: none - timeline: - mode: none - thumbnails: - mode: none - menu: - buttons: - frigate: - enabled: false - style: none - media_viewer: - draggable: false - lazy_load: false - dimensions: - aspect_ratio_mode: static - aspect_ratio: '16:9' - elements: - - type: image - image: /local/title-dark-double.png - style: - transform: initial - top: 90% - left: 0px - width: 100% - height: 10% - opacity: 70% - - type: image - entity: camera.frigate_cam14 - image: /local/title-dark-double.png - aspect_ratio: 100% - tap_action: - action: navigate - navigation_path: /ai-yml/ai-cam14 - style: - transform: initial - top: 0px - left: 0px - width: 100% - height: 100% - opacity: 0% + aspect_ratio_mode: static + aspect_ratio: '16:9' + elements: + - type: image + image: /local/title-dark-double.png + style: + transform: initial + top: 90% + left: 0px + width: 100% + height: 10% + opacity: 70% + - type: image + entity: camera.frigate_cam14 + image: /local/title-dark-double.png + aspect_ratio: 100% + tap_action: + action: navigate + navigation_path: /ai-yml/ai-cam14 + style: + transform: initial + top: 0px + left: 0px + width: 100% + height: 100% + opacity: 0% - - type: state-icon - entity: group.back_yard_motion - style: - left: 8% - top: 95% - - type: state-icon - entity: binary_sensor.frigate_cam14_speech_sound - style: - left: 30% - top: 95% - - type: state-icon - entity: sensor.back_yard_animal_count - style: - left: 50% - top: 95% - - type: state-icon - entity: input_boolean.back_yard_occupied - tap_action: - action: toggle - style: - left: 70% - top: 95% - - type: state-icon - entity: binary_sensor.back_yard_occupied - style: - top: 95% - left: 92% + - type: state-icon + entity: group.back_yard_motion + style: + left: 8% + top: 95% + - type: state-icon + entity: sensor.back_yard_animal_count + style: + left: 50% + top: 95% + - type: state-icon + entity: input_boolean.back_yard_occupied + tap_action: + action: toggle + style: + left: 70% + top: 95% + - type: state-icon + entity: binary_sensor.back_yard_occupied + style: + top: 95% + left: 92% - - type: conditional - conditions: - - entity: binary_sensor.back_yard_person_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.back_yard_person_occupancy - style: - top: 45% - left: 45% - - type: conditional - conditions: - - entity: binary_sensor.back_yard_animal_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.back_yard_animal_occupancy - style: - top: 45% - left: 55% + - type: conditional + conditions: + - entity: binary_sensor.back_yard_person_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.back_yard_person_occupancy + style: + top: 45% + left: 45% + - type: conditional + conditions: + - entity: binary_sensor.back_yard_animal_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.back_yard_animal_occupancy + style: + top: 45% + left: 55% diff --git a/lovelace/cameras/view-camera-18.yaml b/lovelace/cameras/view-camera-18.yaml index 4259e9b..9290f44 100644 --- a/lovelace/cameras/view-camera-18.yaml +++ b/lovelace/cameras/view-camera-18.yaml @@ -1,207 +1,208 @@ -type: vertical-stack -cards: - - type: custom:advanced-camera-card - cameras_global: +type: conditional +conditions: + - condition: state + entity: sensor.frigate_cam18_camera_fps + state_not: "0" +card: + type: vertical-stack + cards: + - type: custom:advanced-camera-card + cameras_global: + dimensions: + layout: + fit: fill + status_bar: + style: none + cameras: + - camera_entity: camera.frigate_cam18 + live_provider: go2rtc + go2rtc: + modes: + - webrtc + stream: rtsp_cam18_sub + live: + preload: true + draggable: true + show_image_during_load: true + lazy_load: false + controls: + title: + mode: none + timeline: + mode: none + thumbnails: + mode: none + menu: + buttons: + frigate: + enabled: false + style: none + media_viewer: + draggable: false + lazy_load: false dimensions: - layout: - fit: fill - status_bar: - style: none - cameras: - - camera_entity: camera.frigate_cam18 - live_provider: go2rtc - go2rtc: - modes: - - webrtc - stream: rtsp_cam18_sub - live: - preload: true - draggable: true - show_image_during_load: true - lazy_load: false - controls: - title: - mode: none - timeline: - mode: none - thumbnails: - mode: none - menu: - buttons: - frigate: - enabled: false - style: none - media_viewer: - draggable: false - lazy_load: false - dimensions: - aspect_ratio_mode: static - aspect_ratio: '16:9' - elements: - - type: image - image: /local/title-dark-double.png - style: - transform: initial - top: 90% - left: 0px - width: 100% - height: 10% - opacity: 70% - - type: image - entity: camera.frigate_cam18 - image: /local/title-dark-double.png - aspect_ratio: 100% - tap_action: - action: navigate - navigation_path: /ai-yml/ai-cam18 - style: - transform: initial - top: 0px - left: 0px - width: 100% - height: 100% - opacity: 0% + aspect_ratio_mode: static + aspect_ratio: '16:9' + elements: + - type: image + image: /local/title-dark-double.png + style: + transform: initial + top: 90% + left: 0px + width: 100% + height: 10% + opacity: 70% + - type: image + entity: camera.frigate_cam18 + image: /local/title-dark-double.png + aspect_ratio: 100% + tap_action: + action: navigate + navigation_path: /ai-yml/ai-cam18 + style: + transform: initial + top: 0px + left: 0px + width: 100% + height: 100% + opacity: 0% - - type: state-icon - entity: binary_sensor.front_yard_person_occupancy - style: - left: 8% - top: 95% - - type: state-icon - entity: binary_sensor.frigate_cam18_speech_sound - style: - left: 30% - top: 95% + - type: state-icon + entity: binary_sensor.front_yard_person_occupancy + style: + left: 8% + top: 95% - - type: state-icon - entity: binary_sensor.frigate_cam18_vehicle_occupancy - style: - left: 50% - top: 95% - - type: state-icon - entity: input_boolean.front_yard_occupied - tap_action: - action: toggle - style: - left: 70% - top: 95% - - type: state-icon - entity: cover.garage_door - style: - top: 95% - left: 92% + - type: state-icon + entity: binary_sensor.frigate_cam18_vehicle_occupancy + style: + left: 50% + top: 95% + - type: state-icon + entity: input_boolean.front_yard_occupied + tap_action: + action: toggle + style: + left: 70% + top: 95% + - type: state-icon + entity: cover.garage_door + style: + top: 95% + left: 92% - - type: conditional - conditions: - - entity: binary_sensor.driveway_east_side_vehicle_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.driveway_east_side_vehicle_occupancy - style: - top: 35% - left: 65% + - type: conditional + conditions: + - entity: binary_sensor.driveway_east_side_vehicle_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.driveway_east_side_vehicle_occupancy + style: + top: 35% + left: 65% - - type: conditional - conditions: - - entity: binary_sensor.driveway_center_vehicle_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.driveway_center_vehicle_occupancy - style: - top: 45% - left: 55% + - type: conditional + conditions: + - entity: binary_sensor.driveway_center_vehicle_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.driveway_center_vehicle_occupancy + style: + top: 45% + left: 55% - - type: conditional - conditions: - - entity: binary_sensor.driveway_west_side_vehicle_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.driveway_west_side_vehicle_occupancy - style: - top: 55% - left: 45% + - type: conditional + conditions: + - entity: binary_sensor.driveway_west_side_vehicle_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.driveway_west_side_vehicle_occupancy + style: + top: 55% + left: 45% - - type: conditional - conditions: - - entity: binary_sensor.parking_spot_vehicle_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.parking_spot_vehicle_occupancy - style: - top: 35% - left: 2% + - type: conditional + conditions: + - entity: binary_sensor.parking_spot_vehicle_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.parking_spot_vehicle_occupancy + style: + top: 35% + left: 2% - - type: conditional - conditions: - - entity: binary_sensor.from_street_vehicle_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.from_street_vehicle_occupancy - style: - top: 17% - left: 12% + - type: conditional + conditions: + - entity: binary_sensor.from_street_vehicle_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.from_street_vehicle_occupancy + style: + top: 17% + left: 12% - - type: conditional - conditions: - - entity: binary_sensor.from_street_person_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.from_street_person_occupancy - style: - top: 17% - left: 17% + - type: conditional + conditions: + - entity: binary_sensor.from_street_person_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.from_street_person_occupancy + style: + top: 17% + left: 17% - - type: conditional - conditions: - - entity: binary_sensor.front_porch_person_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.front_porch_person_occupancy - style: - top: 32% - left: 97% + - type: conditional + conditions: + - entity: binary_sensor.front_porch_person_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.front_porch_person_occupancy + style: + top: 32% + left: 97% - - type: conditional - conditions: - - entity: binary_sensor.front_yard_person_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.front_yard_person_occupancy - style: - top: 12% - left: 76% + - type: conditional + conditions: + - entity: binary_sensor.front_yard_person_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.front_yard_person_occupancy + style: + top: 12% + left: 76% - # - type: conditional - # conditions: - # - entity: binary_sensor.front_yard_animal_occupancy - # state: "on" - # elements: - # - type: state-icon - # entity: binary_sensor.front_yard_animal_occupancy - # style: - # top: 12% - # left: 71% + # - type: conditional + # conditions: + # - entity: binary_sensor.front_yard_animal_occupancy + # state: "on" + # elements: + # - type: state-icon + # entity: binary_sensor.front_yard_animal_occupancy + # style: + # top: 12% + # left: 71% - - type: state-icon - entity: light.front_porch_overhead - style: - top: 12% - left: 98% - tap_action: - action: toggle + - type: state-icon + entity: light.front_porch_overhead + style: + top: 12% + left: 98% + tap_action: + action: toggle - - type: state-icon - entity: light.driveway - style: - top: 80% - left: 98% - tap_action: - action: toggle \ No newline at end of file + - type: state-icon + entity: light.driveway + style: + top: 80% + left: 98% + tap_action: + action: toggle \ No newline at end of file diff --git a/lovelace/cameras/view-camera-19.yaml b/lovelace/cameras/view-camera-19.yaml index 662c52e..2d014cd 100644 --- a/lovelace/cameras/view-camera-19.yaml +++ b/lovelace/cameras/view-camera-19.yaml @@ -1,188 +1,189 @@ -type: vertical-stack -cards: - - type: custom:advanced-camera-card - cameras_global: +type: conditional +conditions: + - condition: state + entity: sensor.frigate_cam19_camera_fps + state_not: "0" +card: + type: vertical-stack + cards: + - type: custom:advanced-camera-card + cameras_global: + dimensions: + layout: + fit: fill + status_bar: + style: none + cameras: + - camera_entity: camera.frigate_cam19 + live_provider: go2rtc + go2rtc: + modes: + - webrtc + stream: rtsp_cam19_sub + live: + preload: true + draggable: true + show_image_during_load: true + lazy_load: false + controls: + title: + mode: none + timeline: + mode: none + thumbnails: + mode: none + menu: + buttons: + frigate: + enabled: false + style: none + media_viewer: + draggable: false + lazy_load: false dimensions: - layout: - fit: fill - status_bar: - style: none - cameras: - - camera_entity: camera.frigate_cam19 - live_provider: go2rtc - go2rtc: - modes: - - webrtc - stream: rtsp_cam19_sub - live: - preload: true - draggable: true - show_image_during_load: true - lazy_load: false - controls: - title: - mode: none - timeline: - mode: none - thumbnails: - mode: none - menu: - buttons: - frigate: - enabled: false - style: none - media_viewer: - draggable: false - lazy_load: false - dimensions: - aspect_ratio_mode: static - aspect_ratio: '16:9' - elements: - - type: image - image: /local/title-dark-double.png - style: - transform: initial - top: 90% - left: 0px - width: 100% - height: 10% - opacity: 70% - - type: image - entity: camera.frigate_cam19 - image: /local/title-dark-double.png - aspect_ratio: 100% - tap_action: - action: navigate - navigation_path: /ai-yml/ai-cam19 - style: - transform: initial - top: 0px - left: 0px - width: 100% - height: 100% - opacity: 0% + aspect_ratio_mode: static + aspect_ratio: '16:9' + elements: + - type: image + image: /local/title-dark-double.png + style: + transform: initial + top: 90% + left: 0px + width: 100% + height: 10% + opacity: 70% + - type: image + entity: camera.frigate_cam19 + image: /local/title-dark-double.png + aspect_ratio: 100% + tap_action: + action: navigate + navigation_path: /ai-yml/ai-cam19 + style: + transform: initial + top: 0px + left: 0px + width: 100% + height: 100% + opacity: 0% - - type: state-icon - entity: binary_sensor.front_porch_person_occupancy - style: - left: 8% - top: 95% - - type: state-icon - entity: binary_sensor.frigate_cam19_speech_sound - style: - left: 30% - top: 95% - - type: state-icon - entity: binary_sensor.frigate_cam19_vehicle_occupancy - style: - left: 50% - top: 95% - - type: state-icon - entity: input_boolean.front_porch_occupied - tap_action: - action: toggle - style: - left: 70% - top: 95% - - type: state-icon - entity: input_boolean.doorbell - style: - top: 95% - left: 92% + - type: state-icon + entity: binary_sensor.front_porch_person_occupancy + style: + left: 8% + top: 95% + - type: state-icon + entity: binary_sensor.frigate_cam19_vehicle_occupancy + style: + left: 50% + top: 95% + - type: state-icon + entity: input_boolean.front_porch_occupied + tap_action: + action: toggle + style: + left: 70% + top: 95% + - type: state-icon + entity: input_boolean.doorbell + style: + top: 95% + left: 92% - - type: conditional - conditions: - - entity: binary_sensor.driveway_center_vehicle_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.driveway_center_vehicle_occupancy - style: - top: 60% - left: 14% + - type: conditional + conditions: + - entity: binary_sensor.driveway_center_vehicle_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.driveway_center_vehicle_occupancy + style: + top: 60% + left: 14% - - type: conditional - conditions: - - entity: binary_sensor.driveway_east_side_vehicle_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.driveway_east_side_vehicle_occupancy - style: - top: 60% - left: 20% + - type: conditional + conditions: + - entity: binary_sensor.driveway_east_side_vehicle_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.driveway_east_side_vehicle_occupancy + style: + top: 60% + left: 20% - - type: conditional - conditions: - - entity: binary_sensor.parking_spot_vehicle_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.parking_spot_vehicle_occupancy - style: - top: 52% - left: 15% + - type: conditional + conditions: + - entity: binary_sensor.parking_spot_vehicle_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.parking_spot_vehicle_occupancy + style: + top: 52% + left: 15% - - type: conditional - conditions: - - entity: binary_sensor.from_street_vehicle_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.from_street_vehicle_occupancy - style: - top: 50% - left: 40% + - type: conditional + conditions: + - entity: binary_sensor.from_street_vehicle_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.from_street_vehicle_occupancy + style: + top: 50% + left: 40% - - type: conditional - conditions: - - entity: binary_sensor.from_street_person_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.from_street_person_occupancy - style: - top: 53% - left: 37% + - type: conditional + conditions: + - entity: binary_sensor.from_street_person_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.from_street_person_occupancy + style: + top: 53% + left: 37% - - type: conditional - conditions: - - entity: binary_sensor.front_porch_person_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.front_porch_person_occupancy - style: - top: 88% - left: 37% + - type: conditional + conditions: + - entity: binary_sensor.front_porch_person_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.front_porch_person_occupancy + style: + top: 88% + left: 37% - - type: conditional - conditions: - - entity: binary_sensor.front_yard_person_occupancy - state: "on" - elements: - - type: state-icon - entity: binary_sensor.front_yard_person_occupancy - style: - top: 60% - left: 65% + - type: conditional + conditions: + - entity: binary_sensor.front_yard_person_occupancy + state: "on" + elements: + - type: state-icon + entity: binary_sensor.front_yard_person_occupancy + style: + top: 60% + left: 65% - # - type: conditional - # conditions: - # - entity: binary_sensor.front_yard_animal_occupancy - # state: "on" - # elements: - # - type: state-icon - # entity: binary_sensor.front_yard_animal_occupancy - # style: - # top: 60% - # left: 70% + # - type: conditional + # conditions: + # - entity: binary_sensor.front_yard_animal_occupancy + # state: "on" + # elements: + # - type: state-icon + # entity: binary_sensor.front_yard_animal_occupancy + # style: + # top: 60% + # left: 70% - - type: state-icon - entity: light.front_porch_overhead - style: - top: 3% - left: 50% - tap_action: - action: toggle \ No newline at end of file + - type: state-icon + entity: light.front_porch_overhead + style: + top: 3% + left: 50% + tap_action: + action: toggle \ No newline at end of file diff --git a/lovelace/room_cards/garage.yaml b/lovelace/room_cards/garage.yaml index a445986..d2322a2 100644 --- a/lovelace/room_cards/garage.yaml +++ b/lovelace/room_cards/garage.yaml @@ -35,7 +35,7 @@ elements: # left: 60% # top: 9% - type: state-icon - entity: group.traverse + entity: device_tracker.chevrolet_traverse_location style: left: 68% top: 9% @@ -123,9 +123,8 @@ elements: action: toggle hold_action: action: more-info - # 12,31,50,69,88 # 14,38,62,86 # 25,50,75 # 33,66 -# 50 \ No newline at end of file +# 50 diff --git a/lovelace/view-overview.yaml b/lovelace/view-overview.yaml index f79061c..4947911 100644 --- a/lovelace/view-overview.yaml +++ b/lovelace/view-overview.yaml @@ -1182,10 +1182,6 @@ cards: action: toggle hold_action: action: more-info - - entity: switch.deck_power_plug - name: Deck Plug - state_filter: - - "off" - entity: switch.outdoor_power_monitor_plug name: Outdoor PM Plug state_filter: diff --git a/scripts/master_bedroom/wake_up_the_master_bedroom.yaml b/scripts/master_bedroom/wake_up_the_master_bedroom.yaml index ca62548..3da8c7e 100644 --- a/scripts/master_bedroom/wake_up_the_master_bedroom.yaml +++ b/scripts/master_bedroom/wake_up_the_master_bedroom.yaml @@ -20,9 +20,9 @@ sequence: - action: google_generative_ai_conversation.generate_content metadata: {} data: - prompt: Say something to help me wake up. Use a maximum of two sexy lines. + prompt: Say something to help me wake up and get ready for work. Use up to two sentences. response_variable: response - + - action: media_player.play_media data: media_content_id: media-source://media_source/local/Sounds/alarms/Alarm_Clock.mp3 @@ -50,7 +50,7 @@ sequence: # media_player_entity_id: media_player.great_room # options: # voice: Callirrhoe - + - delay: hours: 0 minutes: 5