From 85fdd1aa5eaca5aaae9354d372f2a335a59e8768 Mon Sep 17 00:00:00 2001 From: reachableceo Date: Thu, 3 Sep 2026 06:11:26 -0500 Subject: [PATCH] =?UTF-8?q?fix(doorman):=20HA=20Jinja=20has=20no=20split?= =?UTF-8?q?=20filter=20=E2=80=94=20method-call=20parsing=20[#345]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Live webhook test caught it: TemplateRuntimeError 'No filter named split'. enabled_ids/holder rebuilt with row.split('|') method calls in a namespace loop. https://projects.knownelement.com/issues/345 --- packages/doorman.yaml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/doorman.yaml b/packages/doorman.yaml index 8661a23..2f5c5ff 100644 --- a/packages/doorman.yaml +++ b/packages/doorman.yaml @@ -100,13 +100,18 @@ automation: known_ids: >- {{ all_csv.split(',') | map('trim') | select('match', '^\d+$') | list }} enabled_ids: >- - {{ enabled_csv.split(',') | map('trim') - | select('match', '^\d+\|') | map('split', '|') | map('first') - | list }} + {% set ns = namespace(ids=[]) %} + {% for row in enabled_csv.split(',') %} + {% set parts = row.split('|') %} + {% if parts | length == 2 %} + {% set ns.ids = ns.ids + [parts[0] | trim] %} + {% endif %} + {% endfor %} + {{ ns.ids }} holder: >- - {% set hit = enabled_csv.split(',') | map('trim') + {% set hits = enabled_csv.split(',') | map('trim') | select('search', '^' ~ badge_id ~ '\|') | list %} - {{ (hit[0].split('|')[1] if hit else 'UNKNOWN') }} + {{ hits[0].split('|')[1] | trim if hits else 'UNKNOWN' }} is_known: "{{ badge_id in known_ids }}" is_enabled: "{{ badge_id in enabled_ids }}" - action: input_text.set_value