Folder watcher
The Folder watcher integrationIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] adds Watchdog
It creates event entities for these monitored event types:
closed
created
deleted
modified
moved
Configured folders must be added to allowlist_external_dirs. Note that by default folder monitoring is recursive, meaning that the contents of sub-folders are also monitored.
Configuration
To add the Folder watcher integration to your Home Assistant instance, use this My button:
Manual configuration steps
If the above My button doesn’t work, you can also perform the following steps manually:
-
Browse to your Home Assistant instance.
-
In the bottom right corner, select the
Add Integration button. -
From the list, select Folder watcher.
-
Follow the instructions on screen to complete the setup.
Patterns
Pattern matching using fnmatch*.yaml
and *.txt
.
Automations
The attributes the event entities contain are:
-
event_type
: matching theevent_type
of the filter (one ofcreated
,moved
,modified
,deleted
,closed
) -
path
: The full path to the file (e.g. “/hello/world.txt”) -
file
: The name of the file (e.g. “world.txt”) -
folder
: The folder path (e.g. “/hello”)
When the event_type
is moved
, the file details are for the source file and destination details are included:
-
dest_path
: The full path to the moved file (e.g. “/hello/world.txt”) -
dest_file
: The name of the moved file (e.g. “world.txt”) -
dest_folder
: The folder moved path (e.g. “/hello”)
Automations can be triggered on file system events data using a template. The following automation will send a notification with the name and folder of new files added to that folder:
#Send notification for new image (including the image itself)
automation:
alias: "New file alert"
triggers:
- trigger: state
entity_id: event.created
actions:
- action: notify.notify
data:
title: New image captured!
message: "Created {{ trigger.to_state.attributes.file }} in {{ trigger.to_state.attributes.folder }}"
data:
file: "{{ trigger.to_state.attributes.file }}"