|
@@ -1,5 +1,6 @@
|
|
|
from typing import Dict, Optional
|
|
|
|
|
|
+import numpy as np
|
|
|
from loguru import logger
|
|
|
|
|
|
from app.controllers.equipment.controller import EquipmentController
|
|
@@ -15,13 +16,10 @@ class VRFController(EquipmentController):
|
|
|
self.realtime = realtime
|
|
|
|
|
|
def get_switch_set(self, speed: Optional[str] = 'off') -> bool:
|
|
|
- if self.target and self.target:
|
|
|
- if speed == 'off':
|
|
|
- switch_set = False
|
|
|
- else:
|
|
|
- switch_set = True
|
|
|
- else:
|
|
|
+ if speed == 'off':
|
|
|
switch_set = False
|
|
|
+ else:
|
|
|
+ switch_set = True
|
|
|
|
|
|
self.device.equip_switch_set = switch_set
|
|
|
|
|
@@ -57,20 +55,20 @@ class VRFController(EquipmentController):
|
|
|
elif diff >= 2.0:
|
|
|
speed = 'HH'
|
|
|
else:
|
|
|
- speed = 'unknown'
|
|
|
+ speed = 'off'
|
|
|
|
|
|
self.device.speed_set = speed
|
|
|
|
|
|
return speed
|
|
|
|
|
|
async def run(self):
|
|
|
- if self.target and self.realtime:
|
|
|
+ if np.isnan(self.target) or np.isnan(self.realtime):
|
|
|
+ self.get_switch_set()
|
|
|
+ else:
|
|
|
speed = self.get_speed_set()
|
|
|
self.get_switch_set(speed)
|
|
|
self.get_mode_set()
|
|
|
self.get_temperature_set()
|
|
|
- else:
|
|
|
- self.get_switch_set()
|
|
|
|
|
|
def get_results(self):
|
|
|
return self.device
|
|
@@ -79,6 +77,9 @@ class VRFController(EquipmentController):
|
|
|
@logger.catch()
|
|
|
async def get_vrf_instructions(device_id: str, target: float, realtime: float) -> Dict:
|
|
|
vrf = VRF(id=device_id)
|
|
|
+ target = np.NAN if target == -1.0 else target
|
|
|
+ realtime = np.NAN if realtime == -1.0 else realtime
|
|
|
+
|
|
|
controller = VRFController(vrf, target, realtime)
|
|
|
await controller.run()
|
|
|
regulated_vrf = controller.get_results()
|