highing666 hace 2 años
padre
commit
60fcb95569

+ 0 - 119
app/api/routers/equipment.py

@@ -1,119 +0,0 @@
-# -*- coding: utf-8 -*-
-
-from enum import Enum
-
-import numpy as np
-from fastapi import APIRouter, Depends, Query
-from loguru import logger
-from sqlalchemy.orm import Session
-
-from app.api.dependencies.db import get_db
-from app.controllers.equipment.fcu.basic import get_fcu_control_result
-from app.controllers.equipment.vav import get_vav_control_v2
-from app.models.domain.equipment import (
-    EquipmentControlResponse,
-    EquipmentControlRequest,
-)
-from app.schemas.equipment import PAU
-from app.utils.date import get_time_str
-
-
-class EquipmentName(str, Enum):
-    FCU = "ACATFC"
-    VAV = "ACATVA"
-
-
-router = APIRouter()
-
-
-@router.get("/control", response_model=EquipmentControlResponse)
-async def get_equipment_command_test(
-    project_id: str = Query(..., max_length=50, regex="^Pj", alias="projectId"),
-    equip_id: str = Query(..., max_length=50, regex="^Eq", alias="equipId"),
-    equip_type: EquipmentName = Query(..., alias="equipType"),
-    db: Session = Depends(get_db),
-):
-    if equip_type.value == EquipmentName.FCU:
-        output = await get_fcu_control_result(project_id, equip_id)
-    elif equip_type.value == EquipmentName.VAV:
-        vav = await get_vav_control_v2(db, project_id, equip_id)
-        output = {
-            "SupplyAirFlowSet": vav.supply_air_flow_set,
-            "VirtualRealtimeTemperature": vav.virtual_realtime_temperature
-            if not np.isnan(vav.virtual_realtime_temperature)
-            else None,
-            "TargetTemperatureSet": vav.virtual_target_temperature
-            if not np.isnan(vav.virtual_target_temperature)
-            else None,
-        }
-    else:
-        output = {}
-
-    response = {
-        "projectId": project_id,
-        "equipId": equip_id,
-        "time": get_time_str(),
-        "output": output,
-    }
-    return response
-
-
-@router.post("/control", response_model=EquipmentControlResponse)
-async def get_equipment_command(
-    equipment_control_info: EquipmentControlRequest, db: Session = Depends(get_db)
-):
-    if equipment_control_info.equipType == EquipmentName.FCU:
-        output = await get_fcu_control_result(
-            equipment_control_info.projectId, equipment_control_info.equipId
-        )
-    elif equipment_control_info.equipType == EquipmentName.VAV:
-        vav = await get_vav_control_v2(
-            db, equipment_control_info.projectId, equipment_control_info.equipId
-        )
-        output = {
-            "SupplyAirFlowSet": vav.supply_air_flow_set,
-            "VirtualRealtimeTemperature": vav.virtual_realtime_temperature
-            if not np.isnan(vav.virtual_realtime_temperature)
-            else None,
-            "TargetTemperatureSet": vav.virtual_target_temperature
-            if not np.isnan(vav.virtual_target_temperature)
-            else None,
-        }
-    else:
-        output = {}
-
-    response = {
-        "projectId": equipment_control_info.projectId,
-        "equipId": equipment_control_info.equipId,
-        "time": get_time_str(),
-        "output": output,
-    }
-    logger.info(response)
-    return response
-
-
-@router.post("/control/atva/v2", response_model=EquipmentControlResponse)
-async def get_fcu_command(
-    equipment_control_info: EquipmentControlRequest, db: Session = Depends(get_db)
-):
-    vav = await get_vav_control_v2(
-        db, equipment_control_info.projectId, equipment_control_info.equipId
-    )
-    output = {
-        "SupplyAirFlowSet": vav.supply_air_flow_set,
-        "VirtualRealtimeTemperature": vav.virtual_realtime_temperature
-        if not np.isnan(vav.virtual_realtime_temperature)
-        else None,
-        "TargetTemperatureSet": vav.virtual_target_temperature
-        if not np.isnan(vav.virtual_target_temperature)
-        else None,
-    }
-
-    response = {
-        "projectId": equipment_control_info.projectId,
-        "equipId": equipment_control_info.equipId,
-        "time": get_time_str(),
-        "output": output,
-    }
-    logger.info(response)
-    return response

+ 3 - 2
app/controllers/equipment/ahu/common.py

@@ -164,8 +164,9 @@ async def build_acatah_instructions(params: ACATAHInstructionsRequest):
     space_params = []
     for sp in params.spaces:
         temp_sp = SpaceATAH(**sp.dict())
-        temp_sp.diff = temp_sp.temperature_target - temp_sp.realtime_temperature
-        space_params.append(temp_sp)
+        if temp_sp.temperature_target and temp_sp.realtime_temperature:
+            temp_sp.diff = temp_sp.temperature_target - temp_sp.realtime_temperature
+            space_params.append(temp_sp)
 
     ahu = AHU(**params.dict())
     ahu_controller = ATAHController(ahu, space_params, params.season)

+ 2 - 1
app/controllers/equipment/ahu/supply_air_temperature_set.py

@@ -166,7 +166,8 @@ def build_acatah_supply_air_temperature_set(params: ACATAHSupplyAirTempSetReques
         for raw_vav in params.vav_list:
             vav = VAVBox(**raw_vav.dict())
             vav.virtual_target_temperature = raw_vav.virtual_temperature_target
-            vav_list.append(vav)
+            if vav.virtual_target_temperature and vav.virtual_realtime_temperature:
+                vav_list.append(vav)
 
         if params.chill_water_valve_opening_set_list[-1] == 0.0:
             thermal_mode = ThermalMode.heating

+ 10 - 9
app/controllers/equipment/ahu/thermal_mode.py

@@ -85,15 +85,16 @@ class ACATAHThermalModeController:
 def build_acatah_thermal_mode_set(params: ACATAHThermalModeSetRequest) -> str:
     vav_list = list()
     for raw_vav in params.vav_list:
-        vav = VAVBox(
-            virtual_realtime_temperature=raw_vav.virtual_realtime_temperature,
-            virtual_target_temperature=raw_vav.virtual_temperature_target,
-            supply_air_flow_lower_limit=raw_vav.supply_air_flow_lower_limit,
-            supply_air_flow_upper_limit=raw_vav.supply_air_flow_upper_limit,
-            supply_air_flow_set=raw_vav.supply_air_flow_set,
-            valve_opening=raw_vav.valve_opening,
-        )
-        vav_list.append(vav)
+        if raw_vav.virtual_realtime_temperature and raw_vav.virtual_temperature_target:
+            vav = VAVBox(
+                virtual_realtime_temperature=raw_vav.virtual_realtime_temperature,
+                virtual_target_temperature=raw_vav.virtual_temperature_target,
+                supply_air_flow_lower_limit=raw_vav.supply_air_flow_lower_limit,
+                supply_air_flow_upper_limit=raw_vav.supply_air_flow_upper_limit,
+                supply_air_flow_set=raw_vav.supply_air_flow_set,
+                valve_opening=raw_vav.valve_opening,
+            )
+            vav_list.append(vav)
 
     controller = ACATAHThermalModeController(vav_list, Season(params.season))
     mode = controller.build()