homebridge-web-rgb
v1.4.4
Published
Homebridge plugin for a web-based RGB device
Downloads
7
Readme
homebridge-web-rgb
Description
This homebridge plugin exposes a web-based RGB device to Apple's HomeKit. Using simple HTTP requests, the plugin allows you to turn on/off the light as well as control its color, color temperature, and brightness.
Find script samples for the RGB controller in the examples folder.
Installation
- Install homebridge
- Install this plugin:
npm install -g homebridge-web-rgb
- Update your
config.json
file
Configuration
"accessories": [
{
"accessory": "HTTP-RGB",
"name": "RGB strip",
"apiroute": "http://myurl.com"
}
]
Core
| Key | Description | Default |
| --- | --- | --- |
| accessory
| Must be HTTP-RGB
| 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 |
| --- | --- | --- |
| disableColor
| Whether the color characteristic should be hidden | false
|
| disableBrightness
| Whether the brightness characteristic should be hidden | false
|
| colorTemperature
| Whether to expose the color temperature characteristic separately from the color 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 |
Examples
| Device type | Changes to config.json
|
| --- | --- |
| RGB | N/A |
| RGBW/WW | N/A (API handles) |
| Cool/warm white | "disableColor": true
|
| CCT | "disableColor": true
, "colorTemperature": true
|
| RBGCCT | "colorTemperature": true
|
API Interfacing
Your API should be able to:
- Return JSON information when it receives
/status
:
{
"currentState": INT_VALUE,
"currentBrightness": INT_VALUE,
"currentColor": "HEX_VALUE"
}
Note: You must also include the following fields in /status
where relevant:
colorTemperature
(ifcolorTemperature
is enabled)
- Set the state when it receives:
/setState?value=BOOL_VALUE
- Set the color when it receives:
/setColor?value=HEX_VALUE
- Set the brightness when it receives:
/setBrightness?value=INT_VALUE
- Set the color temperature when it receives: (if
colorTemperature
is enabled)
/setColorTemperature?value=INT_VALUE
Optional (if listener is enabled)
- Update
state
following a manual override by messaging the listen server:
/state?value=INT_VALUE
- Update
color
following a manual override by messaging the listen server:
/color?value=HEX_VALUE
- Update
brightness
following a manual override by messaging the listen server:
/brightness?value=INT_VALUE
- Update
colorTemperature
following a manual override by messaging the listen server: (ifcolorTemperature
is enabled)
/colorTemperature?value=INT_VALUE