# FolderWatcher Binding
-This binding is intended to monitor FTP, local folder and S3 bucket and its subfolders and notify of new files
+This binding is intended to monitor a local folder, FTP and S3 bucket and their subfolders and notify of new files.
## Supported Things
-Currently the binding support three types of things: `ftpfolder`, `localfolder` and `s3bucket`.
+The binding support three types of things: `localfolder`, `ftpfolder` and `s3bucket`.
## Thing Configuration
-The `ftpfolder` thing has the following configuration options:
+The `localfolder` 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 |
+| 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 in seconds | Interval for polling folder changes | yes | 60 |
+| listRecursiveLocal | List Sub Folders | Allow listing of sub folders | yes | No |
-The `localfolder` thing has the following configuration options:
+The `ftpfolder` 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 |
+| 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 in seconds | Connection timeout for FTP request | yes | 30 |
+| pollInterval | Polling interval in seconds | Interval for polling folder changes | yes | 60 |
+| diffHours | Time stamp difference in hours | How many hours back to analyze | yes | 24 |
The `s3bucket` thing has the following configuration options:
| s3Anonymous | Anonymous Connection | Connect anonymously (works for public buckets) | yes | true |
## Events
-This binding currently supports the following events:
+This binding supports the following event:
| Channel Type ID | Item Type | Description |
|-----------------|-----------|----------------------------|
Thing configuration:
```java
-folderwatcher:localfolder:myLocalFolder [ localDir="/myfolder", pollIntervalLocal=60, listHiddenLocal="false", listRecursiveLocal="false" ]
+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 ]
folderwatcher:s3bucket:myS3bucket [ s3BucketName="mypublic-bucket", pollIntervalS3=60, awsRegion="us-west-1", s3Anonymous="true" ]
### Using in a rule:
-FTP example:
+Local folder example:
```java
-rule "New FTP file"
-when
- Channel "folderwatcher:ftpfolder:myLocalFolder:newfile" triggered
+rule "New Local file"
+when
+ Channel "folderwatcher:localfolder:myFTPFolder:newfile" triggered
then
-
- logInfo("NewFTPFile", receivedEvent.toString())
-
+ logInfo("NewLocalFile", receivedEvent.toString())
end
```
-Local folder example:
+FTP example:
```java
-rule "New Local file"
-when
- Channel "folderwatcher:localfolder:myFTPFolder:newfile" triggered
+rule "New FTP file"
+when
+ Channel "folderwatcher:ftpfolder:myLocalFolder:newfile" triggered
then
-
- logInfo("NewLocalFile", receivedEvent.toString())
-
+ logInfo("NewFTPFile", receivedEvent.toString())
end
```
```java
rule "New S3 file"
-when
+when
Channel "folderwatcher:s3bucket:myS3bucket:newfile" triggered
then
-
logInfo("NewS3File", receivedEvent.toString())
-
end
```