
Fenecon Commercial40
The Fenecon Commercial40 is a commercial-scale battery energy storage system managed by the FEMS energy management platform, built on OpenEMS. This Modbus TCP template reads system state, control mode, inverter state, and grid mode, along with battery pack voltage, current, power, state of charge, state of health, and cycle count. It also reads three-phase grid and inverter voltages and currents, BMS DC-DC work state, individual cell voltages for up to 224 cells, and per-cell and per-string temperature extremes. Write registers allow active power, reactive power, and work-state setpoints. Connecting through a ModbusCloud Gateway gives you a full picture of this system across every site.
- Protocol
- Modbus TCP
- Connection
- Ethernet, Modbus TCP
- Registers
- 290, read and write
- Brand
- Fenecon
- Last updated
Registers (290)
287 read, 3 write
| Name | Unit | Access | Address (Hidden until you enter your email) | Function (hidden) | Type (hidden) |
|---|---|---|---|---|---|
| system_state | Read | ||||
| control_mode | Read | ||||
| battery_maintenance_state | Read | ||||
| inverter_state | Read | ||||
| grid_mode | Read | ||||
| protocol_version | Read | ||||
| system_manufacturer | Read | ||||
| system_type | Read | ||||
| battery_string_switch_state | Read | ||||
| battery_voltage | V | Read | |||
| battery_current | A | Read | |||
| battery_power | W | Read | |||
| original_active_charge_energy | Wh | Read | |||
| original_active_discharge_energy | Wh | Read | |||
| grid_active_power | W | Read | |||
| reactive_power | var | Read | |||
| apparent_power | VA | Read | |||
| current_l1 | A | Read | |||
| current_l2 | A | Read | |||
| current_l3 | A | Read | |||
| voltage_l1 | V | Read | |||
| voltage_l2 | V | Read | |||
| voltage_l3 | V | Read | |||
| frequency | Hz | Read | |||
| inverter_voltage_l1 | V | Read | |||
| inverter_voltage_l2 | V | Read | |||
| inverter_voltage_l3 | V | Read | |||
| inverter_current_l1 | A | Read | |||
| inverter_current_l2 | A | Read | |||
| inverter_current_l3 | A | Read | |||
| active_power | W | Read | |||
| original_allowed_charge_power | W | Read | |||
| original_allowed_discharge_power | W | Read | |||
| max_apparent_power | W | Read | |||
| ipm_temperature_l1 | °C | Read | |||
| ipm_temperature_l2 | °C | Read | |||
| ipm_temperature_l3 | °C | Read | |||
| transformer_temperature_l2 | °C | Read | |||
| set_work_state | Write | ||||
| set_active_power | W | Write | |||
| set_reactive_power | W | Write | |||
| bms_dcdc_work_state | Read | ||||
| bms_dcdc_work_mode | Read | ||||
| cell_1_voltage | V | Read | |||
| cell_2_voltage | V | Read | |||
| cell_3_voltage | V | Read | |||
| cell_4_voltage | V | Read | |||
| cell_5_voltage | V | Read | |||
| cell_6_voltage | V | Read | |||
| cell_7_voltage | V | Read | |||
| cell_8_voltage | V | Read | |||
| cell_9_voltage | V | Read | |||
| cell_10_voltage | V | Read | |||
| cell_11_voltage | V | Read | |||
| cell_12_voltage | V | Read | |||
| cell_13_voltage | V | Read | |||
| cell_14_voltage | V | Read | |||
| cell_15_voltage | V | Read | |||
| cell_16_voltage | V | Read | |||
| cell_17_voltage | V | Read | |||
| cell_18_voltage | V | Read | |||
| cell_19_voltage | V | Read | |||
| cell_20_voltage | V | Read | |||
| cell_21_voltage | V | Read | |||
| cell_22_voltage | V | Read | |||
| cell_23_voltage | V | Read | |||
| cell_24_voltage | V | Read | |||
| cell_25_voltage | V | Read | |||
| cell_26_voltage | V | Read | |||
| cell_27_voltage | V | Read | |||
| cell_28_voltage | V | Read | |||
| cell_29_voltage | V | Read | |||
| cell_30_voltage | V | Read | |||
| cell_31_voltage | V | Read | |||
| cell_32_voltage | V | Read | |||
| cell_33_voltage | V | Read | |||
| cell_34_voltage | V | Read | |||
| cell_35_voltage | V | Read | |||
| cell_36_voltage | V | Read | |||
| cell_37_voltage | V | Read | |||
| cell_38_voltage | V | Read | |||
| cell_39_voltage | V | Read | |||
| cell_40_voltage | V | Read | |||
| cell_41_voltage | V | Read | |||
| cell_42_voltage | V | Read | |||
| cell_43_voltage | V | Read | |||
| cell_44_voltage | V | Read | |||
| cell_45_voltage | V | Read | |||
| cell_46_voltage | V | Read | |||
| cell_47_voltage | V | Read | |||
| cell_48_voltage | V | Read | |||
| cell_49_voltage | V | Read | |||
| cell_50_voltage | V | Read | |||
| cell_51_voltage | V | Read | |||
| cell_52_voltage | V | Read | |||
| cell_53_voltage | V | Read | |||
| cell_54_voltage | V | Read | |||
| cell_55_voltage | V | Read | |||
| cell_56_voltage | V | Read | |||
| cell_57_voltage | V | Read | |||
| cell_58_voltage | V | Read | |||
| cell_59_voltage | V | Read | |||
| cell_60_voltage | V | Read | |||
| cell_61_voltage | V | Read | |||
| cell_62_voltage | V | Read | |||
| cell_63_voltage | V | Read | |||
| cell_64_voltage | V | Read | |||
| cell_65_voltage | V | Read | |||
| cell_66_voltage | V | Read | |||
| cell_67_voltage | V | Read | |||
| cell_68_voltage | V | Read | |||
| cell_69_voltage | V | Read | |||
| cell_70_voltage | V | Read | |||
| cell_71_voltage | V | Read | |||
| cell_72_voltage | V | Read | |||
| cell_73_voltage | V | Read | |||
| cell_74_voltage | V | Read | |||
| cell_75_voltage | V | Read | |||
| cell_76_voltage | V | Read | |||
| cell_77_voltage | V | Read | |||
| cell_78_voltage | V | Read | |||
| cell_79_voltage | V | Read | |||
| cell_80_voltage | V | Read | |||
| cell_81_voltage | V | Read | |||
| cell_82_voltage | V | Read | |||
| cell_83_voltage | V | Read | |||
| cell_84_voltage | V | Read | |||
| cell_85_voltage | V | Read | |||
| cell_86_voltage | V | Read | |||
| cell_87_voltage | V | Read | |||
| cell_88_voltage | V | Read | |||
| cell_89_voltage | V | Read | |||
| cell_90_voltage | V | Read | |||
| cell_91_voltage | V | Read | |||
| cell_92_voltage | V | Read | |||
| cell_93_voltage | V | Read | |||
| cell_94_voltage | V | Read | |||
| cell_95_voltage | V | Read | |||
| cell_96_voltage | V | Read | |||
| cell_97_voltage | V | Read | |||
| cell_98_voltage | V | Read | |||
| cell_99_voltage | V | Read | |||
| cell_100_voltage | V | Read | |||
| cell_101_voltage | V | Read | |||
| cell_102_voltage | V | Read | |||
| cell_103_voltage | V | Read | |||
| cell_104_voltage | V | Read | |||
| cell_105_voltage | V | Read | |||
| cell_106_voltage | V | Read | |||
| cell_107_voltage | V | Read | |||
| cell_108_voltage | V | Read | |||
| cell_109_voltage | V | Read | |||
| cell_110_voltage | V | Read | |||
| cell_111_voltage | V | Read | |||
| cell_112_voltage | V | Read | |||
| cell_113_voltage | V | Read | |||
| cell_114_voltage | V | Read | |||
| cell_115_voltage | V | Read | |||
| cell_116_voltage | V | Read | |||
| cell_117_voltage | V | Read | |||
| cell_118_voltage | V | Read | |||
| cell_119_voltage | V | Read | |||
| cell_120_voltage | V | Read | |||
| cell_121_voltage | V | Read | |||
| cell_122_voltage | V | Read | |||
| cell_123_voltage | V | Read | |||
| cell_124_voltage | V | Read | |||
| cell_125_voltage | V | Read | |||
| cell_126_voltage | V | Read | |||
| cell_127_voltage | V | Read | |||
| cell_128_voltage | V | Read | |||
| cell_129_voltage | V | Read | |||
| cell_130_voltage | V | Read | |||
| cell_131_voltage | V | Read | |||
| cell_132_voltage | V | Read | |||
| cell_133_voltage | V | Read | |||
| cell_134_voltage | V | Read | |||
| cell_135_voltage | V | Read | |||
| cell_136_voltage | V | Read | |||
| cell_137_voltage | V | Read | |||
| cell_138_voltage | V | Read | |||
| cell_139_voltage | V | Read | |||
| cell_140_voltage | V | Read | |||
| cell_141_voltage | V | Read | |||
| cell_142_voltage | V | Read | |||
| cell_143_voltage | V | Read | |||
| cell_144_voltage | V | Read | |||
| cell_145_voltage | V | Read | |||
| cell_146_voltage | V | Read | |||
| cell_147_voltage | V | Read | |||
| cell_148_voltage | V | Read | |||
| cell_149_voltage | V | Read | |||
| cell_150_voltage | V | Read | |||
| cell_151_voltage | V | Read | |||
| cell_152_voltage | V | Read | |||
| cell_153_voltage | V | Read | |||
| cell_154_voltage | V | Read | |||
| cell_155_voltage | V | Read | |||
| cell_156_voltage | V | Read | |||
| cell_157_voltage | V | Read | |||
| cell_158_voltage | V | Read | |||
| cell_159_voltage | V | Read | |||
| cell_160_voltage | V | Read | |||
| cell_161_voltage | V | Read | |||
| cell_162_voltage | V | Read | |||
| cell_163_voltage | V | Read | |||
| cell_164_voltage | V | Read | |||
| cell_165_voltage | V | Read | |||
| cell_166_voltage | V | Read | |||
| cell_167_voltage | V | Read | |||
| cell_168_voltage | V | Read | |||
| cell_169_voltage | V | Read | |||
| cell_170_voltage | V | Read | |||
| cell_171_voltage | V | Read | |||
| cell_172_voltage | V | Read | |||
| cell_173_voltage | V | Read | |||
| cell_174_voltage | V | Read | |||
| cell_175_voltage | V | Read | |||
| cell_176_voltage | V | Read | |||
| cell_177_voltage | V | Read | |||
| cell_178_voltage | V | Read | |||
| cell_179_voltage | V | Read | |||
| cell_180_voltage | V | Read | |||
| cell_181_voltage | V | Read | |||
| cell_182_voltage | V | Read | |||
| cell_183_voltage | V | Read | |||
| cell_184_voltage | V | Read | |||
| cell_185_voltage | V | Read | |||
| cell_186_voltage | V | Read | |||
| cell_187_voltage | V | Read | |||
| cell_188_voltage | V | Read | |||
| cell_189_voltage | V | Read | |||
| cell_190_voltage | V | Read | |||
| cell_191_voltage | V | Read | |||
| cell_192_voltage | V | Read | |||
| cell_193_voltage | V | Read | |||
| cell_194_voltage | V | Read | |||
| cell_195_voltage | V | Read | |||
| cell_196_voltage | V | Read | |||
| cell_197_voltage | V | Read | |||
| cell_198_voltage | V | Read | |||
| cell_199_voltage | V | Read | |||
| cell_200_voltage | V | Read | |||
| cell_201_voltage | V | Read | |||
| cell_202_voltage | V | Read | |||
| cell_203_voltage | V | Read | |||
| cell_204_voltage | V | Read | |||
| cell_205_voltage | V | Read | |||
| cell_206_voltage | V | Read | |||
| cell_207_voltage | V | Read | |||
| cell_208_voltage | V | Read | |||
| cell_209_voltage | V | Read | |||
| cell_210_voltage | V | Read | |||
| cell_211_voltage | V | Read | |||
| cell_212_voltage | V | Read | |||
| cell_213_voltage | V | Read | |||
| cell_214_voltage | V | Read | |||
| cell_215_voltage | V | Read | |||
| cell_216_voltage | V | Read | |||
| cell_217_voltage | V | Read | |||
| cell_218_voltage | V | Read | |||
| cell_219_voltage | V | Read | |||
| cell_220_voltage | V | Read | |||
| cell_221_voltage | V | Read | |||
| cell_222_voltage | V | Read | |||
| cell_223_voltage | V | Read | |||
| cell_224_voltage | V | Read | |||
| battery_string_total_voltage | V | Read | |||
| battery_string_total_current | A | Read | |||
| soc | % | Read | |||
| battery_string_soh | % | Read | |||
| battery_string_avg_temperature | °C | Read | |||
| battery_string_charge_current_limit | A | Read | |||
| battery_string_discharge_current_limit | A | Read | |||
| battery_string_cycles | count | Read | |||
| battery_string_charge_energy | Wh | Read | |||
| battery_string_discharge_energy | Wh | Read | |||
| battery_string_power | W | Read | |||
| battery_string_max_cell_voltage_no | Read | ||||
| battery_string_max_cell_voltage | V | Read | |||
| battery_string_max_cell_voltage_temperature | °C | Read | |||
| battery_string_min_cell_voltage_no | Read | ||||
| battery_string_min_cell_voltage | V | Read | |||
| battery_string_min_cell_voltage_temperature | °C | Read | |||
| battery_string_max_cell_temperature_no | Read | ||||
| battery_string_max_cell_temperature | °C | Read | |||
| battery_string_max_cell_temperature_voltage | V | Read | |||
| battery_string_min_cell_temperature_no | Read | ||||
| battery_string_min_cell_temperature | °C | Read | |||
| battery_string_min_cell_temperature_voltage | V | Read |
Loading registers…
Send your device list
If a device is not in the library yet, we build the template for free as soon as we have the register data.
Use cases
- Monitor battery string state of charge and state of health to detect capacity degradation across seasons.
- Track cumulative charge and discharge energy to verify contractual throughput targets at commercial sites.
- Alert on individual cell voltage outliers across all 224 cell registers to catch early cell imbalance.
- Compare three-phase grid currents on L1, L2, and L3 to identify persistent phase imbalance at the connection point.
- Report inverter temperature and transformer temperature trends to schedule preventive maintenance before thermal shutdowns occur.
Installation
Enable the FEMS Modbus TCP Read Access app on the Fenecon Commercial40 via the FEMS online monitoring portal under Settings, then confirm port 502 is reachable on the local network.
If write control is needed, purchase and activate the FEMS Modbus TCP Write Access app using the license key in the FEMS App Center before attempting any setpoint registers.
Connect the ModbusCloud Gateway to the same Ethernet network as the FEMS box, then add a new device in the ModbusCloud portal, import the Fenecon Commercial40 template, and set the unit ID to 255.
Spot-check the connection by reading register 5122 (soc) and comparing the returned value against the live state of charge shown in the FEMS online monitoring dashboard.
Things to watch for
All registers return zero or no response. What is wrong?
The FEMS Modbus TCP Read Access app must be active on the system. Without it, the FEMS box does not open port 502 and no registers are served. Confirm the app is installed and enabled in the FEMS App Center, then verify the Gateway can reach the FEMS IP address on port 502 from the same network segment.
Register addresses are shifted by one compared to the template. Why?
Some Modbus tools default to a base address of 1 instead of 0. The FEMS Modbus TCP interface uses zero-based addressing. Set the base address or address offset to 0 in your client configuration. The ModbusCloud Gateway already handles this correctly when using the template.
Why do write setpoints stop being applied after about 60 seconds?
The FEMS Modbus TCP Write Access app includes a built-in watchdog. A write setpoint is held for 60 seconds by default. If no new write arrives within that window, the system reverts to autonomous control. To maintain a continuous setpoint, a fresh write command is needed well within that window, typically every 30 seconds. ModbusCloud writes registers at most once per minute, so keeping this 60-second window is borderline and not guaranteed. The timeout is configurable in the app settings.
Is it safe to write to set_active_power or set_work_state at any time?
Use write registers with care. Writing set_work_state can start or stop the inverter outside of normal operating sequences, which may trip protection mechanisms or affect warranty conditions. Always verify the current system_state and inverter_state before sending setpoints, and keep power setpoints within the bounds reported by original_allowed_charge_power and original_allowed_discharge_power.
Want to see how it works?









