浏览代码

amend VRF control logic

highing666 3 年之前
父节点
当前提交
f1e91831cb
共有 2 个文件被更改,包括 17 次插入3 次删除
  1. 16 3
      app/controllers/equipment/vrf/basic.py
  2. 1 0
      app/models/domain/devices.py

+ 16 - 3
app/controllers/equipment/vrf/basic.py

@@ -78,6 +78,16 @@ class VRFController(EquipmentController):
         self.get_mode_set()
         self.get_temperature_set()
 
+        need_send = False
+        if self.get_switch_set() != 'hold':
+            need_send = True
+        if self.device.temperature_set != self.device.current_temperature_set:
+            need_send = True
+        if self.device.speed_set != self.device.speed:
+            need_send = True
+
+        return need_send
+
     def get_results(self):
         return self.device
 
@@ -91,11 +101,14 @@ async def build_acatvi_instructions(params: ACATVIInstructionsRequest) -> Dict:
     vrf = VRF(return_air_temp=return_air_temp)
 
     controller = VRFController(vrf, target, realtime)
-    await controller.run()
+    need_send = await controller.run()
     regulated_vrf = controller.get_results()
 
-    instructions = {'switch_set': 'on' if regulated_vrf.equip_switch_set else 'off'}
-    if regulated_vrf.equip_switch_set:
+    instructions = {
+        'switch_set': regulated_vrf.equip_switch_set,
+        'need_send': need_send
+    }
+    if regulated_vrf.equip_switch_set != 'off':
         instructions.update({'speed_set': regulated_vrf.speed_set})
         instructions.update({'temperature_set': regulated_vrf.temperature_set})
         instructions.update({'mode_set': regulated_vrf.mode_set})

+ 1 - 0
app/models/domain/devices.py

@@ -40,6 +40,7 @@ class ACATVIInstructionsResponse(BaseModel):
     speed_set: Optional[str]
     temperature_set: Optional[str]
     mode_set: Optional[str]
+    need_send: bool
 
 
 class ACATFCInstructionsRequest(BaseModel):