homebridge-programmable-http-switch
v1.0.3
Published
A Homebridge plugin that allows users to create Stateless Programmable Switches which can be controlled using a HTTP API.
Downloads
31
Maintainers
Readme
Programmable HTTP Switch
This Homebridge plugin allows users to create Stateless Programmable Switches which can be controlled using a HTTP API.
Installation
First, install Homebridge
npm install --global homebridge
Then, install the Programmable HTTP Switch plugin
npm install --global homebridge-programmable-http-switch
Configuration
Platform configuration
An example configuration can be found in the config.example.json file.
| Property | Type | Details |
| ------------- | ------------- | ------------------------------------------------------------------------------ |
| platform
| string
| RequiredMust always be ProgrammableHTTPSwitch
. |
| accessories
| Accessory[]
| RequiredList of accessory configurations. |
| port
| number
| Optional, default: 3000
The port that the HTTP server should listen on. |
Accessory configuration
| Property | Type | Details |
| ------------ | ---------- | ------------------------------------------------------------------------ |
| name
| string
| RequiredThe name of the accessory. |
| identifier
| string
| RequiredThe identifier used in the API. |
| buttons
| Button[]
| RequiredList of button configurations. |
Button configuration
| Property | Type | Details |
| ------------------ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| name
| string
| RequiredThe name of the button. Note: Not shown in Apple's Home app. |
| identifier
| string
| RequiredThe identifier used in the API. |
| supportedActions
| string[]
| Optional, default: allList of actions that this button supports.Supported values: singlePress
(0
), doublePress
(1
) and longPress
(2
) |
API endpoints
GET /accessories
Description Returns all the currently configured accessoires.
GET /accessories/:accessoryIdentifier
Description Returns an accessory with a specific identifier.
GET /accessories/:accessoryIdentifier/buttons
Description Returns all buttons for an accessory with a specific identifier.
GET /accessories/:accessoryIdentifier/buttons/:buttonIdentifier
Description Returns a button with a specific identifier for an accessory with a specific identifier.
PUT /accessories/:accessoryIdentifier/buttons/:buttonIdentifier
Description Sets the state of a specific button on a specific accessory.
Body
{
"action": "singlePress"
}
Note: Action must be one of the supported actions configured for the specific button.