Register Table
Below is the register table for Modbus TCP for the "WARP Charger" setting.
Input Registers can only be read and provide information about the state of the charger. Certain registers are only available if the specified Feature is available. For example, the information about charging power, energy, etc. is only available if the charger has a Meter: A WARP3 Charger Pro (version with energy meter) provides these values, a WARP3 Charger Smart (version without energy meter) does not.
Which features the charger offers can be read via Discrete Inputs. Control of the charger is possible via the Holding Registers and Coils.
Input Registers (Function codes: Read: 4)
| Register Address | Name | Type | Required Feature | Description |
|---|---|---|---|---|
| 0 | Register table version | uint32 | --- | Current version: 4 |
| 2 | Firmware version major | uint32 | --- | For example 2 for firmware 2.4.0+66558ade |
| 4 | Firmware version minor | uint32 | --- | For example 4 for firmware 2.4.0+66558ade |
| 6 | Firmware version patch | uint32 | --- | For example 0 for firmware 2.4.0+66558ade |
| 8 | Firmware timestamp | uint32 | --- | Unix timestamp of the time when the firmware was built. For example 0x66558ADE for firmware 2.4.0+66558ade (1716882142 in decimal), corresponding to May 28 2024 07:42:22 UTC. |
| 10 | Charger ID | uint32 | --- | Decoded form of the base58 UID used for the default hostname, SSID, etc. For example 185460 for X8A. |
| 12 | Uptime (s) | uint32 | --- | Time in seconds since the boot-up of the charger firmware. |
| 1000 | IEC-61851 state | uint32 | evse |
|
| 1002 | Charge state | uint32 | evse |
|
| 1004 | Current user | uint32 | evse | ID of the user who started a charge. 0 if the charge is not assigned to a user. 0xFFFFFFFF if no charge is running. |
| 1006 | Start timestamp (min) | uint32 | evse | A Unix timestamp in minutes indicating the start time of the current charge. 0 if there was no time sync available. |
| 1008 | Charging duration (s) | uint32 | evse | Duration of the current charge in seconds. Available even without time synchronization. |
| 1010 | Allowed charging current | uint32 | evse | Maximum allowed current that a vehicle is allowed to draw. Minimum of all active charging slots. |
| 1012 to 1050 | Charging slots (mA) | uint32 (20x) | evse | Value of all charging slots in milliampere. 0xFFFFFFFF if a slot is not active. 0 if a slot blocks. Else between 6000 (6 A) and 32000 (32 A). |
| 1100 | "Button pressed" timestamp | uint32 | evse | Timestamp of the last button press. 0 if the button was not pressed since the EVSE boot-up. To act on a button press, read this value periodically. Every time this value changes, the button was pressed at least once. |
| 1102 | "Button released" timestamp | uint32 | evse | Timestamp of the last button release. 0 if the button was not released since the EVSE boot-up. To act on a button release, read this value periodically. Every time this value changes, the button was released at least once. |
| 2000 | Meter type | uint32 | meter |
|
| 2002 | Power (W) | float32 | meter | The current charging power in watts. |
| 2004 | Absolute energy (kWh) | float32 | meter | The energy charged since manufacturing of the energy meter. |
| 2006 | Relative energy (kWh) | float32 | meter | The energy charged since the last reset (see holding register 2000). |
| 2008 | Energy this charge | float32 | meter | The energy charged since the start of the current charge. |
| 2100 to 2268 | Additional meter values | float32 (85x) | all_values | See API documentation |
| 3100 | Connected phases | uint32 | phase_switch | The number of phases connected to the vehicle (1 or 3). |
| 3102 | Phase switch state | uint32 | phase_switch | Current state of the phase switch control:
|
| 4000 to 4009 | ID of the last NFC tag | uint8 (20x) | nfc | ID of the last seen NFC tag as ASCII coded hex string. |
| 4010 | Age of the last NFC tag | uint32 | nfc | Time in milliseconds since the last NFC tag was seen. An age less than 1000 ms usually indicates that the tag is currently being held to the charger. |
| 4012 to 4013 | Type of the last NFC tag | uint8 (4x) | nfc | Type of the last seen NFC tag as ASCII-encoded hex string.
|
Holding Registers (Function codes: Read: 3, Write: 16)
| Register Address | Name | Type | Required Feature | Description |
|---|---|---|---|---|
| 0 | Reboot | uint32 | --- | Reboots the charger (in other words the ESP Brick) to for example apply configuration changes. Password: 0x012EB007 |
| 1000 | Charge release | uint32 | evse | Deprecated. Use coil 1000 instead! 0 to block charging; a value other than 0 to allow charging. |
| 1002 | Allowed current (mA) | uint32 | evse | 0 mA or 6000 mA to 32000 mA. Other charging slots can further decrease the allowed current. |
| 1004 | Front LED blink pattern | uint32 | evse | Controls the LED in the charger's front button. Blink pattern and duration must be written with a single Modbus command! To also set the color (WARP3 only), registers 1004 up to and including 1013 must be written with a single command. The setting "Status LED control" must be enabled to be able to control the LED.
|
| 1006 | Front LED blink duration | uint32 | evse | The duration in milliseconds for which the blink pattern set in register 1004 shall be shown. At most 65536 ms are supported. |
| 1008 | Front LED blink hue | uint32 | evse | Hue of the color (in the HSV color space) that the blink pattern set in register 1004 should be shown in. Only values between 0 and 359 (°) are allowed. The color can only be set for a WARP3 charger. WARP and WARP2 Charger use a blue LED. |
| 1010 | Front LED blink saturation | uint32 | evse | Saturation of the color (in the HSV color space) that the blink pattern set in register 1004 should be shown in. Only values between 0 and 255 are allowed. The color can only be set for a WARP3 charger. WARP and WARP2 Charger use a blue LED. |
| 1012 | Front LED blink value | uint32 | evse | Value of the color (in the HSV color space) that the blink pattern set in register 1004 should be shown in. Only values between 0 and 255 are allowed. The color can only be set for a WARP3 charger. WARP and WARP2 Charger use a blue LED. |
| 2000 | Reset relative energy | uint32 | meter | Resets the relative energy value (input register 2006). Password: 0x3E12E5E7 |
| 3100 | Trigger phase switch | uint32 | phase_switch | 1 for single-phase charging. 3 for three-phase charging. |
| 4000 to 4009 | ID of the NFC tag to inject | uint8 (20x) | nfc | By writing the registers 4000 up to and including 4013 a NFC tag can be injected (as if using the API nfc/inject_tag):
Writing registers 4012 and 4013 starts the tag injection. Holding Registers 4000 to 4013 will be cleared afterwards! The data format of holding registers 4000 to 4013 is identical to the one of input registers 4000 to 4013 (that contain the last seen NFC tag). A physically existing tag can later be (re-)injected by presenting it to the charger and copying the values read from input registers 4000 to 4013 into holding registers 4000 to 4013. |
| 4010 to 4011 | Allowed action of the NFC tag to inject | uint8 (4x) | nfc | See description of holding registers 4000 to 4009. |
| 4012 to 4013 | Type of the NFC tag to inject | uint8 (4x) | nfc | See description of holding registers 4000 to 4009. |
Discrete Inputs (Function codes: Read: 2)
| Register Address | Name | Type | Required Feature | Description |
|---|---|---|---|---|
| 0 | Feature "evse" available | bool | --- | A charge controller is available. This feature should be available on all chargers provided the hardware is working correctly. |
| 1 | Feature "meter" available | bool | --- | An energy meter and hardware to read it via RS485 is available. This feature will bet set if an energy meter has been read successfully at least once via Modbus. |
| 2 | Feature "phases" available | bool | --- | The detected energy meter supports phase-wise measurements. |
| 3 | Feature "all_values" available | bool | --- | The detected energy meter supports more measurements. |
| 4 | Feature "phase_switch" available | bool | --- | Hardware and configuration support switching between single- and three-phase charging. |
| 5 | Feature "nfc" available | bool | --- | A NFC Bricklet is connected and active. |
| 6 | Feature "evse_sd_input" available | bool | --- | The charge controller has a shutdown input. |
| 7 | Feature "evse_gp_input" available | bool | --- | The charge controller has a general purpose input. |
| 8 | Feature "evse_gp_output" available | bool | --- | The charge controller has a general purpose output. |
| 1100 | State of the shutdown input | bool | evse_sd_input | 0 - closed, 1 - open |
| 1101 | State of the general purpose input | bool | evse_gp_input | 0 - closed, 1 - open |
| 1102 | Front button state | bool | evse | 0 - not pressed, 1 - pressed |
| 2100 | Phase L1 connected | bool | phases | |
| 2101 | Phase L2 connected | bool | phases | |
| 2102 | Phase L3 connected | bool | phases | |
| 2103 | Phase L1 active | bool | phases | |
| 2104 | Phase L2 active | bool | phases | |
| 2105 | Phase L3 active | bool | phases |
Coils (Function codes: Read: 1, Single write: 5, Multiple write: 15)
| Register Address | Name | Type | Required Feature | Description |
|---|---|---|---|---|
| 1000 | Charge release | bool | evse | false or 0 to block charging. true or 1 to allow charging. Identical to holding register 1000. |
| 1001 | Manual charge release | bool | evse | false or 0 to block charging. true or 1 to allow charging. Sets the same charge release that is used via the web interface, the evse/[start/stop]_charging API or (depending on the button configuration) the button. |
| 1100 | Sets the state of the general purpose output | bool | evse_gp_output | 0 - connected to ground, 1 - high impedance |