diff --git a/build/lib/hueHelper.d.ts b/build/lib/hueHelper.d.ts index 4ce213f6..dd768794 100644 --- a/build/lib/hueHelper.d.ts +++ b/build/lib/hueHelper.d.ts @@ -44,7 +44,7 @@ export declare function GamutXYforModel(Px: number, Py: number, Model: string): * @param Blue - Range [0..1] * @returns [Ang, Sat, Bri] - Ranges [0..360] [0..1] [0..1] */ -export declare function HelperRGBtoHueAngSatBri(Red: number, Green: number, Blue: number): { +export declare function RgbToHsv(Red: number, Green: number, Blue: number): { Ang: number; Sat: number; Bri: number; @@ -68,3 +68,9 @@ export declare function XYBtoRGB(x: number, y: number, Brightness?: number): { * @param mired mired value */ export declare function miredToKelvin(mired: number): number; +/** + * Convert level to brightness value + * + * @param level the level value + */ +export declare function levelToBrightness(level: number): number; diff --git a/build/lib/hueHelper.js b/build/lib/hueHelper.js index 75266d22..ea1f02d1 100644 --- a/build/lib/hueHelper.js +++ b/build/lib/hueHelper.js @@ -5,7 +5,7 @@ * */ Object.defineProperty(exports, "__esModule", { value: true }); -exports.miredToKelvin = exports.XYBtoRGB = exports.HelperRGBtoHueAngSatBri = exports.GamutXYforModel = exports.HelperRGBtoXY = exports.RgbToXYB = void 0; +exports.levelToBrightness = exports.miredToKelvin = exports.XYBtoRGB = exports.RgbToHsv = exports.GamutXYforModel = exports.HelperRGBtoXY = exports.RgbToXYB = void 0; /** * Convert RGB value to XYB format * @@ -16,8 +16,8 @@ exports.miredToKelvin = exports.XYBtoRGB = exports.HelperRGBtoHueAngSatBri = exp */ function RgbToXYB(Red, Green, Blue, model) { const Point = HelperRGBtoXY(Red, Green, Blue); - const HueAngSatBri = HelperRGBtoHueAngSatBri(Red, Green, Blue); - const bri = Math.min(255, Math.round(HueAngSatBri.Bri * 255)); + const { Bri } = RgbToHsv(Red, Green, Blue); + const bri = Math.min(255, Math.round(Bri * 255)); const Gamuted = GamutXYforModel(Point.x, Point.y, model); return { x: Gamuted.x, y: Gamuted.y, b: bri }; } @@ -172,34 +172,28 @@ exports.GamutXYforModel = GamutXYforModel; * @param Blue - Range [0..1] * @returns [Ang, Sat, Bri] - Ranges [0..360] [0..1] [0..1] */ -function HelperRGBtoHueAngSatBri(Red, Green, Blue) { +function RgbToHsv(Red, Green, Blue) { let Ang; - let Sat; - let Bri; const Min = Math.min(Red, Green, Blue); const Max = Math.max(Red, Green, Blue); - if (Min !== Max) { - if (Red === Max) { - Ang = ((Green - Blue) / (Max - Min)) * 60; - } - else if (Green === Max) { - Ang = (2 + (Blue - Red) / (Max - Min)) * 60; - } - else { - Ang = (4 + (Red - Green) / (Max - Min)) * 60; - } - Sat = (Max - Min) / Max; - Bri = Max; + if (Max === Min) { + return { Ang: 0, Sat: 0, Bri: Max }; + } + const delta = Max - Min; + if (Red === Max) { + Ang = ((Green - Blue) / delta) * 60; + } + else if (Green === Max) { + Ang = (2 + (Blue - Red) / delta) * 60; } else { - // Max == Min - Ang = 0; - Sat = 0; - Bri = Max; + Ang = (4 + (Red - Green) / delta) * 60; } + const Sat = delta / Max; + const Bri = Max; return { Ang, Sat, Bri }; } -exports.HelperRGBtoHueAngSatBri = HelperRGBtoHueAngSatBri; +exports.RgbToHsv = RgbToHsv; /** * Converts XYB values to RGB * @@ -309,4 +303,13 @@ function miredToKelvin(mired) { return Math.round(1e6 / mired); } exports.miredToKelvin = miredToKelvin; +/** + * Convert level to brightness value + * + * @param level the level value + */ +function levelToBrightness(level) { + return Math.min(254, Math.max(0, Math.round(level * 2.54))); +} +exports.levelToBrightness = levelToBrightness; //# sourceMappingURL=hueHelper.js.map \ No newline at end of file diff --git a/build/lib/hueHelper.js.map b/build/lib/hueHelper.js.map index da5288ca..650f6f10 100644 --- a/build/lib/hueHelper.js.map +++ b/build/lib/hueHelper.js.map @@ -1 +1 @@ -{"version":3,"file":"hueHelper.js","sourceRoot":"","sources":["../../src/lib/hueHelper.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"hueHelper.js","sourceRoot":"","sources":["../../src/lib/hueHelper.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/main.js b/build/main.js index f3c52965..c1612b7d 100644 --- a/build/main.js +++ b/build/main.js @@ -251,7 +251,7 @@ class Hue extends utils.Adapter { } // if .level changed instead change .bri to level.val*254 if (dp === 'level' && typeof state.val === 'number') { - bri = Math.max(Math.min(Math.round(state.val * 2.54), 254), 0); + bri = hueHelper.levelToBrightness(state.val); this.setState([id, 'bri'].join('.'), { val: bri, ack: false }); return; } @@ -403,7 +403,7 @@ class Hue extends utils.Adapter { else if (command === 'level') { //convert level to bri if (!Object.prototype.hasOwnProperty.call(commands, 'bri')) { - ls.bri = Math.min(254, Math.max(0, Math.round(parseInt(commands[command]) * 2.54))); + ls.bri = hueHelper.levelToBrightness(parseInt(commands[command])); } else { ls.bri = 254; @@ -955,11 +955,11 @@ class Hue extends utils.Adapter { * * @param update update received by bridge */ - handleUpdate(update) { + async handleUpdate(update) { this.log.debug(`New push connection update: ${JSON.stringify(update)}`); const id = parseInt(update.id_v1.split('/')[2]); if (update.type === 'light') { - this.handleLightUpdate(id, update); + await this.handleLightUpdate(id, update); return; } if (update.type === 'grouped_light') { @@ -1004,7 +1004,7 @@ class Hue extends utils.Adapter { * @param id id of the light * @param update the update sent by bridge */ - handleLightUpdate(id, update) { + async handleLightUpdate(id, update) { var _a; const channelName = this.getLightChannelById(id); if (update.on) { @@ -1012,15 +1012,40 @@ class Hue extends utils.Adapter { } if (update.dimming) { this.setState(`${channelName}.level`, Math.round(update.dimming.brightness), true); + this.setState(`${channelName}.bri`, hueHelper.levelToBrightness(update.dimming.brightness), true); } if ((_a = update.color_temperature) === null || _a === void 0 ? void 0 : _a.mirek_valid) { this.setState(`${channelName}.ct`, hueHelper.miredToKelvin(update.color_temperature.mirek), true); } if (update.color) { this.setState(`${channelName}.xy`, `${update.color.xy.x},${update.color.xy.y}`, true); - // TODO: also update rgb values (and maybe hue sat) + await this.updateColorStatesByXY(channelName, update.color.xy.x, update.color.xy.y); } } + /** + * Update the RGB, Hue and sat states of a channel by given x, y values + * + * @param channelName ioBroker channel name + * @param x x-value + * @param y y-value + */ + async updateColorStatesByXY(channelName, x, y) { + const state = await this.getStateAsync(`${channelName}.bri`); + if (!state || typeof state.val !== 'number') { + return; + } + const bri = state.val; + const { Red, Green, Blue } = hueHelper.XYBtoRGB(x, y, bri / 254); + this.setState(`${channelName}.r`, Math.round(Red * 254), true); + this.setState(`${channelName}.g`, Math.round(Green * 254), true); + this.setState(`${channelName}.b`, Math.round(Blue * 254), true); + /** TODO: this converts to wrong HS values + const { Ang, Sat } = hueHelper.RgbToHsv(Red, Green, Blue); + + this.setState(`${channelName}.hue`, Math.round(Ang), true); + this.setState(`${channelName}.sat`, Math.round(Sat * 254), true); + */ + } /** * Handle group specific update * diff --git a/build/main.js.map b/build/main.js.map index 9f643924..c625b256 100644 --- a/build/main.js.map +++ b/build/main.js.map @@ -1 +1 @@ -{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/lib/hueHelper.ts b/src/lib/hueHelper.ts index 55cc3eb8..860c0a3b 100644 --- a/src/lib/hueHelper.ts +++ b/src/lib/hueHelper.ts @@ -14,8 +14,8 @@ */ export function RgbToXYB(Red: number, Green: number, Blue: number, model: string): { x: number; y: number; b: number } { const Point = HelperRGBtoXY(Red, Green, Blue); - const HueAngSatBri = HelperRGBtoHueAngSatBri(Red, Green, Blue); - const bri = Math.min(255, Math.round(HueAngSatBri.Bri * 255)); + const { Bri } = RgbToHsv(Red, Green, Blue); + const bri = Math.min(255, Math.round(Bri * 255)); const Gamuted = GamutXYforModel(Point.x, Point.y, model)!; return { x: Gamuted.x, y: Gamuted.y, b: bri }; } @@ -162,32 +162,27 @@ export function GamutXYforModel(Px: number, Py: number, Model: string): { x: num * @param Blue - Range [0..1] * @returns [Ang, Sat, Bri] - Ranges [0..360] [0..1] [0..1] */ -export function HelperRGBtoHueAngSatBri( - Red: number, - Green: number, - Blue: number -): { Ang: number; Sat: number; Bri: number } { +export function RgbToHsv(Red: number, Green: number, Blue: number): { Ang: number; Sat: number; Bri: number } { let Ang; - let Sat; - let Bri; + const Min = Math.min(Red, Green, Blue); const Max = Math.max(Red, Green, Blue); - if (Min !== Max) { - if (Red === Max) { - Ang = ((Green - Blue) / (Max - Min)) * 60; - } else if (Green === Max) { - Ang = (2 + (Blue - Red) / (Max - Min)) * 60; - } else { - Ang = (4 + (Red - Green) / (Max - Min)) * 60; - } - Sat = (Max - Min) / Max; - Bri = Max; + + if (Max === Min) { + return { Ang: 0, Sat: 0, Bri: Max }; + } + + const delta = Max - Min; + + if (Red === Max) { + Ang = ((Green - Blue) / delta) * 60; + } else if (Green === Max) { + Ang = (2 + (Blue - Red) / delta) * 60; } else { - // Max == Min - Ang = 0; - Sat = 0; - Bri = Max; + Ang = (4 + (Red - Green) / delta) * 60; } + const Sat = delta / Max; + const Bri = Max; return { Ang, Sat, Bri }; } @@ -296,3 +291,12 @@ export function XYBtoRGB(x: number, y: number, Brightness?: number): { Red: numb export function miredToKelvin(mired: number): number { return Math.round(1e6 / mired); } + +/** + * Convert level to brightness value + * + * @param level the level value + */ +export function levelToBrightness(level: number): number { + return Math.min(254, Math.max(0, Math.round(level * 2.54))); +} diff --git a/src/main.ts b/src/main.ts index a903575e..6e901e4c 100644 --- a/src/main.ts +++ b/src/main.ts @@ -306,7 +306,7 @@ class Hue extends utils.Adapter { } // if .level changed instead change .bri to level.val*254 if (dp === 'level' && typeof state.val === 'number') { - bri = Math.max(Math.min(Math.round(state.val * 2.54), 254), 0); + bri = hueHelper.levelToBrightness(state.val); this.setState([id, 'bri'].join('.'), { val: bri, ack: false }); return; } @@ -463,7 +463,7 @@ class Hue extends utils.Adapter { } else if (command === 'level') { //convert level to bri if (!Object.prototype.hasOwnProperty.call(commands, 'bri')) { - ls.bri = Math.min(254, Math.max(0, Math.round(parseInt(commands[command]) * 2.54))); + ls.bri = hueHelper.levelToBrightness(parseInt(commands[command])); } else { ls.bri = 254; } @@ -1067,13 +1067,13 @@ class Hue extends utils.Adapter { * * @param update update received by bridge */ - handleUpdate(update: BridgeUpdate): void { + async handleUpdate(update: BridgeUpdate): Promise { this.log.debug(`New push connection update: ${JSON.stringify(update)}`); const id = parseInt(update.id_v1.split('/')[2]); if (update.type === 'light') { - this.handleLightUpdate(id, update); + await this.handleLightUpdate(id, update); return; } @@ -1127,7 +1127,7 @@ class Hue extends utils.Adapter { * @param id id of the light * @param update the update sent by bridge */ - handleLightUpdate(id: number, update: BridgeUpdate): void { + async handleLightUpdate(id: number, update: BridgeUpdate): Promise { const channelName = this.getLightChannelById(id); if (update.on) { @@ -1136,6 +1136,7 @@ class Hue extends utils.Adapter { if (update.dimming) { this.setState(`${channelName}.level`, Math.round(update.dimming.brightness), true); + this.setState(`${channelName}.bri`, hueHelper.levelToBrightness(update.dimming.brightness), true); } if (update.color_temperature?.mirek_valid) { @@ -1144,10 +1145,40 @@ class Hue extends utils.Adapter { if (update.color) { this.setState(`${channelName}.xy`, `${update.color.xy.x},${update.color.xy.y}`, true); - // TODO: also update rgb values (and maybe hue sat) + await this.updateColorStatesByXY(channelName, update.color.xy.x, update.color.xy.y); } } + /** + * Update the RGB, Hue and sat states of a channel by given x, y values + * + * @param channelName ioBroker channel name + * @param x x-value + * @param y y-value + */ + async updateColorStatesByXY(channelName: string, x: number, y: number): Promise { + const state = await this.getStateAsync(`${channelName}.bri`); + + if (!state || typeof state.val !== 'number') { + return; + } + + const bri = state.val; + + const { Red, Green, Blue } = hueHelper.XYBtoRGB(x, y, bri / 254); + + this.setState(`${channelName}.r`, Math.round(Red * 254), true); + this.setState(`${channelName}.g`, Math.round(Green * 254), true); + this.setState(`${channelName}.b`, Math.round(Blue * 254), true); + + /** TODO: this converts to wrong HS values + const { Ang, Sat } = hueHelper.RgbToHsv(Red, Green, Blue); + + this.setState(`${channelName}.hue`, Math.round(Ang), true); + this.setState(`${channelName}.sat`, Math.round(Sat * 254), true); + */ + } + /** * Handle group specific update *