/** * 文档 * @see https://www.yeelight.com/download/Yeelight_Inter-Operation_Spec.pdf */ import { YeelightDeviceInfo } from './yeelight.typing' export const YEELIGHT_DEVICE_INFO_DEFAULT: YeelightDeviceInfo = { location: '', id: '', model: 'string', support: 'string', power: false, bright: 0, color_mode: -1, ct: 0, rgb: 'string', hue: 0, sat: 0, host: 'string', port: 0, debug: false, trackedAttributes: [], fw_ver: '0,0.0', name: 'string', } export const YEELIGHT_DISCOVERY_OPTIONS = { port: 1982, multicastAddr: '239.255.255.250', discoveryMsg: [ 'M-SEARCH * HTTP/1.1\r\n', 'HOST: 239.255.255.250:1982\r\n', 'MAN: "ssdp:discover"\r\n', 'ST: wifi_bulb\r\n', ].join('') } export const YEELIGHT_DEVICE_OPTIONS = { port: 55443, } export enum YEELIGHT_EVENT { DISCOVERED = 'discovered', } export const YEELIGHT_ROW_SEPARATOR = '\r\n' export enum YEELIGHT_COMMAND { GetProp = 'get_prop', SetPower = 'set_power', SetBgPower = 'bg_set_power', } // 1. 如果 get_prop 拿太多有几率无响应 // 2. rgb / hue / sat / flow_params / music_on / name 这几个我的吊灯拿不到值 export enum YEELIGHT_PROPERTY { 'power' = 'power', // on: smart LED is turned on / off: smart LED is turned off 'bright' = 'bright', // Brightness percentage. Range 1 ~ 100 'ct' = 'ct', // Color temperature. Range 1700 ~ 6500(k) // 'rgb' = 'rgb', // Color. Range 1 ~ 16777215 // 'hue' = 'hue', // Hue. Range 0 ~ 359 // 'sat' = 'sat', // Saturation. Range 0 ~ 100 'color_mode' = 'color_mode', // 1: rgb mode / 2: color temperature mode / 3: hsv mode 'flowing' = 'flowing', // 0: no flow is running / 1:color flow is running 'delayoff' = 'delayoff', // The remaining time of a sleep timer. Range 1 ~ 60 (minutes) // 'flow_params' = 'flow_params', // Current flow parameters (only meaningful when 'flowing' is 1) // 'music_on' = 'music_on', // 1: Music mode is on / 0: Music mode is off // 'name' = 'name', // The name of the device set by “set_name” command 'bg_power' = 'bg_power', // Background light power status 'bg_flowing' = 'bg_flowing', // Background light is flowing 'bg_flow_params' = 'bg_flow_params', // Current flow parameters of background light 'bg_ct' = 'bg_ct', // Color temperature of background light 'bg_lmode' = 'bg_lmode', // 1: rgb mode / 2: color temperature mode / 3: hsv mode 'bg_bright' = 'bg_bright', // Brightness percentage of background light 'bg_rgb' = 'bg_rgb', // Color of background light 'bg_hue' = 'bg_hue', // Hue of background light 'bg_sat' = 'bg_sat', // Saturation of background light 'nl_br' = 'nl_br', // Brightness of night mode light 'active_mode' = 'active_mode', // 0: daylight mode / 1: moonlight mode (ceiling light only) } export const YEELIGHT_PROPERTIES = [ YEELIGHT_PROPERTY.power, YEELIGHT_PROPERTY.bright, YEELIGHT_PROPERTY.ct, YEELIGHT_PROPERTY.color_mode, YEELIGHT_PROPERTY.flowing, YEELIGHT_PROPERTY.delayoff, YEELIGHT_PROPERTY.bg_power, YEELIGHT_PROPERTY.bg_flowing, YEELIGHT_PROPERTY.bg_flow_params, YEELIGHT_PROPERTY.bg_ct, YEELIGHT_PROPERTY.bg_lmode, YEELIGHT_PROPERTY.bg_bright, YEELIGHT_PROPERTY.bg_rgb, YEELIGHT_PROPERTY.bg_hue, YEELIGHT_PROPERTY.bg_sat, YEELIGHT_PROPERTY.nl_br, YEELIGHT_PROPERTY.active_mode, ] export const YEELIGHT_VALUE = { [YEELIGHT_PROPERTY.power]: { POWER_ON: ['on', 'smooth', 800], POWER_OFF: ['off', 'smooth', 800], } } // { // power: 'off', // bright: '100', // ct: '3300', // color_mode: '2', // flowing: '0', // delayoff: '0', // bg_power: 'off', // bg_flowing: '0', // bg_flow_params: '0,0,3000,4,16711680,100,3000,4,65280,100,3000,4,255,100', // bg_ct: '2732', // bg_lmode: '3', // bg_bright: '25', // bg_rgb: '16755284', // bg_hue: '30', // bg_sat: '67', // nl_br: '0', // active_mode: '0' // } export const YEELIGHT_STATE = { [YEELIGHT_PROPERTY.power]: { POWER_ON: 'on', POWER_OFF: 'off', } }