Skip to content

cardalarm

tt-tom17 edited this page Jan 7, 2025 · 1 revision

Alarm Page

  • Voraussetzung:
    Konfigurationsskript NsPanelTs.ts mindestens in der Version: Version 4.3.3.9

  • Im IoBroker
    Im IoBroker wird unter 0_userdata.0.NSPanel.Alarm die Datenpunkte AlarmPin, AlarmState, AlarmType, PANEL und PIN_Failed benötigt. Diese werden i.d.R. generisch erzeugt, wenn im PageItem der Parameter autoCreateALias: true gesetzt ist. Sobald der Code der Alarm Page das erste Mal geladen wird, werden die Datenpunkte angelegt.

Bildschirmfoto 2023-04-25 um 10 11 30

Bei Aktivierung oder Deaktivierung der Alarmanlage wechselt der Status in arming oder pending. Im Falle einer PIN Falscheingabe gibt es nun auch triggered. Da die Verarbeitung der Alarmlogik außerhalb des Skriptes stattfindet, müssen die Datenpunkte auch entsprechend durch das externe Skript weiter getaktet werden

  • Aliase:
    Die vier Datenpunkte AlarmPin, AlarmState, AlarmType und Pin_Failed werden in einem Alias vom Typ Feueralarm im Gerätemanager oder Alias Adapter angelegt und dieser Alias wird dann im Konfigurationsskript auf der Alarm-Page verwendet.
    Diese werden, mit dem Parameter autoCreateALias: true auch automatisch angelegt.

    image

    Alias-Typ Feueralarm:
    ACTUAL = 0_userdata.0.NSXXXX.Alarm.AlarmState
    PIN = 0_userdata.0.NSXXXX.Alarm.PIN
    TYPE = 0_userdata.0.NSXXXX.Alarm.AlarmType
    PANEL = 0_userdata.0.NSXXXX.Alarm.PANEL
    PIN_Failed = 0_userdata.0.NSXXXX.Alarm.PIN_Failed

    Falls ein Wert im Alias nicht vorhanden ist, dann separat hinzufügen

  • Konfigurationsskript
    Allgemeine Einstellung:
    Es gibt eine Konstante, die den Pfad definiert, in dem der Ordner Alarm angelgt wird. Default ist 0_userdata.0.NSPanel.

const NSPanel_Alarm_Path = '0_userdata.0.NSPanel.'; 
//Neuer Pfad für gemeinsame Nutzung durch mehrere Panels

Page Type: Die Alarmfunktion kann nur auf einer PageAlarm verwendet werden

Beispiel:

let Alarmseite: PageType =
      {
      "type": "cardAlarm",
      "heading": "Alarm",
      "subPage": false,
      "items": [
          { id: 'alias.0.NSPanel.Alarm',
            actionStringArray: ['Vollschutz','Zuhause','Nacht','Besuch','Ausschalten'],
            autoCreateALias: true }
       ]
     }

Parameter:

  • id -> Pfad zum Alias Datenpunkt
  • actionStringArray -> Möglichkeit eigene Texte zu definieren für die Schutzzustände A1 bis A4 und Text für Deaktivierung
    Wenn das Array nicht definiert wird, ziehen die Standardtexte in der eingestellten Sprache.
  • autoCreateALias -> bei True werden alle Datenpunkte durch das Script angelegt

Blockly Testskript
Nachfolgend ein kurzes Emulationsskript für die Weiterverarbeitung. Diese Logik sollte auch in dein eigenes externes Alarm-Skript übernommen werden.

image

Zum Blocky
(Bild & Blockly by @Armilar)

Test-Blockly starten:

Alarm-Code in die cardAlarm eingeben --> Schutz auswählen --> aktiviert
Alarm-Code in die cardAlarm eingeben --> Deaktivieren --> deaktiviert

Ablauf:

  1. Ablauf Alarm Aktivierung:
    PIN eingeben und dann Alarm-Modus (Vollschutz, Zuhause, Nacht oder Besuch) auswählen. Im Datenpunkt AlarmType wird das als A1, A2, A3 oder A4 interpretiert und kann extern weiterverarbeitet werden.

image

Das Panel wechselt in den Status (AlarmState) "arming" (Icon = gelbes blinkendes Schild/Keine Tastatur)

image

Wenn durch das externe Skript (oder Emulator) der Status "armed" in den Datenpunkt AlarmState eingetragen wird (vorausgesetzt das externe Skript findet z.B, keine offenen Fenster) wird das Icon rot:

image

Der AlarmType ist jetzt D1, die Tastatur ist wieder eingeblendet und die card Alarm bereit für die Deaktivierung.

  1. Ablauf Alarm Deaktivierung:
    PIN-Eingabe zur Deaktivierung und Bestätigung durch den Button "Deaktivieren".

image

Das Panel vergleicht jetzt den Aktivierungs-PIN mit dem Deaktivierungs-PIN. Stimmen die PIN's überein, dann wird der AlarmState auf "pending" gesetzt.

image

Das externe Alarm-Skript macht seine restlichen Aufgaben und setzt dann den Status auf "disarmed"

image

Sollte der Pin nicht übereinstimmen, so setzt das Panel den AlarmState "triggered" (Icon blinkt)

image

Neues: Neu ist in diesem Zusammenhang der Alias "PIN_Failed" (state/number) Das TS-Skript zählt die missglückten Anmeldeversuche und trägt sie hier ein. Könnte man also auch für einen Trigger mit Meldung an Telegram nutzen. Außerdem wird bei Fehlerhaften PIN-Eingaben der Datenpunkt AlarmState auf "triggered" gesetzt. Im Panel sieht das dann so aus (das Icon blinkt):

image

Status "triggered":
Durch das externe Skript (alternativ der Alarm-Emulator) kann ein Status "triggered" gesetzt werden.
Zum Beispiel wenn der Alarm ausgelöst wurde, Die Deaktivierung der cardAlarm funktioniert somit auch bei dem Status "triggered".

Erweitertes Blockly mit popupNotify Page:
Voraussetzung: Ein neuer Datepunkt mit einer vodefinierten PIN.
Definieren der Basiseinstellungen in der gleichnamigen Funktion:

image

Es gibt fünf Basiseinstellungen:

  • Datenpunkt AlarmPIN: Hier muss der Pfad zu dem Datenpunkt konfiguriert werden, der die original PIN enthält. Gegen diese wird bei der Eingabe vom Skript verglichen. Wichtig: Dieser Datenpunkt muss manuell im ioBroker erzeugt werden. Es handelt sich nicht um den Datenpunkt 0_userdata.0.NSPanel.Alarm.AlarmPin !!!
  • Anzahl_NSPanles: Die Anzahl der NSPanels, die mit dem ioBroker verbunden sind
  • Notifay_OnOff: Soll es eine Information mit der popupNotify Page geben? wahr=an und falsch=aus.
  • Notify_Interaktion: An einem Panel wird eine Eigabe gemacht, manipulation versucht o.ä. Wer soll eine popupNotify Page erhalten? jeweils=nur das Panel an dem gerade eine Eingabe erfolgt oder global=alle angeschlossenen Panels
  • Notify_Event: Ein Alarm wird ausgelöst, wer soll mit einer popupNotify Page informiert werden? jeweils=nur das Panel an dem gerade eine Eingabe erfolgt oder global=alle angeschlossenen Panels

Hinweis: Wenn Ihr eine Anpassung am Skript oder an einem Datenpunkt vornehmet, startet bitte das Skript einmal neu.

Zum Blockly

Hinweis Verknüpfung mit Alarm - Adapter:
es gibt im Forum ein Post @danny_v1, wo ein Blockly vorgestellt wird, welches eine Verbindung zum Alarm-Adapter herstellt.


Clone this wiki locally