NexBlue Modbus Documentation

Applicable models Edge 2, Edge Max, Point 2 (UK)
Minimum firmware 03.09.88
Applicable models Delta, Delta Max, Delta Max (UK)
Minimum firmware 03.08.59

1. Communication Channel

  • Channel type: TCP/IP
  • Physical interface: RJ45 Ethernet cable connection / Wi-Fi connection

2. TCP/IP Communication

2.1 Network Configuration

  • Network mode: DHCP dynamic IP acquisition
  • Fallback mode: Static IP configured in the app
Prerequisite: Modbus TCP must be enabled in the NexBlue App before establishing a Modbus TCP connection. Go to the charger settings and turn on Modbus TCP.

In DHCP mode, the device automatically requests an IP address from the DHCP server. After an address is successfully obtained, the device broadcasts its information via mDNS. The broadcast service name is:

_nexblue_modbus._tcp.local

This can be automatically discovered by EMS systems that support mDNS, such as Home Assistant and Tibber.


2.2 Communication Port

  • Modbus TCP port: 502

2.3 Unit ID

  • Default value: 200
  • Configurable range: 1–247

In Modbus TCP, the Unit ID is a logical identifier retained for RTU compatibility. It uses the same configuration parameter as the slave address used in RTU mode.


2.4 Register Definitions

2.4.1 Register Types

Register Type Function Function Code Description
Input Registers Read input registers 0x04 Read-only registers that return measurements or status information such as voltage, current, power, temperature, cumulative energy, etc.
Holding Registers Read holding registers 0x03 Read/write registers. The master can read current configuration, current limits, mode status, etc.
Holding Registers Write single holding register 0x06 The master writes a single configuration parameter or command, such as max current setting or start/stop charging.
Holding Registers Write multiple holding registers 0x10 The master writes multiple consecutive registers at once, used for batch updates to configuration or structured parameter groups.

These four are the fundamental function codes recognized by IEC 61131-3, EN 61107, and the ISO Modbus specification, and are supported by almost all masters, PLCs, and EMS systems by default.

2.4.2 Register Address Planning (Address Map)

Principle Description
Length The address field in a Modbus frame is a 16-bit unsigned integer.
Layered partitioning Partition by function: Identification → Station-level → Per connector. Keep the logic clear and easy to extend.
Unified starting point All registers use logical addresses. Logical addressing typically starts at 0. The document shows both decimal and hexadecimal formats.
Alignment rule 32-bit data must start at an even address to avoid crossing register boundaries.
Reserved expansion space Each area keeps gaps so future versions can add fields without breaking compatibility.
Character encoding Each register is 2 bytes. Strings are fixed-length and are not padded with 0x00 for unused bytes.
Byte/Word order Single-register values use Big-Endian byte order.
Multi-register values use full Little-Endian format (DCBA): Little-Endian byte order within each 16-bit register and Little-Endian word order (least significant word first).
Access methods Input uses 0x04. Holding registers are read with 0x03 and written with 0x06 single or 0x10 multiple.

2.4.3 Identification, Version, and Time (Input, 0x04)

Address Name Type Unit Access Description
0000–0007 / 0x0000–0x0007 Brand STRING(16) RO 2 bytes per register, UTF-8/ASCII.
0008–0015 / 0x0008–0x000F Model STRING(16) RO Device model.
0016–0027 / 0x0010–0x001B Serial Number STRING(24) RO Device serial number.
0028–0035 / 0x001C–0x0023 Firmware Version STRING(16) RO For example: 04.00.19.
0036 / 0x0024 Modbus Mapping Version UINT16 RO

The high byte represents the major version, and the low byte represents the minor version.

Examples: 0x0100 = version 1.0; 0x0102 = version 1.2.

0037 / 0x0025 ConnectorCount UINT16 RO Number of connectors: 1 or 2.
0038–0039 / 0x0026–0x0027 Date UINT32 YYYYMMDD RO 32-bit even alignment. Example: 20251202.
0040–0041 / 0x0028–0x0029 Time UINT32 HHMMSS RO Example: 155630 means 15:56:30.
0042 / 0x002A Timezone UINT16 minutes RO Example: UTC+2 → +120.
0044 Hardware version STRING(16) RO Hardware version.
0043–0099 Reserved Reserved for future identification, certificates, manufacturing info, etc.

2.4.4 Real-time Status and Metering (Input, 0x04)

Address Name Type Unit Access Description
0100 / 0x0064 Chargepoint State UINT16 RO
  • 0: Available
  • 1: Preparing
  • 2: Charging
  • 3: SuspendedEVSE
  • 4: SuspendedEV
  • 5: Finishing
  • 6: Reserved
  • 7: Unavailable
  • 8: Faulted
0102–0103 / 0x0066–0x0067Current L1FLOAT32ARO32-bit even alignment.
0104–0105 / 0x0068–0x0069Current L2FLOAT32ARO
0106–0107 / 0x006A–0x006BCurrent L3FLOAT32ARO
0108–0109 / 0x006C–0x006DVoltage L1-NFLOAT32VRO
0110–0111 / 0x006E–0x006FVoltage L2-NFLOAT32VRO
0112–0113 / 0x0070–0x0071Voltage L3-NFLOAT32VRO
0114–0115 / 0x0072–0x0073Phase Angle L1FLOAT32°ROPhase angle referenced to L1-N.
0116–0117 / 0x0074–0x0075Phase Angle L2FLOAT32°ROPhase angle referenced to L1-N.
0118–0119 / 0x0076–0x0077Phase Angle L3FLOAT32°ROPhase angle referenced to L1-N.
0120–0121 / 0x0078–0x0079Active Power L1FLOAT32WRO
0122–0123 / 0x007A–0x007BActive Power L2FLOAT32WRO
0124–0125 / 0x007C–0x007DActive Power L3FLOAT32WRO
0126–0127 / 0x007E–0x007FActive Power TotalFLOAT32WRO
0128–0129 / 0x0080–0x0081Session EnergyFLOAT32kWhROCurrent session.
0130–0133 / 0x0082–0x0085Lifetime EnergyUINT64WhROCumulative energy. 64-bit, 4 registers.
0134–0135 / 0x0086–0x0087Fallback CurrentFLOAT32AROFallback current set via NexBlue App or cloud.
0136–0137 / 0x0088–0x0089Max Charging CurrentFLOAT32AROMaximum charging current set via NexBlue App or cloud.
0138 / 0x008A Phase Charging UINT16 RO
  • 0: Adaptive
  • 1: Force Single Phase
  • 2: Force Three Phase
0137–0399 / 0x0088–0x018F Reserved Reserved for voltage, power factor, frequency, per-phase power, etc.

2.4.5 Control and Safety (Holding, read 0x03 / write 0x06 or 0x10)

Notes: If the charger AC power cycles, it will automatically revert to default values and must be written again.
Address Name Type Unit Access Description
1000–1001 / 0x03E8–0x03E9 Current Limit FLOAT32 A RW Station-level current limit. Default 16A. Range 0–32A.
1002–1003 / 0x03EA–0x03EB Fallback Limit FLOAT32 A RW Disconnect fallback current can only be set to 0–16. Values below 6 are treated as 0.
1004–1005 / 0x03EC–0x03ED Fallback Timeout UINT32 s RW Heartbeat timeout threshold. Default 5 minutes. Minimum 30 seconds. Maximum 30 minutes.
1006 / 0x03EE IF_START UINT16 RW

Values:

  • 0: STOP
  • 1: START

Authorization constraints:

  • If the charger is currently controlled by OCPP, charging cannot be started or stopped through this register.
  • Please also consider potential conflicts with other authorization methods, such as the NexBlue App, Portal, or OpenAPI.
  • It is recommended to use only one charging authorization method at a time.
1007 / 0x03EF Runtime Phase Mode UINT16 RW

Values:

  • 0: Adaptive
  • 1: Force Single Phase
  • 2: Force Three Phase

Switching constraints:

  • Recommended minimum interval between phase switches: 10 minutes
  • Maximum 2 phase switches within any 1-hour period
  • Maximum 6 phase switches during a single charging session
1008–1999 Reserved Reserved for extensions.

2.4.6 Alarms and Errors (Error / Warning)

Address Name Type Unit Access Description
0400 / 0x0190 Error Bitset UINT16 RO
  • Bit0: CP voltage abnormal
  • Bit1: phase line leakage
  • Bit2: current abnormal / overcurrent
  • Bit3: voltage abnormal / overvoltage or undervoltage
  • Bit4: temperature abnormal / high or low
  • Bit5: relay stuck
  • Bit6: RCD self-test failed
  • Bit7: CP diode short
  • Bit8: PEN open
  • Bit9: PE leakage
  • Bit10: PE open
  • Bit11: PP abnormal
  • Bit12–15: reserved
0401 / 0x0191 Warning Bitset UINT16 RO
  • Bit0: meter chip abnormal
  • Bit1: inter-board communication abnormal
  • Bit2: RFID RF abnormal
  • Bit3: 868 RF abnormal
  • Bit4: 4G module abnormal
  • Bit5: cover open abnormal
  • Bit6: reserved
  • Bit7: TN system phase-loss abnormal
  • Bit8: IT neutral overcurrent
  • Bit9: grid abnormal
  • Bit10: MID mode
  • Bit11–15: reserved
0402 / 0x0192 Waiting Bitset UINT16 RO
  • Bit0: fallback due to CT offline
  • Bit1: fallback due to main unit offline
  • Bit2: paused due to low-severity error / charging profile current is 0 via OCPP
  • Bit3: host reduces current mid-charge
  • Bit4: first request sent but host has not responded
  • Bit5: load shedding protection active
  • Bit6: fallback triggered by Modbus
  • Bit6–15: reserved

Appendix

Function Codes

A function code in Modbus indicates what operation the master wants to perform on the slave. Each frame includes a 1-byte function code.

Hex Meaning Target
0x01Read CoilsBit outputs
0x02Read Discrete InputsBit inputs
0x03Read Holding Registers16-bit
0x04Read Input Registers16-bit
0x05Write Single CoilBit
0x06Write Single Holding Register16-bit
0x0FWrite Multiple CoilsBit
0x10Write Multiple Holding Registers16-bit

Summary of Common Modbus Data Types

Data Type Registers Used Bit Width C Type Meaning and Use Typical Examples
UINT16 1 16-bit uint16_t Unsigned integer Status codes, enums, counters, connector count.
INT16 1 16-bit int16_t Signed integer Temperature, offsets, timezone.
UINT32 2 32-bit uint32_t Unsigned long integer Timestamps, energy metering, second counters.
INT32 2 32-bit int32_t Signed long integer Power, directional values.
FLOAT32 2 32-bit float Single-precision float, IEEE 754. Current, voltage, power, energy, etc.
UINT64 4 64-bit uint64_t Very large integer Total energy, cumulative metering.
STRING[n] n/2 n × 8-bit char[] Text information Brand, model, serial number, version number.