From 780aad08df08adbbdce0cf5cea4f480475360eef Mon Sep 17 00:00:00 2001 From: Armilar <102996011+Armilar@users.noreply.github.com> Date: Sun, 4 Sep 2022 18:24:46 +0200 Subject: [PATCH] Create cardAlarm_Emulator.js The further processing of the alarm system logic of cardAlarm is mainly carried out in an external script. This emulator can be used as a basis for an external alarm script --- ioBroker/cardAlarm_Emulator.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 ioBroker/cardAlarm_Emulator.js diff --git a/ioBroker/cardAlarm_Emulator.js b/ioBroker/cardAlarm_Emulator.js new file mode 100644 index 00000000..8b51bb68 --- /dev/null +++ b/ioBroker/cardAlarm_Emulator.js @@ -0,0 +1,22 @@ +//The further processing of the alarm system logic of cardAlarm is mainly carried out in an external script. This emulator can be used as a basis for an external alarm script + +// Bitte nspanelAlarmPath anpassen +const nspanelAlarmPath = '0_userdata.0.NSPanel.Alarm.'; + +// Der Rest wird dynamisch für das jeweilige Panel ermittelt +const dpAlarmState = nspanelAlarmPath + 'AlarmState'; +on({id: dpAlarmState, change: "ne"}, async function (obj) { + if ((obj.state ? obj.state.val : "") == 'arming') { + // weitere ioBroker-Überprüfung - z.B. Fenster offen + console.log("Alles Okay - Alarm wird aktiviert") + setStateDelayed(dpAlarmState, 'armed', false, parseInt(((1000) || "").toString(), 10), true); + } else if ((obj.state ? obj.state.val : "") == 'pending') { + console.log("Alles Okay - Alarm wird deaktiviert") + setStateDelayed(dpAlarmState, 'disarmed', false, parseInt(((1000) || "").toString(), 10), true); + } else if ((obj.state ? obj.state.val : "") == 'triggered') { + console.log("Trigger ausgelöst - Alarm bleibt aktiv") + // Wenn der PIN bei der Deaktivierung falsch war + // Zum Beispiel Meldung an Telegram oder popupNotify + // an Panel senden + } +});