MBMap Registry
  1. Devices
  2. Shelly
  3. Pro 3EM

Shelly Pro 3EM Modbus register map

Three-phase energy meter with Modbus TCP

  • Official
  • 69 registers
  • Modbus TCP
  • Revision 2 · 2026-10-18
  • Identity: model

Official: Written from the manufacturer's documentation, but not tested on a device yet. Check the map against the manufacturer's documentation before you write to a live device. Tested it? Report a test.

Communication

Protocol
Modbus TCP
Unit ID
1default
TCP port
502
Byte / word order
CDAB · bytes big-endian, words low first (word swap)
Addresses
0-based

Connection values are defaults: the device may be configured differently.

Map

Registers
69 input registers
Groups
7
Revision
2 · 2026-10-18
Added
()
File
maps/shelly/pro-3em.mbmap.json · 10 KB · history
SHA-256
a5d626b65ef53fc88d1dd785b248ec50dda8f5067bd6c0aaf475378b6437992c
Manufacturer
shelly.com

Device identity

What a tool can read to check that this map fits the connected device (SPEC.md section 4.7). Registers with a role are read like any other register.

Registers
RoleRegisterAddressTypeValues
Model Model input 6 string[10]

Sources and notes

Source: Shelly Gen2 API documentation: Modbus, EM and EMData components

  • Modbus TCP must be enabled first (Modbus.SetConfig enable=true, or in the web interface).
  • The documentation lists input registers in 3xxxx notation: 31000 is input register 1000.
  • 32-bit values are sent low word first, as in the documentation's modbus_cli examples (-B mixed).
  • A second EM or EMData component, when present, has its registers at +80 (EM) and +70 (EMData).
AreaAddressNameTypeAccessUnitScaleDescription
IR 0 string[6] R
IR 6 string[10] R
IR 16 string[32] R
IR 1000 uint32 CDAB R s Unix timestamp
IR 1002 bool bit 0 R
IR 1003 bool bit 0 R
IR 1004 bool bit 0 R
IR 1005 bool bit 0 R
IR 1006 bool bit 0 R
IR 1007 float32 CDAB R A
IR 1009 bool bit 0 R
IR 1010 bool bit 0 R
IR 1011 float32 CDAB R A Sum of the phases
IR 1013 float32 CDAB R W Sum of the phases
IR 1015 float32 CDAB R VA Sum of the phases
IR 1020 float32 CDAB R V
IR 1022 float32 CDAB R A
IR 1024 float32 CDAB R W
IR 1026 float32 CDAB R VA
IR 1028 float32 CDAB R
IR 1030 bool bit 0 R
IR 1031 bool bit 0 R
IR 1032 bool bit 0 R
IR 1033 float32 CDAB R Hz
IR 1040 float32 CDAB R V
IR 1042 float32 CDAB R A
IR 1044 float32 CDAB R W
IR 1046 float32 CDAB R VA
IR 1048 float32 CDAB R
IR 1050 bool bit 0 R
IR 1051 bool bit 0 R
IR 1052 bool bit 0 R
IR 1053 float32 CDAB R Hz
IR 1060 float32 CDAB R V
IR 1062 float32 CDAB R A
IR 1064 float32 CDAB R W
IR 1066 float32 CDAB R VA
IR 1068 float32 CDAB R
IR 1070 bool bit 0 R
IR 1071 bool bit 0 R
IR 1072 bool bit 0 R
IR 1073 float32 CDAB R Hz
IR 1160 uint32 CDAB R s Unix timestamp
IR 1162 float32 CDAB R Wh All phases, never reset
IR 1164 float32 CDAB R Wh All phases, never reset
IR 1170 float32 CDAB R Wh
IR 1172 float32 CDAB R Wh
IR 1174 float32 CDAB R Wh
IR 1176 float32 CDAB R Wh
IR 1178 float32 CDAB R varh
IR 1180 float32 CDAB R varh
IR 1182 float32 CDAB R Wh Never reset
IR 1184 float32 CDAB R Wh Never reset
IR 1190 float32 CDAB R Wh
IR 1192 float32 CDAB R Wh
IR 1194 float32 CDAB R Wh
IR 1196 float32 CDAB R Wh
IR 1198 float32 CDAB R varh
IR 1200 float32 CDAB R varh
IR 1202 float32 CDAB R Wh Never reset
IR 1204 float32 CDAB R Wh Never reset
IR 1210 float32 CDAB R Wh
IR 1212 float32 CDAB R Wh
IR 1214 float32 CDAB R Wh
IR 1216 float32 CDAB R Wh
IR 1218 float32 CDAB R varh
IR 1220 float32 CDAB R varh
IR 1222 float32 CDAB R Wh Never reset
IR 1224 float32 CDAB R Wh Never reset

Help improve this map