UNPKG

node-hue-api

Version:
169 lines (168 loc) 4.97 kB
import { model, time } from '@peter-murray/hue-bridge-model'; function isTimePattern(str) { return time.AbsoluteTime.matches(str) || time.RecurringTime.matches(str) || time.RandomizedTime.matches(str) || time.RecurringRandomizedTime.matches(str) || time.Timer.matches(str) || time.RecurringTimer.matches(str) || time.RandomizedTimer.matches(str) || time.RecurringRandomizedTimer.matches(str); } const timePatterns = { weekdays: time.WEEKDAYS, isRecurring: time.isRecurring, createAbsoluteTime, createRandomizedTime, createRecurringTime, createRecurringRandomizedTime, createTimeInterval, createTimer, createRecurringTimer, createRandomizedTimer, createRecurringRandomizedTimer, createFromString: time.createFromString, isTimePattern, }; const actions = { light: (light) => { return new model.LightStateAction(light); }, group: (group) => { return new model.GroupStateAction(group); }, sensor: (sensor) => { return new model.SensorStateAction(sensor); }, scene: (scene) => { return new model.SceneAction(scene); } }; const ruleConditions = { sensor: function (sensor) { return new model.SensorCondition(sensor); }, group: function (id) { return new model.GroupCondition(id); }, }; export const v3Model = { lightStates: model.lightStates, timePatterns, createEntertainment, createLightGroup, createRoom, createZone, createCLIPGenericFlagSensor, createCLIPGenericStatusSensor, createCLIPHumiditySensor, createCLIPLightlevelSensor, createCLIPOpenCloseSensor, createCLIPPresenceSensor, createCLIPTemperatureSensor, createCLIPSwitchSensor, createLightScene, createGroupScene, createSchedule, actions, createRule, ruleConditions, // ruleConditionOperators, // createResourceLink, // // createFromBridge, // createFromJson, }; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Groups function createEntertainment() { return new model.Entertainment(); } function createLightGroup() { return new model.LightGroup(); } function createRoom() { return new model.Room(); } function createZone() { return new model.Zone(); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Sensors function createCLIPGenericFlagSensor() { return new model.CLIPGenericFlag(); } function createCLIPGenericStatusSensor() { return new model.CLIPGenericStatus(); } function createCLIPHumiditySensor() { return new model.CLIPHumidity(); } function createCLIPLightlevelSensor() { return new model.CLIPLightlevel(); } function createCLIPOpenCloseSensor() { return new model.CLIPOpenClose(); } function createCLIPPresenceSensor() { return new model.CLIPPresence(); } function createCLIPTemperatureSensor() { return new model.CLIPTemperature(); } function createCLIPSwitchSensor() { return new model.CLIPSwitch(); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Scenes function createLightScene() { return new model.LightScene(); } function createGroupScene() { return new model.GroupScene(); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Schedules function createSchedule() { return new model.Schedule(); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Rules function createRule() { return new model.Rule(); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // ResourceLinks function createResourceLink() { return new model.ResourceLink(); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Schedule Times function createAbsoluteTime(value) { return new time.AbsoluteTime(value); } function createRandomizedTime(value) { return new time.RandomizedTime(value); } function createRecurringTime(weekdays, value) { return new time.RecurringTime(weekdays, value); } function createRecurringRandomizedTime(value) { return new time.RecurringRandomizedTime(value); } function createTimeInterval(value) { return new time.TimeInterval(value); } function createTimer(value) { return new time.Timer(value); } function createRecurringTimer(value) { return new time.RecurringTimer(value); } function createRandomizedTimer(value) { return new time.RandomizedTimer(value); } function createRecurringRandomizedTimer(value) { return new time.RecurringRandomizedTimer(value); }