# Alarm Icons - Looking for alternate ideas - potential feature request

**URL:** <https://forum.inductiveautomation.com/t/alarm-icons-looking-for-alternate-ideas-potential-feature-request/85103>\
**Category:** Ignition\
**Tags:** ignition81, perspective\
**Created:** [February 1, 2024, 4:27pm UTC](https://forum.inductiveautomation.com/t/alarm-icons-looking-for-alternate-ideas-potential-feature-request/85103 "2024-02-01T16:27:08Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![bwirth](https://avatars.discourse-cdn.com/v4/letter/b/41988e/32.png) [@bwirth](https://forum.inductiveautomation.com/u/bwirth)\
**Post date:** [February 1, 2024, 4:27pm UTC](https://forum.inductiveautomation.com/t/alarm-icons-looking-for-alternate-ideas-potential-feature-request/85103/1 "2024-02-01T16:27:09Z")

</div>

I have a need (desire) to show an alarm icon at various places on a screen.

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

This needs: if alarms are active, highest priority, and if there are unAcked alarms.

I am currently doing this through an expression on a property.

```auto
## Expression (randTimer is a random number between 5000 - 10000)
# used to keep all instances on a page from firing at the same time. (upwards of 50+)
# srcPath below is a path. Could be a tag or a directory name
now({view.custom.randTimer})

### 1st transform
# looks to see if there are any active alarms (low-Critical)
forceQuality( if(isAlarmActiveFiltered({view.custom.tag.srcPath}, "*", "*", 4, 1, 0, 1, 0)=false,0,100), 192 )

### 2nd transform
# this determines the priority using a go-fish method stopping at the highest priority found.
if({value}<100,{value},
	if(isAlarmActiveFiltered({view.custom.tag.srcPath}, "*", "*", 4, 4, 0, 1, 0),140,
	if(isAlarmActiveFiltered({view.custom.tag.srcPath}, "*", "*", 3, 3, 0, 1, 0),130,
	if(isAlarmActiveFiltered({view.custom.tag.srcPath}, "*", "*", 2, 2, 0, 1, 0),120,
	if(isAlarmActiveFiltered({view.custom.tag.srcPath}, "*", "*", 1, 1, 0, 1, 0),110,
	{value}))))
)

### 3rd transform
# this looks for unAcked. Adds 1 to total number.
forceQuality(if(isAlarmActiveFiltered({view.custom.tag.srcPath}, "*", "*", 4, 1, if( {value}>100,0,1) , 0, 0)=false, {value}, {value}+1),192)

```

This expression(s) generates a number from 0 - 141. First char being alarm active, second being priority, third being unAcknowledged. (only care about low-critical). This is fed into a change script for furthur processing (included below for completeness).

My question is, anyone have a more direct way to do this. Answer may be no, but just making sure I'm not missing something. I think I added a feature request for this some time ago... I do know about the highestPriority on an individual tag, but this is generally called on a tag structure.

-- change script on expression above. --

```auto
def valueChanged(self, previousValue, currentValue, origin, missedEvents):
	cv = currentValue.value
	def chkOutput(value) :
		if value < 100 : return [False, '', False]
		priority, unacked = divmod(value-100,10)
		return [True, priority, unacked>0]
	
	# output = ['active', 'level', 'unAcked']
	output = [False, '', False]
	if cv == 1 : output = [False,'',True]
	elif cv >= 100 : output = chkOutput(cv)
			
	self.custom.alarm.active, self.custom.alarm.level, self.custom.alarm.unAcked = output

```

---

<div class="post-metadata">

**Author:** ![jlandwerlen](https://avatars.discourse-cdn.com/v4/letter/j/bc8723/32.png) [@jlandwerlen](https://forum.inductiveautomation.com/u/jlandwerlen)\
**Post date:** [February 1, 2024, 4:34pm UTC](https://forum.inductiveautomation.com/t/alarm-icons-looking-for-alternate-ideas-potential-feature-request/85103/2 "2024-02-01T16:34:59Z")

</div>

Perhaps use something like this resource to gather alarms...

> **[Ignition Exchange](https://inductiveautomation.com/exchange/2392/overview)**
>
> Discover, share, and download community made Ignition resources in collaboration with your organization or the Ignition community.

... and this for visualization...

> **[Ignition Exchange](https://inductiveautomation.com/exchange/2534/overview)**
>
> Discover, share, and download community made Ignition resources in collaboration with your organization or the Ignition community.

---

<div class="post-metadata">

**Author:** ![bwirth](https://avatars.discourse-cdn.com/v4/letter/b/41988e/32.png) [@bwirth](https://forum.inductiveautomation.com/u/bwirth)\
**Post date:** [February 1, 2024, 4:47pm UTC](https://forum.inductiveautomation.com/t/alarm-icons-looking-for-alternate-ideas-potential-feature-request/85103/3 "2024-02-01T16:47:09Z")

</div>

Thank you. I'll look into those!

---

<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:** [February 1, 2024, 5:11pm UTC](https://forum.inductiveautomation.com/t/alarm-icons-looking-for-alternate-ideas-potential-feature-request/85103/4 "2024-02-01T17:11:37Z")

</div>

We're actively working on new functionality related to alarm aggregation for folders/UDTs in 8.3.0.
