Reolink : Notification push avec image

Bonjour,

Avec les caméra Aosu il y a la possibilité de recevoir des notifications push avec un aperçu image.

J’ai regardé les paramètres de l’application Reolink et a priori il n’y a pas cette fonction. Est-ce qu’il est possible de faire ce type d’option avec Home Assistant ?

Bonjour,
oui c’est possible, avec une automatisation.
un exemple:

description: ""
mode: single
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.reolink_e1_zoom_cell_motion_detection_2
    to: "on"
conditions: []
actions:
  - data:
      filename: /config/www/capture/snapshot_{{ now().strftime("%d%m%y-%H%M") }}.jpg
    target:
      entity_id: camera.reolink_e1_zoom_profile000_mainstream
    action: camera.snapshot
  - delay:
      hours: 0
      minutes: 0
      seconds: 1
      milliseconds: 0
  - data:
      title: Caméra Séjour {{now().strftime('(%H:%M) [%d-%m-%y]')}}
      message: Mouvement détect, voici une capture.
      data:
        image: local/capture/snapshot_{{ now().strftime("%d%m%y-%H%M") }}.jpg
    action: notify.mobile_app_m2101k9g



Merci pour ce code, mais je rencontre deux problèmes :

  1. binary_sensor.reolink_e1_zoom_cell_motion_detection_2 ca correspond à hangar_personne ?

  2. entity_id: camera.reolink_e1_zoom_profile000_mainstream je ne le trouve pas ! Où active-t-on ?

Bonjour @WarC0zes
Dans le cas où tu changes de minute entre la prise de snapshot et l’envoi de la photo ça risque de planter !
Perso je stocke le nom de la photo/vidéo dans un input_text.

alias: Alerte Reolink
description: ""
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.reolinkboblan_humain
    from: "off"
    to: "on"
    for:
      hours: 0
      minutes: 0
      seconds: 1
  - trigger: state
    entity_id:
      - input_button.snapshot_reolink
conditions:
  - condition: and
    conditions:
      - condition: device
        device_id: 9428b046e31918aa2994e241245fc4c0
        domain: device_tracker
        entity_id: e2e479f79ab5d1451eec96b9a8dd1cf3
        type: is_not_home
        enabled: true
      - condition: state
        entity_id: alarm_control_panel.massimo_alarm
        state: armed_away
        enabled: true
    enabled: true
actions:
  - action: light.turn_on
    metadata: {}
    data:
      brightness_pct: 80
    target:
      entity_id: light.groupe_lumieres_bas
  - action: input_text.set_value
    metadata: {}
    data:
      value: reolink_{{now().strftime("%Y%m%d-%H%M%S")}}.jpg
    target:
      entity_id: input_text.namephotoreolink
  - action: camera.snapshot
    metadata: {}
    data:
      filename: /media/reolink/photos/{{states('input_text.namephotoreolink')}}
    target:
      entity_id:
        - camera.reolinkboblan_profile000_mainstream
  - delay:
      hours: 0
      minutes: 0
      seconds: 6
      milliseconds: 0
  - data:
      message: >-
        Détection présence caméra Réolink, la température est de
        {{states('sensor.temperature_18_salon')}} °C
      title: Qui est là ?
      data:
        inline_keyboard:
          - >-
            Ignorer:/switch_on_nothing, Allumer:/switch_on_salon,
            Eteindre:/switch_off_salon
    action: notify.telegram_ha
  - data:
      file: /media/reolink/photos/{{states('input_text.namephotoreolink')}}
    action: telegram_bot.send_photo
  - action: media_player.volume_set
    metadata: {}
    data:
      volume_level: 0.9
    target:
      entity_id: media_player.esp32_voice_control_1_mediasat1
  - action: tts.speak
    metadata: {}
    data:
      cache: true
      media_player_entity_id: media_player.esp32_voice_control_1_mediasat1
      message: >-
        C'est plutôt hasardeux de venir ici en mon absence ! Attention, vous
        devriez repartir tout de suite
    target:
      entity_id: tts.piper
  - delay:
      hours: 0
      minutes: 0
      seconds: 6
      milliseconds: 0
  - action: input_text.set_value
    metadata: {}
    data:
      value: reolink_{{now().strftime("%Y%m%d-%H%M%S")}}.jpg
    target:
      entity_id: input_text.namephotoreolink
  - delay:
      hours: 0
      minutes: 0
      seconds: 3
      milliseconds: 0
  - action: camera.snapshot
    metadata: {}
    data:
      filename: /media/reolink/photos/{{states('input_text.namephotoreolink')}}
    target:
      entity_id:
        - camera.reolinkboblan_profile000_mainstream
  - data:
      file: /media/reolink/photos/{{states('input_text.NamePhotoReolink')}}
    action: telegram_bot.send_photo
  - action: input_text.set_value
    metadata: {}
    data:
      value: reolink_{{now().strftime("%Y%m%d-%H%M%S")}}.mp4
    target:
      entity_id: input_text.namevideoreolink
  - action: camera.record
    metadata: {}
    data:
      duration: 30
      lookback: 0
      filename: /media/reolink/videos/{{states('input_text.namevideoreolink')}}
    target:
      device_id: 5f98567e1e5db822568e68966d34d1f1
      entity_id: camera.reolinkboblan_profile000_mainstream
  - delay:
      hours: 0
      minutes: 0
      seconds: 45
      milliseconds: 0
  - action: tts.clear_cache
    metadata: {}
    data: {}
  - action: light.turn_off
    metadata: {}
    data: {}
    target:
      entity_id: light.groupe_lumieres_bas
mode: single

Bob

1 « J'aime »

oui, après tout dépend la détection que tu veux vu que tu as différent type. Je n’utilise pas l’intégration Reolink, je passe par ONVIF et il n’y a pas tous ces types de détection.

c’est l’entité de ta caméra.

C’est les chemin du téléphone?

Non, c’est le chemin sur HA , ou est stocké l’image.

Il y a que sur ce lien que j’ai un problème. Je ne trouve pas le chemin de mon téléphone Redmi

OUi, il faut le changer par le tient. tu as une action notify pour ton mobile.
regarde dans l’onglet action du menu de dev, pour connaitre le tient.

Mon HA fonctionne avec VirtualBox sur un Mac. Comment je peux y accéder ?

Avec file editor ou samba share, a installé dans les modules complémentaires.

Ah oui c’est vrai !! Bon, le système fonctionne.
Juste une petite question,le chemin de stockage, on ne peut pas le rendre accessible dans une carte Home assistant et afficher les captures d’écran sous forme de carrousel ? Si cela éviterait, et simplifierait le système pour voir les aperçus.

Oui, tu peux utiliser la carte gallery-card :

code pour la carte :

type: custom:gallery-card
title: Capture Caméra Reolink
entities:
  - path: media-source://media_source/local/Capture/
menu_alignment: top
maximum_files: 30
file_name_format: DDMMYY_HHmm
caption_format: D/MM/YY HH:mm
parsed_date_sort: true

le chemin media-source://media_source/local/Capture/ correspond a /media/Capture/

Par contre, ça ne lit que les images ou vidéos stockées dans le dossier /media/.
Il faut changer ton chemin où tu enregistres les images dans le dossier /media/.

Pour file editor, pour accéder au dossier il faut décocher l’option enforce basepath. Sinon tu ne vois que le dossier /config/ qui est nommé homeassistant/ sous file editor.

1 « J'aime »

Donc si je comprends bien, je dois créer un dossier média dans /homeassistant/www

et dans ma carte, je remplace media-source://media_source/local/Capture/ par media-source://media_source/local/ ?

Edit : j’ai donc créé mon chemin comme ton code /homeassistant/media/Capture

type: custom:gallery-card
title: Capture Caméra Reolink
entities:
  - path: media-source://media_source/local/Capture/
menu_alignment: top
maximum_files: 30
file_name_format: DDMMYY_HHmm
caption_format: D/MM/YY HH:mm
parsed_date_sort: true

Mais il me dit que le dossier n’existe pas !

Non, le dossier media existe déjà. c’est a la racine de HA .

j’explque comment le voir sous file editor:

le dossier config = homeassistant/ dans file editor. Pour voir le dossier media, tu dois revenir en arrière . la flèche gauche dans file editor ( il faut decocher l’option enforce basepath dans file editor ).
image

Décocher, égal noir ? Désactivé ?

oui
image

Effectivement, je l’avais coché plutôt que décocher. J’ai donc bien mon dossier média. J’ai créé dans celui-ci un dossier Capture. Je n’ai désormais plus d’erreurs quand je crée ma carte.


Par contre, j’ai été faire déclencher la caméra pour avoir une notification, mais je n’ai pas d’image dedans !

type: custom:gallery-card
title: Capture Caméra Reolink
entities:
  - path: media-source://media_source/local/Capture/
menu_alignment: top
maximum_files: 30
file_name_format: DDMMYY_HHmm
caption_format: D/MM/YY HH:mm
parsed_date_sort: true

Par contre j’ai bien les notifications sur mes téléphones.

Tu as changé le chemin dans l’automatisation aussi ?

exemple:

  - data:
      filename: /media/Capture/snapshot_{{ now().strftime("%d%m%y-%H%M") }}.jpg
    target:
      entity_id: camera.reolink_e1_zoom_profile000_mainstream
    action: camera.snapshot
  - data:
      title: Caméra Séjour {{now().strftime('(%H:%M) [%d-%m-%y]')}}
      message: Mouvement détect, voici une capture.
      data:
        image: /media/local/Capture/snapshot_{{ now().strftime("%d%m%y-%H%M") }}.jpg
    action: notify.mobile_app_m2101k9g

Normalement, ça devrait être bon !

alias: Notification Caméra Hangar
description: ""
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.hangar_personne
    to: "on"
conditions: []
actions:
  - data:
      filename: /media/local/Capture/snapshot_{{ now().strftime("%d%m%y-%H%M") }}.jpg
    target:
      entity_id: camera.hangar_fluide
    action: camera.snapshot
  - delay:
      hours: 0
      minutes: 0
      seconds: 1
      milliseconds: 0
  - data:
      title: Caméra Hangar {{now().strftime('(%H:%M) [%d-%m-%y]')}}
      message: Mouvement détect, voici une capture.
      data:
        image: /media/local/Capture/snapshot_{{ now().strftime("%d%m%y-%H%M") }}.jpg
    action: notify.mobile_app_redmi
  - data:
      title: Caméra Hangar {{now().strftime('(%H:%M) [%d-%m-%y]')}}
      message: Mouvement détect, voici une capture.
      data:
        image: /media/local/Capture/snapshot_{{ now().strftime("%d%m%y-%H%M") }}.jpg
    action: notify.mobile_app_tablette_huawei
mode: single