node-hue-api
Version:
Philips Hue API Library for Node.js
172 lines (171 loc) • 5.92 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.v3Model = void 0;
const hue_bridge_model_1 = require("@peter-murray/hue-bridge-model");
function isTimePattern(str) {
return hue_bridge_model_1.time.AbsoluteTime.matches(str)
|| hue_bridge_model_1.time.RecurringTime.matches(str)
|| hue_bridge_model_1.time.RandomizedTime.matches(str)
|| hue_bridge_model_1.time.RecurringRandomizedTime.matches(str)
|| hue_bridge_model_1.time.Timer.matches(str)
|| hue_bridge_model_1.time.RecurringTimer.matches(str)
|| hue_bridge_model_1.time.RandomizedTimer.matches(str)
|| hue_bridge_model_1.time.RecurringRandomizedTimer.matches(str);
}
const timePatterns = {
weekdays: hue_bridge_model_1.time.WEEKDAYS,
isRecurring: hue_bridge_model_1.time.isRecurring,
createAbsoluteTime,
createRandomizedTime,
createRecurringTime,
createRecurringRandomizedTime,
createTimeInterval,
createTimer,
createRecurringTimer,
createRandomizedTimer,
createRecurringRandomizedTimer,
createFromString: hue_bridge_model_1.time.createFromString,
isTimePattern,
};
const actions = {
light: (light) => {
return new hue_bridge_model_1.model.LightStateAction(light);
},
group: (group) => {
return new hue_bridge_model_1.model.GroupStateAction(group);
},
sensor: (sensor) => {
return new hue_bridge_model_1.model.SensorStateAction(sensor);
},
scene: (scene) => {
return new hue_bridge_model_1.model.SceneAction(scene);
}
};
const ruleConditions = {
sensor: function (sensor) {
return new hue_bridge_model_1.model.SensorCondition(sensor);
},
group: function (id) {
return new hue_bridge_model_1.model.GroupCondition(id);
},
};
exports.v3Model = {
lightStates: hue_bridge_model_1.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 hue_bridge_model_1.model.Entertainment();
}
function createLightGroup() {
return new hue_bridge_model_1.model.LightGroup();
}
function createRoom() {
return new hue_bridge_model_1.model.Room();
}
function createZone() {
return new hue_bridge_model_1.model.Zone();
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Sensors
function createCLIPGenericFlagSensor() {
return new hue_bridge_model_1.model.CLIPGenericFlag();
}
function createCLIPGenericStatusSensor() {
return new hue_bridge_model_1.model.CLIPGenericStatus();
}
function createCLIPHumiditySensor() {
return new hue_bridge_model_1.model.CLIPHumidity();
}
function createCLIPLightlevelSensor() {
return new hue_bridge_model_1.model.CLIPLightlevel();
}
function createCLIPOpenCloseSensor() {
return new hue_bridge_model_1.model.CLIPOpenClose();
}
function createCLIPPresenceSensor() {
return new hue_bridge_model_1.model.CLIPPresence();
}
function createCLIPTemperatureSensor() {
return new hue_bridge_model_1.model.CLIPTemperature();
}
function createCLIPSwitchSensor() {
return new hue_bridge_model_1.model.CLIPSwitch();
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Scenes
function createLightScene() {
return new hue_bridge_model_1.model.LightScene();
}
function createGroupScene() {
return new hue_bridge_model_1.model.GroupScene();
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Schedules
function createSchedule() {
return new hue_bridge_model_1.model.Schedule();
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Rules
function createRule() {
return new hue_bridge_model_1.model.Rule();
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ResourceLinks
function createResourceLink() {
return new hue_bridge_model_1.model.ResourceLink();
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Schedule Times
function createAbsoluteTime(value) {
return new hue_bridge_model_1.time.AbsoluteTime(value);
}
function createRandomizedTime(value) {
return new hue_bridge_model_1.time.RandomizedTime(value);
}
function createRecurringTime(weekdays, value) {
return new hue_bridge_model_1.time.RecurringTime(weekdays, value);
}
function createRecurringRandomizedTime(value) {
return new hue_bridge_model_1.time.RecurringRandomizedTime(value);
}
function createTimeInterval(value) {
return new hue_bridge_model_1.time.TimeInterval(value);
}
function createTimer(value) {
return new hue_bridge_model_1.time.Timer(value);
}
function createRecurringTimer(value) {
return new hue_bridge_model_1.time.RecurringTimer(value);
}
function createRandomizedTimer(value) {
return new hue_bridge_model_1.time.RandomizedTimer(value);
}
function createRecurringRandomizedTimer(value) {
return new hue_bridge_model_1.time.RecurringRandomizedTimer(value);
}