---
title: "GTD IOT 8-Button Touch Switch"
description: "GTD IOT 8-button capacitive touch panel with Modbus RTU over RS-485. 8 switch channels with LED state mirroring via TapHome."
url: "https://taphome.com/en/compatibility/gtd-iot-8-button-touch-switch/"
language: en
lastmod: 2026-03-30
generator: hugo
ai:
  topics: ["modbus-rtu","i/o-module","rs485","capacitive-touch","wall-switch","led-backlight"]
  questions: ["How to integrate GTD IOT 8-button touch switch with TapHome?","What does the GTD IOT touch switch TapHome template control?","How to connect GTD IOT touch switch via RS-485 to TapHome?","How does the LED backlight mirroring work on the GTD touch panel?","What Modbus registers does the GTD 8-button touch switch use?"]
---

# GTD IOT 8-Button Touch Switch

Communication: Modbus RTU

- [GTD IOT 8-Button Touch Switch Product Page](https://gtdiot.en.made-in-china.com/product/eniRXBoGOfWx/China-OEM-LED-Bedside-Control-8-Buttons-Panel-Touch-Light-Dimmer-Control-Smart-Wall-Switches-with-12-24V-RS-485-Modbus.html)

## Integration guide

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.

> [!WARNING]
> **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.

| Button | Switch register | LED register | Poll interval |
|--------|----------------|--------------|---------------|
| Button 1 | H:0 | H:10 | 100 ms |
| Button 2 | H:1 | H:11 | 100 ms |
| Button 3 | H:2 | H:12 | 100 ms |
| Button 4 | H:3 | H:13 | 100 ms |
| Button 5 | H:4 | H:14 | 100 ms |
| Button 6 | H:5 | H:15 | 100 ms |
| Button 7 | H:6 | H:16 | 100 ms |
| Button 8 | H:7 | H:17 | 100 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 8

These devices appear in TapHome after import.

GTD IOT 8-Button Touch Switch Module

Write (module)

```taphome
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 Read and write

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

Register: H:0 → H:0, H:10 Bool

Values / States: ON · OFF

Read switch state

```taphome
MODBUSR(H, 0, Bool)
```

Initialize

```taphome
MODBUSW(H, 30, Bool, 1); MODBUSW(H, 47, Bool, 1)
```

Button 2 Switch Read and write

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

Register: H:1 → H:1, H:11 Bool

Values / States: ON · OFF

Read switch state

```taphome
MODBUSR(H, 1, Bool)
```

Initialize

```taphome
MODBUSW(H, 31, Bool, 1); MODBUSW(H, 47, Bool, 1)
```

Button 3 Switch Read and write

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

Register: H:2 → H:2, H:12 Bool

Values / States: ON · OFF

Read switch state

```taphome
MODBUSR(H, 2, Bool)
```

Initialize

```taphome
MODBUSW(H, 32, Bool, 1); MODBUSW(H, 47, Bool, 1)
```

Button 4 Switch Read and write

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

Register: H:3 → H:3, H:13 Bool

Values / States: ON · OFF

Read switch state

```taphome
MODBUSR(H, 3, Bool)
```

Initialize

```taphome
MODBUSW(H, 33, Bool, 1); MODBUSW(H, 47, Bool, 1)
```

Button 5 Switch Read and write

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

Register: H:4 → H:4, H:14 Bool

Values / States: ON · OFF

Read switch state

```taphome
MODBUSR(H, 4, Bool)
```

Initialize

```taphome
MODBUSW(H, 34, Bool, 1); MODBUSW(H, 47, Bool, 1)
```

Button 6 Switch Read and write

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

Register: H:5 → H:5, H:15 Bool

Values / States: ON · OFF

Read switch state

```taphome
MODBUSR(H, 5, Bool)
```

Initialize

```taphome
MODBUSW(H, 35, Bool, 1); MODBUSW(H, 47, Bool, 1)
```

Button 7 Switch Read and write

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

Register: H:6 → H:6, H:16 Bool

Values / States: ON · OFF

Read switch state

```taphome
MODBUSR(H, 6, Bool)
```

Initialize

```taphome
MODBUSW(H, 36, Bool, 1); MODBUSW(H, 47, Bool, 1)
```

Button 8 Switch Read and write

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

Register: H:7 → H:7, H:17 Bool

Values / States: ON · OFF

Read switch state

```taphome
MODBUSR(H, 7, Bool)
```

Initialize

```taphome
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

## Import parameters

Enter these values when you import the XML.

| Asked in the app | Default       |
|------------------|---------------|
| Slave ID         | `1`           |
| IP address       | `192.168.0.1` |

## Sources

- GTD IOT 8-Button Touch Switch — Product Page
  
  [gtdiot.en.made-in-china.com](https://gtdiot.en.made-in-china.com/product/eniRXBoGOfWx/China-OEM-LED-Bedside-Control-8-Buttons-Panel-Touch-Light-Dimmer-Control-Smart-Wall-Switches-with-12-24V-RS-485-Modbus.html) 2026-03-30

## Related Documentation

- [Modbus Integration](https://taphome.com/en/compatibility/modbus-guide/)
- [Modbus](https://taphome.com/en/docs/integration/modbus/)
- [Simple configuration using templates](https://taphome.com/en/docs/integration/modbus/templates/)
- [Modbus scripts and prefetch](https://taphome.com/en/docs/script/modbus-scripts/)
- [Modbus functions](https://taphome.com/en/docs/script/modbus/)
- [Modbus data types](https://taphome.com/en/docs/script/modbus-data-types/)

