Migrate AI driveway surveillance to AI Task

This commit is contained in:
2026-04-08 07:35:46 +02:00
parent 017c529e7a
commit 2ded592147
2 changed files with 80 additions and 21 deletions
+7 -1
View File
@@ -2,7 +2,13 @@
trigger:
platform: state
entity_id: binary_sensor.indkorsel_sensor_motion
to: 'on'
to: 'on'
conditions:
- condition: template
value_template: >-
{% set last = state_attr('automation.ai_overvagning', 'last_triggered') %}
{% set someone_home = is_state('binary_sensor.family_presence', 'on') %}
{{ not someone_home or last is none or (now() - last).total_seconds() > 900 }}
actions:
- action: script.overvaagning
metadata: {}
+73 -20
View File
@@ -35,38 +35,91 @@ overvaagning:
enabled: true
action: camera.snapshot
- metadata: {}
continue_on_error: true
data:
prompt: >-
Bevægelse er blevet opdaget hvad ser du på billedet? Hvis du ser en
person eller en bil, giv en kort beskrivelse af dem. Forsøg at inkludere
detaljer som tøj eller nummerplade, hvis muligt. Beskriv ikke bygninger
eller stationære objekter. Hvis der ikke er nogen synlig årsag til
bevægelsen, svar blot med 'Ingen åbenlys bevægelse detekteret.' Hold
beskeden kort og underholdende som en notifikation på Apple!
filenames:
- /config/www/indkorsel_snapshot.jpg
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: google_generative_ai_conversation.generate_content
- if:
- condition: template
value_template: "{{ 'No Obvious Motion Detected.' in generated_content.text }}"
then:
- stop: ""
else:
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:
- metadata: {}
data:
title: Bevægelse i indkørsel
message: >-
{{ generated_content['text'] }} - Tid: {{ now().strftime('%Y-%m-%d
%H:%M:%S') }}
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: >-
{{ generated_content['text'] }} - Tid: {{ now().strftime('%Y-%m-%d
%H:%M:%S') }}
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: ""