Removed debug logs and scheduler

This commit is contained in:
watsonb8 2020-04-13 20:54:35 -04:00
parent a43ecd2700
commit 34bca9c705
2 changed files with 5 additions and 105 deletions

View File

@ -3,10 +3,8 @@ import Api = require("node-hue-api/lib/api/Api");
import Light = require("node-hue-api/lib/model/Light");
import LightState = require("node-hue-api/lib/model/lightstate/LightState");
import { Sleep } from "./sleep";
import { Scheduler, Delegate } from "./scheduler";
import { IConfig } from "./models/iConfig";
//@ts-ignore
import { getSunset, getSunRise } from 'sunrise-sunset';
import { GetTimesResult, getTimes } from "suncalc";
import HueError = require("node-hue-api/lib/HueError");
@ -116,7 +114,6 @@ export class FluxAccessory implements IAccessory {
//@ts-ignore
const light: Light = await this._hue.lights.getLightByName(value)
this._lights.push(light);
this._log(`Got light ${light.name}`);
}
}
@ -156,22 +153,18 @@ export class FluxAccessory implements IAccessory {
return x;
}
private isHueError = (object: any): object is HueError => {
return '_hueError' in object;
}
private setLights = async (state: LightState) => {
// const promises: Array<Promise<unknown> | PromiseLike<unknown>> = [];
for (const light of this._lights) {
const promises: Array<Promise<unknown> | PromiseLike<unknown>> = [];
this._lights.map(async (light: Light) => {
try {
this._log(`Setting light ${light.name}`);
await this._hue.lights.setLightState(light.id, state);
} catch (err) {
this._log(`Error while setting lights: ${err}`);
}
}
});
// await Promise.all(promises);
await Promise.all(promises);
}
/**

View File

@ -1,93 +0,0 @@
import { EventEmitter } from 'events';
import { Sleep } from './sleep';
export interface ITask {
delegate: Delegate;
title: string;
}
export type Delegate = () => Promise<void>;
export class Scheduler extends EventEmitter {
private _tasks: Array<ITask>;
private _isStarted: boolean;
private _log: any;
private _delay: number;
private _watchdog: number;
constructor(delay: number, watchdog: number, log: any) {
super();
this._tasks = [];
this._isStarted = false;
this._log = log;
this._delay = delay;
this._watchdog = watchdog;
}
public get IsStarted(): boolean {
return this._isStarted;
}
public addTask = (task: ITask): Scheduler => {
if (this._isStarted) {
throw new Error("Stop the scheduler before adding a task");
}
this._tasks.push(task);
return this;
}
public deleteTask = (task: ITask): Scheduler => {
if (this._isStarted) {
throw new Error("Stop the scheduler before removing a task");
}
const idx = this._tasks.indexOf(task);
if (idx > -1) {
this._tasks.splice(idx, 1);
}
return this;
}
public start = (): void => {
if (this._tasks.length > 0 && !this._isStarted) {
this.begin();
}
}
public stop = (): void => {
if (this._isStarted) {
this._isStarted = false;
}
}
private begin = async (): Promise<void> => {
let current = "";
const timeoutId = setTimeout(() => {
this.emit('error', new Error(`Task '${current}' failed to execute within the watchdog timer`));
},
this._watchdog);
timeoutId.unref();
this._isStarted = true;
while (this._isStarted) {
for (const task of this._tasks) {
try {
timeoutId.refresh();
current = task.title;
await task.delegate();
} catch (err) {
this.emit('error', err);
continue;
}
}
await Sleep(this._delay);
}
}
}