Просмотр исходного кода

update HongShan FCU control logic

chenhaiyang 4 лет назад
Родитель
Сommit
12de4d46b6
1 измененных файлов с 19 добавлено и 10 удалено
  1. 19 10
      app/controllers/equipment/fcu/basic.py

+ 19 - 10
app/controllers/equipment/fcu/basic.py

@@ -31,10 +31,28 @@ class FCUController(EquipmentController):
 
         return setting_target
 
+    async def get_mode(self) -> None:
+        temperature_target = await self.get_temperature_target()
+        if self.season == Season.heating:
+            if temperature_target > self._equipment.space.realtime_temperature:
+                mode = 2
+            else:
+                mode = 1
+        elif self.season == Season.cooling:
+            mode = 1
+        else:
+            mode = 0
+        self._equipment.work_mode = mode
+
     async def get_air_valve_speed(self):
         temperature_target = await self.get_temperature_target()
+        mode = await self.get_mode()
         if temperature_target > 0:
-            diff = self._equipment.space.realtime_temperature - temperature_target
+            if mode == 1:
+                diff = self._equipment.space.realtime_temperature - temperature_target
+            else:
+                diff = abs(self._equipment.space.realtime_temperature - temperature_target)
+
             if diff >= 1.0:
                 self._equipment.air_valve_speed = AirValveSpeed.high
             elif diff >= 0.5:
@@ -52,15 +70,6 @@ class FCUController(EquipmentController):
         else:
             self._equipment.running_status = True
 
-    async def get_mode(self) -> None:
-        if self.season == Season.heating:
-            mode = 2
-        elif self.season == Season.cooling:
-            mode = 1
-        else:
-            mode = 0
-        self._equipment.work_mode = mode
-
     async def run(self):
         await self.get_temperature_target()
         await self.get_air_valve_speed()