|
@@ -14,7 +14,6 @@ from app.resources.params import (
|
|
|
TEMPERATURE_RELATED_FEEDBACK_WEIGHT,
|
|
|
TEMPERATURE_RELATED_FEEDBACK,
|
|
|
CO2_RELATED_FEEDBACK_WEIGHT,
|
|
|
- CO2_RELATED_FEEDBACK,
|
|
|
SWITCH_RELATED_FEEDBACK
|
|
|
)
|
|
|
from app.services.platform import DataPlatformService
|
|
@@ -62,15 +61,9 @@ class TargetController(Controller):
|
|
|
|
|
|
async def generate_temporary(self, lower, upper):
|
|
|
now_str = get_time_str()
|
|
|
- start = arrow.get(arrow.get(now_str, TIME_FMT).timestamp // (15 * 60) * (15 * 60))
|
|
|
- end = start.shift(hours=2)
|
|
|
- current = start
|
|
|
- time_index = []
|
|
|
- while current <= end:
|
|
|
- temp = current.time().strftime('%H%M%S')
|
|
|
- time_index.append(temp)
|
|
|
- current = current.shift(minutes=15)
|
|
|
- result = {item: [lower, upper] for item in time_index}
|
|
|
+ time_index = arrow.get(arrow.get(now_str, TIME_FMT).timestamp
|
|
|
+ // (15 * 60) * (15 * 60)).time().strftime('%H%M%S')
|
|
|
+ result = {time_index: [lower, upper]}
|
|
|
self._results.update({'temporary_targets': result})
|
|
|
|
|
|
async def readjust_global(self, latest_change: float, previous_changes: pd.DataFrame):
|
|
@@ -298,7 +291,7 @@ class Co2TargetController(TargetController):
|
|
|
|
|
|
|
|
|
@logger.catch()
|
|
|
-async def readjust_all_target(project_id: str, space_id: str, wechat_time: str, feedback: Optional[Dict] = None):
|
|
|
+async def readjust_all_target(project_id: str, space_id: str, wechat_time: str):
|
|
|
async with AsyncClient() as client:
|
|
|
transfer = TransferService(client, project_id, space_id)
|
|
|
platform = DataPlatformService(client, project_id, space_id)
|
|
@@ -306,8 +299,6 @@ async def readjust_all_target(project_id: str, space_id: str, wechat_time: str,
|
|
|
nl = '\n'
|
|
|
realtime_temperature = await platform.get_realtime_temperature()
|
|
|
logger.debug(f'realtime temperature: {realtime_temperature}')
|
|
|
- realtime_co2 = await platform.get_realtime_co2()
|
|
|
- logger.debug(f'realtime co2: {realtime_co2}')
|
|
|
current_targets = await transfer.get_custom_target()
|
|
|
logger.debug(f'current targets: {nl}{current_targets}')
|
|
|
feedback = await transfer.get_feedback(wechat_time)
|
|
@@ -322,8 +313,6 @@ async def readjust_all_target(project_id: str, space_id: str, wechat_time: str,
|
|
|
previous_changes = await transfer.env_database_get()
|
|
|
temperature_changes = previous_changes.get('temperature')
|
|
|
logger.debug(f'temperature previous changes: {nl}{temperature_changes}')
|
|
|
- co2_changes = previous_changes.get('co2')
|
|
|
- logger.debug(f'CO2 previous changes: {nl}{co2_changes}')
|
|
|
|
|
|
if feedback.get('switch off') and feedback.get('switch off') > 0:
|
|
|
need_switch_off = True
|
|
@@ -358,22 +347,7 @@ async def readjust_all_target(project_id: str, space_id: str, wechat_time: str,
|
|
|
temperature_results = temperature_controller.get_results()
|
|
|
break
|
|
|
|
|
|
- co2_results = {}
|
|
|
- for item in CO2_RELATED_FEEDBACK:
|
|
|
- if feedback.get(item) and feedback.get(item) > 0:
|
|
|
- co2_controller = Co2TargetController(
|
|
|
- realtime_co2,
|
|
|
- feedback,
|
|
|
- is_customized,
|
|
|
- is_temporary,
|
|
|
- current_targets[['co2Min', 'co2Max']].copy(),
|
|
|
- previous_changes['co2'],
|
|
|
- )
|
|
|
- await co2_controller.run()
|
|
|
- co2_results = co2_controller.get_results()
|
|
|
- break
|
|
|
-
|
|
|
- if temperature_results or co2_results:
|
|
|
+ if temperature_results:
|
|
|
need_run_room_control = True
|
|
|
async with AsyncClient() as client:
|
|
|
transfer = TransferService(client, project_id, space_id)
|
|
@@ -391,17 +365,4 @@ async def readjust_all_target(project_id: str, space_id: str, wechat_time: str,
|
|
|
logger.debug(f'temperature latest change: {latest_change}')
|
|
|
await transfer.env_database_set('temperature', temperature_results.get('latest_change'))
|
|
|
|
|
|
- if co2_results.get('temporary_targets'):
|
|
|
- temporary_targets = co2_results.get('temporary_targets')
|
|
|
- logger.debug(f'co2 temporary targets: {nl}{temporary_targets}')
|
|
|
- await transfer.set_custom_target('co2', co2_results.get('temporary_targets'), '0')
|
|
|
- if co2_results.get('global_targets'):
|
|
|
- global_targets = co2_results.get('global_targets')
|
|
|
- logger.debug(f'co2 global targets: {nl}{global_targets}')
|
|
|
- await transfer.set_custom_target('co2', co2_results.get('global_targets'), '1')
|
|
|
- if co2_results.get('latest_change'):
|
|
|
- latest_change = co2_results.get('latest_change')
|
|
|
- logger.debug(f'co2 latest change: {latest_change}')
|
|
|
- await transfer.env_database_set('co2', co2_results.get('latest_change'))
|
|
|
-
|
|
|
return need_run_room_control
|