Options
All
  • Public
  • Public/Protected
  • All
Menu

Project homebridge-nello - v1.3.14

Index

Type aliases

Config

Config: { auth: NelloAuthConfig; common: NelloPlatformConfig; video: NelloVideoConfig }

Type declaration

  • auth: NelloAuthConfig
  • common: NelloPlatformConfig
  • video: NelloVideoConfig

    If you have a doorbell with srtp support, or a Raspberry Pi camera module, you can use this configuration.

    You need to install ffmpeg if you want to see a picture in the Home app. Just take a look at last paragraph of the Installation part

NelloAuthConfig

NelloAuthConfig: { clientId: string; clientSecret: string }

Type declaration

  • clientId: string
  • clientSecret: string

NelloPlatformConfig

NelloPlatformConfig: { dangerouslyEnableAlwaysOpenSwitch?: boolean; dryRun?: boolean; exposeReachability?: boolean; homekitUser?: string; locationUpdateInterval?: number; lockTimeout?: number; motionSensor?: boolean; motionTimeout?: number; publicWebhookUrl?: string; raspberryPiCamera?: boolean; videoDoorbell?: boolean; webhookServerPort?: number; webhookUpdateInterval?: number }

Type declaration

  • Optional dangerouslyEnableAlwaysOpenSwitch?: boolean

    Expose a switch to HomeKit. If the switch is enabled through HomeKit, every time someone rings and Nello doesn't open the door automatically, this plugin will open it for you. (Can be used for HomeKit automations.)

    The URL and SHA256 HMAC key is regenerated periodically, but this is not immune to replay attacks (within the locationUpdateInterval) since Nello does not include a timestamp in their digest. Use at your own risk!

    Context: https://github.com/lukasroegner/homebridge-nello/issues/43

  • Optional dryRun?: boolean

    Do not actually open the door, only log. Useful for testing.

    WARNING: This also allows unauthenticated webhooks for testing.

    This is not a problen since this also disables door-opening, but please be aware.

  • Optional exposeReachability?: boolean

    Expose the lock state as "unknown" when nello.io API is unreachable.

    Unfortunately, this also triggers a fake "unlocked" notification, so turn this off if you do not want that.

  • Optional homekitUser?: string

    It's recommended to create another account in the nello app for this plugin. In order to prevent duplicated notification you should enter the user name of this HomeKit account. Default value is undefined.

  • Optional locationUpdateInterval?: number

    Frequency to update locations from Nello (when devices are added or removed) also dictates how often the reachability is updated (when the Nello API is down)

    Use 0 to disable continuous updates (will only update at startup).

    (milliseconds)

  • Optional lockTimeout?: number

    for how long should the lock be displayed as unlocked after you unlock the door

    (milliseconds)

  • Optional motionSensor?: boolean

    Expose a motion sensor to HomeKit and trigger it every time someone rings. (Can be used for HomeKit automations and notifications.)

  • Optional motionTimeout?: number

    for how long should the motion sensor be triggered after someone rings

    (milliseconds)

  • Optional publicWebhookUrl?: string

    Specify this if you would not like to use the Webhook Relay service and instead setup port forwarding and Dynamic DNS to make a local Express server publicly accessible. Must be configured to the full URL (e.g. http://example.com:3000/ or https://example.com/) to register with Nello.io.

  • Optional raspberryPiCamera?: boolean

    Use a video configuration adjusted for the camera module.

  • Optional videoDoorbell?: boolean

    If this value is set to true, a camera can be added to HomeKit (as extra accessory) and when someone rings at your door you will get a push notification with unlock button (The lock and the camera must be in the same room to see the unlock button)

  • Optional webhookServerPort?: number

    Port to run the Express Webhook server on. Only relevant if you setup the publicWebhookUrl above.

  • Optional webhookUpdateInterval?: number

    how often to regenerate webhook URLs and set a new signing key

    this partially protects against replay attacks if an attacker gets access to a webhook payload (see docs for dangerouslyEnableAlwaysOpenSwitch)

    quicker is better, however, updates that are too frequent can cause errors on the Nello API

    (milliseconds)

NelloVideoConfig

NelloVideoConfig: { debug?: boolean; ffmpegBinary?: string; horizontalFlip?: boolean; maxFPS?: number; maxHeight?: number; maxWidth?: number; rotate?: number; snapshotImage?: string; stream?: string; vcodec?: string; verticalFlip?: boolean }

Type declaration

  • Optional debug?: boolean

    (Pi Only) Rotate the video stream (in degrees)

  • Optional ffmpegBinary?: string

    Custom path to ffmpeg binary

  • Optional horizontalFlip?: boolean

    (Pi Only) Flip the stream horitzontally

  • Optional maxFPS?: number

    Maximum frame per seconds of the stream

  • Optional maxHeight?: number

    Maximum height of the stream

  • Optional maxWidth?: number

    Maximum width of the stream

  • Optional rotate?: number

    (Pi Only) If set to true you will see all messages from ffmpeg

  • Optional snapshotImage?: string

    Set to either a URL or '-i '

    The path MUST start with / and not ~ or be any other relative path If you use an https:// address, make sure that ffmpeg is compiled with openssl

  • Optional stream?: string

    Enter a stream url of e.g. your RaspberryPi camera or leave it blank if you don't have one

  • Optional vcodec?: string

    Set a video codec for ffmpeg

  • Optional verticalFlip?: boolean

    (Pi Only) Flip the stream vertically

Variables

Const AUTH_URI

AUTH_URI: "https://auth.nello.io" = 'https://auth.nello.io'

Const DEFAULT_CONFIG

DEFAULT_CONFIG: ResolvedConfig = ...

Const NELLO_HMAC_HEADER

NELLO_HMAC_HEADER: "x-nello-hook-hmac" = 'x-nello-hook-hmac'

Const PLATFORM_NAME

PLATFORM_NAME: PlatformName = 'NelloPlatform'

Const PLUGIN_NAME

PLUGIN_NAME: PluginIdentifier = 'homebridge-nello'

Const PUBLIC_API_URI

PUBLIC_API_URI: "https://public-api.nello.io/v1" = 'https://public-api.nello.io/v1'

Const SOCKET_BACKEND

SOCKET_BACKEND: "https://nello-socket.alexdev.de" = 'https://nello-socket.alexdev.de'