solax-py-library 1.0.0.36__tar.gz → 1.0.0.38__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.
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/PKG-INFO +1 -1
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/pyproject.toml +1 -1
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/constant/message_entry.py +5 -5
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/core/condition/price_condition.py +12 -4
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/README.md +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/constant/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/constant/cabinet.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/constant/inverter_model_info.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/core/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/core/interver/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/core/interver/base.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/types/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/types/alarm.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/types/device.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/types/inverter_config.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/types/modbus_point.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/exception.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/constant/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/core/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/core/action/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/core/action/base.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/core/action/ems_action.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/core/action/system_action.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/core/condition/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/core/condition/base.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/core/condition/cabinet_condition.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/core/condition/date_condition.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/core/condition/system_condition.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/core/condition/weather_condition.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/core/service/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/core/service/check.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/core/service/runner.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/exceptions/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/exceptions/price.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/exceptions/smart_scene.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/exceptions/weather.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/types/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/types/action.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/types/condition.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/types/condition_value.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/types/smart_scene_content.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/constant/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/constant/crc_table.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/core/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/core/base_modbus.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/core/parser.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/core/snap_shot.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/exceptions/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/exceptions/snap_shot.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/test/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/types/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/types/address.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/test/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/test/test_smart_scene/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/test/test_smart_scene/test_check_func.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/test/test_smart_scene/test_condition.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/test/test_utils/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/test/test_utils/test_cloud_client.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/api/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/api/service.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/core/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/core/data_adapter/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/core/data_adapter/base.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/core/data_adapter/csv.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/core/upload_service/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/core/upload_service/base.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/core/upload_service/ftp.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/exceptions/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/exceptions/upload_error.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/test/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/test/test_ftp.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/types/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/types/client.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/types/ftp.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/utils/__init__.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/utils/cloud_client.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/utils/common.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/utils/struct_util.py +0 -0
- {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/utils/time_util.py +0 -0
@@ -159,17 +159,17 @@ MESSAGE_ENTRY = {
|
|
159
159
|
"duration": {"zh_CN": "持续: {}秒", "en_US": "Last: {} seconds"},
|
160
160
|
"systemSoc": {"zh_CN": "系统SOC {} {}%", "en_US": "System SOC {} {}%"},
|
161
161
|
"systemImportPower": {
|
162
|
-
"zh_CN": "电网买电功率 {} {}
|
163
|
-
"en_US": "Grid import power {} {}
|
162
|
+
"zh_CN": "电网买电功率 {} {}kW",
|
163
|
+
"en_US": "Grid import power {} {}kW",
|
164
164
|
},
|
165
165
|
"systemExportPower": {
|
166
|
-
"zh_CN": "电网馈电功率 {} {}
|
167
|
-
"en_US": "Grid export power {} {}
|
166
|
+
"zh_CN": "电网馈电功率 {} {}kW",
|
167
|
+
"en_US": "Grid export power {} {}kW",
|
168
168
|
},
|
169
169
|
"cabinetSoc": {"zh_CN": "机柜SOC {} {}%", "en_US": "Cabinet SOC {} {}%"},
|
170
170
|
"EMERGENCY": {"zh_CN": "紧急告警", "en_US": "Emergency alarm"},
|
171
171
|
"TIPS": {"zh_CN": "状态提醒", "en_US": "State Tips"},
|
172
|
-
"NORMAL": {"zh_CN": "
|
172
|
+
"NORMAL": {"zh_CN": "一般告警", "en_US": "Normal alarm"},
|
173
173
|
"cabinetAlarm": {
|
174
174
|
"zh_CN": "机柜下属({})设备发生{}",
|
175
175
|
"en_US": "The equipments({}) under the cabinet occurs {}",
|
@@ -36,10 +36,14 @@ class ElePriceCondition(BaseCondition):
|
|
36
36
|
price = self.value["price"]
|
37
37
|
if None in price[0:96]:
|
38
38
|
return False
|
39
|
+
max_num = max(price[0:96])
|
39
40
|
if unit == SmartSceneUnit.NUM: # 比最高电价低X元
|
40
|
-
base =
|
41
|
+
base = max_num - value
|
41
42
|
else: # 比最高电价低X%
|
42
|
-
|
43
|
+
if max_num < 0:
|
44
|
+
base = round(max_num * (1 + value / 100), 4)
|
45
|
+
else:
|
46
|
+
base = round(max_num * (1 - value / 100), 4)
|
43
47
|
app_log.info(f"meet_func_highest_price: {base}, data_value: {price[index]}")
|
44
48
|
if price[index] <= base:
|
45
49
|
return True
|
@@ -51,10 +55,14 @@ class ElePriceCondition(BaseCondition):
|
|
51
55
|
price = self.value["price"]
|
52
56
|
if None in price[0:96]:
|
53
57
|
return False
|
58
|
+
min_num = min(price[0:96])
|
54
59
|
if unit == SmartSceneUnit.NUM: # 比最低电价高X元
|
55
|
-
base =
|
60
|
+
base = min_num + value
|
56
61
|
else: # 比最低电价高X%
|
57
|
-
|
62
|
+
if min_num < 0:
|
63
|
+
base = round(min_num * (1 - value / 100), 4)
|
64
|
+
else:
|
65
|
+
base = round(min_num * (1 + value / 100), 4)
|
58
66
|
app_log.info(f"meet_func_lowest_price: {base}, data_value: {price[index]}")
|
59
67
|
if price[index] >= base:
|
60
68
|
return True
|
File without changes
|
File without changes
|
File without changes
|
{solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/constant/__init__.py
RENAMED
File without changes
|
{solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/constant/cabinet.py
RENAMED
File without changes
|
File without changes
|
{solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/core/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/types/__init__.py
RENAMED
File without changes
|
{solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/types/alarm.py
RENAMED
File without changes
|
{solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/types/device.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/types/action.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/core/__init__.py
RENAMED
File without changes
|
File without changes
|
{solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/core/parser.py
RENAMED
File without changes
|
{solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/core/snap_shot.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/test/__init__.py
RENAMED
File without changes
|
{solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/types/__init__.py
RENAMED
File without changes
|
{solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/types/address.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/test/test_utils/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/api/__init__.py
RENAMED
File without changes
|
{solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/api/service.py
RENAMED
File without changes
|
{solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/core/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/test/__init__.py
RENAMED
File without changes
|
{solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/test/test_ftp.py
RENAMED
File without changes
|
{solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/types/__init__.py
RENAMED
File without changes
|
{solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/types/client.py
RENAMED
File without changes
|
{solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/types/ftp.py
RENAMED
File without changes
|
File without changes
|
{solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/utils/cloud_client.py
RENAMED
File without changes
|
File without changes
|
{solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/utils/struct_util.py
RENAMED
File without changes
|
File without changes
|