1.0.7 • Published 4 years ago
homebridge-web-fan v1.0.7
homebridge-web-fan
Description
This homebridge plugin exposes a web-based valve to Apple's HomeKit. Using simple HTTP requests, the plugin allows you to turn on/off the fan.
Installation
- Install homebridge
- Install this plugin:
npm install -g homebridge-web-fan - Update your
config.jsonfile
Configuration
"accessories": [
{
"accessory": "WebFan",
"name": "Fan",
"apiroute": "http://myurl.com"
}
]Core
| Key | Description | Default |
|---|---|---|
accessory | Must be WebFan | N/A |
name | Name to appear in the Home app | N/A |
apiroute | Root URL of your device | N/A |
Optional fields
| Key | Description | Default |
|---|---|---|
rotationSpeed | Whether to expose rotation speed as a characteristic | false |
rotationDirection | Whether to expose rotation direction as a characteristic | false |
Additional options
| Key | Description | Default |
|---|---|---|
pollInterval | Time (in seconds) between device polls | 300 |
listener | Whether to start a listener to get real-time changes from the device | false |
timeout | Time (in milliseconds) until the accessory will be marked as Not Responding if it is unreachable | 3000 |
port | Port for your HTTP listener (if enabled) | 2000 |
http_method | HTTP method used to communicate with the device | GET |
username | Username if HTTP authentication is enabled | N/A |
password | Password if HTTP authentication is enabled | N/A |
model | Appears under the Model field for the accessory | plugin |
serial | Appears under the Serial field for the accessory | apiroute |
manufacturer | Appears under the Manufacturer field for the accessory | author |
firmware | Appears under the Firmware field for the accessory | version |
API Interfacing
Your API should be able to:
- Return JSON information when it receives
/status:
{
"currentState": INT_VALUE
}- Set the state when it receives:
/setState?value=INT_VALUEOptional (if listener is enabled)
- Update
statefollowing a manual override by messaging the listen server:
/state?value=INT_VALUE- If
rotationSpeedis enabled, updaterotationSpeedfollowing a manual override by messaging the listen server:
/rotationSpeed?value=INT_VALUE_0_TO_100- If
rotationDirectionis enabled, updaterotationDirectionfollowing a manual override by messaging the listen server:
/rotationDirection?value=INT_VALUE_0_TO_1