# Alarm Status Table Filtering

**URL:** <https://forum.inductiveautomation.com/t/alarm-status-table-filtering/65082>\
**Category:** Ignition\
**Tags:** ignition81, ignition80, vision\
**Created:** [October 11, 2022, 7:49pm UTC](https://forum.inductiveautomation.com/t/alarm-status-table-filtering/65082 "2022-10-11T19:49:25Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Fawhn\_Hanlon](https://avatars.discourse-cdn.com/v4/letter/f/8491ac/32.png) [@Fawhn\_Hanlon](https://forum.inductiveautomation.com/u/Fawhn_Hanlon)\
**Post date:** [October 11, 2022, 7:49pm UTC](https://forum.inductiveautomation.com/t/alarm-status-table-filtering/65082/1 "2022-10-11T19:49:25Z")

</div>

Hi.

I am trying to filter the Alarm Status Table on a Sensor object popup window that I have. I want to filter by the particular Sensor that is selected. I have been able to filter on the Source Filter using \* Sensor \* and then the Display Path Filter (Expression binding) using both:

- \*{Root Container.Sensor.sensorUDT::Name} \*
- {Root Container.Sensor.sensorUDT::Name} \*

(I have omitted the double quotes above but have used them in my Expression.)

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/d/b/dbc089ac4358a503548528490caf3a295ee77af9.png)

My problem is that for Sensor 1, Sensor 1 _and_ Sensor 10, alarms are displayed. This makes sense with the wildcard character tacked onto the end.

Based upon what I found in the Ignition Manual, I should be able to filter on the Display Path using:

- \*{Root Container.Sensor.sensorUDT::Name}

and my problem should be solved. However, I am met with a blank Alarm Status Table whenever I try that.

I have perused the Forum and tried to use posted workarounds to no avail. Am unsure if there is something small I am missing or if I need to completely reconfigure my approach.

Any help is greatly appreciated.

---

<div class="post-metadata">

**Author:** ![justinedwards.jle](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/justinedwards.jle/32/37854_2.png) [@justinedwards.jle](https://forum.inductiveautomation.com/u/justinedwards.jle)\
**Post date:** [October 11, 2022, 11:13pm UTC](https://forum.inductiveautomation.com/t/alarm-status-table-filtering/65082/2 "2022-10-11T23:13:10Z")

</div>

The problem is that the source includes additional information in the path.

Example:` prov:Sample_Tags:/tag:Ramp/Ramp1:/alm:High Alarm`

To correct for this simply nest a `:` between the end of your string path and your final "\*"

Your resultant expression should look like this:  
`concat("*",{Root Container.Sensor.sensorUDT::Name},":","*")`

---

<div class="post-metadata">

**Author:** ![Fawhn\_Hanlon](https://avatars.discourse-cdn.com/v4/letter/f/8491ac/32.png) [@Fawhn\_Hanlon](https://forum.inductiveautomation.com/u/Fawhn_Hanlon)\
**Post date:** [October 12, 2022, 1:50pm UTC](https://forum.inductiveautomation.com/t/alarm-status-table-filtering/65082/3 "2022-10-12T13:50:15Z")

</div>

When I do that my Display Path Filter shows this:  
 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/f/b/fb1aab351dd416de0e09ec8bbe0b205ae5737b97.png)

And my Alarm Status Table is blank.

---

<div class="post-metadata">

**Author:** ![justinedwards.jle](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/justinedwards.jle/32/37854_2.png) [@justinedwards.jle](https://forum.inductiveautomation.com/u/justinedwards.jle)\
**Post date:** [October 12, 2022, 2:16pm UTC](https://forum.inductiveautomation.com/t/alarm-status-table-filtering/65082/4 "2022-10-12T14:16:35Z")

</div>

The colon should be applied to the source filter not the display path filter

---

<div class="post-metadata">

**Author:** ![Fawhn\_Hanlon](https://avatars.discourse-cdn.com/v4/letter/f/8491ac/32.png) [@Fawhn\_Hanlon](https://forum.inductiveautomation.com/u/Fawhn_Hanlon)\
**Post date:** [October 12, 2022, 2:32pm UTC](https://forum.inductiveautomation.com/t/alarm-status-table-filtering/65082/5 "2022-10-12T14:32:58Z")

</div>

Using that same expression in the Source Filter, my result is still an empty table.

---

<div class="post-metadata">

**Author:** ![justinedwards.jle](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/justinedwards.jle/32/37854_2.png) [@justinedwards.jle](https://forum.inductiveautomation.com/u/justinedwards.jle)\
**Post date:** [October 12, 2022, 3:09pm UTC](https://forum.inductiveautomation.com/t/alarm-status-table-filtering/65082/6 "2022-10-12T15:09:07Z")

</div>

Make sure you delete that path filter binding

---

<div class="post-metadata">

**Author:** ![justinedwards.jle](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/justinedwards.jle/32/37854_2.png) [@justinedwards.jle](https://forum.inductiveautomation.com/u/justinedwards.jle)\
**Post date:** [October 12, 2022, 4:39pm UTC](https://forum.inductiveautomation.com/t/alarm-status-table-filtering/65082/7 "2022-10-12T16:39:36Z")

</div>

I'll try to offer a more thorough understanding to help you solve the problem.

If you right click on the alarm status table and open component scripting, you can get the same result as a source filter binding using the filterAlarm extension function, but for our purposes, we can use it to expand our understanding of what's actually being filtered by the **Source Filter**.

Launch a diagnostic console, and put the following code into the extension function. The console will then continuously print out the alarm sources. That will show you what you are trying to filter using your source filter binding, and hopefully, it will help you to compose an appropriate expression to get the result you want. Just remember to disable the script at some point because it will continuously fill your console with unneeded information.

```auto
print alarmEvent.get("Source")
return True

```

Using the` alarmEvent.get()` you can probe this further if you want to. It is possible to get any _ **Alarm Runtime Property** _ listed in this resource:  
[Alarm Event Properties Reference](https://docs.inductiveautomation.com/display/DOC80/Alarm+Event+Properties+Reference)

Edit: I set up an Alarm Status Table to generate a sample **Source Output**.  
This is what the preceding code will generate:

```auto
prov:Sample_Tags:/tag:Writeable/WriteableInteger10:/alm:Alarm
prov:Sample_Tags:/tag:Ramp/Ramp10:/alm:High Alarm
prov:Sample_Tags:/tag:Ramp/Ramp1:/alm:High Alarm
prov:Sample_Tags:/tag:Writeable/WriteableInteger10:/alm:Alarm 2
prov:Sample_Tags:/tag:Writeable/WriteableInteger10:/alm:Alarm 1
prov:Sample_Tags:/tag:Writeable/WriteableInteger2:/alm:Lo
prov:Sample_Tags:/tag:Writeable/WriteableInteger1:/alm:Lo
prov:Sample_Tags:/tag:Ramp/Ramp10:/alm:High Alarm
prov:Sample_Tags:/tag:Ramp/Ramp10:/alm:High Alarm
prov:Sample_Tags:/tag:Ramp/Ramp1:/alm:High Alarm

```

Notice there is a tag named Ramp1 and Ramp10. If I confugure my **Source Filter** expression in such a way that my source filter is `*Ramp1:*`, then my result is only Ramp1 alarms.  
 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/b/7/b7f1f641efbc1a316805d008b68b61d18b4ab5fa.png)

![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/3/a/3aad0c9abd4a2f69b47e28b092815f50eb81d816.png)

---

<div class="post-metadata">

**Author:** ![Fawhn\_Hanlon](https://avatars.discourse-cdn.com/v4/letter/f/8491ac/32.png) [@Fawhn\_Hanlon](https://forum.inductiveautomation.com/u/Fawhn_Hanlon)\
**Post date:** [October 13, 2022, 3:07pm UTC](https://forum.inductiveautomation.com/t/alarm-status-table-filtering/65082/8 "2022-10-13T15:07:52Z")

</div>

I'm not understanding you. 😕 I have no extension function when launching a diagnostic console? I am able to configure my Source Filter to show one particular alarm (out of three) that I have, but that's it.

I'm still not able to concat() or toString() my way to any solution using either the Source Filter or Display Path Filter, save for my original method that only works for Sensors 2 through 10.

---

<div class="post-metadata">

**Author:** ![justinedwards.jle](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/justinedwards.jle/32/37854_2.png) [@justinedwards.jle](https://forum.inductiveautomation.com/u/justinedwards.jle)\
**Post date:** [October 13, 2022, 3:34pm UTC](https://forum.inductiveautomation.com/t/alarm-status-table-filtering/65082/9 "2022-10-13T15:34:50Z")

</div>

> [@Fawhn\_Hanlon](#):
>
> I'm not understanding you. 😕

No worries. I'll try to be more detailed.

**Expression Bindings:** As depicted in your very first post, you were doing an expression binding that was binding the Source Filter property to a sensor name. I used concat to concatenate the string values, but you simply used + symbols to do it which should work fine. With the colon, your **Source Filter** expression would look like this:  
`"*" + `however you are getting your sensor name` + ":" + "*"`  
In your case, if Sensor1 is selected, your **Source Filter** property should display` *Sensor1:*`

The following actions were just an effort to show what the Source Filter is actually filtering. There's a lot of information contained in the "Source." The source includes the entire tag path, the triggered alarm path, and the alarm condition.

If you want to explore that, here are more detailed instructions:  
**Accessing Extension Functions:** Right click on the alarm status table snd click scripting in the popup menu. The extension functions will be on the left side of the scripting window that appears. Once a function is selected, a script can be entered into the script tab at the top.

**To see scripting outputs** Click **Help** at the top of the designer, and select **diagnostic**. Then select the console tab. Alternatively, you can click **tools--\>console**.

---

<div class="post-metadata">

**Author:** ![justinedwards.jle](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/justinedwards.jle/32/37854_2.png) [@justinedwards.jle](https://forum.inductiveautomation.com/u/justinedwards.jle)\
**Post date:** [October 13, 2022, 3:44pm UTC](https://forum.inductiveautomation.com/t/alarm-status-table-filtering/65082/10 "2022-10-13T15:44:25Z")

</div>

Edit: I misunderstood how you were getting your name into the source filter parameter. However you're doing that, nest it in the manner depicted above, and you will get the result you want.

---

<div class="post-metadata">

**Author:** ![Fawhn\_Hanlon](https://avatars.discourse-cdn.com/v4/letter/f/8491ac/32.png) [@Fawhn\_Hanlon](https://forum.inductiveautomation.com/u/Fawhn_Hanlon)\
**Post date:** [October 13, 2022, 4:19pm UTC](https://forum.inductiveautomation.com/t/alarm-status-table-filtering/65082/11 "2022-10-13T16:19:43Z")

</div>

I have tried your method for the Source Filter, Display Path Filter, a combination of the two and am still left with an empty Alarm Status Table in my popups.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/6/5/6564a28a1a826ef757966a83476eb86f063a1e5b.png)  
My Source Filter displays:  
 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/0/f/0f35cea627b016b0b4c235a5196e84ac62b30a15.png)

My original method works for Sensors 2 through 10 perfectly--showing only the clicked Sensor's alarms in the popup; it's only Sensor 1 displaying more than its own alarms when clicked.

---

<div class="post-metadata">

**Author:** ![Fawhn\_Hanlon](https://avatars.discourse-cdn.com/v4/letter/f/8491ac/32.png) [@Fawhn\_Hanlon](https://forum.inductiveautomation.com/u/Fawhn_Hanlon)\
**Post date:** [October 14, 2022, 5:47pm UTC](https://forum.inductiveautomation.com/t/alarm-status-table-filtering/65082/12 "2022-10-14T17:47:38Z")

</div>

I figured it out.  
`"*" + {Root Container.Sensor.sensorUDT::Name} + " *"`
