Browse Source

amend VRF control logic

highing666 3 years ago
parent
commit
88dea4f49a
1 changed files with 14 additions and 14 deletions
  1. 14 14
      app/controllers/equipment/vrf/basic.py

+ 14 - 14
app/controllers/equipment/vrf/basic.py

@@ -6,6 +6,7 @@ from loguru import logger
 from app.controllers.equipment.controller import EquipmentController
 from app.models.domain.devices import ACATVIInstructionsRequest
 from app.schemas.equipment import VRF
+from app.utils.math import round_half_up
 
 
 class VRFController(EquipmentController):
@@ -18,15 +19,9 @@ class VRFController(EquipmentController):
 
     def get_switch_set(self) -> str:
         if np.isnan(self.target):
-            if self.device.running_status:
-                switch_set = 'off'
-            else:
-                switch_set = 'hold'
+            switch_set = 'off'
         else:
-            if not self.device.running_status:
-                switch_set = 'on'
-            else:
-                switch_set = 'hold'
+            switch_set = 'on'
 
         self.device.equip_switch_set = switch_set
 
@@ -46,16 +41,19 @@ class VRFController(EquipmentController):
         if self.realtime >= 24.0:
             diff = self.device.return_air_temp - self.realtime
             if diff > 0:
-                self.device.temperature_set = self.target + diff
+                new_temperature_set = self.target + diff
             else:
-                self.device.temperature_set = self.target
+                new_temperature_set = self.target
         elif self.realtime <= 22.0:
-            self.device.temperature_set = self.device.return_air_temp + 1
+            new_temperature_set = self.device.return_air_temp + 1
         else:
             if np.isnan(self.device.current_temperature_set):
-                self.device.temperature_set = 25.0
+                new_temperature_set = 25.0
             else:
-                self.device.temperature_set = self.device.current_temperature_set
+                new_temperature_set = self.device.current_temperature_set
+
+        new_temperature_set = round_half_up(new_temperature_set)
+        self.device.temperature_set = new_temperature_set
 
         return self.device.temperature_set
 
@@ -85,7 +83,9 @@ class VRFController(EquipmentController):
         self.get_temperature_set()
 
         need_send = False
-        if self.get_switch_set() != 'hold':
+        if self.device.equip_switch_set == 'on' and not self.device.running_status:
+            need_send = True
+        if self.device.equip_switch_set == 'off' and self.device.running_status:
             need_send = True
         if self.device.temperature_set != self.device.current_temperature_set:
             need_send = True