homebridge-web-shower (Under Development)
Description
This homebridge plugin exposes a web-based shower to Apple's HomeKit. Using simple HTTP requests, the plugin allows you to turn on/off specific shower heads aand control the temperature.
Installation
- Install homebridge
- Install this plugin:
npm install -g homebridge-web-shower
- Update your
config.json
file
Configuration
"accessories": [
{
"accessory": "WebShower",
"name": "Shower",
"apiroute": "http://myurl.com"
}
]
Core
Key |
Description |
Default |
accessory |
Must be WebSprinklers
|
N/A |
name |
Name to appear in the Home app |
N/A |
apiroute |
Root URL of your device |
N/A |
town |
Your nearest town |
N/A |
country |
Your country code |
N/A |
key |
Your Apixu API key |
N/A |
zones |
Number of sprinkler zones |
3 |
Optional fields
Key |
Description |
Default |
scheduling |
Whether or not to enable scheduling (yes /no ) |
yes |
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
:
[
{
"zone": 1,
"state": 0
},
{
"zone": 2,
"state": 0
},
{
"zone": 3,
"state": 0
},
...
]
- Set zone state when it receives:
/state?value=INT_VALUE?zone=INT_VALUE
Optional (if listener is enabled)
- Update
state
following a manual zone override by messaging the listen server:
/state?value=INT_VALUE?zone=INT_VALUE