5.10.2 api log subscribe
Funkce /api/log/subscribe vytvoří kanál pro odběr událostí (subscription) a vrací unikátní identifikátor, který se použije při následném volání funkcí /api/log/pull, příp. /api/log/unsubscribe.
Každý kanál pro odběr událostí obsahuje vlastní frontu událostí. Do fronty kanálu jsou ukládány všechny nové události, které odpovídají filtru kanálu (parametr filter). Události z fronty kanálu lze číst pomocí funkce /api/log/pull.
Současně zařízení udržují v interní paměti frontu historie událostí (posledních 10000 události). Po restartu zařízení je tato fronta historie vždy prázdná.
Pomocí parametru include lze specifikovat, zda fronta kanálu bude na počátku prázdná (tj. budou do ní zapsány pouze nové události, které vzniknou po vytvoření kanálu), příp. zda má být jednorázově naplněna událostmi z části nebo celé zaznamenané historie událostí.
Pomocí parametru duration lze specifikovat životnost kanálu v případě, že se k němu nepřistupuje pomocí funkce /api/log/pull. Po nastavené době bude nepoužívaný kanál automaticky uzavřen, jako by byla použita funkce /api/log/unsubscribe.
Funkce je součástí služby Logging a v případě použití autentizace je nutné pro některé události nastavit privilegia uživatele podle tabulky níže. Do fronty kanálu nebudou zařazovány události, pro které autentizovaný uživatel nemá požadovaná privilegia.
Tabulka událostí:
Dostupné události | Vyžadovaná privilegia uživatele |
---|---|
KeyPressed | Sledování – Klávesnice |
KeyReleased | Sledování – Klávesnice |
CodeEntered | Sledování – Klávesnice |
TamperSwitchActivated | žádná |
UnauthorizedDoorOpen | žádná |
DoorOpenTooLong | žádná |
LoginBlocked | žádná |
SilentAlarm | žádná |
DoorStateChanged | žádná |
DeviceState | žádná |
AudioLoopTest | žádná |
MotionDetected | žádná |
NoiseDetected | žádná |
HardwareChanged | žádná |
FingerEnrollState | žádná |
LiftStatusChanged | žádná |
LiftFloorsEnabled | žádná |
LiftConfigChanged | žádná |
CapabilitiesChanged | žádná |
ConfigurationChanged | žádná |
ExtCameraStateChanged | žádná |
RescueStateChanged | žádná |
ErrorStateChanged | žádná |
LiftCheckingCall | žádná |
DtmfSent | žádná |
RexActivated | žádná |
AccessBlocked | žádná |
AccessTaken | žádná |
AccessLimited | žádná |
DisplayTouched | žádná |
DtmfPressed | žádná |
SwitchesBlocked | žádná |
CardEntered | Sledování – UID (karty/wiegand) |
CardHeld | Sledování – UID (karty/wiegand) |
DtmfEntered | Sledování – UID (karty/wiegand) |
PairingStateChanged | Sledování – UID (karty/wiegand) |
MobKeyEntered | Sledování – UID (karty/wiegand) |
WaveKeyEntered | Sledování – UID (karty/wiegand) |
FingerEntered | Sledování – UID (karty/wiegand) |
UserAuthenticated | Sledování – UID (karty/wiegand) |
UserRejected | Sledování – UID (karty/wiegand) |
ApiAccessRequested | Sledování – Správa přístupu |
LicensePlateRecognized | Sledování – Správa přístupu |
CallStateChanged | Sledování – Telefon/Hovory |
CallSessionStateChanged | Sledování – Telefon/Hovory |
RegistrationStateChanged | Sledování – Telefon/Hovory |
InputChanged | Sledování – Vstupy a výstupy |
OutputChanged | Sledování – Vstupy a výstupy |
VirtualInput | Sledování – vstupy a výstupy |
VirtualOutput | Sledování – Vstupy a výstupy |
SwitchStateChanged | Sledování – vstupy a výstupy |
SwitchOperationChanged | Sledování – vstupy a výstupy |
UserActionActivated | Sledování – Vstupy a výstupy |
DirectoryChanged | Sledování – Systém |
DirectorySaved | Sledování – Systém |
Pro tuto funkci lze použít metody GET nebo POST.
Parametry požadavku:
Parametr | Typ | Povinný | Výchozí hodnota | Popis |
---|---|---|---|---|
include | string | Ne | new | Určuje, zda má být fronta událostí kanálu naplněna položkami z historie: new – pouze nové události, které vzniknou až po vytvoření kanálu all – všechny dosud zaznamenané událost včetně těch, které vzniknou až po vytvoření kanálu −t – všechny dosud zaznamenané události za posledních t sekund včetně těch, které vzniknou až po vytvoření kanálu (např. −10) |
filter | list | Ne | bez filtru | Seznam typů požadovaných událostí (názvy typů událostí oddělené čárkou). Parametr je nepovinný, a pokud není uveden, pak se v rámci kanálu předávají všechny typy událostí daného zařízení, které nejsou defaultně skryté. Pro odběr defaultně skrytých událostí je nutné události v tomto parametru vyžádat. Defaultně skryté události jsou:
|
duration | uint32 | Ne | 90 | Definuje dobu v sekundách, po které bude kanál automaticky uzavřen, pokud na něm nebudou probíhat žádné operace čtení pomocí /api/log/pull. Každým čtením z kanálu je automaticky životnost kanálu prodloužena o zde nastavenou hodnotu. Maximální možná hodnota je 3600 s. |
Odpověď je ve formátu application/json a obsahuje pouze identifikátor vytvořeného subscription.
Parametr | Typ | Popis |
---|---|---|
id | uint32 | Unikátní identifikátor vytvořeného subscription. |
Příklad:
GET /api/log/subscribe?filter=KeyPressed,InputChanged { "success" : true, "result" : { "id" : 2121013117 } }