mirror of
https://github.com/joBr99/nspanel-lovelace-ui.git
synced 2026-03-07 11:39:40 +01:00
new site spazialseiten
155
NSPanel-cardtypen.md
Normal file
155
NSPanel-cardtypen.md
Normal file
@@ -0,0 +1,155 @@
|
|||||||
|
# Einleitung
|
||||||
|
Hier werden alle Spezialseiten beschrieben mit ihren Parametern, Scripten und Hinweisen.
|
||||||
|
|
||||||
|
## Verszeichnis
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Alarm Page**
|
||||||
|
|
||||||
|
|
||||||
|
* **Quelle**:
|
||||||
|
Post [1087](https://forum.iobroker.net/topic/50888/sonoff-nspanel/1087), [1265](https://forum.iobroker.net/topic/50888/sonoff-nspanel/1265)+[1270](https://forum.iobroker.net/topic/50888/sonoff-nspanel/1270) im ioBroker Forum.
|
||||||
|
|
||||||
|
* **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.
|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
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.**
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
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**:
|
||||||
|
```typescript
|
||||||
|
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.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
[Zum Blocky](https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/Blockly/Alarm_Page_Testskript.xml)
|
||||||
|
(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.
|
||||||
|
|
||||||
|

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

|
||||||
|
|
||||||
|
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:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Der AlarmType ist jetzt D1, die Tastatur ist wieder eingeblendet und die card Alarm bereit für die Deaktivierung.
|
||||||
|
|
||||||
|
2. Ablauf Alarm Deaktivierung:
|
||||||
|
PIN-Eingabe zur Deaktivierung und Bestätigung durch den Button "Deaktivieren".
|
||||||
|
|
||||||
|

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

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

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

|
||||||
|
|
||||||
|
|
||||||
|
**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):
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
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:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
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](https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/Blockly/Alarm_Page_Erweitertes_Skript_mit_PopupNotifyPage.xml)
|
||||||
|
|
||||||
|
**Hinweis Verknüpfung mit Alarm - Adapter**:
|
||||||
|
es gibt im Forum ein [Post](https://forum.iobroker.net/post/987357) @danny_v1, wo ein Blockly vorgestellt wird, welches eine Verbindung zum Alarm-Adapter herstellt.
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user