magichome-platform
Version:
discover, control, and receive status for magichome devices
124 lines • 3.89 kB
TypeScript
import { ProtoDevice, LEDStateRGB, DeviceMetaData } from 'magichome-core';
import { BaseController } from '../core/baseController';
import { InterpolationType } from '../animation/animationUtils';
export * from 'magichome-core';
export declare const DefaultDevice: {
ipAddress: string;
uniqueId: string;
modelNumber: string;
};
/**
* Device API object
* @param byteOrder - The order of the bytes in the command
* @param description - A description of the device
* @param hasColor - Whether the device has color
* @param hasCCT - Whether the device has CCT
* @param hasBrightness - Whether the device has brightness
* @param isEightByteProtocol - Whether the device uses an 8 byte protocol
* @param needsPowerCommand - Whether the device needs a power command
* @param simultaneousCCT - Whether the device can handle CCT and RGB commands simultaneously
*/
export type DeviceAPI = {
byteOrder: string[];
description: string;
hasColor: boolean;
hasCCT: boolean;
hasBrightness: boolean;
isEightByteProtocol: boolean;
needsPowerCommand: boolean | null;
simultaneousCCT: boolean;
};
export type FullDeviceInformation = {
deviceAPI: DeviceAPI;
protoDevice: ProtoDevice;
ledStateRGB: LEDStateRGB;
deviceMetaData: DeviceMetaData;
};
export interface IControllerInformation {
displayName: string;
lastSeenDate: number;
}
export interface ColorHSV {
hue: number;
saturation: number;
value: number;
}
export interface ColorTB {
temperature: number;
brightness: number;
}
export interface IAnimationLoop {
name: string;
pattern: IAnimationFrame[];
accessoryOffsetMS: number;
}
export interface IAnimationFrame {
colorStart?: IAnimationCommand;
colorTarget: IAnimationCommand;
transitionTimeMS: number | number[];
durationAtTargetMS?: number | number[];
chancePercent: number;
reSyncMs?: number | number[];
}
export interface IAnimationColorRange {
red: number | number[];
green: number | number[];
blue: number | number[];
warmWhite: number | number[];
coldWhite: number | number[];
}
export interface IAnimationColorStep {
red: number;
green: number;
blue: number;
warmWhite: number;
coldWhite: number;
}
export interface IAnimationSequenceRange {
startColor?: IAnimationColorRange;
targetColor: IAnimationColorRange;
transitionDurationMS: number | number[];
durationAtTargetMS: number | number[];
reverseTransitionDurationMS?: number | number[];
interpolationType: InterpolationType;
skipChance: number;
}
export interface IAnimationSequenceStep {
startColor?: IAnimationColorStep;
targetColor: IAnimationColorStep;
transitionDurationMS: number;
durationAtTargetMS: number;
reverseTransitionDurationMS?: number;
interpolationType: InterpolationType;
skipChance: number;
}
export declare enum AnimationStepKey {
ALL = "all"
}
export type AnimationStepKeys = AnimationStepKey | BaseController["id"];
export interface IAnimationBlueprint {
readonly name: string;
readonly priority: number;
readonly syncSequenceTimings: boolean;
readonly syncSequenceColor: boolean;
readonly lightOffsetDurationMS: number;
readonly animationSequences: IAnimationSequenceRange[];
}
export type IFailedDeviceProps = ProtoDevice & {
latestScanTimestamp: number;
};
export interface IAnimationCommand {
RGB?: IAnimationRGB;
CCT?: IAnimationCCT;
colorMask?: number;
}
export interface IAnimationRGB {
red: number | number[];
green: number | number[];
blue: number | number[];
}
export interface IAnimationCCT {
warmWhite: number | number[];
coldWhite: number | number[];
}
//# sourceMappingURL=types.d.ts.map