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.
Files changed (84) hide show
  1. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/PKG-INFO +1 -1
  2. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/pyproject.toml +1 -1
  3. {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
  4. {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
  5. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/README.md +0 -0
  6. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/__init__.py +0 -0
  7. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/__init__.py +0 -0
  8. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/constant/__init__.py +0 -0
  9. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/constant/cabinet.py +0 -0
  10. {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
  11. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/core/__init__.py +0 -0
  12. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/core/interver/__init__.py +0 -0
  13. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/core/interver/base.py +0 -0
  14. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/types/__init__.py +0 -0
  15. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/types/alarm.py +0 -0
  16. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/types/device.py +0 -0
  17. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/types/inverter_config.py +0 -0
  18. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/device/types/modbus_point.py +0 -0
  19. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/exception.py +0 -0
  20. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/__init__.py +0 -0
  21. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/constant/__init__.py +0 -0
  22. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/core/__init__.py +0 -0
  23. {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
  24. {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
  25. {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
  26. {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
  27. {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
  28. {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
  29. {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
  30. {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
  31. {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
  32. {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
  33. {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
  34. {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
  35. {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
  36. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/exceptions/__init__.py +0 -0
  37. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/exceptions/price.py +0 -0
  38. {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
  39. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/exceptions/weather.py +0 -0
  40. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/types/__init__.py +0 -0
  41. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/types/action.py +0 -0
  42. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/smart_scene/types/condition.py +0 -0
  43. {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
  44. {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
  45. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/__init__.py +0 -0
  46. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/constant/__init__.py +0 -0
  47. {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
  48. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/core/__init__.py +0 -0
  49. {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
  50. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/core/parser.py +0 -0
  51. {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
  52. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/exceptions/__init__.py +0 -0
  53. {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
  54. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/test/__init__.py +0 -0
  55. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/types/__init__.py +0 -0
  56. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/snap_shot/types/address.py +0 -0
  57. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/test/__init__.py +0 -0
  58. {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
  59. {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
  60. {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
  61. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/test/test_utils/__init__.py +0 -0
  62. {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
  63. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/__init__.py +0 -0
  64. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/api/__init__.py +0 -0
  65. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/api/service.py +0 -0
  66. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/core/__init__.py +0 -0
  67. {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
  68. {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
  69. {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
  70. {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
  71. {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
  72. {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
  73. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/exceptions/__init__.py +0 -0
  74. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/exceptions/upload_error.py +0 -0
  75. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/test/__init__.py +0 -0
  76. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/test/test_ftp.py +0 -0
  77. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/types/__init__.py +0 -0
  78. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/types/client.py +0 -0
  79. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/upload/types/ftp.py +0 -0
  80. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/utils/__init__.py +0 -0
  81. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/utils/cloud_client.py +0 -0
  82. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/utils/common.py +0 -0
  83. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/utils/struct_util.py +0 -0
  84. {solax_py_library-1.0.0.36 → solax_py_library-1.0.0.38}/solax_py_library/utils/time_util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: solax-py-library
3
- Version: 1.0.0.36
3
+ Version: 1.0.0.38
4
4
  Summary: some common tool
5
5
  Author: shenlvyu
6
6
  Author-email: 13296718439@163.com
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "solax-py-library"
3
- version = "1.0.0.36"
3
+ version = "1.0.0.38"
4
4
  description = "some common tool"
5
5
  authors = ["shenlvyu <13296718439@163.com>", "x5m8944pjl <371630856@qq.com>"]
6
6
  readme = "README.md"
@@ -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": "电网买电功率 {} {}KW",
163
- "en_US": "Grid import power {} {}KW",
162
+ "zh_CN": "电网买电功率 {} {}kW",
163
+ "en_US": "Grid import power {} {}kW",
164
164
  },
165
165
  "systemExportPower": {
166
- "zh_CN": "电网馈电功率 {} {}KW",
167
- "en_US": "Grid export power {} {}KW",
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": "普通告警", "en_US": "Normal alarm"},
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 = max(price[0:96]) - value
41
+ base = max_num - value
41
42
  else: # 比最高电价低X%
42
- base = round(max(price[0:96]) * (1 - value / 100), 4)
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 = value + min(price[0:96])
60
+ base = min_num + value
56
61
  else: # 比最低电价高X%
57
- base = round(min(price[0:96]) * (1 + value / 100), 4)
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