overvaagning: alias: AI indkorsel sequence: - variables: ai_pause_until: "{{ states('input_datetime.ai_indkorsel_ai_pause_until') }}" ai_is_paused: >- {{ ai_pause_until not in ['unknown', 'unavailable', ''] and as_timestamp(ai_pause_until) > as_timestamp(now()) }} - metadata: {} data: filename: /config/www/indkorsel_snapshot.jpg target: device_id: cf4f218aae515c84aea9f37f190dcfd5 enabled: true action: camera.snapshot - delay: hours: 0 minutes: 0 seconds: 0 milliseconds: 500 enabled: true - metadata: {} data: filename: /config/www/indkorsel_snapshot_1.jpg target: device_id: cf4f218aae515c84aea9f37f190dcfd5 enabled: true action: camera.snapshot - delay: hours: 0 minutes: 0 seconds: 0 milliseconds: 500 enabled: true - metadata: {} data: filename: /config/www/indkorsel_snapshot_2.jpg target: device_id: cf4f218aae515c84aea9f37f190dcfd5 enabled: true action: camera.snapshot - choose: - conditions: - condition: template value_template: "{{ not ai_is_paused }}" sequence: - continue_on_error: true data: entity_id: ai_task.google_ai_task task_name: indkoersel_motion_notification instructions: >- Bevægelse er blevet opdaget ved indkørslen. Se på kamerabilledet og afgør, om der er en synlig årsag til bevægelsen. Hvis du ser en person eller et køretøj, så skriv en meget kort dansk notifikationstekst egnet til iPhone. Medtag kun nyttige detaljer som tøj, farve, retning eller nummerplade, hvis det faktisk er synligt. Ignorer bygninger, parkerede biler og andre stationære objekter. Hvis der ikke er nogen åbenlys synlig årsag til bevægelsen, skal du markere det som ingen bevægelse og bruge teksten 'Ingen åbenlys bevægelse detekteret.' structure: motion_detected: description: >- True hvis en person eller et køretøj tydeligt er den synlige årsag til bevægelsen. False hvis der ikke er nogen åbenlys synlig årsag. required: true selector: boolean: summary: description: >- En meget kort dansk notifikationstekst. Brug præcist 'Ingen åbenlys bevægelse detekteret.' hvis ingen synlig årsag findes. required: true selector: text: attachments: - media_content_id: media-source://camera/camera.indkoersel_sub media_content_type: image/jpeg response_variable: generated_content action: ai_task.generate_data - choose: - conditions: - condition: template value_template: >- {{ generated_content is defined and generated_content.data is defined and generated_content.data.motion_detected is defined and not generated_content.data.motion_detected }} sequence: - stop: "" - conditions: - condition: template value_template: >- {{ generated_content is defined and generated_content.data is defined and generated_content.data.summary is defined and generated_content.data.motion_detected is defined and generated_content.data.motion_detected }} sequence: - metadata: {} data: title: Bevægelse i indkørsel message: >- {{ generated_content.data.summary }} - Tid: {{ now().strftime('%Y-%m-%d %H:%M:%S') }} data: image: /local/indkorsel_snapshot.jpg action: notify.mobile_app_claus_iphone_15pro - data: entity_id: input_text.last_notification_message value: >- {{ generated_content.data.summary }} - Tid: {{ now().strftime('%Y-%m-%d %H:%M:%S') }} action: input_text.set_value default: - choose: - conditions: - condition: template value_template: "{{ not ai_is_paused }}" sequence: - data: entity_id: input_datetime.ai_indkorsel_ai_pause_until datetime: >- {{ (now() + timedelta(hours=1)).isoformat() }} action: input_datetime.set_datetime - metadata: {} data: title: Bevægelse i indkørsel message: >- Bevægelse registreret, men AI-beskrivelse er ikke tilgængelig lige nu. Tid: {{ now().strftime('%Y-%m-%d %H:%M:%S') }} data: image: /local/indkorsel_snapshot.jpg action: notify.mobile_app_claus_iphone_15pro - data: entity_id: input_text.last_notification_message value: >- Bevægelse registreret, men AI-beskrivelse er ikke tilgængelig lige nu. Tid: {{ now().strftime('%Y-%m-%d %H:%M:%S') }} action: input_text.set_value mode: single description: ""