diff --git a/src/data/selector.ts b/src/data/selector.ts index b55c97a6b523..9b67a574b615 100644 --- a/src/data/selector.ts +++ b/src/data/selector.ts @@ -111,8 +111,8 @@ export interface DateTimeSelector { export interface DeviceSelector { device: { integration?: string; - manufacturer?: string; - model?: string; + manufacturer?: string | string[]; + model?: string | string[]; entity?: SelectorEntity; multiple?: boolean; } | null; @@ -290,12 +290,27 @@ export const filterSelectorDevices = ( integration: filterIntegration, } = filterDevice; - if (filterManufacturer && device.manufacturer !== filterManufacturer) { - return false; + if (filterManufacturer) { + if ( + Array.isArray(filterManufacturer) + ? !( + device.manufacturer && + filterManufacturer.includes(device.manufacturer) + ) + : device.manufacturer !== filterManufacturer + ) { + return false; + } } - if (filterModel && device.model !== filterModel) { - return false; + if (filterModel) { + if ( + Array.isArray(filterModel) + ? !(device.model && filterModel.includes(device.model)) + : device.model !== filterModel + ) { + return false; + } } if (filterIntegration && deviceIntegrationLookup) {