Gallagher Command Centre REST API uz KNX: Notikumu tilts ar Node-RED
Gallagher Command Centre 8.x REST API ļauj ārējām sistēmām saņemt durvju un piekļuves notikumus gandrīz reāllaikā. Izmantojot Node-RED, šos notikumus var pārsūtīt uz KNX grupu adresēm, automātiski reaģējot uz karšu lasītāju aktivitāti – apgaismojumu, HVAC un drošību. Bez patentētiem moduļiem vai papildu licencēm.
Gallagher Command Centre REST API pārskats
Gallagher Command Centre 8.x ietver iebūvētu REST API serveri. API izmanto OAuth2 klienta akreditācijas datu plūsmu autentifikācijai. Command Centre servera iestatījumos izveidojiet REST API klientu ar piekļuvi notikumu un durvju resursiem. Iegaumējiet klienta ID un klienta noslēpumu – tie tiek parādīti tikai vienreiz izveides brīdī.
Lai iegūtu nesēja pilnvaru, nosūtiet POST pieprasījumu uz pilnvaru galapunktu. Pilnvaras derīguma termiņš ir 3600 sekundes (viena stunda). Node-RED automātiski atjauno pilnvaras, saglabājot derīguma termiņa laikspiedolu un atkārtoti pieprasot pilnvaru pirms tās derīguma termiņa beigām.
OAuth2 pilnvaras pieprasījums
POST /api/access_control/rest/v1/oauth2/token
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials
&client_id=<jūsu_klienta_id>
&client_secret=<jūsu_klienta_noslēpums>
Atbilde:
{
"access_token": "eyJhbGciOi...",
"token_type": "Bearer",
"expires_in": 3600
}
Node-RED: saglabājiet pilnvaru plūsmas konteksta mainīgajā
msg.token = msg.payload.access_token
flow.set('gallagher_token', msg.token)
flow.set('token_expiry', Date.now() + 3500000)Piekļuves notikumu aptaujāšana no REST API
Notikumu galapunkts atgriež piekļuves notikumus kopš noteikta ISO8601 laikspiedola. Aptaujājiet šo galapunktu ik pēc 2–5 sekundēm, lai apstrādātu notikumus gandrīz reāllaikā. Saglabājiet pēdējā apstrādātā notikuma laikspiedolu Node-RED plūsmas kontekstā, lai izmantotu to kā nākamo aptaujāšanas sākumpunktu.
Notikumu aptaujāšanas pieprasījums
GET /api/access_control/rest/v1/events
?after=2024-01-15T09:30:00Z
&pageSize=50
Authorization: Bearer <access_token>
Atbildes masīvs – katrs notikuma objekts satur:
{
"eventType": "cardReadValid",
"door": { "name": "Galvenā ieeja", "id": "door-uuid-1" },
"cardholder": { "name": "Jānis Bērziņš", "id": "ch-uuid-1" },
"timestamp": "2024-01-15T09:31:45Z"
}
eventType vērtības:
cardReadValid – kartīte pieņemta, durvis atslēgtas
cardReadInvalid – kartīte noraidīta (nepareiza zona, beidzies derīgums)
doorForced – durvis atvērtas bez derīgas piekļuves
doorHeldOpen – durvis turētas atvērtas ilgāk par taimera slieksni
antiPassbackViol – konstatēts pretapiešanas noteikumu pārkāpumsInstalējiet node-red-contrib-gallagher pakotni, izmantojot npm Node-RED datu direktorijā. Šī pakotne nodrošina iebūvētus Gallagher ievades mezglus, kas automātiski apstrādā autentifikāciju un aptaujāšanu – konfigurējiet Command Centre IP adresi, klienta ID un noslēpumu mezgla konfigurācijas panelī.
Node-RED plūsma: durvju notikums uz KNX grupu adresi
Galvenā Node-RED plūsma apstrādā Gallagher notikumus un raksta uz KNX grupu adresēm, izmantojot KNX rakstīšanas mezglu. Konfigurējiet KNX rakstīšanas mezglu ar sava KNX IP interfeisa IP adresi. Slēdža mezgls filtrē notikumus pēc veida un durvju nosaukuma, pirms iedarbina KNX darbības.
Node-RED plūsma – kartes nolasīšana uz KNX darbībām
Plūsma: Gallagher notikumu ievades mezgls slēdža mezgls Noteikums 1: msg.payload.eventType == "cardReadValid" UN msg.payload.door.name == "Galvenā ieeja" Noteikums 2: msg.payload.eventType == "doorForced" Noteikuma 1 izvade funkcijas mezgls (iestata KNX slodzi) msg.knxGA = "3/0/1" // vestibila gaismas pilnībā ieslēgtas msg.knxDPT = "1.001" msg.knxValue = true KNX rakstīšanas mezgls (IP interfeiss: 192.168.1.100) funkcija arī nosūta otru ziņojumu: msg.knxGA = "4/0/1" // HVAC aizņemts režīms msg.knxValue = true KNX rakstīšanas mezgls Noteikuma 2 izvade KNX rakstīšanas mezgls GA "8/0/1" DPT 1.001 vērtība true // signalizācijas sirēnas relejs otrais KNX rakstīšanas mezgls GA "3/0/2" DPT 5.001 vērtība 255 // drošības gaismas 100%
| Gallagher notikums | KNX grupu adrese | DPT | Darbība |
|---|---|---|---|
| cardReadValid – Galvenā ieeja | 3/0/1 | 1.001 | Vestibila gaismas pilnībā ieslēgtas |
| cardReadValid – Galvenā ieeja | 4/0/1 | 1.001 | HVAC aizņemts režīms |
| doorForced – jebkuras durvis | 8/0/1 | 1.001 | Signalizācijas sirēnas relejs IESLĒGTS |
| doorForced – jebkuras durvis | 3/0/2 | 5.001 (255) | Drošības gaismas 100% |
| doorHeldOpen – jebkuras durvis | 8/0/2 | 1.001 | Atvērtu durvju brīdinājuma relejs |
Attālināta durvju atbloķēšana no KNX binārās ieejas
Apgrieztais virziens – Gallagher durvju atbloķēšanas iedarbināšana no KNX binārās ieejas – ir tikpat svarīga. Reģistratūras darbinieki ar KNX skārienpaneli var attālināti atbloķēt galvenās ieejas durvis bez atsevišķa piekļuves kontroles termināļa.
KNX binārā ieeja uz Gallagher durvju atbloķēšanu
Aparatūra: MDT SCN-BTL1 binārā ieeja reģistratūras skārienpanelī
KNX telegramma uz pogas nospiešanas GA 3/1/0 DPT 1.001 vērtība 1
Node-RED KNX ievades mezgls klausās GA 3/1/0:
filtrs: vērtība == true (tikai augošā mala)
HTTP pieprasījuma mezgls:
Metode: POST
URL: http://<cc-server>/api/access_control/rest/v1/doors/<durvju_id>/access
Galvenes: Authorization: Bearer {flow.gallagher_token}
Saturs: { "type": "release" }
Gallagher atbloķē durvis uz 5 sekundēm (konfigurēts CC)
Atbilde 200: durvju atbloķēšana apstiprināta
durvju_id: iegūst no GET /api/access_control/rest/v1/doors
Atgriež durvju objektu masīvu ar id un name laukiem
Saglabājiet Galvenās ieejas durvju_id Node-RED vides mainīgajāGallagher tīmekļa āķi reāllaika notikumu push (CC 8.10+)
Command Centre 8.10 un jaunākās versijas atbalsta tīmekļa āķus – Gallagher push notikumus uz konfigurētu HTTP galapunktu, kad tie notiek, novēršot 2–5 sekunžu aptaujāšanas aizkavi. Drošības kritiskām lietojumprogrammām, piemēram, signalizācijas sirēnas aktivizēšanai, tīmekļa āķi ir stipri ieteicami.
Tīmekļa āķa konfigurācija Command Centre
CC servera iestatījumos REST API Tīmekļa āķi:
Pievienojiet tīmekļa āķa URL: http://<node-red-ip>:1880/gallagher-events
Push notikumi: AccessGranted, DoorForced, DoorHeldOpen
Autentifikācija: HMAC-SHA256 kopīgs noslēpums (ieteicams)
Node-RED: HTTP ievades mezgls uz /gallagher-events
pārbaudiet HMAC parakstu (funkcijas mezgls)
identiska slēdža/KNX rakstīšanas plūsma kā aptaujāšanas pieejā
nav nepieciešams injicēšanas taimeris – notikumi pienāk 200 ms laikā
Tīmekļa āķa slodzes formāts atbilst aptaujāšanas notikuma objektam:
{ "eventType": "...", "door": {...}, "timestamp": "..." }
Priekšrocība: mazāk par sekundi aizkave pret 2-5 s aptaujāšanu
Lietošanas gadījums: durvju piespiedu atvēršanas trauksmei jāiedarbina sirēna nekavējoties
– aptaujāšanas aizkave nav pieņemama drošības notikumiemVairāku nomnieku biroja stāvu noslogojuma automatizācija
Vairāku nomnieku biroju ēkās Gallagher zonas atbilst fiziskajiem stāviem. Katram stāvam ir sava karšu lasītāju zona, un Gallagher izseko, kuri karšu turētāji pašlaik atrodas katrā stāvā. Šie zonas klātbūtnes dati tiek tieši pārsūtīti uz KNX HVAC zonas noslogojumu, lai kontrolētu apkuri un ventilāciju katrā stāvā.
Stāvu līmeņa noslogojums uz KNX HVAC zonām
Gallagher zonas konfigurācija: A zona: 1. stāva lasītāji (durvis A01, A02, A03) B zona: 2. stāva lasītāji (durvis B01, B02, B03) Node-RED loģika: Kad cardReadValid uz 1. stāva durvīm: rakstīt GA 4/1/1 = true (HVAC 1. zona aizņemta) Kad cardReadValid uz 2. stāva durvīm: rakstīt GA 4/2/1 = true (HVAC 2. zona aizņemta) Pēdējās personas izejas notikums (Gallagher CC 8.x): Kad pēdējais karšu turētājs iziet no zonas (zonas skaits = 0): Notikums: "lastPersonOut" A zonai rakstīt GA 4/1/1 = false (HVAC 1. zona samazināts režīms) rakstīt GA 3/1/0 = false (1. stāva gaismas izslēgtas) gaidīt 300 s aizkavi Node-RED (atlikušā noslogojuma buferis) rakstīt GA 5/1/1 = true (HVAC nakts samazināts režīms aktivizēts) Dienas beigu secība tiek iedarbināta automātiski, kad pēdējais karšu turētājs iziet no katra stāva – nav nepieciešams laika grafiks, reaģē uz faktisko noslogojumu
Pretapiešanas integrācija ar KNX trauksmi
Pretapiešana (APB) neļauj karšu turētājam izmantot savu karti, lai divreiz iekļūtu zonā bez iepriekšējas izejas – galvenais līdzeklis cīņai pret sekošanu. Kad Gallagher konstatē APB pārkāpumu, notikums var iedarbināt KNX trauksmes stāvokli vizuālam un skaņas brīdinājumam apsardzes darba vietā, apvienojumā ar CCTV krustreferenci.
Pretapiešana uz KNX trauksmes secību
Gallagher notikums: antiPassbackViol
durvju nosaukums, karšu turētāja vārds, laikspiedols notikuma slodzē
Node-RED:
rakstīt GA 8/1/0 = true (APB trauksmes karogs KNX)
rakstīt GA 8/1/1 = karšu turētāja ID (DPT 5.010 kartēts ID)
apsardzes darba vietas skārienpanelis (MDT vai Gira) parāda APB brīdinājumu
CCTV krustreference (Bosch BVMS spraudnis):
Bosch BVMS ir izvēles Gallagher spraudnis:
CC trauksmes notikums BVMS atver kameras skatu šīm durvīm
KNX tikai instalācijām bez BVMS:
APB KNX trauksmes GA iedarbina ONVIF kameras momentuzņēmumu
izmantojot Node-RED http-request uz kameras momentuzņēmuma URL
momentuzņēmums tiek saglabāts lokāli drošības pārskatīšanai
APB trauksmes atiestatīšana:
Apsardzes darba vietas KNX poga GA 8/1/0 = false
Node-RED: POST /api/access_control/rest/v1/cardholders/
{cardholder_id}/antipassback/reset
CC atiestata karšu turētāja APB zonas statusuNodošanas ekspluatācijā piezīme: Pārbaudiet pilnu notikuma-KNX ķēdi, izmantojot testa karšu turētāja karti un apzināti iedarbinot katru notikuma veidu secībā – cardReadValid, doorForced un antiPassbackViol. Pārliecinieties, ka pareizās KNX GA tiek atjauninātas ETS6 grupu monitorā paredzamajā latentumā (zem 1s tīmekļa āķiem, zem 5s aptaujāšanai).
Nepieciešams KNX panelis ar Gallagher integrāciju, kas izgatavots pēc specifikācijas?
Mēs projektējam un izgatavojam zemsprieguma paneļus ar Node-RED Gallagher REST API tiltiem, KNX IP interfeisa konfigurāciju, stāvu noslogojuma loģiku un pilnu nodošanas ekspluatācijā dokumentāciju, kas tiek piegādāta un pārbaudīta jūsu objektā.
Request a quote