Initial Commit

This commit is contained in:
Patrick Niebeling
2019-10-17 13:23:53 +02:00
parent 81699fd4a4
commit b699c1545c
49 changed files with 659 additions and 3 deletions

92
rules/FFRAlarm.rules Normal file
View File

@ -0,0 +1,92 @@
import java.util.concurrent.locks.ReentrantLock
var ReentrantLock lockState = new ReentrantLock()
var Timer FFAlarmTimer = null
rule "FFAlarmRuleJSON"
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 ")
postUpdate(FFAlarmTrigger,transform("JSONPATH","$.AlarmTrigger",FFAlarmJSON.state.toString))
end
rule "FFAlarmTrigger OF"
when
Item FFAlarmTrigger changed to ON
then
postUpdate(FHZPush,"ON")
postUpdate(REMCAM001Record,"ON")
postUpdate(REMCAM002Record,"ON")
FFAlarmTimer = createTimer(now.plusMinutes(60)) [|
postUpdate(FFAlarmTrigger,"OFF")
postUpdate(FHZPush,"OFF")
postUpdate(REMCAM001Record,"OFF")
postUpdate(REMCAM002Record,"OFF")
FFAlarmTimer.cancel()
FFAlarmTimer = null
]
end
rule "FFAlarmTrigger OF"
when
Item FFAlarmTrigger changed to OFF
then
postUpdate(FHZPush,"OFF")
end
rule "Fahrzeug Status 3"
when
Member of gFHZ changed
then
Thread::sleep(300)
if (!lockState.isLocked) {
lockState.lock()
try {
logInfo("Testing","gNetwork 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 && FHZPush.state == ON && member.state.toString == "3") {
logInfo("GroupTest", "Member "+ name +" to " + member.state )
sendPushoverMessage(pushoverBuilder(name + " ist aus zur E-Stelle").withSound("siren").withUser("upgb55kps8rx2xotn7dvdg3w2yjpt6"))
sendPushoverMessage(pushoverBuilder(name + " ist aus zur E-Stelle").withSound("siren").withUser("u8s32g4yym8xbk7yqn66cokjys13mf"))
}
if (FFAlarmTrigger.state == ON && FHZPush.state == ON && member.state.toString == "4") {
logInfo("GroupTest", "Member "+ name +" to " + member.state )
sendPushoverMessage(pushoverBuilder(name + " an der E-Stelle angekommen").withSound("siren").withUser("upgb55kps8rx2xotn7dvdg3w2yjpt6"))
sendPushoverMessage(pushoverBuilder(name + " an der E-Stelle angekommen").withSound("siren").withUser("u8s32g4yym8xbk7yqn66cokjys13mf"))
}
} finally {
lockState.unlock()
}
} else {
logInfo("Testing","Locked, update ignored")
}
end