Script for execute alarm pipeline

Is there another way for execute alarm pipeline?

This is a way from user manual

Because I want to execute the alarm pipeline to send SMS but I don't want it show on alarm banner

1 Like

Hello @celo_Tu,

Here is a Python script that allows you to trigger an Alarm Notification Pipeline.
The alarm does not need to actually exist.
The script only works in the gateway scope.
I recommend placing it in a Project Library script and calling it from a gateway event, an asynchronous tag event, or from a Perspective client.

# GATEWAY SCOPE
def triggerAlarmPipeline(project, pipelineName, provider, tagPath, alarmName):
	from com.inductiveautomation.ignition.gateway import IgnitionGateway
	from com.inductiveautomation.ignition.common.alarming import BasicAlarmEvent, AlarmPriority
	from com.inductiveautomation.ignition.common import QualifiedPath
	from java.util import UUID
	
	# AlarmPipelineManager
	context = IgnitionGateway.get()
	moduleManager = context.getModuleManager()
	AlarmNotificationGatewayHook = moduleManager.getModule("com.inductiveautomation.alarm-notification").getHook()
	AlarmPipelineManager = AlarmNotificationGatewayHook.getAlarmPipelineManager()
	
	# Alarm Event
	pipelineQualifiedPath = QualifiedPath.parseSafe("prov:" + provider + ":/tag:" + tagPath + ":/alm:" + alarmName + ":/almevt:" + str(UUID.randomUUID()))
	AlarmEvent = BasicAlarmEvent(pipelineQualifiedPath, alarmName, AlarmPriority.highest())

	# Pipeline
	pipelineQualifiedPath = QualifiedPath.parseSafe("project:" + project + ":/pipeline:" + pipelineName)
	
	# Pipeline Evaluation
	# Loggers PipelineManager & Pipeline
	AlarmPipelineManager.evaluate(pipelineQualifiedPath, AlarmEvent)

triggerAlarmPipeline("Ticket4030", "Test", "MyProviderName", "MyTagPath", "MyAlarmName")

1 Like