Déclencher un Alarm Notification Pipeline par script
Voici un script Python qui vous permet de déclencher un pipeline de notification d'alarme.
L'alarme ne doit pas nécessairement exister.
Le script ne fonctionne que dans le scope de la gateway.
Je recommande de le placer dans un script Project Library et de l'appeler à partir d'un Gateway Event, d'un Tag Event asynchrone ou depuis le client Perspective.
- # 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")