TapHome

GTD IOT 8-Button Touch Switch

Modbus RTU
Submitted by
Last updated: 03. 2026
GTD IOT 8-Button Touch Switch

The GTD IOT 8-Button Touch Switch (model 15D-BK-MODBUS) is a capacitive touch panel with 8 buttons on a tempered glass surface. It communicates via Modbus RTU over RS-485 and is designed for wall-mount light switching and scene control. The TapHome template exposes all 8 buttons as independent on/off switches with automatic LED backlight mirroring.

The panel operates at 12–24 V DC and supports customizable LED backlight colors (red, green, blue, white, yellow, orange). Each button press toggles the corresponding switch state and LED indicator.

Hardware connection

RS-485 wiring

Connect the panel to TapHome Core using a standard RS-485 connection:

  • A+ → A+/D+ on TapHome RS-485
  • B- → B-/D- on TapHome RS-485
  • GND → GND on TapHome power supply

Communication settings:

  • Baud rate: 19200
  • Parity: None
  • Stop bits: 1
  • Data bits: 8

Power supply: 12–24 V DC via the same connector or a separate power feed.

Important — Grounding

The GND wire must be connected between the touch panel and the TapHome power supply. Without proper grounding, communication errors may occur.

Configuration

Slave ID

The Modbus Slave ID is configured during template import in TapHome. The default value is 1. Each panel on the bus must have a unique Slave ID.

Initialization

The template automatically initializes each button into touch-to-toggle mode on first connection:

  • H:30–H:37 — set to 1 (touch-to-toggle mode for buttons 1–8)
  • H:47 — set to 1 (global enable for touch input)

This initialization runs once via the InitializeScript when TapHome first communicates with the panel.

Device capabilities

Button control (Buttons 1–8)

All 8 buttons operate identically. Each button is exposed as an on/off switch in TapHome:

  • Read: The switch state is read from holding registers H:0 through H:7 (one per button)
  • Write: When toggled from TapHome, the template writes the switch state to H:0–H:7 and mirrors it to the LED register H:10–H:17

This means the physical LED on the panel always reflects the current switch state, whether the button was pressed locally on the panel or toggled remotely from TapHome.

ButtonSwitch registerLED registerPoll interval
Button 1H:0H:10100 ms
Button 2H:1H:11100 ms
Button 3H:2H:12100 ms
Button 4H:3H:13100 ms
Button 5H:4H:14100 ms
Button 6H:5H:15100 ms
Button 7H:6H:16100 ms
Button 8H:7H:17100 ms
Write script

The module-level WriteScript updates all 8 switch states and their corresponding LED states in a single Modbus transaction. When any button state changes in TapHome, the script writes both the switch register (H:0–H:7) and the LED register (H:10–H:17) to keep them synchronized.

Additional capabilities

The GTD IOT touch panel also supports features not currently implemented in the TapHome template:

  • LED color control (likely H:20–H:27) — per-button LED backlight color selection (red, green, blue, white, yellow, orange)
  • Button mode configuration (likely H:40–H:46) — per-button mode selection (toggle, momentary, dimmer). The current template uses only toggle mode

These can be added as custom Modbus devices in TapHome if needed.

Troubleshooting

No Modbus communication
  1. Check RS-485 cables:
    • A+ correctly connected to A+/D+ on TapHome
    • B- correctly connected to B-/D- on TapHome
    • GND connected — most common issue
  2. Verify the Slave ID matches between the panel and TapHome
  3. Confirm TapHome is set to: 19200 baud, no parity, 1 stop bit, 8 data bits
  4. Check bus termination — if the panel is the last device on the bus, a 120 Ohm termination resistor may be needed
Button press not detected
  1. Verify the InitializeScript has run (H:30–H:37 and H:47 should be set to 1)
  2. Check that the panel is powered (12–24 V DC)
  3. Try re-importing the template in TapHome to re-trigger initialization
LED not matching switch state
  1. Confirm the WriteScript is active — it mirrors switch state to LED registers
  2. If LED was changed manually via a custom script, re-import the template to restore synchronization

Available devices

GTD IOT 8-Button Touch Switch Module

GTD IOT 8-button touch switch

Write (module)
MODBUSW(H, 0, Bool, St2); MODBUSW(H, 10, Bool, St2);
MODBUSW(H, 1, Bool, St3); MODBUSW(H, 11, Bool, St3);
MODBUSW(H, 2, Bool, St4); MODBUSW(H, 12, Bool, St4);
MODBUSW(H, 3, Bool, St5); MODBUSW(H, 13, Bool, St5);
MODBUSW(H, 4, Bool, St6); MODBUSW(H, 14, Bool, St6);
MODBUSW(H, 5, Bool, St7); MODBUSW(H, 15, Bool, St7);
MODBUSW(H, 6, Bool, St8); MODBUSW(H, 16, Bool, St8);
MODBUSW(H, 7, Bool, St9); MODBUSW(H, 17, Bool, St9)
Button 1 Switch

Capacitive touch button 1 — on/off switch with LED backlight mirroring

Register: H:0H:0, H:10 Bool
Values / States: ON · OFF

Button 1

Read switch state
MODBUSR(H, 0, Bool)
Initialize
MODBUSW(H, 30, Bool, 1); MODBUSW(H, 47, Bool, 1)
Button 2 Switch

Capacitive touch button 2 — on/off switch with LED backlight mirroring

Register: H:1H:1, H:11 Bool
Values / States: ON · OFF

Button 2

Read switch state
MODBUSR(H, 1, Bool)
Initialize
MODBUSW(H, 31, Bool, 1); MODBUSW(H, 47, Bool, 1)
Button 3 Switch

Capacitive touch button 3 — on/off switch with LED backlight mirroring

Register: H:2H:2, H:12 Bool
Values / States: ON · OFF

Button 3

Read switch state
MODBUSR(H, 2, Bool)
Initialize
MODBUSW(H, 32, Bool, 1); MODBUSW(H, 47, Bool, 1)
Button 4 Switch

Capacitive touch button 4 — on/off switch with LED backlight mirroring

Register: H:3H:3, H:13 Bool
Values / States: ON · OFF

Button 4

Read switch state
MODBUSR(H, 3, Bool)
Initialize
MODBUSW(H, 33, Bool, 1); MODBUSW(H, 47, Bool, 1)
Button 5 Switch

Capacitive touch button 5 — on/off switch with LED backlight mirroring

Register: H:4H:4, H:14 Bool
Values / States: ON · OFF

Button 5

Read switch state
MODBUSR(H, 4, Bool)
Initialize
MODBUSW(H, 34, Bool, 1); MODBUSW(H, 47, Bool, 1)
Button 6 Switch

Capacitive touch button 6 — on/off switch with LED backlight mirroring

Register: H:5H:5, H:15 Bool
Values / States: ON · OFF

Button 6

Read switch state
MODBUSR(H, 5, Bool)
Initialize
MODBUSW(H, 35, Bool, 1); MODBUSW(H, 47, Bool, 1)
Button 7 Switch

Capacitive touch button 7 — on/off switch with LED backlight mirroring

Register: H:6H:6, H:16 Bool
Values / States: ON · OFF

Button 7

Read switch state
MODBUSR(H, 6, Bool)
Initialize
MODBUSW(H, 36, Bool, 1); MODBUSW(H, 47, Bool, 1)
Button 8 Switch

Capacitive touch button 8 — on/off switch with LED backlight mirroring

Register: H:7H:7, H:17 Bool
Values / States: ON · OFF

Button 8

Read switch state
MODBUSR(H, 7, Bool)
Initialize
MODBUSW(H, 37, Bool, 1); MODBUSW(H, 47, Bool, 1)
Connection: Modbus RTU • 19200 baud• 8N1 • Slave ID: $[SlaveId]
Possible improvements (2)
  • H:20–H:27 LED Color Control (per button) — Product page mentions LED backlight with customizable colors (red, green, blue, white, yellow, orange). Likely configurable per-button via dedicated registers, not exposed in template
  • H:40–H:46 Button Mode Configuration (per button) — Product name mentions 'Light Dimmer Control' — panel may support toggle/momentary/dimmer modes per button. Template only uses on/off toggle mode (H:30–H:37 init). Registers H:40–H:46 gap suggests config space

Sources