foxesscloud 2.9.6__tar.gz → 2.9.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {foxesscloud-2.9.6/src/foxesscloud.egg-info → foxesscloud-2.9.7}/PKG-INFO +8 -4
- {foxesscloud-2.9.6 → foxesscloud-2.9.7}/README.md +7 -3
- {foxesscloud-2.9.6 → foxesscloud-2.9.7}/pyproject.toml +1 -1
- {foxesscloud-2.9.6 → foxesscloud-2.9.7}/src/foxesscloud/foxesscloud.py +3 -3
- {foxesscloud-2.9.6 → foxesscloud-2.9.7}/src/foxesscloud/openapi.py +11 -5
- {foxesscloud-2.9.6 → foxesscloud-2.9.7/src/foxesscloud.egg-info}/PKG-INFO +8 -4
- {foxesscloud-2.9.6 → foxesscloud-2.9.7}/LICENCE +0 -0
- {foxesscloud-2.9.6 → foxesscloud-2.9.7}/setup.cfg +0 -0
- {foxesscloud-2.9.6 → foxesscloud-2.9.7}/src/foxesscloud.egg-info/SOURCES.txt +0 -0
- {foxesscloud-2.9.6 → foxesscloud-2.9.7}/src/foxesscloud.egg-info/dependency_links.txt +0 -0
- {foxesscloud-2.9.6 → foxesscloud-2.9.7}/src/foxesscloud.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: foxesscloud
|
|
3
|
-
Version: 2.9.
|
|
3
|
+
Version: 2.9.7
|
|
4
4
|
Summary: library for accessing Fox ESS cloud data using Open API
|
|
5
5
|
Author-email: Tony Matthews <tony@quasair.co.uk>
|
|
6
6
|
Project-URL: Homepage, https://github.com/TonyM1958/FoxESS-Cloud
|
|
@@ -182,8 +182,9 @@ set_period() returns a period structure that can be used to build a list for set
|
|
|
182
182
|
+ max_soc: optional, default is 100
|
|
183
183
|
+ fdsoc: optional, default is 10. Used when setting a period with ForceDischarge mode
|
|
184
184
|
+ fdpwr: optional, default is 0. Used when setting a period with ForceDischarge mode
|
|
185
|
-
+ import_limit: optional, default is None (not set)
|
|
186
|
-
+ export_limit: optional, default is None (not set).
|
|
185
|
+
+ import_limit: optional, default is None (not set) but set to 0 if the mode is force discharge
|
|
186
|
+
+ export_limit: optional, default is None (not set).
|
|
187
|
+
+ pv_limit: optional, default is 1.5 x inverter rating.
|
|
187
188
|
+ price: optional, default None. Used to display plunge pricing for time period.
|
|
188
189
|
+ enable: sets whether this time segment is enable (1) or disabled (0). The default is enabled.
|
|
189
190
|
+ segment: optional, allows the parameters for the period to be passed as a dictionary instead of individual values.
|
|
@@ -832,13 +833,16 @@ This setting can be:
|
|
|
832
833
|
|
|
833
834
|
# Version Info
|
|
834
835
|
|
|
836
|
+
2.9.7 - 2026/03/18<br>
|
|
837
|
+
Add pv_limit to set_period().
|
|
838
|
+
Default import_linit to 0 for force discharge in set_period()
|
|
839
|
+
|
|
835
840
|
2.9.6 - 2026/03/10<br>
|
|
836
841
|
Fix problem setting fdsoc and fdpwr from segment for set_period().
|
|
837
842
|
Correctly identify H1-G2 model inverter.
|
|
838
843
|
Add maxChargeCurrent and maxDischargeCurrent to f.battery.
|
|
839
844
|
Update battery charge derating with temperature so charge current is not 0.
|
|
840
845
|
|
|
841
|
-
|
|
842
846
|
2.9.5 - 2026/02/27<br>
|
|
843
847
|
Add step parameter to date_list().
|
|
844
848
|
Get maxGroupCount from v3 scheduler and update f.max_periods with maximum number of time periods supported.
|
|
@@ -168,8 +168,9 @@ set_period() returns a period structure that can be used to build a list for set
|
|
|
168
168
|
+ max_soc: optional, default is 100
|
|
169
169
|
+ fdsoc: optional, default is 10. Used when setting a period with ForceDischarge mode
|
|
170
170
|
+ fdpwr: optional, default is 0. Used when setting a period with ForceDischarge mode
|
|
171
|
-
+ import_limit: optional, default is None (not set)
|
|
172
|
-
+ export_limit: optional, default is None (not set).
|
|
171
|
+
+ import_limit: optional, default is None (not set) but set to 0 if the mode is force discharge
|
|
172
|
+
+ export_limit: optional, default is None (not set).
|
|
173
|
+
+ pv_limit: optional, default is 1.5 x inverter rating.
|
|
173
174
|
+ price: optional, default None. Used to display plunge pricing for time period.
|
|
174
175
|
+ enable: sets whether this time segment is enable (1) or disabled (0). The default is enabled.
|
|
175
176
|
+ segment: optional, allows the parameters for the period to be passed as a dictionary instead of individual values.
|
|
@@ -818,13 +819,16 @@ This setting can be:
|
|
|
818
819
|
|
|
819
820
|
# Version Info
|
|
820
821
|
|
|
822
|
+
2.9.7 - 2026/03/18<br>
|
|
823
|
+
Add pv_limit to set_period().
|
|
824
|
+
Default import_linit to 0 for force discharge in set_period()
|
|
825
|
+
|
|
821
826
|
2.9.6 - 2026/03/10<br>
|
|
822
827
|
Fix problem setting fdsoc and fdpwr from segment for set_period().
|
|
823
828
|
Correctly identify H1-G2 model inverter.
|
|
824
829
|
Add maxChargeCurrent and maxDischargeCurrent to f.battery.
|
|
825
830
|
Update battery charge derating with temperature so charge current is not 0.
|
|
826
831
|
|
|
827
|
-
|
|
828
832
|
2.9.5 - 2026/02/27<br>
|
|
829
833
|
Add step parameter to date_list().
|
|
830
834
|
Get maxGroupCount from v3 scheduler and update f.max_periods with maximum number of time periods supported.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
##################################################################################################
|
|
2
2
|
"""
|
|
3
3
|
Module: Fox ESS Cloud
|
|
4
|
-
Updated:
|
|
4
|
+
Updated: 18 March 2026
|
|
5
5
|
By: Tony Matthews
|
|
6
6
|
"""
|
|
7
7
|
##################################################################################################
|
|
@@ -10,7 +10,7 @@ By: Tony Matthews
|
|
|
10
10
|
# ALL RIGHTS ARE RESERVED © Tony Matthews 2023
|
|
11
11
|
##################################################################################################
|
|
12
12
|
|
|
13
|
-
version = "1.11.
|
|
13
|
+
version = "1.11.3"
|
|
14
14
|
print(f"FoxESS-Cloud version {version}")
|
|
15
15
|
|
|
16
16
|
debug_setting = 1
|
|
@@ -1478,7 +1478,7 @@ def set_period(start=None, end=None, mode=None, min_soc=None, max_soc=None, fdso
|
|
|
1478
1478
|
if quiet == 0:
|
|
1479
1479
|
s = f" {hours_time(start)}-{hours_time(end)} {mode}, minsoc {min_soc}%"
|
|
1480
1480
|
s += f", maxsoc {max_soc}%" if max_soc is not None and 'ForceCharge' in mode else ""
|
|
1481
|
-
s += f", fdPwr {fdpwr}W, fdSoC {fdsoc}%" if ('ForceCharge' in
|
|
1481
|
+
s += f", fdPwr {fdpwr}W, fdSoC {fdsoc}%" if ('ForceCharge' in mode or 'ForceDischarge' in mode) else ""
|
|
1482
1482
|
s += f", {price:.2f}p/kWh" if price is not None else ""
|
|
1483
1483
|
output(s, 1)
|
|
1484
1484
|
start_h, start_m = split_hours(start)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
##################################################################################################
|
|
2
2
|
"""
|
|
3
3
|
Module: Fox ESS Cloud using Open API
|
|
4
|
-
Updated:
|
|
4
|
+
Updated: 18 March 2026
|
|
5
5
|
By: Tony Matthews
|
|
6
6
|
"""
|
|
7
7
|
##################################################################################################
|
|
@@ -10,7 +10,7 @@ By: Tony Matthews
|
|
|
10
10
|
# ALL RIGHTS ARE RESERVED © Tony Matthews 2024
|
|
11
11
|
##################################################################################################
|
|
12
12
|
|
|
13
|
-
version = "2.9.
|
|
13
|
+
version = "2.9.7"
|
|
14
14
|
print(f"FoxESS-Cloud Open API version {version}")
|
|
15
15
|
|
|
16
16
|
debug_setting = 1
|
|
@@ -1246,7 +1246,7 @@ def build_strategy_from_schedule():
|
|
|
1246
1246
|
##################################################################################################
|
|
1247
1247
|
|
|
1248
1248
|
# create time segment structure. Note: end time is exclusive.
|
|
1249
|
-
def set_period(start=None, end=None, mode=None, min_soc=None, max_soc=None, fdsoc=None, fdpwr=None, import_limit=None, export_limit=None, price=None, segment=None, enable=1, quiet=1):
|
|
1249
|
+
def set_period(start=None, end=None, mode=None, min_soc=None, max_soc=None, fdsoc=None, fdpwr=None, import_limit=None, export_limit=None, pv_limit=None, price=None, segment=None, enable=1, quiet=1):
|
|
1250
1250
|
global schedule, device
|
|
1251
1251
|
if schedule is None or schedule.get('maxsoc') is None:
|
|
1252
1252
|
get_schedule()
|
|
@@ -1260,6 +1260,7 @@ def set_period(start=None, end=None, mode=None, min_soc=None, max_soc=None, fdso
|
|
|
1260
1260
|
fdpwr = segment.get('fdpwr')
|
|
1261
1261
|
import_limit = segment.get('import_limit')
|
|
1262
1262
|
export_limit = segment.get('export_limit')
|
|
1263
|
+
pv_limit = segment.get('pv_limit')
|
|
1263
1264
|
price = segment.get('price')
|
|
1264
1265
|
start = time_hours(start)
|
|
1265
1266
|
# adjust exclusive time to inclusive
|
|
@@ -1279,6 +1280,8 @@ def set_period(start=None, end=None, mode=None, min_soc=None, max_soc=None, fdso
|
|
|
1279
1280
|
fdsoc = min_soc if fdsoc is None else fdsoc
|
|
1280
1281
|
power = (device['power'] * 1000) if device.get('power') is not None else None
|
|
1281
1282
|
fdpwr = power if fdpwr is None and device.get('power') is not None and ('ForceCharge' in mode or 'ForceDischarge' in mode) else fdpwr
|
|
1283
|
+
pv_limit = int(1.5 * power) if pv_limit is None and device.get('power') is not None and ('ForceCharge' in mode or 'ForceDischarge' in mode) else pv_limit
|
|
1284
|
+
import_limit = 0 if import_limit is None and 'ForceDischarge' in mode else import_limit
|
|
1282
1285
|
fdpwr = 0 if fdpwr is None else fdpwr
|
|
1283
1286
|
if min_soc < 0 or min_soc > 100:
|
|
1284
1287
|
output(f"set_period(): ** min_soc must be between 0 and 100")
|
|
@@ -1295,14 +1298,17 @@ def set_period(start=None, end=None, mode=None, min_soc=None, max_soc=None, fdso
|
|
|
1295
1298
|
if quiet == 0:
|
|
1296
1299
|
s = f" {hours_time(start)}-{hours_time(end)} {mode}, minsoc {min_soc}%"
|
|
1297
1300
|
s += f", maxsoc {max_soc}%" if max_soc is not None and 'ForceCharge' in mode else ""
|
|
1298
|
-
s += f", fdPwr {fdpwr}W, fdSoC {fdsoc}%" if ('ForceCharge' in mode or 'ForceDischarge' in mode) else ""
|
|
1301
|
+
s += f", fdPwr {int(fdpwr)}W, fdSoC {fdsoc}%" if ('ForceCharge' in mode or 'ForceDischarge' in mode) else ""
|
|
1302
|
+
s += f", exportLimit {int(export_limit)}W" if export_limit is not None else ""
|
|
1303
|
+
s += f", importLimit {int(import_limit)}W" if import_limit is not None else ""
|
|
1304
|
+
s += f", pvLimit {int(pv_limit)}W" if pv_limit is not None else ""
|
|
1299
1305
|
s += f", {price:.2f}p/kWh" if price is not None else ""
|
|
1300
1306
|
output(s, 1)
|
|
1301
1307
|
start_hour, start_minute = split_hours(start)
|
|
1302
1308
|
end_hour, end_minute = split_hours(end)
|
|
1303
1309
|
period = {'enable': enable, 'startHour': start_hour, 'startMinute': start_minute, 'endHour': end_hour, 'endMinute': end_minute, 'workMode': mode,
|
|
1304
1310
|
'extraParam': {'minSocOnGrid': int(min_soc), 'fdSoc': int(fdsoc), 'fdPwr': int(fdpwr), 'maxSoc': max_soc, 'importLimit': import_limit,
|
|
1305
|
-
'exportLimit': export_limit }}
|
|
1311
|
+
'exportLimit': export_limit, 'pvLimit': pv_limit}}
|
|
1306
1312
|
return period
|
|
1307
1313
|
|
|
1308
1314
|
# set a schedule from a period or list of time segment periods
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: foxesscloud
|
|
3
|
-
Version: 2.9.
|
|
3
|
+
Version: 2.9.7
|
|
4
4
|
Summary: library for accessing Fox ESS cloud data using Open API
|
|
5
5
|
Author-email: Tony Matthews <tony@quasair.co.uk>
|
|
6
6
|
Project-URL: Homepage, https://github.com/TonyM1958/FoxESS-Cloud
|
|
@@ -182,8 +182,9 @@ set_period() returns a period structure that can be used to build a list for set
|
|
|
182
182
|
+ max_soc: optional, default is 100
|
|
183
183
|
+ fdsoc: optional, default is 10. Used when setting a period with ForceDischarge mode
|
|
184
184
|
+ fdpwr: optional, default is 0. Used when setting a period with ForceDischarge mode
|
|
185
|
-
+ import_limit: optional, default is None (not set)
|
|
186
|
-
+ export_limit: optional, default is None (not set).
|
|
185
|
+
+ import_limit: optional, default is None (not set) but set to 0 if the mode is force discharge
|
|
186
|
+
+ export_limit: optional, default is None (not set).
|
|
187
|
+
+ pv_limit: optional, default is 1.5 x inverter rating.
|
|
187
188
|
+ price: optional, default None. Used to display plunge pricing for time period.
|
|
188
189
|
+ enable: sets whether this time segment is enable (1) or disabled (0). The default is enabled.
|
|
189
190
|
+ segment: optional, allows the parameters for the period to be passed as a dictionary instead of individual values.
|
|
@@ -832,13 +833,16 @@ This setting can be:
|
|
|
832
833
|
|
|
833
834
|
# Version Info
|
|
834
835
|
|
|
836
|
+
2.9.7 - 2026/03/18<br>
|
|
837
|
+
Add pv_limit to set_period().
|
|
838
|
+
Default import_linit to 0 for force discharge in set_period()
|
|
839
|
+
|
|
835
840
|
2.9.6 - 2026/03/10<br>
|
|
836
841
|
Fix problem setting fdsoc and fdpwr from segment for set_period().
|
|
837
842
|
Correctly identify H1-G2 model inverter.
|
|
838
843
|
Add maxChargeCurrent and maxDischargeCurrent to f.battery.
|
|
839
844
|
Update battery charge derating with temperature so charge current is not 0.
|
|
840
845
|
|
|
841
|
-
|
|
842
846
|
2.9.5 - 2026/02/27<br>
|
|
843
847
|
Add step parameter to date_list().
|
|
844
848
|
Get maxGroupCount from v3 scheduler and update f.max_periods with maximum number of time periods supported.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|