From c631554eb0547ba02a39a46296f23b7e253752d0 Mon Sep 17 00:00:00 2001 From: Jason Knott <24280037+jayknott@users.noreply.github.com> Date: Wed, 6 May 2020 03:57:11 -0700 Subject: [PATCH] Added options to Lovelace evaluate filter (#5694) --- src/panels/lovelace/common/evaluate-filter.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/panels/lovelace/common/evaluate-filter.ts b/src/panels/lovelace/common/evaluate-filter.ts index fd2e341563..66f738384e 100644 --- a/src/panels/lovelace/common/evaluate-filter.ts +++ b/src/panels/lovelace/common/evaluate-filter.ts @@ -20,8 +20,21 @@ export const evaluateFilter = (stateObj: HassEntity, filter: any): boolean => { return state > value; case "!=": return state !== value; + case "in": + if (Array.isArray(state) || typeof state === "string") { + return state.includes(value); + } + return false; + case "not in": + if (Array.isArray(state) || typeof state === "string") { + return !state.includes(value); + } + return false; case "regex": { - return state.match(value); + if (state !== null && typeof state === "object") { + return RegExp(value).test(JSON.stringify(state)); + } + return RegExp(value).test(state); } default: return false;