# Alarm Table filterAlarm Help

**URL:** <https://forum.inductiveautomation.com/t/alarm-table-filteralarm-help/110285>\
**Category:** Ignition\
**Tags:** ignition81, vision\
**Created:** [August 29, 2025, 6:56pm UTC](https://forum.inductiveautomation.com/t/alarm-table-filteralarm-help/110285 "2025-08-29T18:56:26Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![amarks](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/amarks/32/45610_2.png) [@amarks](https://forum.inductiveautomation.com/u/amarks)\
**Post date:** [August 29, 2025, 6:56pm UTC](https://forum.inductiveautomation.com/t/alarm-table-filteralarm-help/110285/1 "2025-08-29T18:56:26Z")

</div>

I have made a custom property `searchString` on my alarm table and it is bound to a textbox’s `text` value. I have the following code:

```python
def filterAlarm(self, alarmEvent):
	#valid search string given
	if self.searchString:
		#lower everything
		search = searchString.lower()
		label = alarmEvent.get("Label").lower()
		
		#look for searchString in label
		if search in label:
			#show if found
			return True
		else:
			#hide if not found
			return False
	#show all if no search string given
	else:
		return True

```

Entering a value in the textbox does not change the events in the table. All alarm events are still shown. Am I missing something?

Do I need to use a `propertyChange` event to fire the extension function? If so, how do I call it?

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [August 29, 2025, 7:06pm UTC](https://forum.inductiveautomation.com/t/alarm-table-filteralarm-help/110285/2 "2025-08-29T19:06:35Z")

</div>

The `filterAlarm` extension function should be getting invoked once per alarm every ~~2.5~~ refresh-rate-property milliseconds when the alarm status table automatically polls in the background. If you throw a debug `print` or similar (above any of your own code) is that happening?

---

<div class="post-metadata">

**Author:** ![amarks](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/amarks/32/45610_2.png) [@amarks](https://forum.inductiveautomation.com/u/amarks)\
**Post date:** [August 29, 2025, 7:08pm UTC](https://forum.inductiveautomation.com/t/alarm-table-filteralarm-help/110285/3 "2025-08-29T19:08:47Z")

</div>

In the console I’m getting a “self.searchString” not defined error. I used the property picker to get the property path.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [August 29, 2025, 7:25pm UTC](https://forum.inductiveautomation.com/t/alarm-table-filteralarm-help/110285/4 "2025-08-29T19:25:04Z")

</div>

Heh. Sounds like a missing `PyComponentWrapper`.

If so, the simplest solution is to install my Integration Toolkit. (That's it.)

There are more complex alternatives if you cannot do that.

---

<div class="post-metadata">

**Author:** ![amarks](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/amarks/32/45610_2.png) [@amarks](https://forum.inductiveautomation.com/u/amarks)\
**Post date:** [August 29, 2025, 7:30pm UTC](https://forum.inductiveautomation.com/t/alarm-table-filteralarm-help/110285/5 "2025-08-29T19:30:43Z")

</div>

Simple workaround that worked.

```python
def filterAlarm(self, alarmEvent):
	#valid search string given
	searchString = self.parent.parent.getComponent('Text Field').text
	if searchString:
		#lower everything
		search = searchString.lower()
		label = alarmEvent.get("Label").lower()
		
		#look for searchString in label
		if search in label:
			#show if found
			return True
		else:
			#hide if not found
			return False
	#show all if no search string given
	else:
		return True

```

I guess the alarm table doesn’t like custom properties

---

<div class="post-metadata">

**Author:** ![amarks](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/amarks/32/45610_2.png) [@amarks](https://forum.inductiveautomation.com/u/amarks)\
**Post date:** [August 29, 2025, 7:33pm UTC](https://forum.inductiveautomation.com/t/alarm-table-filteralarm-help/110285/6 "2025-08-29T19:33:12Z")

</div>

Trying to do the same thing with an alarm journal but there’s no poll rate. How do I force the table to update when the string changes?

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [August 29, 2025, 8:01pm UTC](https://forum.inductiveautomation.com/t/alarm-table-filteralarm-help/110285/7 "2025-08-29T20:01:10Z")

</div>

Try setting one of the internal properties that changes what values are display (min priority, search filter, etc) to itself?

---

<div class="post-metadata">

**Author:** ![amarks](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/amarks/32/45610_2.png) [@amarks](https://forum.inductiveautomation.com/u/amarks)\
**Post date:** [August 29, 2025, 8:02pm UTC](https://forum.inductiveautomation.com/t/alarm-table-filteralarm-help/110285/8 "2025-08-29T20:02:34Z")

</div>

Cannot bind a property to itself. Also, there are other bindings that already exist on the alarm journal

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [August 29, 2025, 8:05pm UTC](https://forum.inductiveautomation.com/t/alarm-table-filteralarm-help/110285/9 "2025-08-29T20:05:23Z")

</div>

> [@amarks](#):
>
> I guess the alarm table doesn’t like custom properties

That's what I was alluding to. My Integration Toolkit fixes that anywhere it happens.

---

<div class="post-metadata">

**Author:** ![amarks](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/amarks/32/45610_2.png) [@amarks](https://forum.inductiveautomation.com/u/amarks)\
**Post date:** [August 29, 2025, 8:26pm UTC](https://forum.inductiveautomation.com/t/alarm-table-filteralarm-help/110285/10 "2025-08-29T20:26:31Z")

</div>

Any ideas on how to filter the label for an Alarm Journal?

I tried calling it from the text box `propertyChange` script but the object retrieved is not a `Vision.Components.AlarmJournalTable` it’s a `com.inductiveautomation.factorypmi.application.com` object

```python
if event.propertyName == 'text':
	table = event.source.parent.getComponent('Container').getComponent('Alarm Journal')
	table.filterAlarm()

```

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [August 29, 2025, 8:34pm UTC](https://forum.inductiveautomation.com/t/alarm-table-filteralarm-help/110285/11 "2025-08-29T20:34:13Z")

</div>

1. Install my Integration Toolkit.

2. Try your code in your OP.

---

<div class="post-metadata">

**Author:** ![amarks](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/amarks/32/45610_2.png) [@amarks](https://forum.inductiveautomation.com/u/amarks)\
**Post date:** [August 29, 2025, 8:44pm UTC](https://forum.inductiveautomation.com/t/alarm-table-filteralarm-help/110285/12 "2025-08-29T20:44:04Z")

</div>

Stole [this idea](https://forum.inductiveautomation.com/t/alarm-journal-refresh/11311/3) and put an invisible “refresh” button next to the text box. Works nicely.

```python
if event.propertyName == 'text':
	button = event.source.parent.getComponent('Button 1')
	button.doClick()

```

```python
#current startDate
startDate = event.source.parent.parent.startDate

#add one minute and set the date to "refresh"
startDate = system.date.addMinutes(startDate, -1)
event.source.parent.getComponent('Container').getComponent('Popup Calendar').date = startDate

#subtract one minute and set the date to "refresh"
startDate = system.date.addMinutes(startDate, 1)
event.source.parent.getComponent('Container').getComponent('Popup Calendar').date = startDate

```

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [August 29, 2025, 10:10pm UTC](https://forum.inductiveautomation.com/t/alarm-table-filteralarm-help/110285/13 "2025-08-29T22:10:54Z")

</div>

Not a binding, a script.  
As in something like `alarmStatusTable.setMinPriority(alarmStatusTable.getMinPriority)`.
