Modbus TCP API
This document provides a complete overview of the Modbus Slave features of the Charge Controller.
Based on revision v0.14.
1. Config UI parameters reference for Operators
2. Modbus Unit ID
The Modbus TCP Server on the charge controller will reply to messages with any Unit ID from 1 to 255.
3. OCPP multiple connector scenarios
On an OCPP setup with 2 connectors, both controllers are accessible by connecting through the one acting as a master controller. In this case it is necessary to establish a separate connection to each charge controller.
The second connector's controller is accessible on the port corresponding to Modbus TCP Server Base Port + 1.
Assuming that the Modbus TCP Server Base Port is configured on the
default port 502, the first connector can be accessed by
connecting a Modbus Client to port 502, and the second connector
can be accessed by connecting a separate Modbus Client to the first
connector charge controller's port 503.
4. Word and byte ordering
With the notable exception of the values in the register destined to error codes (those with names prefixed with ERROR_CODES_ ) which are explained separately in their corresponding section, all other registers are to be read and written with the high byte first and the low byte after. For double registers (32-bit) the order of the words is the high word first and the low word after.
As an example, if registers 200-201 are read and contain a value of 0x0001 for register 200 and a value of 0x1F40 for register 201, these values are to be read as 0x00011F40, that is a decimal value of 73536.
5. Lowering charging current
To lower the charging currant the HEMS shall write to the Register HEMS_CURRENT_LIMIT as described in the HEMS configuration options section.
Please note the actual signaled current as indicated by the register named SIGNALED_CURRENT can be lower than the HEMS_CURRENT_LIMIT since other limitations (such as charging cable, or dynamic load management limits) could apply.
6. Supported function codes
All registers described in this document are HOLDING registers. Therefore, the only supported function codes are:
- 0x03 -- Read single register
- 0x06 -- Write single register
- 0x10 -- Write multiple registers.
7. Bulk read of registers
It is possible to read a range of registers at a time (bulk read) starting at a specified register and within the boundaries of the register section.
If there are gaps with undefined register numbers in this range, value '0' will be returned.
8. General system information
The register in the first table that follows contain general information about the system, about its status, error states, FW and protocol versions and other system and configuration information.
The Charge Point Status as defined in OCPP 1.5 and 1.6 is available in the OCPP_CP_STATUS register.
Note that there's some difference between the two versions, so for example the value 1, which is used for "Occupied", is only valid for OCPP 1.5 and instead in 1.6 a more detailed value is available.
For the descriptions of each of the charge point status values, please refer to the OCPP specification that corresponds to the version in use.
For details on how to read and interpret the registers designated for error handling please refer to the section Error states mask mappings.
9. Meter values from OCPP primary meter
Meter values are unsigned and sent in 32-bit words.
When not available, registers contain a 0xffffffff value to indicate that no meter value for the requested register is present.
For maintaining backwards compatibility with previous systems, where the METER_TOTAL_ENERG and METER_TOTAL_POW registers were not present, the Total Power and Total Energy values can also be read from the Power and Energy registers corresponding to L1. In that case, the Power and Energy registers for L2 and L3 will return 0xffffffff.
10. Dynamic Load Management (DLM)
This is information mostly concerning the DLM Master. Everything except for register 600 will be available only for devices with a DLM Master role set (meaning a value of 1 or 2 is returned on this register). | -->
11. Charge process information
Charge process information is information collected during, or inferred from, the charging process.
Registers
- 705
- 709
are deprecated and only to be used for clients that implement until version 10 of this protocol.
The older registers can still be read in newer versions for backwards compatibility, but it is discouraged to do so in newer implementations.
Once the values in those registers reach their maximum, they will stay at the maximum value until the next session is started or until the charging process is finished according to each case.
12. HEMS configuration options
13. Authorization with IDTag
Please note that for these registers to be enabled, the corresponding
option must be set in the controller HEMS/Modbus setting named Modbus Slave Allow Start/Stop Transaction.
When writing to these registers, the effect will be exactly the same as if one physically presented an RFID card in fron of the card reader. That means it will start/stop the transaction accordingly based on each scenario's workflow.
Note that the registers in this table are WRITE only. To READ the IDTAG
currently in use please refer to the registers prefixed with
READ_ID_TAG_ on their name.
14. Error states mask mappings
In order to represent any simultaneous error states, the value read from the ERROR_CODES registers can be AND'ed with different mask mappings to identify which individual errors may be present at any given time in the system.
Since only bits 0 to 21 are used in the current specification, it is possibly to read only from registers 111-112 in order to optimize the fetching of values.
For completion however, it is clarified here how to read and interpret the values when reading all 8 registers.
To test for each error individually, the resulting value of reading all registers has to be masked against the corresponding error mask. An example is given below on how to achieve this.
Supposing the following value (presented here in HEX) is read from the
ERROR_CODES registers:
Register: 105-106 107-108 109-110 111-112
Value: 0000 0000 0000 0000 0000 0000 4100 0000
Please focus first in the value of registers 111-112.
The bits of a double word are numbered from 0 through 31 with bit 0 being the least significant bit. The word containing bit 0 is the low word and the word containing bit 31 is the high word. Each 32-bit register has the low word first, and each word has the low byte first.
So in the case of registers 111-112 the words must first be inverted, to get a value of 0000 4100, and then the bytes of each word must be inverted too, in order to get a value of 0000 0041.
That is to be done for each register pair (105-106, 107-108, 109-110, 111-112), and once it is done, then the whole resulting value can be simply assembled from all registers by starting from a value of 0, and going through each word (register) in order, first shifting to the left then adding.
The result from the case above would be:
0000 0000 0000 0000 0000 0000 0000 0041
Finally, to identify which individual errors are present this value must be AND'ed to each error mask. So by doing the following operation:
0000 0000 0000 0000 0000 0000 0000 0041
AND
0000 0000 0000 0000 0000 0000 0000 0001
Ii is possible to identify that an error "ERR_RCMB_TRIGGERED" is present.
And by continuing doing for example:
0000 0000 0000 0000 0000 0000 0000 0041
AND
0000 0000 0000 0000 0000 0000 0000 0040
It can be observed that also there is an error "ERR_CONTACTOR_WELD" present.
Mask values for bits 0 to 26 (LSB 0) are specified in the following table. Bits 27 to 127 are reserved.
15. Error events mask mappings
The same as described in chapter above applies here, except:
Supposing the following value (presented here in HEX) is read from the ERR_EVT_CODES registers:
Register: 158-159 160-161 162-163 164-165
Value: 0000 0000 0000 0000 0000 0000 4100 0000
Please focus first in the value of registers 164-165.
16. Appendix
16.1. Exhaustive list of Modbus registers
Here's an exhaustive list of Modbus registers for convinience:
All data is transferred in network byte order/big endian.
| Device/Protocol | Reg. Type | Address | Name | R/W | Nr. Regs. | Description |
|---|---|---|---|---|---|---|
| Phoenix | Input | 100 | EV Status | R | 1 | Returns the Control Pilot state |
| Phoenix | Input | 101 | Proximity Current | R | 1 | Returns signaled current in Amps |
| Phoenix | Input | 102 | Charging Time (seconds) | R | 2 | Duration since beginning of charge |
| Phoenix | Input | 104 | Legacy | R | 1 | Do not use. |
| Phoenix | Input | 105 | Firmware Version | R | 2 | Returns the Ebee Application version number. Example: 0.91 = (0x30, 0x2E, 0x39, 0x31) 4.40 = (0x34, 0x2E, 0x34, 0x34). |
| Phoenix | Input | 107 | Legacy | R | 1 | Do not use. |
| Phoenix | Input | 108 | Voltage L1 | R | 2 | Returns the voltage of phase 1 of the ocpp meter in V. |
| Phoenix | Input | 110 | Voltage L2 | R | 2 | Returns the voltage of phase 2 of the ocpp meter in V. |
| Phoenix | Input | 112 | Voltage L3 | R | 2 | Returns the voltage of phase 3 of the ocpp meter in V. |
| Phoenix | Input | 114 | Current L1 | R | 2 | Returns the current of phase 1 of the ocpp meter in mA. |
| Phoenix | Input | 116 | Current L2 | R | 2 | Returns the current of phase 2 of the ocpp meter in mA. |
| Phoenix | Input | 118 | Current L3 | R | 2 | Returns the current of phase 3 of the ocpp meter in mA. |
| Phoenix | Input | 120 | Total Power (OCPP Meter Power) | R | 2 | Returns the power read from the ocpp meter in W. |
| Phoenix | Input | 122 | Reactive Power | R | 2 | |
| Phoenix | Input | 124 | Real Power | R | 2 | |
| Phoenix | Input | 126 | Power Factor | R | 2 | |
| Phoenix | Input | 128 | Energy | R | 2 | Energy read from meter in Wh |
| Phoenix | Input | 130 | Max. power ever seen from OCPP Meter | R | 2 | Max. power value ever seen since boot |
| Phoenix | Input | 132 | Charged Energy (Wh) | R | 2 | Sum of charged energy for the current session |
| Phoenix | Input | 134 | Grid Frequency | R | 2 | Returns the frequency read from the ocpp meter in Hz. |
| Phoenix | Input | 136 | Assumed Maximum Charging Current L1 | R | 2 | |
| Phoenix | Input | 138 | Assumed Maximum Charging Current L2 | R | 2 | |
| Phoenix | Input | 140 | Assumed Maximum Charging Current L3 | R | 2 | |
| Phoenix | Input | 200 | Input values | R | 1 | |
| Phoenix | Input | 201 | - | R | 1 | - |
| Phoenix | Input | 202 | Plug lock detect | R | 1 | Status of plug lock detection |
| Phoenix | Input | 203 | - | R | 1 | - |
| Phoenix | Input | 204 | - | R | 1 | - |
| Phoenix | Input | 205 | - | R | 1 | - |
| Phoenix | Input | 206 | - | R | 1 | - |
| Phoenix | Input | 207 | - | R | 1 | - |
| Phoenix | Input | 208 | - | R | 1 | - |
| Phoenix | Holding | 310 | IP Address - 1st Octet | R | 1 | Get the IP address of the active interface connected to the backend. |
| Phoenix | Holding | 311 | IP Address - 2nd Octet | R | 1 | Get the IP address of the active interface connected to the backend. |
| Phoenix | Holding | 312 | IP Address - 3rd Octet | R | 1 | Get the IP address of the active interface connected to the backend. |
| Phoenix | Holding | 313 | IP Address - 4th Octet | R | 1 | Get the IP address of the active interface connected to the backend. |
| TQ-DM100 | Holding | 1000 | Charge Point State | R | 1 | |
| TQ-DM100 | Holding | 1001 | Charge State | R | 1 | |
| TQ-DM100 | Holding | 1002 | EVSE State | R | 1 | |
| TQ-DM100 | Holding | 1004 | Cable State | R | 1 | |
| TQ-DM100 | Holding | 1006 | EVSE Error Code | R | 1 | |
| TQ-DM100 | Holding | 1008 | Current L1 | R | 1 | Returns the current of phase 1 of the ocpp meter in mA. |
| TQ-DM100 | Holding | 1010 | Current L2 | R | 1 | Returns the current of phase 2 of the ocpp meter in mA. |
| TQ-DM100 | Holding | 1012 | Current L3 | R | 1 | Returns the current of phase 3 of the ocpp meter in mA. |
| TQ-DM100 | Holding | 1020 | Active Power | R | 2 | |
| TQ-DM100 | Holding | 1024 | Active Power L1 | R | 2 | |
| TQ-DM100 | Holding | 1028 | Active Power L2 | R | 2 | |
| TQ-DM100 | Holding | 1032 | Active Power L3 | R | 2 | |
| TQ-DM100 | Holding | 1036 | Energy | R | 2 | |
| TQ-DM100 | Holding | 1100 | Hardware current limit | R | 1 | |
| TQ-DM100 | Holding | 1102 | Minimum current limit | R | 1 | |
| TQ-DM100 | Holding | 1104 | Max. Current from EVSE | R | 1 | |
| TQ-DM100 | Holding | 1106 | Max. Current from Cable | R | 1 | |
| TQ-DM100 | Holding | 1108 | Max. Current from EV | R | 1 | |
| TQ-DM100 | Holding | 1200 | User priority | R | 1 | |
| TQ-DM100 | Holding | 1300 | EV Battery State (% 0-100) | R | 1 | Returns an estimate of the SoC |
| TQ-DM100 | Holding | 1302 | EV Battery Capacity (Wh) | R | 2 | Returns an estimate of the EV Battery Capacity |
| TQ-DM100 | Holding | 1400 | Schedule Type | R | 1 | |
| TQ-DM100 | Holding | 1402 | Required Energy (Wh) | R | 2 | |
| TQ-DM100 | Holding | 1406 | Required Battery State (% 0-100) | R | 1 | |
| TQ-DM100 | Holding | 1408 | Scheduled Time (hhmmss) | R | 2 | |
| TQ-DM100 | Holding | 1412 | Scheduled Date (yymmdd) | R | 2 | |
| TQ-DM100 | Holding | 1502 | Charged Energy (Wh) | R | 1 | Sum of charged energy for the current session |
| TQ-DM100 | Holding | 1504 | Start Time (hhmmss) | R | 2 | Start time of charging process |
| TQ-DM100 | Holding | 1508 | Charging Time (seconds) | R | 2 | Duration since beginning of charge |
| TQ-DM100 | Holding | 1512 | End Time (hhmmss) | R | 2 | End time of charging process |
| TQ-DM100 | Holding | 1600 | User ID | R | 2 | User ID (OCPP IdTag) from the current session. Bytes 0 to 3. |
| TQ-DM100 | Holding | 1602 | User ID | R | 2 | User ID (OCPP IdTag) from the current session. Bytes 4 to 7. |
| TQ-DM100 | Holding | 1604 | User ID | R | 2 | User ID (OCPP IdTag) from the current session. Bytes 8 to 11. |
| TQ-DM100 | Holding | 1606 | User ID | R | 2 | User ID (OCPP IdTag) from the current session. Bytes 12 to 15. |
| TQ-DM100 | Holding | 1608 | User ID | R | 2 | User ID (OCPP IdTag) from the current session. Bytes 16 to 19. |
| TQ-DM100 | Holding | 1620 | 15118 Smart vehicle detected | R | 1 | Returns 1 if an EV currently connected is a smart vehicle, or 0 if no EV connected or it is not a smart vehicle |
| TQ-DM100 | Holding | 2000 | Safe Current (Amps.) | R/W | 1 | Max. charge current under communication failure |
| TQ-DM100 | Holding | 2002 | Comm. Timeout (seconds) | R/W | 1 | Communication timeout |
| TQ-DM100 | Holding | 5000 | Charge Power (W) | W | 2 | |
| TQ-DM100 | Holding | 5004 | Charge Current (A) | W | 1 | |
| TQ-DM100 | Holding | 5006 | Charge Control | 1 | Unimplemented | |
| TQ-DM100 | Holding | 5008 | Charge Release | 1 | Unimplemented | |
| TQ-DM100 | Holding | 5900 | Free Charging | R/W | 1 | Unimplemented |
| TQ-DM100 | Holding | 5902 | Free Charging Mode | R/W | 1 | Unimplemented |
| TQ-DM100 | Holding | 6000 | Life Bit | R/W | 1 | 0/1 Toggle-Bit |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 100 | Firmware Version | R | 2 | Returns the Ebee Application version number. Example: 0.91 = (0x30, 0x2E, 0x39, 0x31) 4.40 = (0x34, 0x2E, 0x34, 0x34). |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 104 | OCPP CP Status | R | 1 | Charge Point status according to the OCPP spec. enumeration |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 105 | Error Codes 1 | R | 2 | Aggregated error states (see Spec. sheet for mask mappings) |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 107 | Error Codes 2 | R | 2 | Aggregated error states (see Spec. sheet for mask mappings) |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 109 | Error Codes 3 | R | 2 | Aggregated error states (see Spec. sheet for mask mappings) |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 111 | Error Codes 4 | R | 2 | Aggregated error states (see Spec. sheet for mask mappings) |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 120 | Protocol Version | R | 2 | Ebee Modbus TCP Server Protocol Version number (example: 0.6 = {0x30, 0x2E, 0x36}). |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 122 | Vehicle (Control Pilot) state | R | 1 | A=1, B=2, C=3, D=4, E=5 |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 123 | Vehicle (Control Pilot) state in Hex. format | R | 1 | A = 0x0A, B = 0x0B, etc. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 124 | Charge Point availability | R/W | 1 | Get/Set available/unavailable |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 131 | Safe Current (Amps.) | R/W | 1 | Max. charge current under communication failure |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 132 | Comm. Timeout (seconds) | R/W | 1 | Communication timeout |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 133 | Hardware current limit | R | 1 | |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 134 | Operator current limit | R | 1 | |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 135 | RCMB Mode | R | 1 | |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 136 | RCMB Last RMS value (integral part) | R | 1 | |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 137 | RCMB Last RMS value (fractional part) | R | 1 | |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 138 | RCMB Last DC value (integral part) | R | 1 | |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 139 | RCMB Last DC value (fractional part) | R | 1 | |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 140 | Relays State | R | 1 | |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 141 | Device ID | R | 1 | This register is a device identifier and always returns the value 0xEBEE (decimal 60398) |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 142 | ChargePoint Model | R | 2 | ChargePoint Model. Bytes 0 to 3. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 144 | ChargePoint Model | R | 2 | ChargePoint Model. Bytes 4 to 7. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 146 | ChargePoint Model | R | 2 | ChargePoint Model. Bytes 8 to 11. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 148 | ChargePoint Model | R | 2 | ChargePoint Model. Bytes 12 to 15. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 150 | ChargePoint Model | R | 2 | ChargePoint Model. Bytes 16 to 19. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 152 | Plug lock detect | R | 1 | Status of plug lock detection |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 153 | Firmware Version | R | 1 | Returns the Ebee Application major version number |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 154 | Firmware Version | R | 1 | Returns the Ebee Application minor version number |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 155 | Firmware Version | R | 1 | Returns the Ebee Application patch version number |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 156 | Build Number | R | 2 | Returns the Ebee Application build number |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 158 | Error Events 1 | R | 2 | Aggregated error events (see Spec. sheet for mask mappings) |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 160 | Error Events 2 | R | 2 | Aggregated error events (see Spec. sheet for mask mappings) |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 162 | Error Events 3 | R | 2 | Aggregated error events (see Spec. sheet for mask mappings) |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 164 | Error Events 4 | R | 2 | Aggregated error events (see Spec. sheet for mask mappings) no error code --- 0x1 no error code --- 0x2 no error code --- 0x4 no error code --- 0x8 no error code --- 0x10 01-02-017 --- 0x20 01-02-018 --- 0x40 no error code --- 0x80 01-03-005 --- 0x100 01-04-001 --- 0x200 01-04-010 --- 0x400 01-04-009 --- 0x800 01-04-006 --- 0x1000 01-04-008 --- 0x2000 01-04-011 --- 0x4000 01-04-012 --- 0x8000 01-04-013 --- 0x10000 01-04-002 --- 0x20000 01-04-003 --- 0x40000 01-06-002 --- 0x80000 01-03-007 --- 0x100000 |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 166 | Free Charging | R/W | 1 | 0 = Free charging disabled, 1 = Free charging enabled |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 167 | Free Charging Mode | R/W | 1 | Modes 0 to 5 (see Spec. sheet for details) |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 168 | Manufacturer serial number | R | 2 | Manufacturer serial number. Bytes 0 to 3. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 170 | Manufacturer serial number | R | 2 | Manufacturer serial number. Bytes 4 to 7. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 172 | Manufacturer serial number | R | 2 | Manufacturer serial number. Bytes 8 to 11. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 174 | Manufacturer serial number | R | 2 | Manufacturer serial number. Bytes 12 to 15. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 176 | Manufacturer serial number | R | 2 | Manufacturer serial number. Bytes 16 to 19. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 178 | Manufacturer serial number | R | 2 | Manufacturer serial number. Bytes 20 to 23. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 180 | Manufacturer serial number | R | 1 | Manufacturer serial number. Byte 24 and ' |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 182 | Phytec-Board temperature | R/W | 2 | Phytec-Board temperature from comtraxx system |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 184 | Reservation expiry time | R | 2 | Reservation expiry time |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 200 | Energy L1 | R | 2 | Energy in Wh. (phase 1) from primary meter |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 202 | Energy L2 | R | 2 | Energy in Wh. (phase 2) from primary meter |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 204 | Energy L3 | R | 2 | Energy in Wh. (phase 3) from primary meter |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 206 | Power L1 | R | 2 | Power in W (phase 1) from primary meter |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 208 | Power L2 | R | 2 | Power in W (phase 2) from primary meter |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 210 | Power L3 | R | 2 | Power in W (phase 3) from primary meter |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 212 | Current L1 | R | 2 | Current in mA (phase 1) from primary meter |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 214 | Current L2 | R | 2 | Current in mA (phase 2) from primary meter |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 216 | Current L3 | R | 2 | Current in mA (phase 3) from primary meter |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 218 | Total Energy | R | 2 | Total Energy in Wh. from primary meter |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 220 | Total Power | R | 2 | Total Power in Wh. from primary meter |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 222 | Voltage L1 | R | 2 | Returns the voltage of phase 1 of the ocpp meter in V. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 224 | Voltage L2 | R | 2 | Returns the voltage of phase 2 of the ocpp meter in V. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 226 | Voltage L3 | R | 2 | Returns the voltage of phase 3 of the ocpp meter in V. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 500 | (Reserved) | R | 1 | |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 501 | (Reserved) | R | 1 | |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 502 | (Reserved) | R | 1 | |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 503 | (Reserved) | R | 1 | |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 504 | (Reserved) | R | 1 | |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 505 | (Reserved) | R | 1 | |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 506 | (Reserved) | R | 1 | |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 507 | (Reserved) | R | 1 | |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 508 | (Reserved) | R | 1 | |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 509 | (Reserved) | R | 1 | |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 600 | DLM Mode | R | 1 | Indicates the DLM mode configured for this device. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 610 | DLM EVSE Sub-distribution Limit L1 | R | 1 | Overall current limit for DLM available for EVs |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 611 | DLM EVSE Sub-distribution Limit L2 | R | 1 | Overall current limit for DLM available for EVs |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 612 | DLM EVSE Sub-distribution Limit L3 | R | 1 | Overall current limit for DLM available for EVs |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 613 | DLM Operator EVSE Sub-distribution Limit L1 | R/W | 1 | Operator current limit for DLM available for distribution to EVs |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 614 | DLM Operator EVSE Sub-distribution Limit L2 | R/W | 1 | Operator current limit for DLM available for distribution to EVs |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 615 | DLM Operator EVSE Sub-distribution Limit L3 | R/W | 1 | Operator current limit for DLM available for distribution to EVs |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 620 | DLM External Meter support | R | 1 | Value of this register is 1 when External Meter is enabled, 0 when disabled |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 621 | DLM Number of Slaves connected | R | 1 | The number of DLM Slaves connected to this Master device |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 630 | DLM Overall Current applied L1 | R | 1 | Overall Current (A) the DLM Master is currently applying (sum of current distributed among the slaves) |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 631 | DLM Overall Current applied L2 | R | 1 | Overall Current (A) the DLM Master is currently applying (sum of current distributed among the slaves) |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 632 | DLM Overall Current applied L3 | R | 1 | Overall Current (A) the DLM Master is currently applying (sum of current distributed among the slaves) |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 633 | DLM Overall Current available L1 | R | 1 | Overall Current (A) the DLM Master has available to distribute among the slaves |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 634 | DLM Overall Current available L2 | R | 1 | Overall Current (A) the DLM Master has available to distribute among the slaves |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 635 | DLM Overall Current available L3 | R | 1 | Overall Current (A) the DLM Master has available to distribute among the slaves |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 701 | Scheduled Time (hhmmss) | R | 2 | Scheduled departure time (format is `hhmmss` in big-endian packed BCD with left zero padding) – 15118 only |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 703 | Scheduled Date (yymmdd) | R | 2 | Scheduled departure time (format is `ddmmyy` in big-endian packed BCD with left zero padding) – 15118 only |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 705 | (deprecated) Charged Energy | R | 1 | Sum of charged energy for the current session (Wh) |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 706 | Signaled Current | R | 1 | The maximum current that's being signaled to the EV for charging |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 707 | Start Time (hhmmss) | R | 2 | Start time of charging process |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 709 | (deprecated) Charging Duration (seconds) | R | 1 | Duration since beginning of charge |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 710 | End Time (hhmmss) | R | 2 | End time of charging process |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 712 | Minimum current limit | R | 1 | Minimum current limit for charging |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 713 | EV Required Energy (Wh) | R | 2 | Returns the amount of energy in Wh required by the EV |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 715 | Max. Current EV | R | 1 | This is the maximum current with which the EV can charge |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 716 | Charged Energy | R | 2 | Sum of charged energy for the current session (Wh) |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 718 | Charging Duration (seconds) | R | 2 | Duration since beginning of charge |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 720 | User ID | R | 2 | User ID (OCPP IdTag) from the current session. Bytes 0 to 3. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 722 | User ID | R | 2 | User ID (OCPP IdTag) from the current session. Bytes 4 to 7. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 724 | User ID | R | 2 | User ID (OCPP IdTag) from the current session. Bytes 8 to 11. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 726 | User ID | R | 2 | User ID (OCPP IdTag) from the current session. Bytes 12 to 15. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 728 | User ID | R | 2 | User ID (OCPP IdTag) from the current session. Bytes 16 to 19. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 730 | EV Battery State (% 0-100) | R | 1 | Returns an estimate of the SoC |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 740 | 15118 Smart vehicle detected | R | 1 | Returns 1 if an EV currently connected is a smart vehicle, or 0 if no EV connected or it is not a smart vehicle |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 741 | EVCCID - 15118 only | R | 2 | ASCII representation of the Hex. Values corresponding to the EVCCID. Bytes 0 to 3. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 743 | EVCCID - 15118 only | R | 2 | ASCII representation of the Hex. Values corresponding to the EVCCID. Bytes 4 to 7. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 745 | EVCCID - 15118 only | R | 2 | ASCII representation of the Hex. Values corresponding to the EVCCID. Bytes 8 to 11. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 747 | Remaining time to full SoC - 15118 only | R | 2 | Returns the remaining time in seconds to full SoC |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 749 | Is in charging loop - 15118 only | R | 1 | Returns 1 if the EV/EVSE are on a charging loop, 0 otherwise |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 752 | Auth. source | R | 1 | Source of authorization (RFID, Input, Remote, 15118, Autocharge, Freecharge, Power Loss... ) |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 1000 | Hems Current Limit (A) | R/W | 1 | Current limit of the HEMS module in Amps |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 1110 | User ID | W | 2 | Write user ID (OCPP IdTag) for the current session. Bytes 0 to 3. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 1112 | User ID | W | 2 | Write user ID (OCPP IdTag) for the current session. Bytes 4 to 7. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 1114 | User ID | W | 2 | Write user ID (OCPP IdTag) for the current session. Bytes 8 to 11. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 1116 | User ID | W | 2 | Write user ID (OCPP IdTag) for the current session. Bytes 12 to 15. |
| Open Modbus Charge Control Interface (OMCCI) | Holding | 1118 | User ID | W | 2 | Write user ID (OCPP IdTag) for the current session. Bytes 16 to 19. |