From 33f784f7d55be93730da681e3b1e6d9109955cab Mon Sep 17 00:00:00 2001 From: Benjamin Dodge Date: Fri, 18 Sep 2020 16:23:51 -0700 Subject: [PATCH 1/4] fix for https://github.com/home-assistant/frontend/issues/6226 --- src/panels/lovelace/common/evaluate-filter.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/panels/lovelace/common/evaluate-filter.ts b/src/panels/lovelace/common/evaluate-filter.ts index 66f738384e46..892f0c69bbdc 100644 --- a/src/panels/lovelace/common/evaluate-filter.ts +++ b/src/panels/lovelace/common/evaluate-filter.ts @@ -21,13 +21,13 @@ export const evaluateFilter = (stateObj: HassEntity, filter: any): boolean => { case "!=": return state !== value; case "in": - if (Array.isArray(state) || typeof state === "string") { - return state.includes(value); + if (Array.isArray(value) || typeof value === "string") { + return value.includes(state); } return false; case "not in": - if (Array.isArray(state) || typeof state === "string") { - return !state.includes(value); + if (Array.isArray(value) || typeof value === "string") { + return !value.includes(states); } return false; case "regex": { From 0926dc1b7718c0937a8c9ca838ee18ab6b482328 Mon Sep 17 00:00:00 2001 From: Benjamin Dodge Date: Fri, 18 Sep 2020 16:29:53 -0700 Subject: [PATCH 2/4] fix typo --- src/panels/lovelace/common/evaluate-filter.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/panels/lovelace/common/evaluate-filter.ts b/src/panels/lovelace/common/evaluate-filter.ts index 892f0c69bbdc..31c2f14d5dd6 100644 --- a/src/panels/lovelace/common/evaluate-filter.ts +++ b/src/panels/lovelace/common/evaluate-filter.ts @@ -27,7 +27,7 @@ export const evaluateFilter = (stateObj: HassEntity, filter: any): boolean => { return false; case "not in": if (Array.isArray(value) || typeof value === "string") { - return !value.includes(states); + return !value.includes(state); } return false; case "regex": { From d1704f70e163fe423942e54248a23f02391efa02 Mon Sep 17 00:00:00 2001 From: Benjamin Dodge Date: Sun, 24 Jan 2021 08:14:31 -0800 Subject: [PATCH 3/4] entity-filter card allow state_filter.value == 0 (number 0) to fix #8224 --- src/panels/lovelace/common/evaluate-filter.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/panels/lovelace/common/evaluate-filter.ts b/src/panels/lovelace/common/evaluate-filter.ts index 31c2f14d5dd6..a747e711577c 100644 --- a/src/panels/lovelace/common/evaluate-filter.ts +++ b/src/panels/lovelace/common/evaluate-filter.ts @@ -2,7 +2,7 @@ import { HassEntity } from "home-assistant-js-websocket"; export const evaluateFilter = (stateObj: HassEntity, filter: any): boolean => { const operator = filter.operator || "=="; - const value = filter.value || filter; + const value = ("value" in filter) ? filter.value : filter; const state = filter.attribute ? stateObj.attributes[filter.attribute] : stateObj.state; From a30e972b8dc576f152b9ca4e31206e0be44acb0f Mon Sep 17 00:00:00 2001 From: Benjamin Dodge Date: Sun, 24 Jan 2021 12:07:54 -0800 Subject: [PATCH 4/4] use nullish operator for more compact check --- src/panels/lovelace/common/evaluate-filter.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/panels/lovelace/common/evaluate-filter.ts b/src/panels/lovelace/common/evaluate-filter.ts index a747e711577c..70a9837c7706 100644 --- a/src/panels/lovelace/common/evaluate-filter.ts +++ b/src/panels/lovelace/common/evaluate-filter.ts @@ -2,7 +2,7 @@ import { HassEntity } from "home-assistant-js-websocket"; export const evaluateFilter = (stateObj: HassEntity, filter: any): boolean => { const operator = filter.operator || "=="; - const value = ("value" in filter) ? filter.value : filter; + const value = filter.value ?? filter; const state = filter.attribute ? stateObj.attributes[filter.attribute] : stateObj.state;