This diagram illustrates the interaction between the different components of the ESCTL system during a typical door access event.
sequenceDiagram
autonumber
participant dr as Door hardware
participant dc as Door controller
participant ec as esctl controller
participant log as Log database
participant api as API / Filesystem
participant ad as Active Directory
rect rgb(240,230,230)
note over dr,dc: Door Components
note over ec,api: esctl Services
dr->>dc: Wiegand data stream
dc->>ec: Card serial number, Door ID
note right of ec: Whose badge is this?
ec->>ad: Who owns this card?
ad->>ec: escuid=jsmith
note right of ec: What groups are allowed?
ec->>ad: What groups for this door?
ad->>ec: List of groups
note right of ec: Is user in a group?
loop Each group
ec->>ad: escuid, group
ad->>ec: Membership Status
end
ec->>log: Log access attempt
ec->>dc: Open door
dc->>dr: Unlock
end
rect rgb(230,240,230)
note over dr: Request to Exit
dr->>dc: RQE pressed
dc->>ec: RQE pressed
ec->>log: Log RQE event
ec->>dc: Open door
dc->>dr: Unlock
end
rect rgb(220,220,230)
alt Keepalive
ec->>dc: Are you alive?
dc->>ec: Yes
end
end
rect rgb(220,240,220)
opt API Unlock
api->>ec: Open door
ec->>log: Log API event
ec->>dc: Open door
dc->>dr: Unlock
end
opt API Config
api->>ec: Configure
ec->>api: Response
end
end
Component Breakdown
- Door Hardware: The physical lock (mag-lock, strike) and RFID reader.
- Door Controller: The Arduino-based node that interfaces between hardware and the network.
- esctl Controller: The Master Controller software managing the logic.
- Active Directory / LDAP: The source of truth for user identities and permissions.
- Log Database: MySQL database storing all access and system events.