ws2801-client v1.0.0
WS2801-client
WS2801-client is a client for the WS2801-webserver package.
Usage
import {LedColor, WS2801Client} from './src/index';
const client: WS2801Client = new WS2801Client('http://localhost:45451');
async function register(): Promise<void> {
  if (!(await client.loginRequired())) {
    console.log('No registration needed.');
    return;
  }
  const apiKey: string = await client.register('<username>', '<password>');
  console.log(`Successfully registered (${apiKey}).`);
}
async function turnLightOn(): Promise<void> {
  const red: LedColor = {
    red: 255,
    green: 0,
    blue: 0,
  };
  await client.fillLedStrip(red);
  console.log('Ledstrip is now red.');
}
async function run(): Promise<void> {
  await register();
  await turnLightOn();
}
run();Functions
Constructor
Parameters:
baseUrl- Type: string
 - The url of the WS2801-webserver.
 
apiKey- optional
 - Type: string
 - The apiKey to be used for authorization on the webserver.
- If a valid apiKey is set in the constructor, registration and login is not required.
 
 
setApiKey
Sets the apiKey that will be used for the requests.
Parameters
- apiKey
- Type: string
 - The apiKey to be used.
 
 
dispose
Disconnects the socket.io client.
loginRequired
Returns whether authorization is required or not.
Returns
Whetger authorization is required or not.
- Type: Promise
 
register
Registers at the webserver.
Parameters
username
- Type: string
 - The username to use for registeration.
 
password
- Type: string
 - The password to use for registeration.
 
Returns
The apiKey for the registered user.
- Type: Promise
 
login
Logs in to the webserver.
Parameters
username
- Type: string
 - The username to use when logging in.
 
password
- Type: string
 - The password to use when logging in.
 
Returns
The apiKey for the logged in user.
- Type: Promise
 
getLedStrip
Returns the current state of the led strip.
Returns
The current state of the led strip.
- Type: Promise<LedStrip>
 
fillLedStrip
Fills the entire led strip in one color.
Parameters
color
- Type: LedColor
 - The color that the led strip should become.
 
brightness
- optional
 - Type: number | 'auto'
 - The brightness in percent to which the led strip should be set.
 
Returns
The current state of the led strip.
- Type: Promise<LedStrip>
 
clearLedStrip
Clears the entire led strip.
Returns
The current state of the led strip.
- Type: Promise<LedStrip>
 
setLed
Sets the color of a single led.
Parameters
ledIndex
- Type: number
 - The index of the led to be changed.
 
brightness
- optional
 - Type: number | 'auto'
 - The brightness in percent to set the led strip to.
 
Returns
The current state of the led strip.
- Type: Promise<LedStrip>
 
setLedStrip
Sets a color for each led.
Parameters
ledStrip
- Type: LedStrip
 - An array of LedColors. Must contain exactly one entry for each led.
 
brightness
- optional
 - Type: number | 'auto'
 - The brightness in percent to set the led strip to.
 
Returns
The current state of the led strip.
- Type: Promise<LedStrip>
 
setBrightness
Sets the brightness of the led strip.
Parameters
- brightness
- Type: number | 'auto'
 - The brightness in percent to which the led strip should be set.
 
 
getBrightness
Returns the current brightness of the led strip.
Returns
The current brightness of the led strip.
- Type: Promise<number | 'auto'>
 
startAnimation
Starts an animation.
Parameters
- animationScript
- Type: string
 - The animation script that should be executed. The animation script can access the LED controller via 
ledControllerand the amount of Leds vialedAmount. 
 
Returns
A promise that resolves once the animation has started, which contains a finishPromise that resolves once the animation has finished.
Promise<{finishPromise: Promise}>
stopAnimation
Stops the current animation, if an animation is running.
waitForAnimationToFinish
Resolves when the current animation is finished. If no animation is running, it resolves immediately.
Listeners
onLedStripChanged
Creates a listener with a callback that is executed each time the led strip is changed.
Parameters
- callback
- Type: (ledStrip: LedStrip => void | Promise
 - The callback to be called each time the led strip is changed.
 
 
Returns
The id of the created listener.
- Type: string
 
onBrightnessChanged
Creates a listener with a callback that is executed each time the brightness is changed.
Parameters
- callback
- Type: (brightness: number) => void | Promise
 - The callback to be called each time the brightness is changed.
 
 
Returns
The id of the created listener.
- Type: string
 
removeListener
Removes a listener.
Parameters
- id
- Type: string
 - The id of the listener to be removed.