Schemas

Schemas

Die im Webhook unter data mitgesendeten Werte entsprechen den folgenden Schemas.

Achtung: Die Formate von MAC-Adressen und Namen werden sich womöglich in Zukunft noch ändern, da die Datenstrukturen der neuen GETS-Zentrale noch nicht definitiv bekannt sind.

Element

type Element = {
    id: number;                     // Interne ID
    gets_id?: string;               // GETS-ID (alte Zentrale)
    mac: string;                    // MAC-Adresse des Elements
    code: string;                   // Kurzer Anzeigename (8-stellig, bzw. 4-stellig)
    name: string;                   // Langer Anzeigename (20-stellig, bzw. 11-stellig)
    textfield?: number;             // Textfield-Nr. für langer Name
    reachable: boolean;             // Erreichbarkeit des Elements
    activity_control: boolean;      // Nur drahtgebundene Elemente: Aktivitätskontrolle
    block_calls_day: boolean;       // Nur Funkelemente: Blockiere Tages-Rufe auf Radio Hub
    block_calls_night: boolean;     // Nur Funkelemente: Blockiere Nacht-Rufe auf Radio Hub
    battery: number;                // Batteriestand in %
    position: string;               // Letzte bekannte Position
    note: string;                   // Notiz
    status: ElementStatus;          // Status des Elements als String 
    element_type: ElementType;      // Art des Elements 
    section: Section;               // Zugewiesene Sektion
    profile: Profile;               // Zugewiesenes Profil
    denied_checkpoints: Array<DeniedCheckpoint> // Checkpoints, die nicht passiert werden dürfen
    trigger_type: TriggerType       // Auslösetyp des Elements
}

enum ElementStatus {
    ACTIVE,                         // Aktiv
    INACTIVE,                       // Inaktiv
    INREVISION                      // Defekt
}

type ElementType = {
    id: number;                     // Interne ID
    name: ElementTypeName;          // Bezeichnung des Element-Typs
    is_radio: boolean;              // Ist dieser Element-Typ für Funkelemente?
};

enum ElementTypeName {              // Sprachabhängig
    'Funkelement', 
    'Drahtgebundenes Element',
    'Pager'
}

type Section = {
   id: number;                      // Interne ID
   name: string;                    // Bezeichnung der Sektion
   code: string;                    // Sektionencode (1-Zeichen)
};

type Profile = {
   id: number;                      // Interne ID
   name: string;                    // Bezeichnung des Profils
};

type DeniedCheckpoint = {
    id: number;                     // Interne ID
    gets_id?: string;               // GETS-ID (alte Zentrale)
    name: string;                   // Bezeichnung des Checkpoints
    code: string;                   // Kurzer Anzeigename (8-stellig)
}

type TriggerType = {
    id: number;                     // Interne ID
    name: string;                   // Bezeichnung des Auslösetyps (z. B. "Medaillon")
    has_checkpoint_rights: boolean, // Ob dieses Element auf Checkpoint-Rechte reagiert
    is_radio: boolean,              // Ob ein Normalruf für diesen Typ in ein «Funkelementeruf» umgewandelt werden soll
    attribute?: string              // Attribute zu diesem Auslösetyp (z. B. "A")
    address_type?: string           // Addresstyp zu diesem Auslösetyp (z. B. "F")
}