# KNX Datapoint Types (DPT) DPT определяет, как интерпретировать данные, передаваемые по шине KNX. Формат: **ГлавныйТип.Подтип** (например, `1.001`, `9.001`). Главный тип задаёт размер и способ кодирования, подтип — физическую величину, единицы и диапазон. ## Сводка главных типов DPT | Главный тип | Размер данных | Кодирование | Примеры подтипов | |-------------|--------------------|-------------------------------------------|------------------------------------------------| | **1** | 1 бит | Булево (0/1) | 1.001 Switch, 1.003 Enable, 1.008 Up/Down | | **3** | 4 бита | Управление диммированием (шаг + напр.) | 3.007 Dimming control | | **4** | 4 бита | Управление жалюзи (шаг + напр.) | 4.008 Blind control | | **5** | 1 байт | Целое без знака (0..255) | 5.001 0..100%, 5.004 0..255%, 5.003 Angle | | **6** | 1 байт | Целое со знаком (-128..127) | 6.001 Percentage (-128%..127%) | | **7** | 2 байта | Целое без знака (0..65535) | 7.001 Pulse counter, 7.012 Current (mA) | | **8** | 2 байта | Целое со знаком (-32768..32767) | 8.001 Signed counter, 8.010 Time (s) | | **9** | 2 байта | Плавающая точка (KNX float) | 9.001 Temperature (°C), 9.004 Lux | | **10** | 3 байта | Время суток | 10.001 Time of day | | **11** | 3 байта | Дата | 11.001 Date | | **12** | 4 байта | Целое без знака (0..4 294 967 295) | 12.001 Counter, 12.005 Energy (Wh) | | **13** | 4 байта | Целое со знаком (±2 147 483 648) | 13.001 Signed counter | | **14** | 4 байта | Плавающая точка IEEE 754 | 14.056 Pressure (Pa), 14.068 Wind speed (m/s) | | **16** | до 14 байт | Строка символов (ASCII/ISO 8859-1) | 16.000 ASCII, 16.001 ISO 8859-1 | | **17** | 1 байт | Номер сцены | 17.001 Scene number | | **20** | 1 байт | Режим HVAC | 20.102 HVAC mode | | **24** | 3 байта | Одиночный символ | 24.001 Char ASCII | --- ## DPT 1 — логические значения (1 бит) Один бит данных (0 или 1). Интерпретируется в зависимости от подтипа. | Подтип | Название | Значение 0 | Значение 1 | |--------|----------------------|-----------------|------------------| | 1.001 | Switch | Off | On | | 1.002 | Bool | False | True | | 1.003 | Enable | Disable | Enable | | 1.005 | Alarm | No alarm | Alarm | | 1.008 | Up/Down | Up | Down | | 1.009 | Step | Close / decrease| Open / increase | | 1.010 | Start/Stop | Stop / close | Start / open | | 1.011 | State | Inactive | Active | Пример телеграммы: `0x01` — включить свет (для DPT 1.001). --- ## DPT 3 и DPT 4 — управление диммированием и жалюзи (4 бита) Оба используют 4-битный ниббл: старший бит задаёт направление, младшие три — шаг (0..7, 0 = стоп). ### DPT 3 — Dimming control (3.007) - Бит 3: 0 = уменьшить, 1 = увеличить. - Биты 2..0: шаг диммирования. ### DPT 4 — Blind control (4.008) - Бит 3: 0 = вверх, 1 = вниз. - Биты 2..0: интервал движения (обычно в шагах/секундах). Пример: `0xC` (1100₂) — увеличить яркость на 4 шага. --- ## DPT 5 — 1 байт без знака (0..255) 8-битное беззнаковое целое. Важнейшие подтипы: | Подтип | Название | Физический диапазон | Примечание | |--------|-------------------------|---------------------|-------------------------------------------| | 5.001 | Scaling | 0% … 100% | Процент = raw × 100 / 255. 0xFF = 100% | | 5.003 | Angle | 0° … 360° | Угол = raw × 360 / 255 | | 5.004 | Percentage (0..255%) | 0% … 255% | Процент = raw. 0xFF = 255% | | 5.005 | Counter pulses | 0 … 255 | Сырой счёт | | 5.010 | Value 1-byte unsigned | 0 … 255 | Без масштабирования | ⚠️ **Важно:** 0xFF для 5.001 = 100%, для 5.004 = 255%. Не путайте при стыковке устройств. --- ## DPT 6 — 1 байт со знаком (-128..127) 8-битное знаковое целое (дополнение до двух). | Подтип | Название | Диапазон | |--------|------------------------|-----------------| | 6.001 | Percentage signed | -128% … 127% | | 6.010 | Counter 1-byte signed | -128 … 127 | | 6.020 | Status mode 3 (HVAC) | -128 … 127 | --- ## DPT 7 и DPT 8 — 2 байта, без знака и со знаком 16-битные целые, передаются в порядке Big Endian (старший байт первым). - **DPT 7 (0..65535)**: 7.001 Pulse counter, 7.012 Current (mA), 7.013 Brightness (lux). - **DPT 8 (-32768..32767)**: 8.001 Signed counter, 8.010 Time (s). --- ## DPT 9 — 2 байта, плавающая точка (KNX float) Формат, специфичный для KNX (не IEEE 754). Структура 16 бит (старший байт первым): - Бит 15: знак (S) — 0 = +, 1 = – - Биты 14..11: экспонента (E) — 0..15 - Биты 10..0: мантисса (M) — знаковое целое, -2048..2047 Значение вычисляется по формуле: **V = (0.01 × M) × 2^E** Точность зависит от выбранной пары (E,M). Диапазон покрывает от очень малых до ~±670760. ### Популярные подтипы DPT 9 | Подтип | Физическая величина | Единица | Пример применения | |--------|---------------------|---------|---------------------------| | 9.001 | Температура | °C | Датчики температуры | | 9.002 | Разность температур | K | Тепловые счётчики | | 9.004 | Освещённость | lux | Датчики освещённости | | 9.005 | Скорость | м/с | Анемометры | | 9.006 | Давление | Па | Датчики давления | | 9.007 | Влажность | % | Гигрометры | | 9.008 | Концентрация CO₂ | ppm | Датчики качества воздуха | Пример кодирования 21,5 °C: E=1, M=1075, S=0 → телеграмма 0x1433. --- ## DPT 10 и DPT 11 — время и дата (3 байта) - **DPT 10 (Time of day)**: байты: день недели (1..7, 0=нет), часы (0..23), минуты (0..59), секунды (0..59). Упакованы в 3 байта. - **DPT 11 (Date)**: год (0..99), месяц (1..12), день (1..31). Используются для синхронизации часов, расписаний. --- ## DPT 12, 13, 14 — 4-байтовые значения 32-битные данные для больших чисел и высокой точности. - **DPT 12 (беззнаковое)**: 0..4 294 967 295. 12.001 Counter, 12.005 Energy (Wh). - **DPT 13 (знаковое)**: ±2 147 483 648. 13.001 Signed counter. - **DPT 14 (IEEE 754 float)**: 32-битная плавающая точка. 14.056 Pressure (Pa), 14.068 Wind speed (m/s). --- ## DPT 16 и DPT 24 — строки и символы - **DPT 16 (Character string)**: до 14 символов. Первый байт — длина, затем символы. 16.000 — ASCII, 16.001 — ISO 8859-1 (Latin-1). Пример: текстовые метки, сообщения на дисплеях. - **DPT 24 (Char, 3 bytes)**: один символ из ISO 8859-1. Используется реже, обычно для посимвольного вывода. --- ## DPT 17 и 18 — сцены - **DPT 17 (Scene number)**: 1 байт. Биты 0..5 — номер сцены (0..63), бит 7 — 0 = активация, 1 = обучение (запись) сцены. - **DPT 18 (Scene control)**: позволяет команды «следующая/предыдущая сцена». --- ## DPT 20 — HVAC режим 1 байт, кодирующий режим отопления/вентиляции/кондиционирования. Подтип 20.102: например, значения — Comfort, Standby, Economy, Building protection. --- ## Важно: совместимость DPT в групповом адресе - Все объекты, связанные **одним групповым адресом**, должны иметь одинаковый или согласованный DPT. - Телеграмма KNX **не содержит информации о DPT**. Устройства используют свой сконфигурированный тип. - Несовпадение DPT (например, 5.001 и 5.004) приведёт к ошибочной интерпретации значений. Всегда сверяйтесь с официальным каталогом DPT в ETS и документацией производителя. Эта шпаргалка охватывает наиболее частые типы; для специальных задач существуют сотни других подтипов. ---