From 8e72b3bf6423dba623782820073e2037c1adc8b0 Mon Sep 17 00:00:00 2001 From: Koen Kanters Date: Sat, 22 Jan 2022 08:48:37 +0100 Subject: [PATCH] Add preferredColorMode option. https://github.com/Koenkk/zigbee-herdsman-converters/pull/3708 --- lib/extension/homeassistant.ts | 5 +++-- lib/types/types.d.ts | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/extension/homeassistant.ts b/lib/extension/homeassistant.ts index 624c119b..975fb0f9 100644 --- a/lib/extension/homeassistant.ts +++ b/lib/extension/homeassistant.ts @@ -127,6 +127,7 @@ export default class HomeAssistant extends Extension { const hasBrightness = exposes.find((expose) => expose.features.find((e) => e.name === 'brightness')); const hasColorTemp = exposes.find((expose) => expose.features.find((e) => e.name === 'color_temp')); const state = firstExpose.features.find((f) => f.name === 'state'); + const preferHS = !!exposes.find((expose) => expose.preferredColorMode === 'hs'); const discoveryEntry: DiscoveryEntry = { type: 'light', @@ -143,8 +144,8 @@ export default class HomeAssistant extends Extension { }; const colorModes = [ - hasColorXY ? 'xy' : null, - !hasColorXY && hasColorHS ? 'hs' : null, + hasColorXY && !preferHS ? 'xy' : null, + (!hasColorXY || preferHS) && hasColorHS ? 'hs' : null, hasColorTemp ? 'color_temp' : null, ].filter((c) => c); diff --git a/lib/types/types.d.ts b/lib/types/types.d.ts index 7b7b8746..fcbc8aef 100644 --- a/lib/types/types.d.ts +++ b/lib/types/types.d.ts @@ -101,7 +101,7 @@ declare global { interface DefinitionExpose { type: string, name?: string, features?: DefinitionExposeFeature[], endpoint?: string, values?: string[], value_off?: string, value_on?: string, - access: number, property: string, unit?: string, + access: number, property: string, unit?: string, preferredColorMode?: 'xy' | 'hs', value_min?: number, value_max?: number} interface Definition {