Quellcode durchsuchen

modify ATFC logic

highing666 vor 2 Jahren
Ursprung
Commit
1eeb246c5a
2 geänderte Dateien mit 45 neuen und 31 gelöschten Zeilen
  1. 44 30
      app/controllers/equipment/fcu/basic.py
  2. 1 1
      docker-compose.yml

+ 44 - 30
app/controllers/equipment/fcu/basic.py

@@ -233,25 +233,7 @@ class ATFC2Controller:
 
     def build_speed_set(self) -> Speed:
         speed_controller = SpeedController(self.speed, self.running_status)
-        if self.space_realtime and self.space_target:
-            if self.season == Season.cooling:
-                diff = self.space_realtime - self.space_target
-            elif self.season == Season.heating:
-                diff = self.space_target - self.space_realtime
-            else:
-                diff = 0.0
-
-            if diff <= -0.2:
-                speed = Speed.off
-            elif diff <= 0.2:
-                speed = Speed.hold
-            elif diff < 0.5:
-                speed = Speed.low
-            elif diff < 1.5:
-                speed = Speed.medium
-            else:
-                speed = Speed.high
-        else:
+        if self.feedback != FeedbackValue.null:
             speed = Speed.hold
             if not self.space_target:
                 speed = Speed.off
@@ -268,6 +250,30 @@ class ATFC2Controller:
                         speed = speed_controller.turn_down()
                     elif self.season == Season.heating:
                         speed = speed_controller.turn_up()
+        else:
+            if not self.space_target:
+                speed = Speed.off
+            else:
+                if self.space_realtime:
+                    if self.season == Season.cooling:
+                        diff = self.space_realtime - self.space_target
+                    elif self.season == Season.heating:
+                        diff = self.space_target - self.space_realtime
+                    else:
+                        diff = 0.0
+
+                    if diff <= -0.2:
+                        speed = Speed.off
+                    elif diff <= 0.2:
+                        speed = Speed.hold
+                    elif diff < 0.5:
+                        speed = Speed.low
+                    elif diff < 1.5:
+                        speed = Speed.medium
+                    else:
+                        speed = Speed.high
+                else:
+                    speed = Speed.hold
 
         return speed
 
@@ -322,17 +328,7 @@ class ATFC4Controller(ATFC2Controller):
         speed = super().build_speed_set()
         if self.season == Season.heating:
             speed_controller = SpeedController(self.speed, self.running_status)
-            if self.space_target and self.space_realtime:
-                diff = abs(self.space_realtime - self.space_target)
-                if diff < 0.2:
-                    speed = Speed.hold
-                elif diff < 0.5:
-                    speed = Speed.low
-                elif diff < 1.5:
-                    speed = Speed.medium
-                else:
-                    speed = Speed.high
-            else:
+            if self.feedback != FeedbackValue.null:
                 if not self.space_target:
                     speed = Speed.off
                 else:
@@ -342,6 +338,24 @@ class ATFC4Controller(ATFC2Controller):
                         speed = speed_controller.turn_up()
                     elif self.feedback == FeedbackValue.so_cold or self.feedback == FeedbackValue.a_little_cold:
                         speed = speed_controller.turn_up()
+                    else:
+                        speed = Speed.hold
+            else:
+                if not self.space_target:
+                    speed = Speed.off
+                else:
+                    if self.space_realtime:
+                        diff = abs(self.space_realtime - self.space_target)
+                        if diff < 0.2:
+                            speed = Speed.hold
+                        elif diff < 0.5:
+                            speed = Speed.low
+                        elif diff < 1.5:
+                            speed = Speed.medium
+                        else:
+                            speed = Speed.high
+                    else:
+                        speed = Speed.hold
 
         return speed
 

+ 1 - 1
docker-compose.yml

@@ -2,7 +2,7 @@ version: "3"
 
 services:
   app:
-      image: registry.persagy.com/sagacloud/saga_algo_api:0.5.12
+      image: registry.persagy.com/sagacloud/saga_algo_api:0.5.13
       container_name: saga_algo_api
       ports:
         - "8002:8002"