136 lines
7.1 KiB
Plaintext
136 lines
7.1 KiB
Plaintext
import java.util.concurrent.locks.ReentrantLock
|
|
var ReentrantLock lockState = new ReentrantLock()
|
|
var Timer FFAlarmTimer = null
|
|
|
|
rule "Auswertung Alarm JSON"
|
|
when
|
|
Item FFAlarmJSON changed
|
|
then
|
|
logInfo("FFAlarmJSON","Vor FFAlarmEinsatznummer")
|
|
postUpdate(FFAlarmEinsatznummer,transform("JSONPATH", "$.Einsatznummer", FFAlarmJSON.state.toString))
|
|
logInfo("FFAlarmJSON","Vor FFAlarmOrt")
|
|
postUpdate(FFAlarmOrt,transform("JSONPATH", "$.Ort", FFAlarmJSON.state.toString))
|
|
logInfo("FFAlarmJSON","Vor FFAlarmOrtsteil")
|
|
postUpdate(FFAlarmOrtsteil,transform("JSONPATH", "$.Ortsteil", FFAlarmJSON.state.toString))
|
|
logInfo("FFAlarmJSON","Vor FFAlarmStrasse")
|
|
postUpdate(FFAlarmStrasse,transform("JSONPATH","$.Strasse",FFAlarmJSON.state.toString))
|
|
logInfo("FFAlarmJSON","Vor FFAlarmObjekt")
|
|
postUpdate(FFAlarmObjekt,transform("JSONPATH","$.Objekt",FFAlarmJSON.state.toString))
|
|
logInfo("FFAlarmJSON","Vor FFAlarmEStelleZusatz")
|
|
// postUpdate(FFAlarmEStelleZusatz,transform("JSONPATH","$.E-Stelle-Zusatz",FFAlarmJSON.state.toString))
|
|
logInfo("FFAlarmJSON","Vor FFAlarmEStelleBem")
|
|
postUpdate(FFAlarmEStelleBem,transform("JSONPATH","$.E-Stelle-Bem",FFAlarmJSON.state.toString))
|
|
logInfo("FFAlarmJSON","Vor FFAlarmKoordinate")
|
|
postUpdate(FFAlarmKoordinate,transform("JSONPATH","$.Koordinate",FFAlarmJSON.state.toString))
|
|
logInfo("FFAlarmJSON","Vor FFAlarmStichwort")
|
|
postUpdate(FFAlarmStichwort,transform("JSONPATH","$.Stichwort",FFAlarmJSON.state.toString))
|
|
logInfo("FFAlarmJSON","Vor FFAlarmMeldebild")
|
|
postUpdate(FFAlarmMeldebild,transform("JSONPATH","$.Meldebild",FFAlarmJSON.state.toString))
|
|
logInfo("FFAlarmJSON","Vor FFAlarmAlarmierungszeit")
|
|
postUpdate(FFAlarmAlarmierungszeit,transform("JSONPATH", "$.Alarmierungszeit", FFAlarmJSON.state.toString))
|
|
logInfo("FFAlarmJSON","Vor FFAlarmBemerkung")
|
|
postUpdate(FFAlarmBemerkung,transform("JSONPATH","$.Bemerkung",FFAlarmJSON.state.toString))
|
|
logInfo("FFAlarmJSON","Vor FFAlarmMeldender")
|
|
postUpdate(FFAlarmMeldender,transform("JSONPATH", "$.Meldender", FFAlarmJSON.state.toString))
|
|
logInfo("FFAlarmJSON","Vor FFAlarmEinsatzmittel")
|
|
postUpdate(FFAlarmEinsatzmittel,transform("JSONPATH","$.Einsatzmittel",FFAlarmJSON.state.toString))
|
|
logInfo("FFAlarmJSON","Vor Alarmtrigger")
|
|
postUpdate(FFAlarmTrigger,transform("JSONPATH","$.AlarmTrigger",FFAlarmJSON.state.toString))
|
|
end
|
|
|
|
rule "FFR Alarm Logik"
|
|
when
|
|
Item FFAlarmTrigger changed to ON
|
|
then
|
|
if (FFAlarmTimer === null) {
|
|
postUpdate(FFAlarmView,"ON")
|
|
postUpdate(FHZPush,"ON")
|
|
REMWEBIO001_Ausgang5.sendCommand(ON)
|
|
REMWEBIO001_Ausgang6.sendCommand(ON)
|
|
sendHttpGetRequest("http://admin:rt8qff8ppkma82bzxq2vcy3m3@10.112.30.31/control/rcontrol?action=sound&soundfile=q96_feuer2&speakerlevel=30")
|
|
sendHttpGetRequest("http://admin:pdgqa62v4f4bd9trmvp7z7t88@10.112.30.32/control/rcontrol?action=sound&soundfile=q96_feuer2&speakerlevel=30")
|
|
FFAlarmTimer = createTimer(now.plusMinutes(60)) [|
|
|
postUpdate(FFAlarmTrigger,"OFF")
|
|
postUpdate(FHZPush,"OFF")
|
|
FFAlarmTimer.cancel()
|
|
FFAlarmTimer = null
|
|
]
|
|
}
|
|
end
|
|
|
|
rule "FFAlarmTrigger OFF"
|
|
when
|
|
Item FFAlarmTrigger changed to OFF
|
|
then
|
|
postUpdate(FHZPush,"OFF")
|
|
postUpdate(FFAlarmView,"OFF")
|
|
end
|
|
|
|
rule "Alarmschleifen Auswertung"
|
|
when
|
|
Item FFAlarmSchleife received update
|
|
then
|
|
// val telegramActionProd = getActions("telegramActionProd","telegram:telegramBot:11a46758")
|
|
// val telegramActionDEV = getActions("telegram","telegram:telegramBot:a0986dc8")
|
|
logInfo("Alarmschleife", "Alarmschleife wurde aktualisiert")
|
|
switch(FFAlarmSchleife.state.toString) {
|
|
case "57459": {
|
|
logInfo("Alarmschleife", "Vollalarm Rembrücken und Heusenstamm")
|
|
postUpdate(FFAlarmTrigger,"ON")
|
|
NotificationIPAD3Pushover.sendCommand("Vollalarm Rembrücken und Heusenstamm")
|
|
// telegramActionProd.sendTelegram("Alarmschleife hat ausgelöst: Vollalarm Rembrücken und Heusenstamm")
|
|
// telegramActionDEV.sendTelegram("Alarmschleife hat ausgelöst: Vollalarm Rembrücken und Heusenstamm")
|
|
}
|
|
case "57449": {
|
|
logInfo("Alarmschleife", "Einsatz für den ELW")
|
|
postUpdate(FFAlarmTrigger,"ON")
|
|
NotificationIPAD3Pushover.sendCommand("Einsatz für den ELW")
|
|
// telegramActionProd.sendTelegram("Alarmschleife hat ausgelöst: Einsatz für den ELW")
|
|
// telegramActionDEV.sendTelegram("Alarmschleife hat ausgelöst: Einsatz für den ELW")
|
|
}
|
|
case "57455": {
|
|
logInfo("Alarmschleife", "Vollalarm Rembrücken")
|
|
postUpdate(FFAlarmTrigger,"ON")
|
|
NotificationIPAD3Pushover.sendCommand("Vollalarm Rembrücken")
|
|
// telegramActionProd.sendTelegram("Alarmschleife hat ausgelöst: Vollalarm Rembrücken")
|
|
// telegramActionDEV.sendTelegram("Alarmschleife hat ausgelöst: Vollalarm Rembrücken")
|
|
}
|
|
case "57451": {
|
|
logInfo("Alarmschleife", "Vollalarm Heusenstamm")
|
|
NotificationIPAD3Pushover.sendCommand("Vollalarm Heusenstamm")
|
|
}
|
|
}
|
|
end
|
|
|
|
rule "Push Fahrzeugstatus"
|
|
when
|
|
Member of gFHZ changed
|
|
then
|
|
Thread::sleep(300)
|
|
if (!lockState.isLocked) {
|
|
lockState.lock()
|
|
try {
|
|
logInfo("GroupTest","gFHZ received update")
|
|
val member = gFHZ.members.filter[d | d.lastUpdate("jdbc") !== null].sortBy[lastUpdate("jdbc")].last
|
|
val name = member.label.toString
|
|
if (FFAlarmTrigger.state == ON && member.state.toString == "3") {
|
|
logInfo("GroupTest", "Member "+ name +" to " + member.state )
|
|
if (FHZPush.state == ON && member.state.toString == "3") {
|
|
NotificationIPAD3Pushover.sendCommand(name + " ist aus zur E-Stelle")
|
|
}
|
|
NotificationPatrickPushover.sendCommand(name + " ist aus zur E-Stelle")
|
|
}
|
|
if (FFAlarmTrigger.state == ON && member.state.toString == "4") {
|
|
logInfo("GroupTest", "Member "+ name +" to " + member.state )
|
|
if (FHZPush.state == ON && member.state.toString == "4") {
|
|
NotificationIPAD3Pushover.sendCommand(name + " an der E-Stelle angekommen")
|
|
}
|
|
NotificationPatrickPushover.sendCommand(name + " an der E-Stelle angekommen")
|
|
}
|
|
} finally {
|
|
lockState.unlock()
|
|
}
|
|
} else {
|
|
logInfo("Testing","Locked, update ignored")
|
|
}
|
|
end |