GoodWe GoodWe BatteryInverter Modbus TCP template

GoodWe BatteryInverter

The GoodWe BatteryInverter is a hybrid PV and battery storage inverter used in residential and small commercial energy systems. This Modbus TCP template covers the full grid protection and grid-code compliance register set: multi-stage voltage and frequency trip thresholds and trip times, LVRT and HVRT ride-through curves with reactive current injection slopes, frequency ride-through (FRT) boundaries, Q(U), Q(P), cos-phi(P), and P(U) reactive power curves, battery charge and discharge frequency control, and power ramp rate limits. Every register is mirrored as a readable (_a) and a writable (_b) pair, letting your ModbusCloud Gateway both audit current settings and push new values. Connecting GoodWe hardware to your portal takes one template import.

Protocol
Modbus TCP
Connection
Ethernet, Modbus TCP
Registers
539, read and write
Brand
GoodWe
Last updated

Registers (539)

271 read, 268 write

NameUnitAccessAddress (Hidden until you enter your email)Function (hidden)Type (hidden)
grid_volt_high_s1_aVRead
grid_volt_high_s1_time_asRead
grid_volt_low_s1_aVRead
grid_volt_low_s1_time_asRead
grid_volt_high_s2_aVRead
grid_volt_high_s2_time_asRead
grid_volt_low_s2_aVRead
grid_volt_low_s2_time_asRead
grid_volt_quality_aRead
grid_freq_high_s1_aHzRead
grid_freq_high_s1_time_asRead
grid_freq_low_s1_aHzRead
grid_freq_low_s1_time_asRead
grid_freq_high_s2_aHzRead
grid_freq_high_s2_time_asRead
grid_freq_low_s2_aHzRead
grid_freq_low_s2_time_asRead
grid_volt_high_aVRead
grid_volt_low_aVRead
grid_freq_high_aHzRead
grid_freq_low_aHzRead
grid_recover_time_asRead
grid_volt_recover_high_aVRead
grid_volt_recover_low_aVRead
grid_freq_recover_high_aHzRead
grid_freq_recover_low_aHzRead
grid_volt_recover_time_asRead
grid_freq_recover_time_asRead
power_rate_limit_generate_aRead
power_rate_limit_reconnect_aRead
power_rate_limit_reduction_aRead
grid_protect_aRead
enable_power_slope_cos_phi_p_aRead
enable_curve_cos_phi_p_aRead
a_point_power_aWRead
a_point_cos_phi_aRead
b_point_power_aWRead
b_point_cos_phi_aRead
c_point_power_aWRead
c_point_cos_phi_aRead
lock_in_voltage_aVRead
lock_out_voltage_aVRead
lock_out_power_aWRead
enable_pf_curve_aRead
ffrozen_dch_aHzRead
ffrozen_ch_aHzRead
fstop_dch_aHzRead
fstop_ch_aHzRead
of_recovery_waiting_timesRead
recovery_frequrncy1_aHzRead
recovery_frequency2_aHzRead
of_recovery_slope_aRead
cfp_settings_aRead
cfp_of_slope_percent_a%Read
cfp_uf_slope_percent_a%Read
cfp_of_recover_power_percent_a%Read
enable_qu_curve_aRead
lock_in_power_qu_aWRead
lock_out_power_qu_aWRead
v1_voltage_aVRead
v1_value_avarRead
v2_voltage_aVRead
v2_value_avarRead
v3_voltage_aVRead
v3_value_avarRead
v4_voltage_aVRead
v4_value_avarRead
k_value_aRead
time_constant_asRead
miscellanea_aRead
enable_pu_curve_aRead
power_change_rate_aRead
v1_voltage_pu_aVRead
v1_value_pu_aWRead
v2_voltage_pu_aVRead
v2_value_pu_aWRead
v3_voltage_pu_aVRead
v3_value_pu_aWRead
v4_voltage_pu_aVRead
v4_value_pu_aWRead
fixed_power_factor_aRead
fixed_reactive_power_aWRead
fixed_active_power_aWRead
auto_test_enableRead
auto_test_stepRead
uw_italy_freq_modeRead
all_power_curve_disable_aRead
r_phase_fixed_active_power_aWRead
s_phase_fixed_active_power_aWRead
t_phase_fixed_active_power_aWRead
grid_volt_high_s3_aVRead
grid_volt_high_s3_time_asRead
grid_volt_low_s3_aVRead
grid_volt_low_s3_time_asRead
zvrt_config_aRead
lvrt_start_volt_aVRead
lvrt_end_volt_aVRead
lvrt_start_trip_time_asRead
lvrt_end_trip_time_asRead
lvrt_trip_limit_volt_aVRead
hvrt_start_volt_aVRead
hvrt_end_volt_aVRead
hvrt_start_trip_time_asRead
hvrt_end_trip_time_asRead
hvrt_trip_limit_volt_aVRead
pf_time_constant_asRead
power_freq_time_constant_asRead
pu_time_constant_asRead
d_point_power_aWRead
d_point_cos_phi_aRead
uf_recovery_waiting_time_asRead
uf_recover_slope_aRead
cfp_uf_recover_power_percent_a%Read
power_charge_limit_aWRead
power_charge_limit_reconnect_aWRead
c_ext_uf_charge_stop_aRead
c_ext_of_discharge_stop_aRead
c_ext_twosstepf_flg_aRead
grid_volt_high_s1_bVWrite
grid_volt_high_s1_time_bsWrite
grid_volt_low_s1_bVWrite
grid_volt_low_s1_time_bsWrite
grid_volt_high_s2_bVWrite
grid_volt_high_s2_time_bsWrite
grid_volt_low_s2_bVWrite
grid_volt_low_s2_time_bsWrite
grid_volt_quality_bWrite
grid_freq_high_s1_bHzWrite
grid_freq_high_s1_time_bsWrite
grid_freq_low_s1_bHzWrite
grid_freq_low_s1_time_bsWrite
grid_freq_high_s2_bHzWrite
grid_freq_high_s2_time_bsWrite
grid_freq_low_s2_bHzWrite
grid_freq_low_s2_time_bsWrite
grid_volt_high_bVWrite
grid_volt_low_bVWrite
grid_freq_high_bHzWrite
grid_freq_low_bHzWrite
grid_recover_time_bsWrite
grid_volt_recover_high_bVWrite
grid_volt_recover_low_bVWrite
grid_freq_recover_high_bHzWrite
grid_freq_recover_low_bHzWrite
grid_volt_recover_time_bsWrite
grid_freq_recover_time_bsWrite
power_rate_limit_generate_bWrite
power_rate_limit_reconnect_bWrite
power_rate_limit_reduction_bWrite
grid_protect_bWrite
enable_power_slope_cos_phi_p_bWrite
enable_curve_cos_phi_p_bWrite
a_point_power_bWWrite
a_point_cos_phi_bWrite
b_point_power_bWWrite
b_point_cos_phi_bWrite
c_point_power_bWWrite
c_point_cos_phi_bWrite
lock_in_voltage_bVWrite
lock_out_voltage_bVWrite
lock_out_power_bWWrite
enable_pf_curve_bWrite
ffrozen_dch_bHzWrite
ffrozen_ch_bHzWrite
fstop_dch_bHzWrite
fstop_ch_bHzWrite
recovery_waiting_timesWrite
recovery_frequrncy1_bHzWrite
recovery_frequency2_bHzWrite
cfp_settings_bWrite
of_recovery_slope_bWrite
cfp_of_slope_percent_b%Write
cfp_uf_slope_percent_b%Write
cfp_of_recover_power_percent_b%Write
enable_qu_curve_bWrite
lock_in_power_qu_bWWrite
lock_out_power_qu_bWWrite
v1_voltage_bVWrite
v1_value_bvarWrite
v2_voltage_bVWrite
v2_value_bvarWrite
v3_voltage_bVWrite
v3_value_bvarWrite
v4_voltage_bVWrite
v4_value_bvarWrite
k_value_bWrite
time_constant_bsWrite
miscellanea_bWrite
enable_pu_curve_bWrite
power_change_rate_bWrite
v1_voltage_pu_bVWrite
v1_value_pu_bWWrite
v2_voltage_pu_bVWrite
v2_value_pu_bWWrite
v3_voltage_pu_bVWrite
v3_value_pu_bWWrite
v4_voltage_pu_bVWrite
v4_value_pu_bWWrite
fixed_power_factor_bWrite
fixed_reactive_power_bWWrite
fixed_active_power_bWWrite
all_power_curve_disable_bWrite
r_phase_fixed_active_power_bWWrite
s_phase_fixed_active_power_bWWrite
t_phase_fixed_active_power_bWWrite
grid_volt_high_s3_bVWrite
grid_volt_high_s3_time_bsWrite
grid_volt_low_s3_bVWrite
grid_volt_low_s3_time_bsWrite
zvrt_config_bWrite
lvrt_start_volt_bVWrite
lvrt_end_volt_bVWrite
lvrt_start_trip_time_bsWrite
lvrt_end_trip_time_bsWrite
lvrt_trip_limit_volt_bVWrite
hvrt_start_volt_bVWrite
hvrt_end_volt_bVWrite
hvrt_start_trip_time_bsWrite
hvrt_end_trip_time_bsWrite
hvrt_trip_limit_volt_bVWrite
pf_time_constant_bsWrite
power_freq_time_constant_bsWrite
pu_time_constant_bsWrite
d_point_power_bWWrite
d_point_cos_phi_bWrite
uf_recovery_waiting_time_bsWrite
uf_recover_slope_bWrite
cfp_uf_recover_power_percent_b%Write
power_charge_limit_bWWrite
power_charge_limit_reconnect_bWWrite
c_ext_uf_charge_stop_bWrite
c_ext_of_discharge_stop_bWrite
c_ext_twosstepf_flg_bWrite
v2_rpm_enable_qp_curve_aRead
v2_rpm_qp_p1_power_aWRead
v2_rpm_qp_p1_reactive_power_aWRead
v2_rpm_qp_p2_power_aWRead
v2_rpm_qp_p2_reactive_power_aWRead
v2_rpm_qp_p3_power_aWRead
v2_rpm_qp_p3_reactive_power_aWRead
v2_rpm_qp_p4_power_aWRead
v2_rpm_qp_p4_reactive_power_aWRead
v2_rpm_qp_p5_power_aWRead
v2_rpm_qp_p5_reactive_power_aWRead
v2_rpm_qp_p6_power_aWRead
v2_rpm_qp_p6_reactive_power_aWRead
v2_rpm_enable_fixed_q_aRead
v2_rpm_qu_curve_mode_aRead
v2_rpm_qu_overexcited_slope_aRead
v2_rpm_qu_underexcited_slope_aRead
v2_rpm_qu_voltage_dead_band_aVRead
v2_rpm_qp_curve_mode_aRead
v2_rpm_qp_overexcited_slope_aRead
v2_rpm_qp_underexcited_slope_aRead
v2_fpp_over_freq_stage_3_value_aHzRead
v2_fpp_under_freq_stage_3_value_aHzRead
v2_fpp_over_freq_stage_4_value_aHzRead
v2_fpp_under_freq_stage_4_value_aHzRead
v2_vpp_under_volt_stage_1_value_aVRead
v2_vpp_under_volt_stage_1_trip_time_amsRead
v2_vpp_over_volt_stage_1_value_aVRead
v2_vpp_over_volt_stage_1_trip_time_amsRead
v2_vpp_under_volt_stage_2_value_aVRead
v2_vpp_under_volt_stage_2_trip_time_amsRead
v2_vpp_over_volt_stage_2_value_aVRead
v2_vpp_over_volt_stage_2_trip_time_amsRead
v2_vpp_under_volt_stage_3_value_aVRead
v2_vpp_under_volt_stage_3_trip_time_amsRead
v2_vpp_over_volt_stage_3_value_aVRead
v2_vpp_over_volt_stage_3_trip_time_amsRead
v2_vpp_under_volt_stage_4_value_aVRead
v2_vpp_under_volt_stage_4_trip_time_amsRead
v2_vpp_over_volt_stage_4_value_aVRead
v2_vpp_over_volt_stage_4_trip_time_amsRead
v2_fpp_under_freq_stage_1_trip_time_amsRead
v2_fpp_over_freq_stage_1_trip_time_amsRead
v2_fpp_under_freq_stage_2_trip_time_amsRead
v2_fpp_over_freq_stage_2_trip_time_amsRead
v2_fpp_under_freq_stage_3_trip_time_amsRead
v2_fpp_over_freq_stage_3_trip_time_amsRead
v2_fpp_under_freq_stage_4_trip_time_amsRead
v2_fpp_over_freq_stage_4_trip_time_amsRead
v2_vpp_ten_min_overvolt_stage_value_aVRead
v2_vpp_ten_min_stage_trip_time_amsRead
v2_rpm_qu_time_constant_asRead
v2_rpm_cosphip_time_constant_asRead
v2_rpm_qp_time_constant_asRead
v2_apm_pu_pt1_time_constant_pt1_mode_asRead
v2_rpm_qu_v1_voltage_aVRead
v2_rpm_qu_v2_voltage_aVRead
v2_rpm_qu_v3_voltage_aVRead
v2_rpm_qu_v4_voltage_aVRead
v2_rpm_qu_extended_functions_aRead
v2_cp_ramp_up_lower_voltage_aVRead
v2_cp_ramp_up_upper_voltage_aVRead
v2_cp_reconnection_lower_voltage_aVRead
v2_cp_reconnection_upper_voltage_aVRead
v2_apm_pu_v1_voltage_aVRead
v2_apm_pu_v2_voltage_aVRead
v2_apm_pu_v3_voltage_aVRead
v2_apm_pu_v4_voltage_aVRead
v2_apm_pu_output_response_mode_aRead
v2_apm_pu_pt1_time_constant_gradient_mode_asRead
v2_rpm_cosphip_lock_in_voltage_aVRead
v2_rpm_cosphip_lock_out_voltage_aVRead
v2_rpm_a_point_cos_phi_aRead
v2_rpm_b_point_cos_phi_aRead
v2_rpm_c_point_cos_phi_aRead
v2_rpm_d_point_cos_phi_aRead
v2_rpm_e_point_power_aWRead
v2_rpm_e_point_cos_phi_aRead
v2_rpm_cosphip_extended_functions_aRead
v2_apm_pf_overfrequency_delay_time_asRead
v2_apm_pf_overfrequency_slope_aRead
v2_apm_pf_overfrequency_fstop_enable_aRead
v2_apm_pf_overfrequency_hysteresis_point_aHzRead
v2_apm_pf_overfrequency_delay_waiting_time_asRead
v2_apm_pf_overfrequency_hysteresis_slope_aRead
v2_apm_pf_underfrequency_delay_time_asRead
v2_apm_pf_underfrequency_slope_aRead
v2_apm_pf_underfrequency_fstop_enable_aRead
v2_apm_pf_underfrequency_hysteresis_point_aHzRead
v2_apm_pf_underfrequency_delay_waiting_time_asRead
v2_apm_pf_underfrequency_hysteresis_slope_aRead
v2_cp_soft_ramp_up_gradient_enable_aRead
v2_cp_reconnection_gradient_enable_aRead
v2_vrt_current_distribution_mode_aRead
v2_vrt_active_power_recovery_mode_aRead
v2_vrt_active_power_recovery_speed_aRead
v2_vrt_reactive_power_recovery_mode_end_aRead
v2_vrt_reactive_power_recovery_speed_aRead
v2_vrt_active_power_recovery_slope_aRead
v2_vrt_reactive_power_recovery_slope_aRead
v2_lvrt_enable_aRead
v2_lvrt_enter_threshold_aVRead
v2_lvrt_exit_endpoint_aVRead
v2_lvrt_k1_slope_aRead
v2_lvrt_zero_current_mode_enable_aRead
v2_lvrt_zero_current_mode_entry_threshold_aVRead
v2_lvrt_uv1_voltage_aVRead
v2_lvrt_uv1_time_asRead
v2_lvrt_uv2_voltage_aVRead
v2_lvrt_uv2_time_asRead
v2_lvrt_uv3_voltage_aVRead
v2_lvrt_uv3_time_asRead
v2_lvrt_uv4_voltage_aVRead
v2_lvrt_uv4_time_asRead
v2_lvrt_uv5_voltage_aVRead
v2_lvrt_uv5_time_asRead
v2_lvrt_uv6_voltage_aVRead
v2_lvrt_uv6_time_asRead
v2_lvrt_uv7_voltage_aVRead
v2_lvrt_uv7_time_asRead
v2_hvrt_enable_aRead
v2_hvrt_enter_high_crossing_aVRead
v2_hvrt_exit_high_crossing_aVRead
v2_hvrt_k2_slope_aRead
v2_hvrt_zero_current_mode_enable_aRead
v2_hvrt_zero_current_mode_entry_threshold_aVRead
v2_hvrt_ov1_voltage_aVRead
v2_hvrt_ov1_time_asRead
v2_hvrt_ov2_voltage_aVRead
v2_hvrt_ov2_time_asRead
v2_hvrt_ov3_voltage_aVRead
v2_hvrt_ov3_time_asRead
v2_hvrt_ov4_voltage_aVRead
v2_hvrt_ov4_time_asRead
v2_hvrt_ov5_voltage_aVRead
v2_hvrt_ov5_time_asRead
v2_hvrt_ov6_voltage_aVRead
v2_hvrt_ov6_time_asRead
v2_hvrt_ov7_voltage_aVRead
v2_hvrt_ov7_time_asRead
v2_frt_enable_aRead
v2_frt_uf1_frequency_aHzRead
v2_frt_uf1_time_asRead
v2_frt_uf2_frequency_aHzRead
v2_frt_uf2_time_asRead
v2_frt_uf3_frequency_aHzRead
v2_frt_uf3_time_asRead
v2_frt_of1_frequency_aHzRead
v2_frt_of1_time_asRead
v2_frt_of2_frequency_aHzRead
v2_frt_of2_time_asRead
v2_frt_of3_frequency_aHzRead
v2_frt_of3_time_asRead
v2_rpm_enable_qp_curve_bWrite
v2_rpm_qp_p1_power_bWWrite
v2_rpm_qp_p1_reactive_power_bWWrite
v2_rpm_qp_p2_power_bWWrite
v2_rpm_qp_p2_reactive_power_bWWrite
v2_rpm_qp_p3_power_bWWrite
v2_rpm_qp_p3_reactive_power_bWWrite
v2_rpm_qp_p4_power_bWWrite
v2_rpm_qp_p4_reactive_power_bWWrite
v2_rpm_qp_p5_power_bWWrite
v2_rpm_qp_p5_reactive_power_bWWrite
v2_rpm_qp_p6_power_bWWrite
v2_rpm_qp_p6_reactive_power_bWWrite
v2_rpm_enable_fixed_q_bWrite
v2_rpm_qu_curve_mode_bWrite
v2_rpm_qu_overexcited_slope_bWrite
v2_rpm_qu_underexcited_slope_bWrite
v2_rpm_qu_voltage_dead_band_bVWrite
v2_rpm_qp_curve_mode_bWrite
v2_rpm_qp_overexcited_slope_bWrite
v2_rpm_qp_underexcited_slope_bWrite
v2_fpp_over_freq_stage_3_value_bHzWrite
v2_fpp_under_freq_stage_3_value_bHzWrite
v2_fpp_over_freq_stage_4_value_bHzWrite
v2_fpp_under_freq_stage_4_value_bHzWrite
v2_vpp_under_volt_stage_1_value_bVWrite
v2_vpp_under_volt_stage_1_trip_time_bmsWrite
v2_vpp_over_volt_stage_1_value_bVWrite
v2_vpp_over_volt_stage_1_trip_time_bmsWrite
v2_vpp_under_volt_stage_2_value_bVWrite
v2_vpp_under_volt_stage_2_trip_time_bmsWrite
v2_vpp_over_volt_stage_2_value_bVWrite
v2_vpp_over_volt_stage_2_trip_time_bmsWrite
v2_vpp_under_volt_stage_3_value_bVWrite
v2_vpp_under_volt_stage_3_trip_time_bmsWrite
v2_vpp_over_volt_stage_3_value_bVWrite
v2_vpp_over_volt_stage_3_trip_time_bmsWrite
v2_vpp_under_volt_stage_4_value_bVWrite
v2_vpp_under_volt_stage_4_trip_time_bmsWrite
v2_vpp_over_volt_stage_4_value_bVWrite
v2_vpp_over_volt_stage_4_trip_time_bmsWrite
v2_fpp_under_freq_stage_1_trip_time_bmsWrite
v2_fpp_over_freq_stage_1_trip_time_bmsWrite
v2_fpp_under_freq_stage_2_trip_time_bmsWrite
v2_fpp_over_freq_stage_2_trip_time_bmsWrite
v2_fpp_under_freq_stage_3_trip_time_bmsWrite
v2_fpp_over_freq_stage_3_trip_time_bmsWrite
v2_fpp_under_freq_stage_4_trip_time_bmsWrite
v2_fpp_over_freq_stage_4_trip_time_bmsWrite
v2_vpp_ten_min_overvolt_stage_value_bVWrite
v2_vpp_ten_min_stage_trip_time_bmsWrite
v2_rpm_qu_time_constant_bsWrite
v2_rpm_cosphip_time_constant_bsWrite
v2_rpm_qp_time_constant_bsWrite
v2_apm_pu_pt1_time_constant_pt1_mode_bsWrite
v2_rpm_qu_v1_voltage_bVWrite
v2_rpm_qu_v2_voltage_bVWrite
v2_rpm_qu_v3_voltage_bVWrite
v2_rpm_qu_v4_voltage_bVWrite
v2_rpm_qu_extended_functions_bWrite
v2_cp_ramp_up_lower_voltage_bVWrite
v2_cp_ramp_up_upper_voltage_bVWrite
v2_cp_reconnection_lower_voltage_bVWrite
v2_cp_reconnection_upper_voltage_bVWrite
v2_apm_pu_v1_voltage_bVWrite
v2_apm_pu_v2_voltage_bVWrite
v2_apm_pu_v3_voltage_bVWrite
v2_apm_pu_v4_voltage_bVWrite
v2_apm_pu_output_response_mode_bWrite
v2_apm_pu_pt1_time_constant_gradient_mode_bsWrite
v2_rpm_cosphip_lock_in_voltage_bVWrite
v2_rpm_cosphip_lock_out_voltage_bVWrite
v2_rpm_a_point_cos_phi_bWrite
v2_rpm_b_point_cos_phi_bWrite
v2_rpm_c_point_cos_phi_bWrite
v2_rpm_d_point_cos_phi_bWrite
v2_rpm_e_point_power_bWWrite
v2_rpm_e_point_cos_phi_bWrite
v2_rpm_cosphip_extended_functions_bWrite
v2_apm_pf_overfrequency_delay_time_bsWrite
v2_apm_pf_overfrequency_slope_bWrite
v2_apm_pf_overfrequency_fstop_enable_bWrite
v2_apm_pf_overfrequency_hysteresis_point_bHzWrite
v2_apm_pf_overfrequency_delay_waiting_time_bsWrite
v2_apm_pf_overfrequency_hysteresis_slope_bWrite
v2_apm_pf_underfrequency_delay_time_bsWrite
v2_apm_pf_underfrequency_slope_bWrite
v2_apm_pf_underfrequency_fstop_enable_bWrite
v2_apm_pf_underfrequency_hysteresis_point_bHzWrite
v2_apm_pf_underfrequency_delay_waiting_time_bsWrite
v2_apm_pf_underfrequency_hysteresis_slope_bWrite
v2_cp_soft_ramp_up_gradient_enable_bWrite
v2_cp_reconnection_gradient_enable_bWrite
v2_vrt_current_distribution_mode_bWrite
v2_vrt_active_power_recovery_mode_bWrite
v2_vrt_active_power_recovery_speed_bWrite
v2_vrt_reactive_power_recovery_mode_end_bWrite
v2_vrt_reactive_power_recovery_speed_bWrite
v2_vrt_active_power_recovery_slope_bWrite
v2_vrt_reactive_power_recovery_slope_bWrite
v2_lvrt_enable_bWrite
v2_lvrt_enter_threshold_bVWrite
v2_lvrt_exit_endpoint_bVWrite
v2_lvrt_k1_slope_bWrite
v2_lvrt_zero_current_mode_enable_bWrite
v2_lvrt_zero_current_mode_entry_threshold_bVWrite
v2_lvrt_uv1_voltage_bVWrite
v2_lvrt_uv1_time_bsWrite
v2_lvrt_uv2_voltage_bVWrite
v2_lvrt_uv2_time_bsWrite
v2_lvrt_uv3_voltage_bVWrite
v2_lvrt_uv3_time_bsWrite
v2_lvrt_uv4_voltage_bVWrite
v2_lvrt_uv4_time_bsWrite
v2_lvrt_uv5_voltage_bVWrite
v2_lvrt_uv5_time_bsWrite
v2_lvrt_uv6_voltage_bVWrite
v2_lvrt_uv6_time_bsWrite
v2_lvrt_uv7_voltage_bVWrite
v2_lvrt_uv7_time_bsWrite
v2_hvrt_enable_bWrite
v2_hvrt_enter_high_crossing_bVWrite
v2_hvrt_exit_high_crossing_bVWrite
v2_hvrt_k2_slope_bWrite
v2_hvrt_zero_current_mode_enable_bWrite
v2_hvrt_zero_current_mode_entry_threshold_bVWrite
v2_hvrt_ov1_voltage_bVWrite
v2_hvrt_ov1_time_bsWrite
v2_hvrt_ov2_voltage_bVWrite
v2_hvrt_ov2_time_bsWrite
v2_hvrt_ov3_voltage_bVWrite
v2_hvrt_ov3_time_bsWrite
v2_hvrt_ov4_voltage_bVWrite
v2_hvrt_ov4_time_bsWrite
v2_hvrt_ov5_voltage_bVWrite
v2_hvrt_ov5_time_bsWrite
v2_hvrt_ov6_voltage_bVWrite
v2_hvrt_ov6_time_bsWrite
v2_hvrt_ov7_voltage_bVWrite
v2_hvrt_ov7_time_bsWrite
v2_frt_enable_bWrite
v2_frt_uf1_frequency_bHzWrite
v2_frt_uf1_time_bsWrite
v2_frt_uf2_frequency_bHzWrite
v2_frt_uf2_time_bsWrite
v2_frt_uf3_frequency_bHzWrite
v2_frt_uf3_time_bsWrite
v2_frt_of1_frequency_bHzWrite
v2_frt_of1_time_bsWrite
v2_frt_of2_frequency_bHzWrite
v2_frt_of2_time_bsWrite
v2_frt_of3_frequency_bHzWrite
v2_frt_of3_time_bsWrite

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 multi-stage grid voltage and frequency trip thresholds to verify that the GoodWe BatteryInverter meets local grid-code requirements after commissioning.
  • Track LVRT and HVRT ride-through voltage boundaries and reactive current injection slopes to confirm correct fault-response behaviour during grid disturbances.
  • Alert on unexpected changes to Q(U) or cos-phi(P) curve breakpoints that could indicate firmware updates silently altering reactive power settings.
  • Verify battery charge and discharge frequency-stop thresholds (ffrozen and fstop registers) to ensure the battery does not cycle during grid frequency events.
  • Compare fixed active power and fixed reactive power setpoints per phase (R, S, T) across multiple GoodWe sites from the multi-site dashboard.

Installation

  1. Enable Modbus TCP on the GoodWe BatteryInverter by installing a LAN or WiFi+LAN communication module and activating Modbus TCP/IP in the SolarGo app or the inverter web interface under the communication settings.

  2. Connect the GoodWe inverter's LAN port to the same local network as the ModbusCloud Gateway, and assign a static IP address to the inverter via your router's DHCP reservation to prevent address changes after a power cycle.

  3. In the ModbusCloud portal, add the Gateway, import the GoodWe BatteryInverter template, set the unit ID to 247 (the factory default), and enter the inverter's static IP address and port 502.

  4. Read back a known register such as grid_volt_high_s1_a (address 45400) using the portal's live data view to confirm communication; a non-zero value indicates the link is working correctly.

Things to watch for

Why do all registers return zero or no response?

The GoodWe BatteryInverter only responds to Modbus TCP when powered by either DC (PV) or AC (grid). If the inverter is in standby with no power source, it will not reply to any Modbus query. Confirm the inverter is energised and the LAN module is installed, not just the default WiFi-only dongle, which does not support Modbus TCP.

The gateway connects but I read garbage values on protection registers.

GoodWe stores scaled integers: some values use a factor of 0.1 (voltage in tenths of a volt, frequency in hundredths of a hertz). Cross-check raw register values against the official Modbus protocol document for the correct scaling factor before raising an alert or comparing against nominal grid values.

My write to a protection threshold register has no effect.

The GoodWe BatteryInverter requires Modbus function code 16 (0x10) to write multiple registers. Confirm your write transaction uses FC16 as defined in the _b registers in this template. Some firmware versions may also require the inverter to be in a non-fault state before accepting writes to grid protection parameters.

Can I safely write LVRT, HVRT, or frequency trip thresholds remotely?

Exercise extreme caution. Writing incorrect values to ride-through or grid protection registers (LVRT, HVRT, FRT, voltage and frequency trip levels) can cause the inverter to disconnect from the grid unexpectedly, fail a grid-code compliance test, or invalidate the installation certification. Always verify changes against local grid standards and restore original values if in doubt.

Want to see how it works?

Electrician working in an open distribution board