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
+6
View File
@@ -3,6 +3,12 @@
platform: state platform: state
entity_id: binary_sensor.indkorsel_sensor_motion 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: actions:
- action: script.overvaagning - action: script.overvaagning
metadata: {} metadata: {}
+73 -20
View File
@@ -35,38 +35,91 @@ overvaagning:
enabled: true enabled: true
action: camera.snapshot action: camera.snapshot
- metadata: {} - metadata: {}
continue_on_error: true
data: data:
prompt: >- entity_id: ai_task.google_ai_task
Bevægelse er blevet opdaget hvad ser du på billedet? Hvis du ser en task_name: indkoersel_motion_notification
person eller en bil, giv en kort beskrivelse af dem. Forsøg at inkludere instructions: >-
detaljer som tøj eller nummerplade, hvis muligt. Beskriv ikke bygninger Bevægelse er blevet opdaget ved indkørslen. Se på kamerabilledet og
eller stationære objekter. Hvis der ikke er nogen synlig årsag til afgør, om der er en synlig årsag til bevægelsen.
bevægelsen, svar blot med 'Ingen åbenlys bevægelse detekteret.' Hold
beskeden kort og underholdende som en notifikation på Apple! Hvis du ser en person eller et køretøj, så skriv en meget kort dansk
filenames: notifikationstekst egnet til iPhone. Medtag kun nyttige detaljer som
- /config/www/indkorsel_snapshot.jpg 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 response_variable: generated_content
action: google_generative_ai_conversation.generate_content action: ai_task.generate_data
- if: - choose:
- condition: template - conditions:
value_template: "{{ 'No Obvious Motion Detected.' in generated_content.text }}" - condition: template
then: value_template: >-
- stop: "" {{ generated_content is defined
else: 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: {} - metadata: {}
data: data:
title: Bevægelse i indkørsel title: Bevægelse i indkørsel
message: >- message: >-
{{ generated_content['text'] }} - Tid: {{ now().strftime('%Y-%m-%d Bevægelse registreret, men AI-beskrivelse er ikke tilgængelig lige
%H:%M:%S') }} nu. Tid: {{ now().strftime('%Y-%m-%d %H:%M:%S') }}
data: data:
image: /local/indkorsel_snapshot.jpg image: /local/indkorsel_snapshot.jpg
action: notify.mobile_app_claus_iphone_15pro action: notify.mobile_app_claus_iphone_15pro
- data: - data:
entity_id: input_text.last_notification_message entity_id: input_text.last_notification_message
value: >- value: >-
{{ generated_content['text'] }} - Tid: {{ now().strftime('%Y-%m-%d Bevægelse registreret, men AI-beskrivelse er ikke tilgængelig lige
%H:%M:%S') }} nu. Tid: {{ now().strftime('%Y-%m-%d %H:%M:%S') }}
action: input_text.set_value action: input_text.set_value
mode: single mode: single
description: "" description: ""