Paxton Net2 и KNX: интеграция через OEM SDK и автоматизация дверей
Paxton Net2 — одна из самых популярных систем контроля доступа в коммерческих зданиях, отелях и школах Великобритании. Подключение событий Net2 к KNX открывает возможности для управления отоплением и вентиляцией по occupancy, автоматического включения света при доступе и интеграции с энергосберегающими картами в гостиницах — через OEM SDK, RS232 или протокол OSDP v2.
Обзор Paxton Net2 и варианты интеграции
Программное обеспечение Paxton Net2 Pro и Net2 Access Control работает на ПК с Windows, который выступает сервером. Контроллеры Net2 ACU подключаются к серверу через выделенную сеть RS485 или Ethernet, управляя считывателями, замками и входами/выходами по всему зданию. Для связи с KNX доступны три пути:
| Метод | Требования | Задержка | Лучше всего для |
|---|---|---|---|
| OEM SDK (COM API) | Net2 Pro, C# Windows-сервис, библиотека knxdotnet | 1-2 секунды | Полный доступ к событиям, несколько дверей |
| RS232 (последовательный порт) | Порт RS232 на Net2 ACU, узел Node-RED Serial | 1-3 секунды | Простые однодверные установки |
| OSDP v2 + Beckhoff | OSDP-совместимый ACU, TwinCAT + EL6700 RS485 | Менее 500 мс | Корпоративный уровень, без ПК-сервера |
SDK Net2 OEM — это COM-интерфейс, доступный на портале разработчиков Paxton после подписания NDA и регистрации. SDK в основном используется системными интеграторами для создания собственного ПО управления. Для интеграции с KNX наиболее эффективным подходом является легковесный C# Windows-сервис, использующий SDK, который предоставляет доступ ко всем типам событий Net2 и командам управления дверьми.
C# сервис интеграции с Net2 OEM SDK
C# Windows-сервис подписывается на COM-события Net2 и пересылает соответствующие события в KNX через KNX IP-интерфейс. Библиотека knxdotnet (доступна на NuGet) обеспечивает отправку групповых телеграмм KNX из .NET. Привязка идентификатора двери к групповому адресу KNX хранится в XML или JSON конфигурационном файле, что упрощает обновление без перекомпиляции.
Подписка на события Net2 SDK на C# (упрощенно)
// 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 последовательный порт
Для более простых установок, где полный SDK не требуется, RS232 последовательный порт ACU Net2 выводит ASCII строки событий при каждом доступе. Этот подход не требует лицензии SDK и может обрабатываться Node-RED с последовательным узлом — полезно, если в установке уже используется Node-RED для других функций автоматизации здания.
Формат последовательных событий RS232 и парсинг в Node-RED
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 approachПрактический сценарий: офисное здание в Великобритании
Типичное офисное здание в Великобритании с Net2 на главном входе и аварийном выходе использует SDK-сервис для управления автоматизацией на основе occupancy через KNX. Паттерн «последний пользователь вышел» устраняет необходимость в расписаниях по времени и реагирует на фактическое использование здания.
Офис в Великобритании — от событий доступа к управлению зданием через KNX
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 с Beckhoff TwinCAT
ACU Net2 поддерживают OSDP v2 по RS485 для подключения считывателей карт, совместимых с OSDP. Для проектов KNX с уже установленным контроллером Beckhoff TwinCAT в щите, терминал EtherCAT EL6700 RS485 в сочетании с библиотекой OSDP позволяет одному контроллеру обрабатывать данные считывателя OSDP и шину KNX TP, устраняя необходимость в Windows-сервере.
Подключение Beckhoff TwinCAT OSDP + KNX
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 maintenanceИнтеграция гостиничных карт с энергосберегающим выключателем KNX
Paxton Net2 часто используется для входа в гостиничные номера с помощью считывателей карт. Событие вставки карты запускает приветственную сцену номера через KNX, а извлечение карты инициирует последовательность снижения энергопотребления с таймером, когда номер не занят.
От карты гостиничного номера к приветственной сцене KNX
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 controlОбъединение данных occupancy Net2 и данных счетчиков энергии KNX
Отчеты Net2 экспортируют журналы occupancy — количество пользователей на этаже в час — в формате CSV. В сочетании с данными счетчиков энергии KNX от Modbus-счетчиков (SOCOMEC Countis, ABB B24) это позволяет коррелировать occupancy и потребление энергии. Такое объединение данных предоставляет доказательства для оценки BREEAM Hea 04 по благополучию occupants.
Процесс корреляции данных occupancy и энергии
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: Для работы с Net2 OEM SDK требуется регистрация на портале разработчиков Paxton по адресу developer.paxton.co.uk. Перед предоставлением документации и библиотек SDK необходимо подписать соглашение о неразглашении (NDA). Доступ к порталу обычно одобряется в течение 2–5 рабочих дней. SDK предоставляется бесплатно — лицензионный сбор не взимается.
Нужен щит KNX с готовой интеграцией Paxton Net2?
Мы проектируем и собираем слаботочные щиты с сервисом Windows для Net2 SDK, настройкой KNX IP-интерфейса, интеграцией OSDP v2 Beckhoff TwinCAT и полной пусконаладочной документацией, которая доставляется на ваш объект после тестирования.
Запросить расчёт →