Browse Source

optimize logic when can't get valid target

chenhaiyang 4 years ago
parent
commit
673eb14ae2

+ 3 - 3
app/controllers/equipment/fcu/basic.py

@@ -32,7 +32,7 @@ class FCUController(EquipmentController):
         return setting_target
 
     async def get_mode(self) -> int:
-        temperature_target = await self.get_temperature_target()
+        temperature_target = self._equipment.space.temperature_target
         if self.season == Season.heating:
             if temperature_target >= self._equipment.space.realtime_temperature:
                 mode = 2
@@ -47,7 +47,7 @@ class FCUController(EquipmentController):
         return mode
 
     async def get_air_valve_speed(self):
-        temperature_target = await self.get_temperature_target()
+        temperature_target = self._equipment.space.temperature_target
         if temperature_target > 0:
             if self.season == Season.heating:
                 diff = abs(self._equipment.space.realtime_temperature - temperature_target)
@@ -79,7 +79,7 @@ class FCUController(EquipmentController):
             self._equipment.running_status = True
 
     async def run(self):
-        await self.get_temperature_target()
+        # await self.get_temperature_target()
         await self.get_air_valve_speed()
         await self.get_running_status()
         await self.get_mode()

+ 1 - 1
app/controllers/equipment/fcu/q_learning.py

@@ -65,7 +65,7 @@ class QLearningCommandBuilder:
         speed = self.predict_speed(input_value)
         if np.isnan(current_temperature) or np.isnan(pre_temperature):
             speed = 2
-        if actual_target == 0.0:
+        if np.isnan(actual_target):
             speed = 0
 
         if speed == 0:

+ 6 - 9
app/services/transfer.py

@@ -108,15 +108,12 @@ class SpaceInfoService(Service):
 
     async def get_current_temperature_target(self) -> float:
         current_targets = await self.get_custom_target()
-        if len(current_targets) > 0:
-            temp = arrow.get(self._now_time, TIME_FMT).shift(minutes=15).timestamp // (15 * 60) * (15 * 60)
-            next_quarter_minutes = arrow.get(temp).time().strftime('%H%M%S')
-            try:
-                current_lower_target = current_targets['temperatureMin'].loc[next_quarter_minutes]
-                current_upper_target = current_targets['temperatureMax'].loc[next_quarter_minutes]
-            except KeyError:
-                current_lower_target, current_upper_target = 0.0, 0.0
-        else:
+        temp = arrow.get(self._now_time, TIME_FMT).shift(minutes=15).timestamp // (15 * 60) * (15 * 60)
+        next_quarter_minutes = arrow.get(temp).time().strftime('%H%M%S')
+        try:
+            current_lower_target = current_targets['temperatureMin'].loc[next_quarter_minutes]
+            current_upper_target = current_targets['temperatureMax'].loc[next_quarter_minutes]
+        except KeyError:
             current_lower_target, current_upper_target = np.NAN, np.NAN
 
         return round_half_up((current_lower_target + current_upper_target) / 2, 2)