node-hue-api
Version:
Philips Hue API Library for Node.js
50 lines (49 loc) • 1.72 kB
JavaScript
import { ApiDefinition } from './http/ApiDefinition';
import { sensorsApi } from './http/endpoints/sensors';
export class Sensors extends ApiDefinition {
constructor(hueApi) {
super(hueApi);
}
getAll() {
return this.execute(sensorsApi.getAllSensors);
}
getSensor(id) {
return this.execute(sensorsApi.getSensor, { id: id });
}
searchForNew() {
return this.execute(sensorsApi.findNewSensors);
}
getNew() {
return this.execute(sensorsApi.getNewSensors);
}
renameSensor(sensor) {
return this.execute(sensorsApi.updateSensor, { id: sensor, name: sensor.name });
}
/** Creates a new Sensor (CLIP based) */
createSensor(sensor) {
const self = this;
return self.execute(sensorsApi.createSensor, { sensor: sensor })
.then((data) => {
// @ts-ignore
return self.getSensor(data.id);
});
}
deleteSensor(id) {
return this.execute(sensorsApi.deleteSensor, { id: id });
}
/** Will update the configuration attributes of the Sensor in the bridge. */
updateSensorConfig(sensor) {
return this.execute(sensorsApi.changeSensorConfig, { id: sensor.id, sensor: sensor });
}
/**
* Will update the state attributes of the Sensor in the bridge.
* @param limitToStateNames list of state attributes to limit the update to (should not be needed in practice, was added to get around a bug).
*/
updateSensorState(sensor, limitToStateNames) {
return this.execute(sensorsApi.changeSensorState, {
id: sensor.id,
sensor: sensor,
filterStateNames: limitToStateNames
});
}
}