Summary
The Domintell DDIR01 is an IR (infrared) detector module on the Domintell bus. It is monitored and driven through the Domintell Light Protocol, an ASCII frame protocol carried over RS-232 (DRS2320x communication modules) or UDP Ethernet (DETH02). The DDIR01 reports detected infrared key codes as output data type 'C' (e.g. Key 1 = '01').
Transport
protocols:
- serial
- udp
serial:
# DRS23202 (the only RS-232 module carrying Output Light Protocol, needed to receive DDIR01 status):
baud_rate: 57600 # fixed on DRS23202; DRS23201 (input-only) selectable 1200/2400/4800/9600/19200/38400/57600
data_bits: 8
parity: none # DRS23202: no parity selection; DRS23201 (module version >= 4): none/even/odd selectable
stop_bits: 1
flow_control: none # DB9 pins 4 (DSR) / 6 (DTR) reserved for handshake, not used; pin 2 = TX, pin 3 = RX, pin 5 = GND
addressing:
port: 17481 # DETH02 UDP default port (changeable); IP via DHCP or static (static recommended)
auth:
type: UNRESOLVED # source does not state this (was inferred none: no auth procedure on the RS-232 interface in source)
# UNRESOLVED: DETH02 supports an OPTIONAL password: LOGIN sent with a password encrypted via the
# Domintell libdeth SDK (>= 2.0.0, deth_encryptpsw, 4-10 char password). Encryption/token format
# is not specified in this source. Only one client can connect to a DETH02 at a time.
Traits
# - queryable: '%S' ask-status-of-module parameter documented (works on any module except MEMO)
- queryable # inferred from documented '%S' status query
Actions
# Scope: DDIR01 (ModType 'DIR') actions + the documented interface/session commands needed to
# reach it. Commands for OTHER Domintell modules (BU1/TRV/DIM/AMP/...) documented in the same
# source are out of scope for this spec - they belong to their own module specs.
#
# Input Light Protocol action frame format (from source):
# {ModType 3 char}{Serial Number 6 char hexadecimal}-{Output Number 1 char}{action parameters}
# - parameters always start with '%'
# - max 30 characters per message
# - strings are NOT case sensitive (auto-uppercased); leading/trailing spaces trimmed
# - '<CR>'/'<LF>'/'<TAB>' are replaced by ASCII 0x0D/0x0A/0x09; trailing CR/LF supported
# - extended mode (since version 5): control characters as '<xx>', decimal 00-31, 2 chars
- id: send_ir_command
label: Send IR Command
kind: action
# Composed from the generic action frame format + documented '%C' action parameter
# ('C' = Infrared Command, "Example: Key 1 = '01'"). No DIR-specific input sample in source.
command: "DIR{serial}-{output}%C{key}"
params:
- name: serial
type: string
description: "Module serial number, 6-char hexadecimal (leading '0' may be space)"
- name: output
type: integer
description: "Output number on the module (1 hex digit)"
- name: key
type: string
description: "Infrared key code, 2 hex chars (e.g. '01' = Key 1)"
- id: query_status
label: Query Module Status
kind: query
# '%S' = ask status of module (documented as not working with MEMO). Examples in source:
# 'BU1 11%S', 'AMP000003%S', 'PBL 13%S'.
command: "DIR{serial}%S"
params:
- name: serial
type: string
description: "Module serial number, 6-char hexadecimal (leading '0' may be space)"
- id: ping
label: Ping Interface Module
kind: query
command: "PING"
params: []
- id: mod_version
label: Get Interface Module Version
kind: query
command: "MOD_VERSION"
params: []
- id: appinfo
label: Get Application Info (Module List)
kind: query
command: "APPINFO"
params: []
- id: login
label: Open Session (DETH02)
kind: action
# If a password is set, send the string returned by the libdeth library instead of plain LOGIN.
command: "LOGIN"
params: []
- id: logout
label: Close Session (DETH02)
kind: action
command: "LOGOUT"
params: []
- id: hello
label: Session Keepalive (DETH02)
kind: action
# Send every 50 seconds to keep the session open; prefer over PING for keepalive.
command: "HELLO"
params: []
- id: help
label: ETH Reserved Help Command
kind: query
command: "HELP"
params: []
# UNRESOLVED: response format for HELP not documented in source (only "Send \"HELP\" from ETH")
- id: set_output
label: Set Output
kind: action
command: "{module}{serial}-{output}%I"
params:
- name: module
type: string
description: "Module type token (e.g. BIR)"
- name: serial
type: string
description: "Module serial number, 6-char hexadecimal"
- name: output
type: string
description: "Output number (1 char)"
- id: reset_output
label: Reset Output
kind: action
command: "{module}{serial}-{output}%O"
params:
- name: module
type: string
description: "Module type token (e.g. BIR)"
- name: serial
type: string
description: "Module serial number, 6-char hexadecimal"
- name: output
type: string
description: "Output number (1 char)"
- id: set_decimal_value
label: Set Decimal Value
kind: action
command: "{module}{serial}-{output}%Dxxx"
params:
- name: module
type: string
description: "Module type token"
- name: serial
type: string
description: "Module serial number, 6-char hexadecimal"
- name: output
type: string
description: "Output number (1 char)"
- name: value
type: string
description: "Decimal value; range UNRESOLVED"
- id: start_dimming
label: Start Dimming
kind: action
command: "{module}{serial}-{output}%DB"
params:
- name: module
type: string
description: "Module type token"
- name: serial
type: string
description: "Module serial number, 6-char hexadecimal"
- name: output
type: string
description: "Output number (1 char)"
- id: stop_dimming
label: Stop Dimming
kind: action
command: "{module}{serial}-{output}%DE"
params:
- name: module
type: string
description: "Module type token"
- name: serial
type: string
description: "Module serial number, 6-char hexadecimal"
- name: output
type: string
description: "Output number (1 char)"
- id: increase_decimal_value
label: Increase Decimal Value
kind: action
command: "{module}{serial}-{output}%I%Dxxx"
params:
- name: module
type: string
description: "Module type token"
- name: serial
type: string
description: "Module serial number, 6-char hexadecimal"
- name: output
type: string
description: "Output number (1 char)"
- name: value
type: string
description: "Decimal step percent; range UNRESOLVED"
- id: decrease_decimal_value
label: Decrease Decimal Value
kind: action
command: "{module}{serial}-{output}%O%Dxxx"
params:
- name: module
type: string
description: "Module type token"
- name: serial
type: string
description: "Module serial number, 6-char hexadecimal"
- name: output
type: string
description: "Output number (1 char)"
- name: value
type: string
description: "Decimal step percent; range UNRESOLVED"
- id: set_heating_temperature
label: Set Heating Temperature
kind: action
command: "{module}{serial}%Txx.x"
params:
- name: module
type: string
description: "Module type token"
- name: serial
type: string
description: "Module serial number, 6-char hexadecimal"
- name: value
type: string
description: "Decimal temperature value; range UNRESOLVED"
- id: set_cooling_temperature
label: Set Cooling Temperature
kind: action
command: "{module}{serial}%Uxx.x"
params:
- name: module
type: string
description: "Module type token"
- name: serial
type: string
description: "Module serial number, 6-char hexadecimal"
- name: value
type: string
description: "Decimal temperature value; range UNRESOLVED"
- id: select_sound_auxiliary
label: Select Sound Auxiliary
kind: action
command: "AMP{serial}-{output}%Ax"
params:
- name: serial
type: string
description: "Module serial number, 6-char hexadecimal"
- name: output
type: string
description: "Output number (1 char)"
- name: auxiliary
type: string
description: "1=>4, Tuner = 5"
- id: set_tuner_frequency
label: Set Tuner Frequency
kind: action
command: "AMP{serial}-{output}%Fxxx,xxxx"
params:
- name: serial
type: string
description: "Module serial number, 6-char hexadecimal"
- name: output
type: string
description: "Output number (1 char)"
- name: frequency
type: string
description: "Decimal Tuner Frequency in Mhz; format xxx,xxxx"
- id: set_temperature_mode
label: Set Temperature Mode
kind: action
command: "{module}{serial}%Mx"
params:
- name: module
type: string
description: "Module type token"
- name: serial
type: string
description: "Module serial number, 6-char hexadecimal"
- name: mode
type: string
description: "1=absence, 2=auto, 5=confort, 6=gel"
- id: set_regulation_mode
label: Set Regulation Mode
kind: action
command: "{module}{serial}%Rx"
params:
- name: module
type: string
description: "Module type token"
- name: serial
type: string
description: "Module serial number, 6-char hexadecimal"
- name: mode
type: string
description: "0=off, 1=heating, 2=cooling, 3=mixed"
- id: simulate_push
label: Simulate Push
kind: action
command: "{module}{serial}-{input}%Px"
params:
- name: module
type: string
description: "Module type token"
- name: serial
type: string
description: "Module serial number, 6-char hexadecimal"
- name: input
type: string
description: "Input number (1 char)"
- name: push
type: string
description: "1=Begin short push, 2=End short push, 3=Begin long push, 4=End long push"
- id: shutter_high
label: Move Shutter High
kind: action
command: "{module}{serial}-{output}%H"
params:
- name: module
type: string
description: "Module type token"
- name: serial
type: string
description: "Module serial number, 6-char hexadecimal"
- name: output
type: string
description: "Output number (1 char)"
- id: shutter_low
label: Move Shutter Low
kind: action
command: "{module}{serial}-{output}%L"
params:
- name: module
type: string
description: "Module type token"
- name: serial
type: string
description: "Module serial number, 6-char hexadecimal"
- name: output
type: string
description: "Output number (1 char)"
- id: toggle_bir_output
label: Toggle BIR Output
kind: action
command: "BIR{serial}-{output}"
params:
- name: serial
type: string
description: "Module serial number, 6-char hexadecimal"
- name: output
type: string
description: "Output number (1 char)"
- id: toggle_dim_output
label: Toggle DIM Output
kind: action
command: "DIM{serial}-{output}"
params:
- name: serial
type: string
description: "Module serial number, 6-char hexadecimal"
- name: output
type: string
description: "Output number (1 char)"
- id: operate_trv_shutter
label: Operate TRV Shutter
kind: action
command: "TRV{serial}-{output}"
params:
- name: serial
type: string
description: "Module serial number, 6-char hexadecimal"
- name: output
type: string
description: "Output number (1 char)"
- id: operate_trp_shutter
label: Operate TRP Shutter
kind: action
command: "TRP{serial}-{output}"
params:
- name: serial
type: string
description: "Module serial number, 6-char hexadecimal"
- name: output
type: string
description: "Output number (1 char)"
Feedbacks
# Output Light Protocol status frame format (from source):
# {ModType 3 char}{Serial 6 char hex}{optional '-IO number', 1 hex digit}{Data Type 1 char}{Datas n*2 hex}
# For DDIR01 the data type is 'C' (Infrared Command). Leading '0' in fields may be a space.
- id: ir_key
type: string
description: "Detected infrared key code (data type 'C'); e.g. '01' = Key 1. Frame: DIR{serial}C{key}"
- id: pong
type: string
description: "Reply from DRS23202/DETH02 after 'PING' - literal 'PONG'"
query_command: "PING"
- id: mod_version
type: string
description: "Reply to 'MOD_VERSION' (hex), e.g. 'MOD_VERSION=SER_V0A' (DRS23202) or 'MOD_VERSION=ETH_V01_STK_V01' / 'MOD_VERSION=ETH02_V14-STK_V0F' (DETH02)"
query_command: "MOD_VERSION"
- id: appinfo
type: string
description: "APPINFO stream: header line 'APPINFO (PROG M x.xx date Rev=n) => appname.dap', then one line per module IO with name and [House|floor|room]; fully retrieved when a line starting with 'END APPINFO' is received"
query_command: "APPINFO"
- id: session_status
type: enum
values: [opened, closed, timeout]
description: "DETH02 session strings: 'INFO:Session opened:INFO' / 'INFO:Session closed:INFO' / 'INFO:Session timeout:INFO'"
Variables
# No settable non-action parameters documented for DDIR01 in source.
# System variables (SYS000000..SYS000009, FRO000001) are master-level, not DDIR01 - out of scope.
# UNRESOLVED: none populated; source documents no DIR variables.
Events
- id: ir_key_detected
description: "Unsolicited DIR status frame (data type 'C') sent on every status change; Output Light Protocol transfers an ASCII text for each status change on the installation"
- id: firmware_upgrade_required
description: "Strings starting with '!!' - e.g. '!! PLEASE UPGRADE DRS23202 FIRMWARE >= 18 !!', '!! PLEASE UPGRADE DETH02 FIRMWARE >= 17 !!', '!! PLEASE UPGRADE DETH02 FIRMWARE'. Must be shown to user, who should contact Domintell support; some statuses/commands may not work until firmware update"
- id: restart_master_required
description: "'! PLEASE RESTART MASTER 0x???????? !' - module ???????? (serial) not in the DRS23202/DETH02 module table"
Macros
- id: deth02_session_init
label: DETH02 Session Initialization
steps:
- command: "MOD_VERSION"
note: "Check you are talking to a DETH02"
- command: "LOGIN"
note: "Open session; if a password is set, send the string returned by the libdeth library"
- command: "APPINFO"
note: "Download list of modules (ends at 'END APPINFO')"
- command: "PING"
note: "Refresh statuses after LOGIN; no end-of-list marker exists"
- id: deth02_keepalive
label: DETH02 Session Keepalive
steps:
- command: "HELLO"
note: "Send every 50 seconds; avoid PING for keepalive (bus traffic / master resources)"
- id: deth02_session_close
label: DETH02 Session Close
steps:
- command: "LOGOUT"
note: "Send before exiting/backgrounding the application so other clients can use the DETH02"
Safety
confirmation_required_for: []
interlocks: []
# WARNING (verbatim from source): "Do NOT connect Domintell bus on the DETH0x RJ45 connector,
# this can cause fatal damages to the DETH0x module."
# Operational timing constraints (from source, not safety interlocks): minimum 25 ms between two
# RS-232 messages OR use the reserved '&' character; for DETH02 wait for the reply (5-100 ms) or
# at least 5 ms between Ethernet frames - frames closer than 4 ms apart may be lost.
Notes
- Source: "Domintell Light Protocol guide and DRS2320x / ETHERNET communication interface", protocol doc v1.27.08 (24/10/2018).
- DDIR01 appears in the module table as ModType
DIR, description "IR detector", possible output data typeC(Infrared Command). - Input specifications are the same for all modules (data to Domintell); output protocol specs differ per module type.
- Output Light Protocol (needed to receive DDIR01 events) is only available on DRS23202 (RS-232) and DETH02 (UDP), and only on installations with fewer than 241 modules. DRS23201/DUSB01/DGSM01 support Input Light Protocol only.
- Multiple DRS23202/DETH02 in one installation require configuration software >= 1.19.11 and firmware >= v15 (DRS23202) / v7 (DETH02).
- Frame separators: multiple Light Protocol messages (not DETH0x-specific commands) may be encapsulated in one Ethernet frame using the reserved '&' character; messages may start with '&'. Only ONE DETH0x-specific command per UDP frame; DETH0x commands cannot be '&' concatenated.
- Light Protocol strings have priority over ASCII (custom) string links — a link configured with text like "BIR000B4B-1" is decoded as Light Protocol and the custom link will not execute.
- DETH02 session: reply latency 5-100 ms depending on frame length and bus/network load; you must wait for at least one reply before sending the next command or new commands will be dropped.
- RS-232 wiring: straight female-male DB9 cable to a computer; null-modem (cross) male-male DB9 to control another device. Pins: 2 = TX data out, 3 = RX data in, 5 = ground; pins 4/6 (DSR/DTR) reserved for handshake, not used (contact support@domintell.com for specific handshake).
- APPINFO notes relevant to DIR clients: room/floor info given as [House|floor|room] after item name; version format
[VERS=0xnn]or[VERS=UNSCANNED]; charset given asCP=1252(Windows-1252) from OS 1.27.06; warnings/errors start with '!' and must be shown to the user. - DETH02 password login uses the Domintell SDK library libdeth (
deth_encryptpsw: password 4-10 ASCII chars, 'LOGIN' auto-appended, binary output may contain null chars). SDK >= 2.0.0 required; binary incompatible with 1.0.0.
Provenance
source_domains:
- pro.domintell.com
source_urls:
- https://pro.domintell.com/web/content/112505
retrieved_at: 2026-09-10T13:22:10.402Z
last_checked_at: 2026-10-07T20:54:00.565Z
Verification Summary
verdict: verified
checked_at: 2026-10-07T20:54:00.565Z
matched_actions: 32
action_count: 32
confidence: medium
summary: "All 32 action units map to source commands and transport values are supported; the source has only about 2 uncovered generic commands (%X, %K), so coverage is above 0.9. (8 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "%X"
- "%K"
- "source is the Domintell Light Protocol guide (v1.27.08, 24/10/2018) for the"
- "DETH02 supports an OPTIONAL password: LOGIN sent with a password encrypted via the"
- "response format for HELP not documented in source (only \"Send \\\"HELP\\\" from ETH\")"
- "none populated; source documents no DIR variables."
- "DDIR01 firmware version compatibility not stated in source"
- "no DIR-specific input or output sample strings in source; DIR frames composed from generic frame formats + 'C' data/parameter type"
- "DETH02 password encryption format (libdeth SDK only, not in this source)"
- "response format of ETH reserved command \"HELP\" not documented"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0