# FolderWatcher Binding This binding is intended to monitor FTP and local folder and its subfolders and notify of new files ## Supported Things Currently the binding support two types of things: `ftpfolder` and `localfolder`. ## Thing Configuration The `ftpfolder` thing has the following configuration options: | Parameter | Name | Description | Required | Default value | |-------------|--------------|------------------------------------------------------------------------------------------------------------------------|----------|---------------| | ftpAddress | FTP server | IP address of FTP server | yes | n/a | | ftpPort | FTP port | Port of FTP server | yes | 21 | | secureMode | FTP Security | FTP Security | yes | None | | ftpUsername | Username | FTP user name | yes | n/a | | ftpPassword | Password | FTP password | yes | n/a | | ftpDir | RootDir | Root directory to be watched | yes | n/a | | listRecursiveFtp | List Sub Folders | Allow listing of sub folders | yes | No | | listHidden | List Hidden | Allow listing of hidden files | yes | false | | connectionTimeout | Connection timeout, s | Connection timeout for FTP request | yes | 30 | | pollInterval | Polling interval, s | Interval for polling folder changes | yes | 60 | | diffHours | Time stamp difference, h | How many hours back to analyze | yes | 24 | The `localfolder` thing has the following configuration options: | Parameter | Name | Description | Required | Default value | |-------------|--------------|------------------------------------------------------------------------------------------------------------------------|----------|---------------| | localDir | Local Directory | Local directory to be watched | yes | n/a | | listHiddenLocal | List Hidden | Allow listing of hidden files | yes | No | | pollIntervalLocal | Polling interval, s | Interval for polling folder changes | yes | 60 | | listRecursiveLocal | List Sub Folders | Allow listing of sub folders | yes | No | ## Events This binding currently supports the following events: | Channel Type ID | Item Type | Description | |-----------------|--------------|----------------------------------------------------------------------------------------| | newftpfile | String | A new file name discovered on FTP | | newlocalfile | String | A new file name discovered on in local folder | ## Full Example Thing configuration: ```java folderwatcher:localfolder:myLocalFolder [ localDir="/myfolder", pollIntervalLocal=60, listHiddenLocal="false", listRecursiveLocal="false" ] folderwatcher:ftpfolder:myLocalFolder [ ftpAddress="X.X.X.X", ftpPort=21, secureMode="EXPLICIT", ftpUsername="username", ftpPassword="password",ftpDir="/myfolder/",listHidden="true",listRecursiveFtp="true",connectionTimeout=33,pollInterval=66,diffHours=25] ``` ### Using in a rule: FTP example: ```java rule "New FTP file" when Channel 'folderwatcher:ftpfolder:XXXXX:newfile' triggered then logInfo('NewFTPFile', receivedEvent.toString()) end ``` Local folder example: ```java rule "New Local file" when Channel 'folderwatcher:localfolder:XXXXX:newfile' triggered then logInfo('NewLocalFile', receivedEvent.toString()) end ```