homebridge-dynamicapi
TypeScript icon, indicating that this package has built-in type declarations

1.0.24 • Public • Published

npm npm Donate verified-by-homebridge

homebridge-dynamicAPI

This is a Homebridge dynamic platform plugin which exposes remote light, temperature, humidity and garage door accessories through a remote API.

Features:

  • Accessories are dynamically created through remote API when Homebridge is started
  • Control remote accessories through API
  • Support of dynamic updates from accessories to support garage door state monitoring and local garage door / light activation.
  • Support of characteristic polling to improve Home application performance.

Optional Features:

  • HTTPS
  • JSON Web Token Security (Auth0 Tested)
  • Support of Self-Signed Certificate

Install

The plugin can be installed by running the command: sudo npm -g homebridge-dynamicapi

Configuration

The configuration of the plugin can be done via the Homebrige GUI or through the Homebridge configuration file.

{
            "remoteApiDisplayName": "<display name>",
            "remoteApiURL": "https://host:8001/API-Endpoint/",
            "remoteApiRejectInvalidCert": false,
            "remoteApiCharPoll": [
                {
                    "Lightbulb": {
                        "enabled": false,
                        "On": true,
                        "Brightness": true,
                        "ColorTemperature": true,
                        "Hue": true,
                        "Saturation": true
                    },
                    "GarageDoorOpener": {
                        "enabled": false,
                        "CurrentDoorState": true,
                        "ObstructionDetected": true
                    },
                    "TemperatureSensor": {
                        "enabled": false,
                        "CurrentTemperature": true,
                        "StatusActive": true
                    },
                    "HumiditySensor": {
                        "enabled": false,
                        "CurrentRelativeHumidity": true,
                        "StatusActive": true
                    }
                }
            ],
            "remoteApiPollInt": 10,
            "directConnectApiPort": 8001,
            "directConnectApiHttps": false,
            "directConnectApiHttpsCertPath": "/<certificate path>/<certificate>",
            "directConnectApiHttpsKeyPath": "/<private key path>/<private key>",
            "jwt": false,
            "jwtAudience": "https://JWT-API-Application/",
            "jwtIssuer": "https://JWT-Issuer/",
            "jwtClientID": "<JWT Client ID>",
            "jwtClientSecret": "<JWT Client Secret>",
            "platform": "<dynamicAPI>"
        }

DIRECT CONNECT API

  • GET / - Shows all devices registered to Homebridge from this platform

  • PATCH /API/ - Updates characteristic of accessory using the UUID field as the index

REMOTE API

  • GET /API/ - Shows API state

  • GET /API/DEVICES/ - Shows all devices and their current status and characteristics

  • GET /API/DEVICES/{uuid:} - Shows current status and characteristics of device with id = {uuid:}

  • GET /API/DEVICES/{uuid:}/CHARACTERISTICS/ - Shows characteristics of device with id = {uuid:}

  • GET /API/DEVICES/{uuid:}/CHARACTERISTICS/{char:}/ - Shows characteristic {char:} of device with id = {uuid:}

  • PATCH /API/DEVICES/{uuid:} - Updates status and characteristics of device with id = {uuid:}

  • PATCH /API/DEVICES/{uuid:}/CHARACTERISTICS/ - Updates characteristics of device with id = {uuid:}

  • PATCH /API/DEVICES/{uuid:}/CHARACTERISTICS/{char:}/ - Update characteristic {char:} of device with id = {uuid:}

ASSOCIATED REMOTE API IMPLEMENTATION

Please see project https://github.com/IanW6374/Raspberry-Garage for an implementation of the Remote API on the Raspberry Pi platform.

Readme

Keywords

Package Sidebar

Install

npm i homebridge-dynamicapi

Weekly Downloads

6

Version

1.0.24

License

Apache-2.0

Unpacked Size

130 kB

Total Files

33

Last publish

Collaborators

  • ianw6374