Adding separate configuration for wiz vs hue lights
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Brandon Watson 2023-04-29 13:47:34 -05:00
parent 417f017f45
commit 1d39c725af
6 changed files with 698 additions and 789 deletions

View File

@ -75,7 +75,7 @@ steps:
from_secret: ssh_key
port: 22
script:
- rm -r /home/$SSH_USER/.npm-global/lib/node_modules/@watsonb8/homebridge-flux
- rm -r /home/$SSH_USER/.npm-global/lib/node_modules/@watsonb8/homebridge-flux || true
when:
event:
- tag
@ -92,7 +92,7 @@ steps:
from_secret: ssh_key
port: 22
script:
- npm install -g @watsonb8/homebridge-flux --registry https://gitea.watsonlabs.net
- npm install -g @watsonb8/homebridge-flux
when:
event:
- tag

View File

@ -102,18 +102,33 @@
"type": "boolean",
"required": true
},
"ceilingColorTemp": {
"title": "Ceiling Color Temperature",
"hueCeilingColorTemp": {
"title": "Hue Ceiling Color Temperature",
"type": "number",
"required": true
},
"sunsetColorTemp": {
"title": "Sunset Color Temperature",
"hueSunsetColorTemp": {
"title": "Hue Sunset Color Temperature",
"type": "number",
"required": true
},
"floorColorTemp": {
"title": "Floor Color Temperature",
"hueFloorColorTemp": {
"title": "Hue Floor Color Temperature",
"type": "number",
"required": true
},
"wizCeilingColorTemp": {
"title": "Wiz Ceiling Color Temperature",
"type": "number",
"required": true
},
"wizSunsetColorTemp": {
"title": "Wiz Sunset Color Temperature",
"type": "number",
"required": true
},
"wizFloorColorTemp": {
"title": "Wiz Floor Color Temperature",
"type": "number",
"required": true
},

1382
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"name": "@watsonb8/homebridge-flux",
"version": "1.1.4",
"version": "1.2.0",
"description": "",
"main": "bin/index.js",
"publishConfig": {
@ -34,7 +34,7 @@
"dependencies": {
"@types/node-cron": "^2.0.3",
"@types/suncalc": "^1.8.0",
"@watsonb8/wiz-lib": "^1.0.1-e1c84.0",
"@watsonb8/wiz-lib": "^1.0.1-ae175.0",
"node-cron": "^2.0.3",
"node-hue-api": "^4.0.5",
"suncalc": "^1.8.0"

View File

@ -235,35 +235,56 @@ export class FluxAccessory {
this._times.sunrise.getTime() + 1 * SECONDS_IN_DAY
);
const startColorTemp = this._config.ceilingColorTemp ?? 4000;
const sunsetColorTemp = this._config.sunsetColorTemp ?? 2800;
const floorColorTemp = this._config.floorColorTemp ?? 1900;
const hueStartColorTemp = this._config.hueCeilingColorTemp ?? 4000;
const hueSunsetColorTemp = this._config.hueSunsetColorTemp ?? 2800;
const hueFloorColorTemp = this._config.hueFloorColorTemp ?? 1900;
let newTemp = this._config.ceilingColorTemp;
const wizStartColorTemp = this._config.wizCeilingColorTemp ?? 4000;
const wizSunsetColorTemp = this._config.wizSunsetColorTemp ?? 2800;
const wizFloorColorTemp = this._config.wizFloorColorTemp ?? 1900;
let newHueTemp = this._config.hueCeilingColorTemp;
let newWizTemp = this._config.wizCeilingColorTemp;
if (start < now && now < sunsetStart) {
newTemp = this.getTempOffset(
startColorTemp,
sunsetColorTemp,
newHueTemp = this.getTempOffset(
hueStartColorTemp,
hueSunsetColorTemp,
start,
sunsetStart
);
newWizTemp = this.getTempOffset(
wizStartColorTemp,
wizSunsetColorTemp,
start,
sunsetStart
);
} else if (sunsetStart < now && now < sunsetEnd) {
newTemp = this._config.sunsetColorTemp;
newHueTemp = this._config.hueSunsetColorTemp;
newWizTemp = this._config.wizSunsetColorTemp;
} else if (sunsetEnd < now && now < nightStart) {
newTemp = this.getTempOffset(
sunsetColorTemp,
floorColorTemp,
newHueTemp = this.getTempOffset(
hueSunsetColorTemp,
hueFloorColorTemp,
sunsetEnd,
nightStart
);
newWizTemp = this.getTempOffset(
wizSunsetColorTemp,
wizFloorColorTemp,
sunsetEnd,
nightStart
);
} else if (nightStart < now && now < sunrise) {
newTemp = this._config.floorColorTemp;
newHueTemp = this._config.hueFloorColorTemp;
newWizTemp = this._config.wizFloorColorTemp;
}
//Set RGB
this._hueRGB = colorTempToRgb(newTemp);
this._wizRGB = colorTemperature2rgb(newTemp);
this._hueRGB = colorTempToRgb(newHueTemp);
this._wizRGB = colorTemperature2rgb(newWizTemp);
};
private scheduleLights = async (): Promise<void> => {

View File

@ -34,17 +34,32 @@ export interface IConfig {
/**
* The color temperature at the start of sunset transition
*/
ceilingColorTemp: number;
hueCeilingColorTemp: number;
/**
* The color temp during the night
*/
floorColorTemp: number;
hueFloorColorTemp: number;
/**
* The color temp at sunet
*/
sunsetColorTemp: number;
hueSunsetColorTemp: number;
/**
* The color temperature at the start of sunset transition
*/
wizCeilingColorTemp: number;
/**
* The color temp during the night
*/
wizFloorColorTemp: number;
/**
* The color temp at sunet
*/
wizSunsetColorTemp: number;
/**
* The time in milliseconds the lights should remain at sunset temperature.