Ver código fonte

amend VRF control logic

highing666 4 anos atrás
pai
commit
f61074433c
1 arquivos alterados com 23 adições e 14 exclusões
  1. 23 14
      app/controllers/equipment/vrf/basic.py

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

@@ -42,10 +42,18 @@ class VRFController(EquipmentController):
             diff = self.device.return_air_temp - self.realtime
             if diff > 0:
                 new_temperature_set = self.target + diff
-            else:
+            elif diff <= 0:
                 new_temperature_set = self.target
+            else:
+                if np.isnan(self.device.current_temperature_set):
+                    new_temperature_set = self.realtime
+                else:
+                    new_temperature_set = self.device.current_temperature_set
         elif self.realtime <= 22.0:
-            new_temperature_set = self.device.return_air_temp + 1
+            if np.isnan(self.device.return_air_temp):
+                new_temperature_set = 25.0
+            else:
+                new_temperature_set = self.device.return_air_temp + 1
         else:
             if np.isnan(self.device.current_temperature_set):
                 new_temperature_set = 25.0
@@ -77,20 +85,21 @@ class VRFController(EquipmentController):
         return speed
 
     async def run(self):
-        self.get_speed_set()
-        self.get_switch_set()
-        self.get_mode_set()
-        self.get_temperature_set()
-
         need_send = False
-        if self.device.equip_switch_set == 'on' and not self.device.running_status:
-            need_send = True
+        if self.get_switch_set() == 'on':
+            self.get_speed_set()
+            self.get_mode_set()
+            self.get_temperature_set()
+
+            if self.device.temperature_set != self.device.current_temperature_set:
+                need_send = True
+            if self.device.speed_set != self.device.speed:
+                need_send = True
+            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
-        if self.device.speed_set != self.device.speed:
-            need_send = True
 
         return need_send
 
@@ -126,7 +135,7 @@ async def build_acatvi_instructions(params: ACATVIInstructionsRequest) -> Dict:
         'switch_set': regulated_vrf.equip_switch_set,
         'need_send': need_send
     }
-    if regulated_vrf.equip_switch_set != 'off':
+    if regulated_vrf.equip_switch_set == 'on':
         instructions.update({'speed_set': regulated_vrf.speed_set})
         instructions.update({'temperature_set': regulated_vrf.temperature_set})
         instructions.update({'mode_set': regulated_vrf.mode_set})