Paxton Net2 Access Control to KNX: OEM SDK and Door Event Automation
Paxton Net2 is one of the most widely installed access control systems in UK commercial buildings, hotels, and schools. Connecting Net2 door events to KNX enables occupancy-driven HVAC, automatic lighting responses to access events, and hotel room energy card integration — using the Net2 OEM SDK, RS232 serial output, or OSDP v2 reader protocol.
Paxton Net2 overview and integration options
Paxton Net2 Pro and Net2 Access Control software runs on a Windows PC acting as the access control server. Net2 ACUs (Access Control Units) connect to the server via a dedicated RS485 network or Ethernet, managing readers, door strikes, and input/output points throughout the building. Three integration paths exist for KNX connectivity:
| Method | Requirements | Latency | Best For |
|---|---|---|---|
| OEM SDK (COM API) | Net2 Pro, C# Windows service, knxdotnet library | 1-2 seconds | Full event access, multi-door |
| RS232 serial output | Net2 ACU RS232 port, Node-RED serial node | 1-3 seconds | Simple single-door setups |
| OSDP v2 + Beckhoff | OSDP-capable ACU, TwinCAT + EL6700 RS485 | Under 500ms | Enterprise, no PC server needed |
The Net2 OEM SDK is a COM-based API available from the Paxton developer portal — an NDA and registration are required. The SDK is primarily used by system integrators building custom management software. For KNX integration, a lightweight C# Windows service using the SDK is the most capable approach, giving access to all Net2 event types and door control commands.
Net2 OEM SDK C# integration service
The C# Windows service subscribes to Net2 COM events and forwards relevant events to KNX via the KNX IP Interface. The knxdotnet library (available on NuGet) provides .NET-native KNX group telegram sending. Door ID to KNX group address mapping is stored in an XML or JSON configuration file, making it easy to update without recompiling.
C# Net2 SDK event subscription (simplified)
// Install: Paxton.Net2.OemClientLibrary (COM reference)
// Install: KNXLib (NuGet) — knxdotnet KNX IP Interface
var net2 = new Paxton.Net2.OemClient();
net2.Connect("localhost", Net2Port);
net2.OnEventReceived += OnNet2Event;
void OnNet2Event(Net2Event evt) {
switch (evt.EventType) {
case EventType.AccessGranted:
var mapping = config.GetKnxMapping(evt.DoorId);
if (mapping != null) {
knx.Action(mapping.GroupAddress, true); // DPT 1.001
knx.Action(mapping.HvacGroupAddress, true); // HVAC occupied
}
break;
case EventType.AccessDenied:
// optional: write to security alert GA
break;
case EventType.AlarmActivated:
knx.Action("8/0/1", true); // alarm relay
break;
}
}
// config.json mapping example:
// { "doorId": 101, "ga": "3/0/1", "hvacGa": "4/0/1" }
// { "doorId": 102, "ga": "3/1/1", "hvacGa": "4/1/1" }RS232 serial output alternative
For simpler installations where the full SDK is not required, the Net2 ACU RS232 serial port outputs ASCII event strings on each access event. This approach requires no SDK licence and can be processed by Node-RED with the serial node — useful when the installation already uses Node-RED for other building automation functions.
RS232 serial event format and Node-RED parsing
Net2 ACU RS232 output (9600 baud, 8N1):
ASCII string per event: "DOOR:101,EVENT:ACCESS_GRANTED,USER:Smith
"
Node-RED serial in node:
Port: /dev/ttyUSB0 (or COM3 on Windows)
Baud: 9600, 8N1
Split: on newline character
Function node — parse and route:
const parts = msg.payload.split(",");
const doorId = parts[0].split(":")[1];
const event = parts[1].split(":")[1];
if (event === "ACCESS_GRANTED" && doorId === "101") {
msg.knxGA = "3/0/1";
msg.knxValue = true;
}
return msg;
KNX write node → IP Interface → KNX bus
Limitation: RS232 event format is not officially documented
by Paxton — verify exact format with your ACU firmware version
before building production automation on this approachUK office building practical scenario
A typical UK office building with Net2 at the main entrance and fire exit uses the SDK service to drive KNX occupancy-based automation. The last-user-out pattern eliminates the need for time-based schedules and responds to actual building usage.
UK office — access event to KNX building control
Morning arrival (first AccessGranted at main entrance): → KNX GA 3/0/0 = true (lobby lights ON) → KNX GA 4/0/0 = true (HVAC building occupied mode) → KNX GA 5/0/0 = false (disable night setback) End of day — last user leaves after 18:00: C# service tracks occupancy count per door zone When count reaches zero after 18:00: → KNX GA 4/0/0 = false (HVAC setback mode) → KNX GA 3/0/0 = false (lights off — after 60s delay) → KNX GA 5/0/0 = true (night setback active) Fire alarm integration (Net2 AlarmActivated event): → KNX GA 8/0/1 = true (fire alarm relay to KNX PA system) → KNX GA 3/0/1 = 255 (emergency lighting full brightness) Net2 also releases all doors to fail-safe unlocked state KNX door strike outputs (if any) also release via KNX GA
OSDP v2 integration with Beckhoff TwinCAT
Net2 ACUs support OSDP v2 on RS485 for connection to OSDP-compliant card readers. For KNX projects with a Beckhoff TwinCAT PLC already in the panel, the EL6700 RS485 EtherCAT terminal combined with an OSDP library allows a single controller to handle both OSDP reader data and KNX TP bus — eliminating the Windows PC server requirement.
Beckhoff TwinCAT OSDP + KNX wiring
Hardware:
Beckhoff CX9020 controller
EL6700 RS485 EtherCAT terminal → OSDP v2 reader (RS485 bus)
EL6900 KNX EtherCAT terminal → KNX TP bus
TwinCAT configuration:
Install OSDP library (Beckhoff TE6730 or third-party)
Configure EL6700 as OSDP master, reader as slave ID 1
Map card number data → TwinCAT PLC variable CardNumber
TwinCAT PLC logic (Structured Text):
IF CardNumber <> 0 AND CardNumber = ValidCard1 THEN
KNX_WriteGA(GA := '3/0/1', Value := TRUE); // lobby lights
KNX_WriteGA(GA := '4/0/1', Value := TRUE); // HVAC occupied
END_IF
Advantage: no Windows PC server required
DIN-rail controller fits inside LV panel
KNX EL6900 certified for KNX TP communication
Single controller, single point of maintenanceHotel room card integration with KNX energy switch
Paxton Net2 is frequently used in hotel room entry with swipe card readers. The card insert event triggers the room welcome scene via KNX, while card removal initiates a timed setback sequence to reduce energy consumption when the room is unoccupied.
Hotel room card to KNX welcome scene
Card inserted into room holder (Net2 AccessGranted):
→ KNX GA 6/R/0 = true (Gira card switch 24V trigger activated)
→ KNX Scene "Room Welcome" fires:
GA 3/R/0 = 80 (room lights 80% DPT 5.001)
GA 4/R/0 = true (HVAC room comfort mode)
GA 9/R/0 = 21 (room thermostat setpoint 21°C)
Card removed from holder (Net2 AccessGranted — out):
→ KNX GA 6/R/0 = false (Gira card switch deactivated)
→ KNX 60-second delay timer starts
→ After 60s:
GA 3/R/0 = 0 (room lights off)
GA 4/R/0 = false (HVAC setback mode)
GA 9/R/0 = 18 (setback setpoint 18°C)
Net2 room door reader also logs entry/exit times
— useful for housekeeping scheduling and BREEAM evidence
Note: R = room number (1-100) in the GA scheme
Each room has its own GA sub-group for independent controlNet2 occupancy data and KNX energy meter fusion
Net2 reporting exports occupancy logs — users present per floor per hour — in CSV format. Combined with KNX energy meter data from Modbus-connected meters (SOCOMEC Countis, ABB B24), this allows correlation of occupancy versus energy consumption. This data fusion provides evidence for BREEAM Hea 04 occupant wellbeing assessments.
Occupancy vs energy data correlation workflow
1. Net2 scheduled report: export occupancy_floor_hourly.csv Columns: date, hour, floor, user_count Automation: Net2 Task Scheduler exports nightly at 01:00 2. KNX energy meter data (SOCOMEC Countis E14): Modbus TCP → LOYTEC LROC gateway → KNX GA 6/E/1 (kWh) Logged to building energy management system (BEMS) database or InfluxDB via Node-RED 3. Python script merges datasets: energy_per_hour = InfluxDB query (kWh by floor, by hour) occupancy_per_hour = CSV import (users by floor, by hour) energy_per_person = energy_per_hour / occupancy_per_hour Output: energy_intensity.csv for BREEAM assessor 4. BREEAM Hea 04 evidence: Demonstrates energy reduction during low occupancy periods Confirms KNX setback automation is effective Shows energy-per-person improvement over 12-month period
Paxton developer access: the Net2 OEM SDK requires registration on the Paxton developer portal at developer.paxton.co.uk. An NDA must be signed before SDK documentation and libraries are provided. Allow 2-5 business days for portal access approval. The SDK is free of charge — no licence fee applies.
Need a KNX panel with Paxton Net2 integration built to spec?
We design and build low-voltage panels with Net2 SDK Windows service, KNX IP Interface configuration, OSDP v2 Beckhoff TwinCAT integration, and full commissioning documentation delivered tested to your site.
Request a quote →