Skip to content

Commit faf1697

Browse files
committed
SolaX: align entity names with the cloud app
Display names of the hybrid battery-mode settings now match what the SolaX cloud app shows, so a setting is called the same thing in both places. Keys and entity ids are unchanged. Selfuse Night Charge -> Self Use Charge from Grid Selfuse Discharge Min SOC -> Self Use Min SoC Selfuse Nightcharge Upper SOC -> Self Use Charge Battery to Feedin Discharge Min SOC -> Feed-In Priority Min SoC Feedin Nightcharge Upper SOC -> Feed-In Priority Charge Battery to Backup Discharge Min SOC -> Backup Min SoC Backup Nightcharge Upper SOC -> Backup Charge Battery to Charge Start 1 / Charge End 1 -> Force Charge Start / Force Charge End Discharge Start 1 / End 1 -> Allowed Discharge Start / End "Feedin Priority" becomes "Feed-In Priority" everywhere, including the remote control power control options, since it is a mode name in the app. Self Use Charge Battery to only applies while Self Use night charge is enabled, so it uses active_when to follow that switch.
1 parent c38ce21 commit faf1697

1 file changed

Lines changed: 31 additions & 30 deletions

File tree

custom_components/solax_modbus/plugin_solax.py

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,7 @@ def autorepeat_function_remotecontrol_recompute(initval: int, descr: Any, datadi
448448
ap_target = target - pv_power # + house_load ... already accounted for by the inverter
449449
power_control = "Enabled Power Control"
450450

451-
elif power_control == "Enabled Feedin Priority":
451+
elif power_control == "Enabled Feed-In Priority":
452452
# Maximize grid export by using excess PV and battery
453453
if pv_power > house_load:
454454
# If more power than house load, try to export all excess
@@ -888,7 +888,7 @@ def autorepeat_function_powercontrolmode8_recompute(initval: int, descr: Any, da
888888
f"[Mode8 Negative Injection and Consumption Price] charge: available={available}W within_bms={max_charge}W "
889889
f"bms_cap≈{bms_cap_w}W pct_cap={pct_cap_w}W -> charge={desired_charge}W"
890890
)
891-
elif power_control == "Enabled Feedin Priority":
891+
elif power_control == "Enabled Feed-In Priority":
892892
pvlimit = setpvlimit
893893
pushmode_power = max(houseload - pv, 0.0)
894894
elif power_control == "Enabled No Discharge":
@@ -2038,7 +2038,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
20382038
#
20392039
###
20402040
SolaxModbusNumberEntityDescription(
2041-
name="Backup Discharge Min SOC",
2041+
name="Backup Min SoC",
20422042
key="backup_discharge_min_soc",
20432043
register=0x67,
20442044
fmt="i",
@@ -2050,7 +2050,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
20502050
icon="mdi:battery-charging-low",
20512051
),
20522052
SolaxModbusNumberEntityDescription(
2053-
name="Backup Nightcharge Upper SOC",
2053+
name="Backup Charge Battery to",
20542054
key="backup_nightcharge_upper_soc",
20552055
register=0x66,
20562056
fmt="i",
@@ -2274,7 +2274,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
22742274
icon="mdi:battery-charging-low",
22752275
),
22762276
SolaxModbusNumberEntityDescription(
2277-
name="Feedin Nightcharge Upper SOC",
2277+
name="Feed-In Priority Charge Battery to",
22782278
key="feedin_nightcharge_upper_soc",
22792279
register=0x64,
22802280
fmt="i",
@@ -2430,7 +2430,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
24302430
icon="mdi:battery-sync",
24312431
),
24322432
SolaxModbusNumberEntityDescription(
2433-
name="Selfuse Discharge Min SOC",
2433+
name="Self Use Min SoC",
24342434
key="selfuse_discharge_min_soc",
24352435
register=0x61,
24362436
fmt="i",
@@ -2442,9 +2442,10 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
24422442
icon="mdi:battery-charging-low",
24432443
),
24442444
SolaxModbusNumberEntityDescription(
2445-
name="Selfuse Nightcharge Upper SOC",
2445+
name="Self Use Charge Battery to",
24462446
key="selfuse_nightcharge_upper_soc",
24472447
register=0x63,
2448+
active_when={"selfuse_night_charge_enable": (1,)},
24482449
fmt="i",
24492450
native_min_value=10,
24502451
native_max_value=100,
@@ -3286,7 +3287,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
32863287
icon="mdi:dip-switch",
32873288
),
32883289
SolaXModbusSwitchEntityDescription(
3289-
name="Selfuse Night Charge",
3290+
name="Self Use Charge from Grid",
32903291
key="selfuse_night_charge_enable",
32913292
register=0x62,
32923293
sensor_key="selfuse_night_charge_enable",
@@ -3315,7 +3316,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
33153316
11: "Enabled Grid Control", # computed variation of Power Control, grid import level in absence of PV
33163317
12: "Enabled Battery Control", # computed variation of Power Control, battery import without of PV
33173318
110: "Enabled Self Use", # variation of Grid Control with fixed target 0
3318-
120: "Enabled Feedin Priority", # variation of Battery Control with fixed target 0
3319+
120: "Enabled Feed-In Priority", # variation of Battery Control with fixed target 0
33193320
130: "Enabled No Discharge", # missing HL from grid
33203321
# 2: "Enabled Quantity Control",
33213322
# 3: "Enabled SOC Target Control",
@@ -3350,7 +3351,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
33503351
83: "Export-First Battery Limit",
33513352
84: "Enabled Grid Control",
33523353
85: "Enabled No Discharge",
3353-
86: "Enabled Feedin Priority",
3354+
86: "Enabled Feed-In Priority",
33543355
# 9: "Mode 9 - PV and BAT control - Target SOC",
33553356
},
33563357
allowedtypes=AC | HYBRID | GEN4 | GEN5 | GEN6,
@@ -3445,7 +3446,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
34453446
0: "Self Use Mode",
34463447
1: "Force Time Use",
34473448
2: "Back Up Mode",
3448-
3: "Feedin Priority",
3449+
3: "Feed-In Priority",
34493450
},
34503451
allowedtypes=AC | HYBRID | GEN3,
34513452
icon="mdi:dip-switch",
@@ -3456,7 +3457,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
34563457
register=0x1F,
34573458
option_dict={
34583459
0: "Self Use Mode",
3459-
1: "Feedin Priority",
3460+
1: "Feed-In Priority",
34603461
2: "Back Up Mode",
34613462
3: "Manual Mode",
34623463
4: "PeakShaving",
@@ -4060,7 +4061,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
40604061
0: "Self Use Mode",
40614062
1: "Force Time Use",
40624063
2: "Back Up Mode",
4063-
3: "Feedin Priority",
4064+
3: "Feed-In Priority",
40644065
},
40654066
allowedtypes=AC | HYBRID | GEN2 | GEN3,
40664067
internal=True,
@@ -4070,7 +4071,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
40704071
register=0x8B,
40714072
scale={
40724073
0: "Self Use Mode",
4073-
1: "Feedin Priority",
4074+
1: "Feed-In Priority",
40744075
2: "Back Up Mode",
40754076
3: "Manual Mode",
40764077
4: "PeakShaving",
@@ -11025,7 +11026,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
1102511026

1102611027
TIME_TYPES = [
1102711028
SolaXModbusTimeEntityDescription(
11028-
name="Charge Start 1",
11029+
name="Force Charge Start",
1102911030
key="charge_start_1",
1103011031
register=0x26,
1103111032
option_dict=TIME_OPTIONS,
@@ -11034,7 +11035,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
1103411035
icon="mdi:clock-start",
1103511036
),
1103611037
SolaXModbusTimeEntityDescription(
11037-
name="Charge End 1",
11038+
name="Force Charge End",
1103811039
key="charge_end_1",
1103911040
register=0x27,
1104011041
option_dict=TIME_OPTIONS,
@@ -11043,7 +11044,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
1104311044
icon="mdi:clock-end",
1104411045
),
1104511046
SolaXModbusTimeEntityDescription(
11046-
name="Charge Start 2",
11047+
name="Force Charge Start 2",
1104711048
key="charge_start_2",
1104811049
register=0x2A,
1104911050
option_dict=TIME_OPTIONS,
@@ -11052,7 +11053,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
1105211053
icon="mdi:clock-start",
1105311054
),
1105411055
SolaXModbusTimeEntityDescription(
11055-
name="Charge End 2",
11056+
name="Force Charge End 2",
1105611057
key="charge_end_2",
1105711058
register=0x2B,
1105811059
option_dict=TIME_OPTIONS,
@@ -11083,7 +11084,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
1108311084
icon="mdi:clock-start",
1108411085
),
1108511086
SolaXModbusTimeEntityDescription(
11086-
name="Discharge Start 1",
11087+
name="Allowed Discharge Start",
1108711088
key="discharge_start_1",
1108811089
register=0x28,
1108911090
option_dict=TIME_OPTIONS,
@@ -11092,7 +11093,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
1109211093
icon="mdi:clock-start",
1109311094
),
1109411095
SolaXModbusTimeEntityDescription(
11095-
name="Discharge End 1",
11096+
name="Allowed Discharge End",
1109611097
key="discharge_end_1",
1109711098
register=0x29,
1109811099
option_dict=TIME_OPTIONS,
@@ -11101,7 +11102,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
1110111102
icon="mdi:clock-end",
1110211103
),
1110311104
SolaXModbusTimeEntityDescription(
11104-
name="Discharge Start 2",
11105+
name="Allowed Discharge Start 2",
1110511106
key="discharge_start_2",
1110611107
register=0x2C,
1110711108
option_dict=TIME_OPTIONS,
@@ -11110,7 +11111,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
1111011111
icon="mdi:clock-start",
1111111112
),
1111211113
SolaXModbusTimeEntityDescription(
11113-
name="Discharge End 2",
11114+
name="Allowed Discharge End 2",
1111411115
key="discharge_end_2",
1111511116
register=0x2D,
1111611117
option_dict=TIME_OPTIONS,
@@ -11119,7 +11120,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
1111911120
icon="mdi:clock-end",
1112011121
),
1112111122
SolaXModbusTimeEntityDescription(
11122-
name="Charge End 1",
11123+
name="Force Charge End",
1112311124
key="charge_end_1",
1112411125
register=0x69,
1112511126
option_dict=TIME_OPTIONS_GEN4,
@@ -11128,7 +11129,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
1112811129
icon="mdi:clock-end",
1112911130
),
1113011131
SolaXModbusTimeEntityDescription(
11131-
name="Charge End 2",
11132+
name="Force Charge End 2",
1113211133
key="charge_end_2",
1113311134
register=0x6E,
1113411135
option_dict=TIME_OPTIONS_GEN4,
@@ -11137,7 +11138,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
1113711138
icon="mdi:clock-end",
1113811139
),
1113911140
SolaXModbusTimeEntityDescription(
11140-
name="Charge Start 1",
11141+
name="Force Charge Start",
1114111142
key="charge_start_1",
1114211143
register=0x68,
1114311144
option_dict=TIME_OPTIONS_GEN4,
@@ -11146,7 +11147,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
1114611147
icon="mdi:clock-start",
1114711148
),
1114811149
SolaXModbusTimeEntityDescription(
11149-
name="Charge Start 2",
11150+
name="Force Charge Start 2",
1115011151
key="charge_start_2",
1115111152
register=0x6D,
1115211153
option_dict=TIME_OPTIONS_GEN4,
@@ -11155,7 +11156,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
1115511156
icon="mdi:clock-start",
1115611157
),
1115711158
SolaXModbusTimeEntityDescription(
11158-
name="Discharge End 1",
11159+
name="Allowed Discharge End",
1115911160
key="discharge_end_1",
1116011161
register=0x6B,
1116111162
option_dict=TIME_OPTIONS_GEN4,
@@ -11164,7 +11165,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
1116411165
icon="mdi:clock-end",
1116511166
),
1116611167
SolaXModbusTimeEntityDescription(
11167-
name="Discharge End 2",
11168+
name="Allowed Discharge End 2",
1116811169
key="discharge_end_2",
1116911170
register=0x70,
1117011171
option_dict=TIME_OPTIONS_GEN4,
@@ -11173,7 +11174,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
1117311174
icon="mdi:clock-end",
1117411175
),
1117511176
SolaXModbusTimeEntityDescription(
11176-
name="Discharge Start 1",
11177+
name="Allowed Discharge Start",
1117711178
key="discharge_start_1",
1117811179
register=0x6A,
1117911180
option_dict=TIME_OPTIONS_GEN4,
@@ -11182,7 +11183,7 @@ def value_function_bms_2_max_charge(initval: int, descr: Any, datadict: dict[str
1118211183
icon="mdi:clock-start",
1118311184
),
1118411185
SolaXModbusTimeEntityDescription(
11185-
name="Discharge Start 2",
11186+
name="Allowed Discharge Start 2",
1118611187
key="discharge_start_2",
1118711188
register=0x6F,
1118811189
option_dict=TIME_OPTIONS_GEN4,

0 commit comments

Comments
 (0)