---
title: "Schrack i-CHARGE CION"
description: "Schrack Technik i-CHARGE CION wallbox (11 kW and 22 kW) integrated via Modbus RTU over RS-485."
url: "https://taphome.com/en/compatibility/schrack-i-charge-cion/"
language: en
lastmod: 2026-03-28
generator: hugo
ai:
  topics: ["modbus-rtu","wallbox","rs485","ev-charger","dip-switch","mode-3"]
  questions: ["How to integrate Schrack i-CHARGE CION with TapHome?","What does the Schrack i-CHARGE CION TapHome template control?","How to connect Schrack i-CHARGE CION via RS-485 to TapHome?","How to enable Modbus RTU mode on the Schrack i-CHARGE CION?","What DIP switch settings are needed for Modbus on the i-CHARGE CION?","How to control EV charging current via TapHome?"]
---

# Schrack i-CHARGE CION

Communication: Modbus RTU

- [Schrack Technik Official Website](https://www.schrack.com)

## Integration guide

The Schrack Technik i-CHARGE CION is a Mode 3 EV charging station available in 11 kW and 22 kW variants. It communicates with TapHome via Modbus RTU over RS-485. Since TapHome Core uses Modbus TCP, a Modbus-TCP-to-RS-485 gateway (e.g. Waveshare RS485-to-Ethernet converter) is required between TapHome and the charger.

The TapHome template provides charging control (authorise/deny, current setpoint, minimum current), CP signal state monitoring, cable detection, connector lock control, voltage and temperature readings, and diagnostic warnings for common fault conditions.

## Hardware connection

### RS-485 Modbus RTU wiring

![Schrack i-CHARGE CION charge controller schematic — RS-485 Modbus RTU connection](https://taphome.com/images/compatibility/schrack-i-charge-cion/wiring-rs485-modbus_hu_db6f283de3df0e90.jpg)

The RS-485 bus is connected to the charge controller's **A** and **B** terminals at the bottom of the board. Connect these to the Modbus-TCP gateway:

- **A** → A+/D+ on the RS-485 gateway
- **B** → B-/D- on the RS-485 gateway

Use a standard CAT cable (CAT5 or better). Shielding earthing is **not required** for data transfer according to the manufacturer.

> [!NOTE]
> DIP switches 1 and 2 must both be set to **OFF** before the RS-485 terminals become active. In Modbus RTU mode, the external inputs E1 and E3 are ignored.

### Controller board overview

![Schrack i-CHARGE CION charge controller board — terminal layout with RS-485, E1, E3 and RFID connections](https://taphome.com/images/compatibility/schrack-i-charge-cion/wiring-controller-schematic_hu_eb444934f60a2009.jpg)

The controller board exposes the following terminals (top row, left to right): A4, A3, A2, A1, E1, E3, Pb, Pa. The RS-485 A/B lines connect at the bottom of the board. The RFID reader connects via RJ11.

## Configuration

### Enabling Modbus communication

![Schrack i-CHARGE CION DIP switch configuration — positions 1-4](https://taphome.com/images/compatibility/schrack-i-charge-cion/dip-switch-configuration_hu_3c2be14791878f3.jpg)

The 4-position DIP switch on the charge controller sets the operating mode and maximum charging current.

**DIP switches 1-2 — Operating mode:**

| DIP 1 | DIP 2 | Mode |
|-------|-------|------|
| **OFF** | **OFF** | **RS-485 Modbus RTU** (required for TapHome) |
| OFF | ON | Normal operation, 0-10V interface Mode 1 |
| ON | OFF | Normal operation, 0-10V interface Mode 2 |
| ON | ON | Delete/train RFID cards |

**DIP switches 3-4 — Maximum charging current:**

| DIP 3 | DIP 4 | Current |
|-------|-------|---------|
| ON | ON | 32 A (22 kW models only) |
| OFF | ON | 20 A (22 kW models only) |
| ON | OFF | 16 A |
| OFF | OFF | 13 A (default) |

> [!WARNING]
> After changing DIP switch positions, the charging station must be restarted for the new settings to take effect.

### Communication parameters

| Parameter | Default value |
|-----------|---------------|
| Baud rate | 57600 |
| Data bits | 8 |
| Stop bits | 1 |
| Parity | None |
| Slave ID | 1 |

The slave ID can be changed via Modbus register H:500. The baud rate can be changed via register H:509 (0=9600, 1=14400, 2=19200, 3=28800, 4=38400, 5=57600; other values default to 115200).

## Device capabilities

### Charging control

- **Charging Authorisation** (H:100) — enables or disables charging. In Modbus mode this overrides the external E1 input. The device also reports the **Charging Duration** as a service attribute, showing elapsed charging time in HH:MM:SS format.
- **Charging Current Setpoint** (H:101) — sets the active charging current in amperes, clamped to 6-32 A.
- **Minimum Charging Current** (H:507) — configures the minimum charging current threshold in amperes (default 13 A, range 6-32 A). Primarily used as the floor value for the 0-10V PV interface.

### Status monitoring

- **CP Status** (H:139) — displays the Mode 3 control pilot signal state: A (Standby), B (Vehicle detected), C (Ready/Charging), D (With ventilation), E (No power), F (Error), or U (Unknown).
- **Charging Cable Plugged In** (H:121, bit 0) — binary sensor indicating whether a charging cable is connected. The device also reports the **Plugged-In Duration** as a service attribute.
- **Current Charging Current** (H:126) — read-only sensor showing the present charging current in amperes.

### Voltage and temperature

- **Phase 1 Voltage** (H:167) — mains voltage on phase 1, raw value divided by 100 to display in volts.
- **Temperature** (H:303) — onboard temperature sensor in the charging controller, reported in °C.

### Connector lock

- **Connector Lock** (H:118) — controls the charging socket lock with three modes: Automatic (default), Lock, or Unlock.

### Diagnostics

The module-level ReadScript continuously monitors error conditions and reports warnings in TapHome:

| Condition | Warning |
|-----------|---------|
| H:306 != 0 | Controller error |
| H:146 != 0 | Plausibility error on PP/CP signals |
| H:121 bit 6 | Collective error |
| H:121 bit 7 | RCCB/MCB power failure |
| H:121 bit 8 | Faulty charging cable |
| H:121 bit 9 | Charging cable rejected |
| H:121 bit 10 | Charging contactor error |
| H:121 bit 12 | RCMU self-test failure |
| H:121 bit 13 | Residual current detected |

### Additional capabilities

The i-CHARGE CION also exposes registers for LED control (manual activation of Ready/Charging LEDs and RGB signalling), maximum charging current readback, cable current carrying capacity, CP generator state, PP cable identification, error word with individual fault bits, supply voltage monitoring, input voltage readings (E1, E3), configuration error detection, connector lock timing modes, analogue temperature sensor, PV scaling factor, and phase switching via the A4 output (for external contactor control). These can be added in a future template update.

## Troubleshooting

### No Modbus communication

1. Verify DIP switches 1 and 2 are both set to **OFF**
2. Check RS-485 wiring — A to A+, B to B-
3. Confirm the Modbus-TCP gateway is configured for 57600 baud, 8N1
4. Verify slave ID matches (default: 1, configurable via H:500)
5. Restart the charging station after any DIP switch changes

### Charging authorisation has no effect

The "Charging authorisation ignored" flag (H:120) is set when charging authorisation cannot be applied — for example when no vehicle is connected, a cable error exists, or the charger is in an error state. Resolve the underlying condition first.

### Voltage reading appears incorrect

Phase 1 voltage (H:167) uses a multiplier of 1/100 — a raw value of 23000 corresponds to 230.00 V. If the displayed value seems 100x too large, verify the TapHome device is configured with the correct conversion.

## Available devices 9

These devices appear in TapHome after import.

Schrack i-CHARGE CION Module

Service Attributes

|                   |                                                                                            |
|-------------------|--------------------------------------------------------------------------------------------|
| Manufacturer Name |                                                                                            |
| Device Name       |                                                                                            |
| Firmware Version  |                                                                                            |
| Baud Rate         | Current Modbus baud rate — decoded enum: 9600, 14400, 19200, 28800, 38400, 57600 or 115200 |
| RFID Tag          | Last scanned RFID tag identifier                                                           |

Service Actions

|                    |                                       |
|--------------------|---------------------------------------|
| Controller Restart | Triggers a full EVCC controller reset |

Read (module)

```taphome
if(modbusr(H, 306, Uint16), ADDWARNING("Storung"));
if(modbusr(H, 146, Uint16), ADDWARNING("Plausibitatzfehler bei PPbzw. CP"));
var r121 := modbusr(H, 121, Uint16);
if(getbit(r121, 6), ADDWARNING("Sammelstorung"));
if(getbit(r121, 7), ADDWARNING("Storung: Netzausfall FI/LS"));
if(getbit(r121, 8), ADDWARNING("Storung: Ladekabel"));
if(getbit(r121, 9), ADDWARNING("Storung: Ladekabel abgewiesen"));
if(getbit(r121, 10), ADDWARNING("Storung: charging contactor"));
if(getbit(r121, 12), ADDWARNING("Storung: RCMU Selbttest fehler"));
if(getbit(r121, 13), ADDWARNING("Storung: Fehlerstrom"));
```

Service Attributes

Herstellerbezeichnung

```taphome
modbusr(H, 800, String, 15)
```

Geratebezeichnung

```taphome
modbusr(H, 816, String, 15)
```

Firmwareversion

```taphome
modbusr(H, 832, String, 16)
```

Baudrate

```taphome
switch(modbusr(H, 509, Uint16),
0, 9600,
1, 14400,
2, 19200,
3, 28800,
4, 38400,
5, 57600,
115200)
```

RFID Tag

```taphome
modbusr(H, 129, String, 4)
```

Service Actions

Controller Neustart

```taphome
modbusw(H, 1000, Uint16, 1234)
```

Current Charging Current Variable Read-only

Present Mode 3 charging current in amperes

Register: H:126 UInt16 Unit: A numeric

Read

```taphome
MODBUSR(H, 126, Uint16)
```

Charging Authorisation Switch Read and write

Enables or disables EV charging — overrides the external E1 input in Modbus mode

Register: H:100 UInt16

Values / States: ${general\_enabled} · ${general\_disabled}

Read switch state

```taphome
MODBUSR(H, 100, Uint16)
```

Write switch state

```taphome
MODBUSW(H, 100, Uint16, St)
```

Service Attributes

Ladedauer

```taphome
var total := MODBUSR(H, 151, LittleEndianUint32);
var sec := mod(total, 60);
var min := mod(floor(total/60), 60);
var hod := floor(total/3600);

hod + ":" + tostring(min, "X2") + ":" + tostring(sec, "X2")
```

CP Status Multi-value Switch Read-only

Mode 3 control pilot signal state — A (Standby), B (Vehicle detected), C (Ready/Charging), D (With ventilation), E (No power), F (Error), U (Unknown)

Register: H:139 Char numeric

Values / States: A - Standby · B - Vehicle detected · C - Ready (charging) · D - With ventilation · E - No power (shut off) · F - Error · U - Unknown

Read switch state

```taphome
switch(MODBUSR(H, 139, Uint16),
65, 0,
66, 1,
67, 2,
68, 3,
69, 4,
70, 5,
6)
```

Charging Cable Plugged In Reed Contact Read-only

Register: H:121 UInt16 bitmask

Service Attributes

|                     |                                                           |
|---------------------|-----------------------------------------------------------|
| Plugged-In Duration | Time the cable has been plugged in, formatted as HH:MM:SS |

Read

```taphome
GETBIT(MODBUSR(H, 121, Uint16), 0)
```

Service Attributes

Angesteckt-Dauer

```taphome
var total := MODBUSR(H, 153, LittleEndianUint32);
var sec := mod(total, 60);
var min := mod(floor(total/60), 60);
var hod := floor(total/3600);

hod + ":" + tostring(min, "X2") + ":" + tostring(sec, "X2")
```

Charging Current Setpoint Variable Read and write

Active charging current setting in amperes, adjustable from 6 to 32 A

Register: H:101 UInt16 Unit: A numeric

Read

```taphome
MODBUSR(H, 101, Uint16)
```

Write

```taphome
MODBUSW(H, 101, Uint16, LINEAR(Va, 6, 6, 32, 32, BOUNDS))
```

Minimum Charging Current Variable Read and write

Minimum charging current threshold in amperes (default 13 A) — used as floor for 0-10V PV interface

Register: H:507 UInt16 Unit: A numeric

Read

```taphome
MODBUSR(H, 507, Uint16)
```

Write

```taphome
MODBUSW(H, 507, Uint16, LINEAR(Va, 6, 6, 32, 32, BOUNDS))
```

Phase 1 Voltage Variable Read-only

Register: H:167 UInt16 Unit: V numeric

Read

```taphome
MODBUSR(H, 167, Uint16)
```

Temperature Temperature Sensor Read-only

Register: H:303 UInt16 Unit: °C numeric

Read temperature

```taphome
MODBUSR(H, 303, Uint16)
```

Connector Lock Multi-value Switch Read and write

Charging socket lock control — Automatic, Lock, or Unlock

Register: H:118 UInt16 numeric

Values / States: Automatic · Verriegeln · Entriegeln

Read switch state

```taphome
switch(MODBUSR(H, 118, Uint16),
1, 1,
2, 2,
0)
```

Write switch state

```taphome
MODBUSW(H, 118, Uint16, Mu)
```

**Connection:** Modbus RTU • 57600 baud• 8N1 • Slave ID: $\[SlaveId]

Possible improvements (25)

- H:102 Automatic LED Activation — 0=manual LED control via registers 103-117, 1=automatic. Low priority — cosmetic
- H:103-117 LED Control Registers — Manual control of Ready/Charging LEDs and RGB signalling. 15 registers for timing, duty, color. Low priority — cosmetic
- H:120 Charging Authorisation Ignored — Read-only flag indicating charging authorisation was ignored (e.g. no car connected, error). Useful for diagnostics
- H:121 bits 1-5 Additional Status Bits — Contactor 1/2 active, ventilation requested, connector locking activation/response. Template only uses bit 0 (cable plugged) and bits 6-13 (errors in readscript)
- H:127 Maximum Charging Current — Maximum Mode 3 charging current value in A. Read-only. Useful to show hardware limit
- H:128 Cable Current Carrying Capacity — Current carrying capacity of charging cable in A: 0, 13, 20, 32, 63. Read-only
- H:140 CP Generator State — 0=high resistance, 1=DC positive, 2=DC negative, 3=PWM. Low-level diagnostics
- H:141 PP Status — Proximity pilot cable identification: 0, 13, 20, 32, 63 A, or SC. Read-only. Partially covered by operating manual reference
- H:147 Configuration Error — 0=no error, 1=plausibility error in configuration. Read-only diagnostic
- H:148 Voltage E1 — Voltage at input E1 in mV (multiplier 1/1000). DC input for external activation
- H:149 Voltage E3 — Voltage at input E3 in mV (multiplier 1/1000). DC input for 0-10V PV interface
- H:150 Error Word — 16-bit error word with 9 individual error bits. Partially covered by readscript warnings on H:121 bits 6-13
- H:300 Operating Mode — 0=slave. Read-only. Low value — always 0 in Modbus RTU mode
- H:301 Supply Voltage — Supply voltage of charging controller in mV (multiplier 1/1000). Internal diagnostics
- H:302 Mains Voltage — Mains voltage measured at RCCB/MCB in V (multiplier 1/100). Alternative to H:167
- H:305 Locked Time Mode — Connector lock timing mode: 1=plugged-to-unplugged, 2=charging-start-to-end, 3=charging-start-to-unplugged. R/W
- H:307 Analogue Temperature Sensor — Temperature measured value in mV. Raw analogue reading, lower priority than H:303
- H:308 A4 Control via Modbus — Control signal output A4 for external contactor. Used for phase switching (L2/L3) with safety constraints. R/W
- H:500 Bus Address Override — Modbus slave address override. Default 1. R/W
- H:501 Default Charging Current Override — Default charging current in A, only effective with specific DIP switch position. R/W
- H:503 Locking Delay — Connector locking delay in ms. Default 250ms. R/W
- H:505 Motor Activation Time — Lock motor activation time in ms. Default 500ms. R/W
- H:506 Cable Mode — 0=charging socket, 1=permanently connected cable. R/W
- H:508 PV Scaling — x ampere per volt for PV control via 0-10V interface. Default 6 A/V. R/W
- H:700 DIP Switch Configuration — Read DIP switch state via Modbus. Not in official register table — undocumented register found in nymea plugin

## Import parameters

Enter these values when you import the XML.

| Asked in the app | Default       |
|------------------|---------------|
| Slave Id         | `1`           |
| IP address       | `192.168.1.0` |

## Sources

- Modbus Register Table CION Home and Semipublic (EN)
  
  [image.schrack.com](https://image.schrack.com/dokumentationen/cion_doku/emcion11cr/modbusregistertabelle/a_emcion_homecontroller_modbus_lookup_table_en.pdf) 2026-03-28
  
  [PDF](https://taphome.com/compatibility/devices/schrack-i-charge-cion/manufacturer/modbus-register-table-en.pdf)
- Operating Manual i-CHARGE CION V2.2 (EN)
  
  [image.schrackcdn.com](https://image.schrackcdn.com/bedienungsanleitungen/a_emcionxxxx_evcchome_v2.2_en.pdf) 2026-03-28
  
  [PDF](https://taphome.com/compatibility/devices/schrack-i-charge-cion/manufacturer/operating-manual-en.pdf)
- Nymea Modbus Plugin — CION Register Definitions
  
  [github.com](https://github.com/nymea/nymea-plugins-modbus/blob/master/schrack/cion-registers.json) 2026-03-28
- evcc Discussion — CION Phase Switching
  
  [github.com](https://github.com/evcc-io/evcc/discussions/11059) 2026-03-28

Manufacturer documents are © their respective owners. They are provided as published by the manufacturer, for reference only.

## 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/)

