Notifications dynamique surveillance maison avec Gemini

Bonjour à vous,

J’ai découvert que l’on pouvait utiliser simplement Gemini pour analyser des images de mes caméras.

J’utilise donc cela pour envoyer une notification avec un niveau de risque, faible, moyen ou élevé.

Cela n’étant pas encore au niveau désiré, je me demande si certains entre vous l’on mit en place et dans ce cas, êtes vous satisfait ? Et qu’en voyez vous à Gemini :

  • Capture photo?
  • Combien de photo et quel interval de temps entre les captures ?
  • Quel prompt utilisez vous?

Merci pour vos retours

Salut, j’ai vu cela aussi récemment, et je tente actuellement de le mettre en place. Mais j’ai un soucis avec les fichiers à analyser.
Voici le code de mon automation :

alias: Test auto AI (Gemini stable)
description: Analyse une image caméra avec Gemini et envoi d'une notification
triggers: []
conditions: []
actions:
  - alias: Prendre un snapshot
    data:
      entity_id: camera.camera_reolink_jardin
      filename: /config/www/media/test.jpg
    action: camera.snapshot
  - delay: "00:00:03"
  - alias: Analyse image avec Gemini
    data:
      entity_id: ai_task.google_ai_task
      instructions: >
        Analyse cette image de manière neutre. Décris les objets visibles,
        notamment s’il y a quelque chose qui ressemble à un sac, un carton ou un
        objet posé au sol. Ne parle pas des personnes.
      task_name: Analyse caméra jardin
      attachments:
        media_content_id: media-source://image_upload/XxX
        media_content_type: image/png
        metadata:
          title: LilP.png
          thumbnail: /api/image/serve/XxX/256x256
          media_class: image
          children_media_class: null
          navigateIds:
            - {}
            - media_content_type: app
              media_content_id: media-source://image_upload
    response_variable: gemini_response
    action: ai_task.generate_data
  - alias: Enregistrer la réponse AI
    target:
      entity_id: input_text.gemini_reponse
    data:
      value: |
        {% if gemini_response.text %}
          {{ gemini_response.text }}
        {% elif 'SAFETY' in (gemini_response.reason | default('')) %}
          Analyse bloquée par la sécurité Google AI.
        {% else %}
          Aucune réponse AI.
        {% endif %}
    action: input_text.set_value
  - alias: Envoyer notification mobile
    data:
      message: "{{ states('input_text.gemini_reponse') }}"
    action: notify.mobile_app_oneplus
  - alias: Log réponse AI
    data:
      level: info
      message: "Réponse Gemini : {{ gemini_response.text | default('Aucune') }}"
    action: system_log.write
mode: single

Mais j’ai toujours le retour : Aucune réponse AI.

Bonjour,

De mon côté, voici le prompt, celui-ci fonctionne. Pour envoyer des alertes telegram.

“A partir de la photo, dis moi si tu vois une ou des personnes et / ou
une voiture en mouvement. le but étant d’être alerté en cas de venue de
personne mal attentionnée. je voudrai une conclusion démarrant par un
niveau de risque : Faible / Moyen / Elevé et une reponse sur 200
caractères maximum. A noter, si tu reçois une image avec le nom CamExt1,
nous possédons 2 voitures (une blanche immatriculée XX xxx XX et une
grise immatriculée XX xxx XX) autre point si tu détecte une personne sur
la 1ère image et que tu ne la vois pas sur la second ou si la personne à
son visage camouflé tu dois considérer un risque élevé”

En fait, je lui envoi 2 photos à quelques secondes d’intervalle.

Je ne l’ai pas encore mis en œuvre, je dois faire un peu de mise au point sur l’interval entre les images et peut être encore optimiser le prompt.

Si tu as des capteurs de présence utilise les comme trigger c’est plus raisonnable. En envoyant du traitement a intervalle fixe tu va vite dépasser le quota de demande.

Bonjour

J’ai fait quelques tests pour le fun avec ma sonnette ring, ça marchait très bien, je ne l’utilise plus, pas grand intérêt en fait

pour la pièce jointe ça ne fonctionne que dans le repertoire local et donner l’accès dans configuration.yaml

Mon code fonctionnel :

alias: 12 Doorbell Ring (AI Description)
description: ""
triggers:
  - type: occupied
    device_id: cd8cebed5bd42xxxxxxxxxxxxxxxxxxx
    entity_id: 0d53101520961xxxxxxxxxxxxxxxxxxx
    domain: binary_sensor
    trigger: device
conditions: []
actions:
  - data:
      filename: /config/www/doorbell_ring/snapshot_doorcam.jpg
    action: camera.snapshot
    target:
      entity_id: camera.doorbell
  - data:
      filenames:
        - /config/www/doorbell_ring/snapshot_doorcam.jpg
      prompt: >-
        Décrivez brièvement ce que vous voyez sur cette image prise par ma
        sonnette en précisant la date et l'heure. Votre message doit être court
        pour pouvoir être affiché dans une notification. Ne décrivez pas
        d'objets ou de bâtiments fixes.
    response_variable: gemini_reponse
    action: google_generative_ai_conversation.generate_content
  - action: input_text.set_value
    metadata: {}
    data:
      value: "{{gemini_reponse.text}}"
    target:
      entity_id: input_text.gemini_reponse
  - data:
      title: doorbell
      data:
        attachment:
          content-type: jpeg
          url: /local/doorbell_ring/snapshot_doorcam.jpg
        push:
          sound:
            name: default
            critical: 1
            volume: 1
      message: "{{ gemini_reponse.text }}"
    action: notify.mobile_app_iphone_xxxxxxx
mode: single

J’utilise comme déclancheur les détecteurs de mouvement de mes caméras reolink le tout couplé à des infos de présence.

Merci pour les réponses.
Voici donc l’automation corrigé après l’ajout du chemin dans configuration.yaml.

alias: Test auto AI (Gemini stable)
description: Analyse une image caméra avec Gemini et envoi d'une notification
triggers:
  - type: motion
    device_id: XxX
    entity_id: XxX
    domain: binary_sensor
    trigger: device
conditions: []
actions:
  - alias: Prendre un snapshot
    action: camera.snapshot
    target:
      entity_id: camera.camera_reolink_jardin
    data:
      filename: /media/snapshot_{{ now().strftime('%Y%m%d_%H%M%S') }}.jpg
  - delay: "00:00:03"
  - alias: Analyse image avec Gemini
    action: ai_task.generate_data
    data:
      entity_id: ai_task.google_ai_task
      task_name: Analyse image jardin
      instructions: >
        Décrivez brièvement ce que vous voyez sur cette image prise par ma
        caméra en précisant la date et l'heure. Votre message doit être court
        pour pouvoir être affiché dans une notification. Ne décrivez pas
        d'objets ou de bâtiments fixes. Réponds exclusivement en français, avec
        une phrase claire et naturelle.
      attachments:
        - media_content_id: >-
            media-source://media_source/local/snapshot_{{
            now().strftime('%Y%m%d_%H%M%S') }}.jpg
          media_content_type: image/jpeg
    response_variable: gemini_reponse
  - alias: Log complet Gemini
    action: system_log.write
    data:
      level: info
      message: "DEBUG Gemini brut : {{ gemini_reponse | tojson }}"
  - alias: Enregistrer la réponse AI
    action: input_text.set_value
    target:
      entity_id: input_text.gemini_reponse
    data:
      value: |
        {% if gemini_reponse.data %}
          {{ gemini_reponse.data }}
        {% else %}
          Aucune réponse AI.
        {% endif %}
  - alias: Envoyer notification mobile
    action: notify.mobile_app_oneplus
    data:
      message: |
        {% if gemini_reponse.data %}
          {{ gemini_reponse.data }}
        {% else %}
          Aucune réponse AI.
        {% endif %}
mode: single

La ou j’ai encore du mal, c’est d’envoyer la capture dans la notification.

Hello,

Voici mon code pour la notification :

action: notify.telegram_maison
metadata: {}
data:
message: Test
data:
photo:file: >-
/media/Nas_media/Capture_Camera/{{declancheur}}_{{ triggerTimestamp
}}.jpg
caption: « {{ states(‹ input_text.gemini_reponse ›) }} »
title: Détection + IA
enabled: true

2 « J'aime »

TU notifie via Telegram ? Tu n’utilise pas l’application HA sur mobile directement ?

je n’ai pas telegram

l’exemple que j’ai mis fonctionne très bien avec l’application HA sur mobile

Voila donc l’automation qui envois la notif avec le snapshot via l’application HA.

- id: "1758727222634"
  alias: Analyse caméra jardin avec Gemini AI
  description: Capture une image sur détection de mouvement, l’analyse via Gemini, et envoie une notification.
  triggers:
    - type: motion
      device_id: XxX
      entity_id: XxX
      domain: binary_sensor
      trigger: device

  conditions: []

  actions:
    - alias: Définir le nom du fichier
      variables:
        snapshot_file: /config/www/snapshot.jpg

    - alias: Prendre un snapshot
      action: camera.snapshot
      target:
        entity_id: camera.camera_reolink_jardin
      data:
        filename: "{{ snapshot_file }}"

    - delay: 00:00:03

    - alias: Analyse image avec Gemini
      action: ai_task.generate_data
      data:
        entity_id: ai_task.google_ai_task
        task_name: Analyse image jardin
        instructions: >
          Décrivez brièvement ce que vous voyez sur cette image prise par ma caméra,
          en précisant la date et l'heure. Votre message doit être court pour pouvoir
          être affiché dans une notification. Ne décrivez pas d'objets ou bâtiments fixes.
          Réponds exclusivement en français, avec une phrase claire et naturelle.
        attachments:
          - media_content_id: media-source://media_source/local/snapshot.jpg
            media_content_type: image/jpeg
      response_variable: gemini_reponse

    - alias: Log complet Gemini
      action: system_log.write
      data:
        level: info
        message: "DEBUG Gemini brut : {{ gemini_reponse | tojson }}"

    - alias: Enregistrer la réponse AI
      action: input_text.set_value
      target:
        entity_id: input_text.gemini_reponse
      data:
        value: >
          {% if gemini_reponse.data %}
            {{ gemini_reponse.data }}
          {% else %}
            Aucune réponse AI.
          {% endif %}

    - alias: Envoyer notification mobile
      action: notify.mobile_app_oneplus
      data:
        message: >
          {% if gemini_reponse.data %}
            {{ gemini_reponse.data }}
          {% else %}
            Aucune réponse AI.
          {% endif %}
        data:
          image: /local/snapshot.jpg

  mode: single

Il y a l’intégration LLM Vision sur HACS qui est sympathique, elle fournie un blueprint pour les notifs

Merci pour l’info, je vais jeter un coup d’œil.

Merci