Browse Source

added post function for /equip/control

chenhaiyang 4 years ago
parent
commit
d15e89c40a
2 changed files with 35 additions and 1 deletions
  1. 28 1
      app/api/routers/equipment.py
  2. 7 0
      app/models/equipment.py

+ 28 - 1
app/api/routers/equipment.py

@@ -7,7 +7,7 @@ from loguru import logger
 
 from app.controllers.equipment.fcu import get_fcu_control_result
 from app.controllers.equipment.vav import get_vav_control_result
-from app.models.equipment import EquipmentControlInResponse
+from app.models.equipment import EquipmentControlInResponse, EquipmentControlInRequest
 from app.utils.date import get_time_str
 
 
@@ -49,3 +49,30 @@ async def get_equipment_command(
         'output': output
     }
     return response
+
+
+@router.post('/control', response_model=EquipmentControlInResponse, tags=['equipment'])
+async def get_equipment_command_v2(equipment_control_info: EquipmentControlInRequest):
+    if equipment_control_info.equipType == EquipmentName.FCU:
+        fcu = await get_fcu_control_result(equipment_control_info.projectId, equipment_control_info.equipId)
+        output = {
+            'RunStatus': 1 if fcu.running_status else 0,
+            'WorkModeSet': 1,
+            'FanGearSet': fcu.air_valve_speed.value,
+            'IndoorAirTempSet': fcu.setting_temperature
+        }
+    elif equipment_control_info.equipType == EquipmentName.VAV:
+        vav = await get_vav_control_result(equipment_control_info.projectId, equipment_control_info.equipId)
+        output = {
+            'SupplyAirFlowSet': vav.supply_air_flow_set
+        }
+    else:
+        output = {}
+
+    response = {
+        'projectId': equipment_control_info.projectId,
+        'equipId': equipment_control_info.equipId,
+        'time': get_time_str(),
+        'output': output
+    }
+    return response

+ 7 - 0
app/models/equipment.py

@@ -41,3 +41,10 @@ class EquipmentControlInResponse(BaseModel):
     equipId: str
     time: str
     output: dict
+
+
+class EquipmentControlInRequest(BaseModel):
+    equipId: str
+    method: str
+    projectId: str
+    equipType: str