Automatisation Motioneye

Bon, je tourne en rond et je bloque.
Je ne trouve toujours pas comment envoyer ma video dans la notif’.
J’arrive à le faire si la video est dans config/www, mais pas depuis /share/motioneye
Vous allez me dire, pas de problème, tu n’as qu’à mettre config/www comme chemin d’enregistrement des vidéos Motioneye. Cependant, si je change ce paramètre Motioneye me prend les snapshots, mais plus les vidéos… ne me demandez pas pourquoi :thinking:

Encore une fois, si quelqu’un avait une idée ou une piste ?
Je vous en remercie par avance.

Essaye allowlist_external_dirs

OUI !!! ça marche !!!

Par contre pour recevoir la vidéo le chemin c’est /media/motioneye/camera1/03-10-2022/16-07.mp4 , alors que {{ trigger.event.data.file_path }} renvoi /share/motioneye/camera1/03-10-2022/16-07.mp4.

Un moyen de modifier {{ trigger.event.data.file_path }} pour changer le /share/ en /media/ ?

Tu corriges à la volée dans ton automatisation de message, comme pour un template

Heu, désolé, je ne comprends pas de quoi tu me parles. (excuse → noob inside :smiling_face:)

Les templates, c’est un peu un des mécanismes de base

Donc en résumé (parce que je vais te laisser chercher un peu quand même :japanese_goblin:) il faut faire un remplacement de la chaine /share/par /media/ dans ton automatisation au moment ou tu indiques le chemin…
Donc il faut adapter cette ligne :

Quelques fonctions jinja dont celle qu’il te faut
https://svn.python.org/projects/external/Jinja-1.1/docs/build/builtins.html

Parce que tu ne crois pas que je cherche depuis hier ? :joy:

ça j’avais compris

HA voilà, je pensais que pour moi c’était du Chinois, en fait c’est du Jinja :rofl:

Bon ok, je vais chercher un peu, je mourrais peut être un peu moins c…

Bon, je pense qu’il faut que j’implémente cette ligne :
{{ "share"|replace("share", "media") }}

Mais c’est là que je bloque, je ne sais pas où et comment. J’ai beau regarder la page des Template, je ne comprends rien.
Juste comme ça ? →

data:
        video: {{ "share"|replace("share", "media") }} {{ trigger.event.data.file_path }}

L’idée est là mais c’est beaucoup plus simple | permet de chainer les opérations
Donc la variable (son contenu en réalité) et ensuite le remplacement

data:
        video: {{ trigger.event.data.file_path|replace("share", "media") }}

Wouah, super !
Par contre, il ne me le prend pas dans mon automatisation.

service: notify.mobile_app_tel_de_nico
data:
  title: La caméra du portail
  message: test video
  data:
    video: {{ trigger.event.data.file_path|replace("share", "media") }}

Le message d’erreur :

Logger: homeassistant.components.websocket_api.http.connection
Source: components/websocket_api/connection.py:140
Integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 15:49:42 (1 occurrences)
Last logged: 15:49:42

[547310666560] Error handling message: expected dict for dictionary value @ data['data']. Got None (invalid_format)

Essaye comme ça

  data:
    video: >
      {{ trigger.event.data.file_path|replace("share", "media") }}
1 « J'aime »

Ce coup ci, ça passe.
Maintenant, j’ai cette erreur :

Logger: homeassistant.helpers.template
Source: helpers/template.py:134
First occurred: 16:10:42 (1 occurrences)
Last logged: 16:10:42

Template variable error: 'dict object' has no attribute 'event' when rendering '{{ trigger.event.data.file_path|replace("share", "media") }}'

Peut être est-ce parce que je l’active à la main et que du coup, je vais devoir attendre un vrai « event » pour que cela fonctionne ?

C’est bon, ça y est ça marche.
Un grand MERCI pour l’aide et le temps que tu as passé à résoudre mon problème.
En plus cela m’a permis de progresser dans la compréhension et l’utilisation de HA.

Communauté au top

2 « J'aime »