123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- from typing import Dict
- from httpx import AsyncClient
- from loguru import logger
- class OffRatioController:
- def __init__(self, target: float, return_air: float, period_num: int, last_off_ratio: float):
- super(OffRatioController, self).__init__()
- self.target = target
- self.return_air = return_air
- self.period_num = period_num
- self.last_off_ratio = last_off_ratio
- def select_mode(self) -> str:
- if self.target < self.return_air:
- mode = 'off'
- else:
- if self.target - self.return_air > 1:
- mode = 'normal'
- else:
- mode = 'off_ratio'
- return mode
- def select_speed(self, last_return_air: float) -> str:
- mode = self.select_mode()
- if mode == 'off':
- speed = 'off'
- elif mode == 'normal':
- if (self.return_air - last_return_air) / 10 > 0.053:
- speed = 'medium'
- else:
- speed = 'high'
- else:
- speed = 'medium'
- return speed
- def select_water_valve(self) -> bool:
- mode = self.select_mode()
- if mode == 'off':
- switch = True
- elif mode == 'normal':
- switch = False
- else:
- switch = True
- return switch
- def calculate_off_ratio(self) -> float:
-
|