Automatisation ET et OU

Regarde ici pour la syntaxe :

Il doit te manquer des guillemets dans l'adresse uri.
Et pas certain que ton adresse soit bonne.

Voici les actions que je fais avec ma caméra Reolink pour m'envoyer une image avec un lien vers la vidéo et un lien vers mon dashboard caméra. Je pense que cela répond à ce que tu cherches à faire mais pour 2 caméras.

actions:
  - action: input_text.set_value
    metadata: {}
    data:
      value: Jardin_{{now().strftime("%Y%m%d-%H%M%S")}}.jpg
    target:
      entity_id: input_text.nom_snapshot
  - action: input_text.set_value
    metadata: {}
    data:
      value: Jardin_{{now().strftime("%Y%m%d-%H%M%S")}}.mp4
    target:
      entity_id: input_text.nom_recorder
  - action: camera.snapshot
    data:
      filename: /config/www/Capture/Snapshot/{{states('input_text.nom_snapshot')}}
    target:
      entity_id: camera.jardin_fluide
  - action: camera.record
    data:
      filename: /config/www/Capture/Recorder/{{states('input_text.nom_recorder')}}
      lookback: 5
      duration: 25
    target:
      entity_id: camera.jardin_fluide
  - delay:
      hours: 0
      minutes: 0
      seconds: 5
      milliseconds: 0
  - action: notify.mobile_app_mi13t
    data:
      title: Caméra jardin {{now().strftime('(%H:%M) [%d-%m-%y]')}}
      message: Animal détecté, voici une vidéo.
      data:
        image: local/Capture/Snapshot/{{states('input_text.nom_snapshot')}}
        actions:
          - action: URI
            title: Vidéo
            uri: local/Capture/Recorder/{{states('input_text.nom_recorder')}}
          - action: URI
            title: Caméras
            uri: /dashboard-tablette/camera

J'ai un créé un dossier "Capture" sous www avec 2 sous dossiers "Snapshot" et "Recorder" et déclaré comme ceci dans le configuration.yaml.

  media_dirs:
    capture: /config/www/Capture
    local: /media

Tu dois également créer 2 input_text qui te servent à faire le lien avec ton image et ta vidéo.
Tout cela vient en grande partie d'un post du forum, j'ai fait que le mettre en oeuvre.
Tu auras aussi accès à ce dossier Capture à partir des sources Media dossier "My media"

Je te remercie beaucoup.

Le seul truc qui ne fonctionne pas chez moi c'est l'accès aux Snapshot et Recorder via "Médias" dans la barre latérale de HA

puis en cliquant sur My media

Dans configuration.yaml j'ai :

Par contre, je vois bien leur présence via File editor :

Je peux ouvrir les images mais pas les vidéos.

Je précise où cas où cela aurait son importance : je suis en distanciel, pas en local actuellement.

C'est normal car dans configuration.yaml, media_dirs est au même niveau que allowlist...
Issu de la doc

homeassistant:
  media_dirs:
    media: /media
    recordings: /mnt/recordings
    photos: /mnt/photos

Tu y es presque, n'oublie pas de valider ta configuration et sans doute redémarrer HA.

Encore merci :+1:

Chez moi j'ai une erreur quand je mets plusieurs lignes après [quote="Jeffodilo, post:24, topic:81281"]media_dirs:[/quote]

J'ai adapté :

  • j'ai remplacé ton dossier Capture par Detection
  • j'ai souhaité un sous-dossier par date dans lequel je mets à la fois les photos et les vidéos du jour.

Lors de mes tests, cela a créé plusieurs dossiers dont certains que je souhaiterais supprimer. Mais je ne sais pas comment. Je n'ai pas trouvé l'option. J'ai vu comment supprimer les fichiers mais pas les dossiers.

Pour définir le dossier dont le nom est la date du jour et pouvoir enregistrer la photo et la vidéo de deux caméras en meme temps, j'ai créé les entrées suivantes :

Pour qu'il n'y ait que la caméra3 qui enregistre quand détection par la caméra3, et qu'il y ait les 2 caméras qui enregistrent quand détection par la caméra5, j'ai créé deux automatisations :




Par contre, j'ai une question concernant les 5 secondes d'attente avant envoi de la notification. Pourquoi stp ?

Salut
Peut être parce qu'un fichier ne se crée pas instantanément quand on lui demande de se créer et donc vouloir envoyer un fichier qui n'a pas fini de s'écrire risque plus de finir en plantage qu'en envoi.

Pour être franc, je ne sais plus comment t'aider, tu adaptes tout le temps sans tester simplement au début les exemples :man_shrugging:. Fait simple, comprend le principe et complexifie après.
Je ne sais pas comment tu as fait pour créer un dossier par une automation en utilisant la date du jour, jamais testé.
Pour supprimer des dossiers, il faut passer par file editor ( interface graphique les ... en face du dossier "delete" ) ou par le terminal (add ons terminal et ssh) et utiliser des commandes linux "rm -R nom dossier". Je ne sais pas quel méthode tu les as créé ?
Pour tes automations , pour tenter de t'aider, tu peux les poster ici directement en yaml (dans ton automation en haut ... passe en yaml) copier et coller le code ici en utilisant les balises </> texte préformaté dans le menu de publication.

J'adapte à mon besoin, oui, mais après avoir testé :wink:. Par exemple, j'avais créé le dossier "Capture" pour tester mais j'ai ensuite adapté à mon besoin. Donc je teste ce qu'on me conseille, puis je teste aussi d'autres choses pour avancer puis revient poser des questions sur ce que je n'ai pas compris ou qui n'a pas fonctionné :blush:.

Voici le code de l'automatisation qui enregistre photo+vidéo des deux caméras (3 et 5) quand la caméra 5 détecte un mouvement et dans un dossier qui est la date du jour :

alias: detection_cam05
description: ""
triggers:
  - trigger: motion.detected
    target:
      device_id:
        - c4f637
    options:
      behavior: first
conditions: []
actions:
  - alias: Définir nom du dossier d'enregistrement
    action: input_text.set_value
    metadata: {}
    data:
      value: "{{now().strftime(\"%Y-%m-%d\")}}"
    target:
      entity_id: input_text.dossier01_nom
  - alias: Définir nom du fichier de la photo de la caméra 3
    action: input_text.set_value
    metadata: {}
    data:
      value: "{{now().strftime(\"%Y-%m-%d_%H%M%S\")}}_cam03_photo.jpg"
    target:
      entity_id: input_text.photo01_nom
  - alias: Définir nom du fichier de la vidéo de la caméra 3
    action: input_text.set_value
    metadata: {}
    data:
      value: "{{now().strftime(\"%Y-%m-%d_%H%M%S\")}}_cam03_video.mp4"
    target:
      entity_id: input_text.video01_nom
  - alias: Définir nom du fichier de la photo de la caméra 5
    action: input_text.set_value
    metadata: {}
    data:
      value: "{{now().strftime(\"%Y-%m-%d_%H%M%S\")}}_cam05_photo.jpg"
    target:
      entity_id: input_text.photo02_nom
  - alias: Définir nom du fichier de la vidéo de la caméra 5
    action: input_text.set_value
    metadata: {}
    data:
      value: "{{now().strftime(\"%Y-%m-%d_%H%M%S\")}}_cam05_video.mp4"
    target:
      entity_id: input_text.video02_nom
  - delay:
      hours: 0
      minutes: 0
      seconds: 5
      milliseconds: 0
  - alias: Prendre photo cameras 3 et 5
    parallel:
      - alias: Prendre photo
        action: camera.snapshot
        data:
          filename: >-
            /config/www/Detection/{{states('input_text.dossier01_nom')}}/{{states('input_text.photo01_nom')}}
        target:
          device_id:
            - 05c14d
      - alias: Prendre photo
        action: camera.snapshot
        data:
          filename: >-
            /config/www/Detection/{{states('input_text.dossier01_nom')}}/{{states('input_text.photo02_nom')}}
        target:
          device_id: c4f637
  - alias: Enregistrer vidéo cameras 3 et 5
    parallel:
      - alias: Prendre vidéo
        action: camera.record
        data:
          filename: >-
            /config/www/Detection/{{states('input_text.dossier01_nom')}}/{{states('input_text.video01_nom')}}
          lookback: 5
          duration: 30
        target:
          device_id: 05c14d
      - alias: Prendre vidéo
        action: camera.record
        data:
          filename: >-
            /config/www/Detection/{{states('input_text.dossier01_nom')}}/{{states('input_text.video02_nom')}}
          lookback: 5
          duration: 30
        target:
          device_id: c4f637
  - action: notify.mobile_app_jeh_pixel9a
    data:
      title: Caméra jardin {{now().strftime('(%H:%M) [%d-%m-%y]')}}
      message: Mouvement détecté, voici une vidéo.
      data:
        image: >-
          local/Detection/{{states('input_text.dossier01_nom')}}/{{states('input_text.photo02_nom')}}
        actions:
          - action: URI
            title: Voir vidéo
            uri: >-
              local/Detection/{{states('input_text.dossier01_nom')}}/{{states('input_text.video02_nom')}}
          - action: URI
            title: Voir direct
            uri: /dashboard-presence/exterieur
          - action: URI
            title: Dossier
            uri: local/Detection/{{states('input_text.dossier01_nom')}}/
    alias: Envoyer notification sur le smartphone de Jérome
mode: single

Les sous-dossiers du dossier "Detection" présent dans mon fichier configuration.yaml se créent automatiquement via le code ci-dessus.

Pour le dossier, c'est bon à savoir.
Tu as trouvé pour supprimer tes dossiers d'essais ?
Tu utilises file editor ou terminal ?
Pour la tempo de 5 sec, je ne sais plus trop pourquoi je l'ai mise mais tu peux la supprimer :thinking:

Il faut juste supprimer tout ce que le dossier contient pour pouvoir le supprimer, sinon message d'erreurr :blush: