Springe zum Inhalt

Webcam Bild mit HomeAssistant auf Telegram weiterleiten

Dies ist eine Weiterführung meines Artikels über das Weiterleiten eines Türklingel-Signals auf Telegram

Ich wollte später noch ein Bild von dem Vorgang haben nachdem ich eine Kamera an der Türschwelle installiert hatte.

Dazu lade ich das Bild mit dem Downloader-Modul nach Auslösen der Klingel herunter und verschicke es anschließend auch via Telegram.

Dazu muss die configuration.yml so angepasst werden (Restart von Homeassistant anschließend nicht vergessen!):

# Downloader aktivieren
downloader:
  download_dir: downloads
# Download-Verzeichnis freigeben
homeassistant:
  whitelist_external_dirs:
    - /home/homeassistant/.homeassistant/downloads

Hinweis:     
Der Pfad unter download_dir ist relativ zum Homeassistant-Verzeichnis (bei mir /home/homeassistant/.homeassistant) - man kann aber auch einen absoluten Pfad eingeben. Wichtig ist, dass dieser Pfad in der whitelist_external_dirs Liste auftaucht.  Ansonsten bekommt man im Log nur die (meines Erachtens etwas kryptische) Meldung [homeassistant.components.telegram_bot] '/path/to/capture_door.jpg' are not secure to load data from!

Anschließend legt man den entsprechenden Ordner mit sudo mkdir /home/homeassistant/.homeassistant/downloads an und setzt mit chmod/chown die passenden Berechtigungen.

Den Download stößt man mit dem Türklingel-Trigger an. Die URL ist von Kamera zu Kamera unterschiedlich und hier gültig für eine Reolink RLC-522. Ein entsprechender Benutzer mit Leserechten muss vorher in der Kamera angelegt werden und dann als user=<user> und password=<passwort> in die Adresse eingesetzt werden. 

# automations.yml
- id: hma01
  alias: Türklingel auf Telegram
  trigger:
  - event_data:
      channel: 1
      name: QEQ0889114
      param: PRESS_SHORT
    event_type: homematic.keypress
    platform: event
  action:
  - data:
      message: Türklingel betätigt
    service: notify.telegram_notifier
  - data:
      filename: capture_door.jpg
      overwrite: true
      url: http://192.168.11.22/cgi-bin/api.cgi?cmd=Snap&amp;channel=0&amp;rs=xxx&amp;user=abc&amp;password=xyz
    service: downloader.download_file

Der Downloader löst zwei weitere Events aus:  downloader_download_completed oder downloader_download_failed. Im Erfolgsfall lass ich mir das Bild schicken. Damit der richtige Download-Event abgepasst wird, filtere ich zusätzlich den Dateinamen. Den Fehlerfall verschicke ich der Vollständigkeit halber auch.

# automations.yml
- id: '1610223431382'
  alias: 'Download Capture für Tür erfolgreich '
  description: ''
  trigger:
  - event_data:
      filename: capture_door.jpg
    event_type: downloader_download_completed
    platform: event
  condition: []
  action:
  - alias: ''
    data:
      data:
        photo:
        - file: /home/homeassistant/.homeassistant/downloads/capture_door.jpg
      message: Bild
    service: notify.telegram_notifier
- id: '1610223492240'
  alias: Download Capture für Tür fehlgeschlagen
  description: ''
  trigger:
  - event_data: {}
    event_type: downloader_download_failed
    platform: event
  condition: []
  action:
  - data:
      message: Bild nicht verfügbar
    service: notify.telegram_notifier

Abschließend kann über Entwicklerwerkzeuge -> Ereignisse getestet werden. Ich triggere hier meinen Türklingel-Event.

Test durch manuelles Auslösen von Ereignissen
Und so sieht das Ergebnis in der Telegram-App aus

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert