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&channel=0&rs=xxx&user=abc&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.

