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.

