UNPKG

node-hue-api

Version:
50 lines (49 loc) 1.72 kB
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 }); } }