1.0.0 • Published 6 months ago

tidbyt v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

Tidbyt Client for Node.js

Unofficial API client for the Tidbyt API. Use this client to control Tidbyt devices and integrate with other services.

Installation

You can install the package with npm:

> npm install tidbyt

Usage

const Tidbyt = require('tidbyt')

async function main() {
    const deviceId = process.argv[2]
    const tidbyt = new Tidbyt(process.env.TIDBYT_API_TOKEN)

    // get our requested device
    const device = await tidbyt.devices.get(deviceId)
    const { displayName, lastSeen } = device

    console.log(displayName, `Last Seen: (${lastSeen})`)

    // get a list of officially available apps
    // return as map so we can lookup app name/descriptions by id
    const apps = await tidbyt.apps.list({ asMap: true })

    // get the list of installations for this device
    const installations = await device.installations.list()

    for (const { id, appID } of installations) {
        const {
            name = 'Custom',
            description = `Unlike a regular Tidbyt app, this "installation" was pushed to ${displayName} via Tidbyt's API.`,
        } = apps.get(appID) || {}

        console.log(``)
        console.log(`  ${name} - ${id}`)
        console.log(`      ${description}`)
    }
}
main()

Classes

TidbytDevice

Kind: global class
Scope: Tidbyt

new TidbytDevice(options, client)

Construct a TidbytDevice with provided options.

A valid client is required to use any methods.

Available options:

 - `id`: the device id

 - `lastSeen`: the last time the device was seen

 - `brightness`: the brightness of the device from 0-100

 - `displayName`: the display name of the device

 - `autoDim`: whether the device is auto dimming at night
ParamType
optionsObject
clientTidByt

tidbytDevice.installations : object

Kind: instance property of TidbytDevice

installations.list() ⇒ Promise.<Array.<TidbytDeviceInstallation>>

Return a list of installations on the device from the Tidbyt API.

Kind: instance method of installations

installations.update(installationID, image) ⇒ Promise.<Object>

Update an existing installation with a new image.

Throws if not client is intialized.

Kind: instance method of installations

ParamTypeDescription
installationIDStringOptional installation ID to create/update
imageBufferBuffer containing the images to push

installations.delete(installationID) ⇒ Promise.<Object>

Delete an existing installation from the device.

Throws if not client is intialized.

Kind: instance method of installations

ParamTypeDescription
installationIDStringOptional installation ID to create/update

tidbytDevice.update(updates) ⇒ Promise.<TidbytDevice>

Update a device with the provided values.

Throws if not client is intialized.

Available fields:

 - `autoDim`: whether the device is auto dimming at night

 - `brightness`: the brightness of the device from 0-100

 - `displayName`: the display name of the device

Kind: instance method of TidbytDevice

ParamType
updatesObject

tidbytDevice.push(image, options) ⇒ Promise.<Object>

Push a new installation to the device.

Throws if not client is intialized.

Available options:

installationID: Installation ID to create/update

background: Whether the installation should not interrupt the rotation

Kind: instance method of TidbytDevice

ParamTypeDescription
imageBufferBuffer containing the images to push
optionsObject

Tidbyt

Kind: global class

new Tidbyt(apiToken, version)

Construct a Tidbyt with provided options.

Available options:

 - `apiToken`: the API token

 - `apiVersion`: the API version. Defaults to `v0`
ParamTypeDefault
apiTokenString
versionString'v0'

tidbyt.apps : object

Kind: instance property of Tidbyt

apps.list(options) ⇒ Promise.<(Array.<Object>|Map)>

Return a list of available apps from the Tidbyt API.

Available options:

 - `asMap`: Defaults to false. If true, returns a map of app ids to app objects instead of an array of app objects.

Kind: instance method of apps

ParamType
optionsObject

tidbyt.devices : object

Kind: instance property of Tidbyt

devices.get(deviceId) ⇒ Promise.<TidbytDevice>

Get a device by id from the Tidbyt API.

Kind: instance method of devices

ParamTypeDescription
deviceIdStringThe device id

devices.update(deviceId, updates) ⇒ Promise.<TidbytDevice>

Update a device with the provided values by ID.

Available updates:

 - `autoDim`: whether the device is auto dimming at night

 - `brightness`: the brightness of the device from 0-100

 - `displayName`: the display name of the device

Kind: instance method of devices

ParamTypeDescription
deviceIdStringThe device id
updatesObject

devices.push(deviceId, image, options) ⇒ Promise.<Object>

Push a new installation to a device by ID.

Throws if not client is intialized.

Available options:

installationID: Installation ID to create/update

background: Whether the installation should not interrupt the rotation

Kind: instance method of devices

ParamTypeDescription
deviceIdStringThe device id
imageBufferBuffer containing the images to push
optionsObjectPush options

tidbyt.request(path, method, body, headers, raw, encoding) ⇒ Promise.<(Object|Buffer)>

Send a request to the Tidbyt API.

Kind: instance method of Tidbyt

ParamTypeDefault
pathString
methodString'GET'
bodyObject
headersObject{}
rawBoolean
encodingString
1.0.0

6 months ago

0.2.0

6 months ago

0.1.0

6 months ago