NexBlue Modbus Documentation

Applicable Location: SDU

Applicable models: Edge 2, Edge Max, and Point 2 (UK)

Applicable firmware version: 03.09.61 and above

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

In DHCP mode, after power-on, 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 TypeFunctionFunction CodeDescription
Input RegistersRead input registers0x04Read-only registers that return measurements or status information such as voltage, current, power, temperature, cumulative energy, etc.
Holding RegistersRead holding registers0x03Read/write registers. The master can read current configuration, current limits, mode status, etc.
Holding RegistersWrite single holding register0x06The master writes a single configuration parameter or command, such as max current setting or start/stop charging.
Holding RegistersWrite multiple holding registers0x10The 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)

PrincipleDescription
LengthThe address field in a Modbus frame is a 16-bit unsigned integer.
Layered partitioningPartition by function: Identification → Station-level → Per connector. Keep the logic clear and easy to extend.
Unified starting pointAll registers use logical addresses. Logical addressing typically starts at 0. The document shows both decimal and hexadecimal formats.
Alignment rule32-bit data must start at an even address to avoid crossing register boundaries.
Reserved expansion spaceEach area keeps gaps so future versions can add fields without breaking compatibility.
Character encodingEach register is 2 bytes. Strings are fixed-length and are not padded with 0x00 for unused bytes.
Byte/Word orderSingle-register byte order is Big-Endian. Multi-register data uses Little-Endian word order DCBA.
Access methodsInput 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)

AddressNameTypeUnitAccessDescription
0000–0007 / 0x0000–0x0007BrandSTRING(16)RO2 bytes per register, UTF-8/ASCII.
0008–0015 / 0x0008–0x000FModelSTRING(16)RODevice model.
0016–0027 / 0x0010–0x001BSerial NumberSTRING(24)RODevice serial number.
0028–0035 / 0x001C–0x0023Firmware VersionSTRING(16)ROFor example: 04.00.19.
0036 / 0x0024Modbus Table VersionUINT16ROMapping version number, for example 0x0100.
0037 / 0x0025ConnectorCountUINT16RONumber of connectors: 1 or 2.
0038–0039 / 0x0026–0x0027DateUINT32YYYYMMDDRO32-bit even alignment. Example: 20251202.
0040–0041 / 0x0028–0x0029TimeUINT32HHMMSSROExample: 155630 means 15:56:30.
0042 / 0x002ATimezoneUINT16minutesROExample: UTC+2 → +120.
0044Hardware versionSTRING(16)ROHardware version.
0043–0099ReservedReserved for future identification, certificates, manufacturing info, etc.

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

AddressNameTypeUnitAccessDescription
0100 / 0x0064Chargepoint StateUINT16RO
  • 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 / 0x008APhase ChargingUINT16RO
  • 0: Adaptive
  • 1: Force Single Phase
  • 2: Force Three Phase
0137–0399 / 0x0088–0x018FReservedReserved 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.
AddressNameTypeUnitAccessDescription
1000–1001 / 0x03E8–0x03E9Current LimitFLOAT32ARWStation-level current limit. Default 16A. Range 0–32A.
1002–1003 / 0x03EA–0x03EBFallback LimitFLOAT32ARWDisconnect fallback current can only be set to 0–16. Values below 6 are treated as 0.
1004–1005 / 0x03EC–0x03EDFallback TimeoutUINT32sRWHeartbeat timeout threshold. Default 5 minutes. Minimum 30 seconds. Maximum 30 minutes.
1006 / 0x03EEIF_STARTUINT16RW
  • Start/Stop control
  • 0: STOP
  • 1: START
1007 / 0x03EFRuntime Phase ModeUINT16RW

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–1999ReservedReserved for extensions.

2.4.6 Alarms and Errors (Error / Warning)

AddressNameTypeUnitAccessDescription
0400 / 0x0190Error BitsetUINT16RO
  • 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 / 0x0191Warning BitsetUINT16RO
  • 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 / 0x0192Waiting BitsetUINT16RO
  • 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.

HexMeaningTarget
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 TypeRegisters UsedBit WidthC TypeMeaning and UseTypical Examples
UINT16116-bituint16_tUnsigned integerStatus codes, enums, counters, connector count.
INT16116-bitint16_tSigned integerTemperature, offsets, timezone.
UINT32232-bituint32_tUnsigned long integerTimestamps, energy metering, second counters.
INT32232-bitint32_tSigned long integerPower, directional values.
FLOAT32232-bitfloatSingle-precision float, IEEE 754.Current, voltage, power, energy, etc.
UINT64464-bituint64_tVery large integerTotal energy, cumulative metering.
STRING[n]n/2n × 8-bitchar[]Text informationBrand, model, serial number, version number.