|
@@ -132,30 +132,61 @@ class VRFController1(VRFController):
|
|
|
target: float,
|
|
|
realtime: float,
|
|
|
feedback: FeedbackValue,
|
|
|
- blow_feedback_time: datetime,
|
|
|
- high_speed_time: datetime,
|
|
|
- season: Season,
|
|
|
+ on_time: str,
|
|
|
+ off_time: str,
|
|
|
):
|
|
|
super(VRFController1, self).__init__(device, target, realtime)
|
|
|
self.feedback = feedback
|
|
|
- self.blow_feedback_time = blow_feedback_time
|
|
|
- self.high_speed_time = high_speed_time
|
|
|
- self.season = season
|
|
|
+ self.on_time = on_time
|
|
|
+ self.off_time = off_time
|
|
|
+
|
|
|
+ def get_switch_set(self) -> str:
|
|
|
+ if self.feedback.value == FeedbackValue.switch_off:
|
|
|
+ if self.device.running_status:
|
|
|
+ switch_set = "off"
|
|
|
+ else:
|
|
|
+ switch_set = "hold"
|
|
|
+ elif self.feedback.value == FeedbackValue.switch_on:
|
|
|
+ if not self.device.running_status:
|
|
|
+ switch_set = "on"
|
|
|
+ else:
|
|
|
+ switch_set = "hold"
|
|
|
+ else:
|
|
|
+ utc = arrow.utcnow()
|
|
|
+ now = utc.to("Asia/Shanghai")
|
|
|
+ ago = now.shift(seconds=-290).format("HHmmSS")
|
|
|
+ later = now.shift(seconds=290).format("HHmmSS")
|
|
|
+
|
|
|
+ if ago <= self.on_time <= later:
|
|
|
+ if not self.device.running_status:
|
|
|
+ switch_set = "on"
|
|
|
+ else:
|
|
|
+ switch_set = "hold"
|
|
|
+ elif ago <= self.off_time <= later:
|
|
|
+ if self.device.running_status:
|
|
|
+ switch_set = "off"
|
|
|
+ else:
|
|
|
+ switch_set = "hold"
|
|
|
+ else:
|
|
|
+ switch_set = "hold"
|
|
|
+
|
|
|
+ self.device.equip_switch_set = switch_set
|
|
|
+
|
|
|
+ return switch_set
|
|
|
|
|
|
def get_temperature_set(self) -> float:
|
|
|
- if self.season == Season.transition:
|
|
|
+ if self.device.work_mode == 4.0 or self.device.work_mode == 8.0:
|
|
|
+ # if self.season == Season.transition:
|
|
|
new_temperature_set = np.NAN
|
|
|
- elif self.season == Season.cooling:
|
|
|
+ elif self.device.work_mode == 1.0 or self.device.work_mode == 6.0:
|
|
|
+ # elif self.season == Season.cooling:
|
|
|
new_temperature_set = np.NAN
|
|
|
if np.isnan(self.target):
|
|
|
return new_temperature_set
|
|
|
|
|
|
- if self.device.work_mode == 4.0 or self.device.work_mode == 8.0:
|
|
|
- return new_temperature_set
|
|
|
-
|
|
|
# Default temperature set.
|
|
|
if not self.device.running_status:
|
|
|
- new_temperature_set = self.target
|
|
|
+ new_temperature_set = 26.0
|
|
|
|
|
|
# lower limit.
|
|
|
if self.realtime <= 22.0:
|
|
@@ -203,16 +234,13 @@ class VRFController1(VRFController):
|
|
|
|
|
|
if not np.isnan(new_temperature_set):
|
|
|
new_temperature_set = max(24.0, min(28.0, new_temperature_set))
|
|
|
- else:
|
|
|
+ elif self.device.work_mode == 2.0 or self.device.work_mode == 7.0:
|
|
|
new_temperature_set = np.NAN
|
|
|
if np.isnan(self.target):
|
|
|
return new_temperature_set
|
|
|
|
|
|
- if self.device.work_mode == 4.0 or self.device.work_mode == 8.0:
|
|
|
- return new_temperature_set
|
|
|
-
|
|
|
if not self.device.running_status:
|
|
|
- new_temperature_set = self.target
|
|
|
+ new_temperature_set = 20.0
|
|
|
|
|
|
if self.realtime >= 27.0:
|
|
|
new_temperature_set = 18.0
|
|
@@ -246,12 +274,13 @@ class VRFController1(VRFController):
|
|
|
new_temperature_set = (
|
|
|
self.device.current_temperature_set - 2.0
|
|
|
)
|
|
|
-
|
|
|
else:
|
|
|
new_temperature_set = self.device.current_temperature_set - 1.0
|
|
|
|
|
|
if not np.isnan(new_temperature_set):
|
|
|
new_temperature_set = max(18.0, min(24.0, new_temperature_set))
|
|
|
+ else:
|
|
|
+ new_temperature_set = np.NAN
|
|
|
|
|
|
new_temperature_set = round_half_up(new_temperature_set)
|
|
|
self.device.temperature_set = new_temperature_set
|
|
@@ -259,7 +288,8 @@ class VRFController1(VRFController):
|
|
|
return new_temperature_set
|
|
|
|
|
|
def get_speed_set(self) -> str:
|
|
|
- if self.season == Season.transition:
|
|
|
+ if self.device.work_mode == 4.0 or self.device.work_mode == 8.0:
|
|
|
+ # if self.season == Season.transition:
|
|
|
if np.isnan(self.target):
|
|
|
new_speed = "hold"
|
|
|
else:
|
|
@@ -274,7 +304,8 @@ class VRFController1(VRFController):
|
|
|
new_speed = "LL"
|
|
|
else:
|
|
|
new_speed = "M"
|
|
|
- elif self.season == Season.cooling:
|
|
|
+ elif self.device.work_mode == 1.0 or self.device.work_mode == 6.0:
|
|
|
+ # elif self.season == Season.cooling:
|
|
|
new_speed = "hold"
|
|
|
if np.isnan(self.target):
|
|
|
return new_speed
|
|
@@ -310,7 +341,7 @@ class VRFController1(VRFController):
|
|
|
new_speed = "LL"
|
|
|
else:
|
|
|
new_speed = "LL"
|
|
|
- else:
|
|
|
+ elif self.device.work_mode == 2.0 or self.device.work_mode == 7.0:
|
|
|
new_speed = "hold"
|
|
|
if np.isnan(self.target):
|
|
|
return new_speed
|
|
@@ -346,13 +377,15 @@ class VRFController1(VRFController):
|
|
|
new_speed = "LL"
|
|
|
else:
|
|
|
new_speed = "LL"
|
|
|
+ else:
|
|
|
+ new_speed = "hold"
|
|
|
|
|
|
- a_now = arrow.utcnow()
|
|
|
+ # a_now = arrow.utcnow()
|
|
|
|
|
|
# Restriction.
|
|
|
- if a_now.date() == arrow.get(self.blow_feedback_time).date():
|
|
|
- if new_speed == "HH":
|
|
|
- new_speed = "M"
|
|
|
+ # if a_now.date() == arrow.get(self.blow_feedback_time).date():
|
|
|
+ # if new_speed == "HH":
|
|
|
+ # new_speed = "M"
|
|
|
|
|
|
# Recovery.
|
|
|
# logger.debug(self.high_speed_time)
|
|
@@ -373,10 +406,10 @@ class VRFController1(VRFController):
|
|
|
if not self.device.running_status:
|
|
|
new_speed = "HH"
|
|
|
else:
|
|
|
- if self.realtime > 26.0:
|
|
|
- new_speed = "HH"
|
|
|
- elif self.realtime < 22.0:
|
|
|
- new_speed = "LL"
|
|
|
+ # if self.realtime > 26.0:
|
|
|
+ # new_speed = "HH"
|
|
|
+ # elif self.realtime < 22.0:
|
|
|
+ # new_speed = "LL"
|
|
|
|
|
|
if (
|
|
|
self.feedback == FeedbackValue.a_little_cold
|
|
@@ -403,10 +436,7 @@ class VRFController1(VRFController):
|
|
|
|
|
|
async def run(self):
|
|
|
self.get_switch_set()
|
|
|
- if self.device.work_mode == 4.0 or self.device.work_mode == 8.0:
|
|
|
- self.ventilation_mode()
|
|
|
- else:
|
|
|
- self.get_speed_set()
|
|
|
+ self.get_speed_set()
|
|
|
self.get_temperature_set()
|
|
|
|
|
|
|
|
@@ -474,61 +504,51 @@ async def build_acatvi_instructions(
|
|
|
work_mode=params.work_mode,
|
|
|
)
|
|
|
|
|
|
- act_blowy_feedback_time, act_high_speed_time = await query_status_time(
|
|
|
- db, params.device_id
|
|
|
- )
|
|
|
-
|
|
|
controller = VRFController1(
|
|
|
- vrf,
|
|
|
- target,
|
|
|
- realtime,
|
|
|
- params.feedback,
|
|
|
- act_blowy_feedback_time,
|
|
|
- act_high_speed_time,
|
|
|
- params.season,
|
|
|
+ vrf, target, realtime, params.feedback, params.on_time, params.off_time
|
|
|
)
|
|
|
await controller.run()
|
|
|
regulated_vrf = controller.get_results()
|
|
|
|
|
|
- if params.feedback == FeedbackValue.noisy_or_blowy:
|
|
|
- blowy_feedback_time_in_db = blowy_feedback_time.get_time_by_device(
|
|
|
- db=db, device_id=params.device_id
|
|
|
- )
|
|
|
- if blowy_feedback_time_in_db:
|
|
|
- blowy_feedback_time.update(
|
|
|
- db=db,
|
|
|
- db_obj=blowy_feedback_time_in_db,
|
|
|
- obj_in=BlowyFeedbackTimeUpdate(
|
|
|
- timestamp=datetime.utcnow(), device_id=params.device_id
|
|
|
- ),
|
|
|
- )
|
|
|
- else:
|
|
|
- blowy_feedback_time.create(
|
|
|
- db=db,
|
|
|
- obj_in=BlowyFeedbackTimeCreate(
|
|
|
- timestamp=datetime.utcnow(), device_id=params.device_id
|
|
|
- ),
|
|
|
- )
|
|
|
-
|
|
|
- if regulated_vrf.speed_set == "HH":
|
|
|
- high_speed_time_in_db = high_speed_time.get_time_by_device(
|
|
|
- db=db, device_id=params.device_id
|
|
|
- )
|
|
|
- if high_speed_time_in_db:
|
|
|
- high_speed_time.update(
|
|
|
- db=db,
|
|
|
- db_obj=high_speed_time_in_db,
|
|
|
- obj_in=HighSpeedTimeUpdate(
|
|
|
- timestamp=datetime.utcnow(), device_id=params.device_id
|
|
|
- ),
|
|
|
- )
|
|
|
- else:
|
|
|
- high_speed_time.create(
|
|
|
- db=db,
|
|
|
- obj_in=HighSpeedTimeCreate(
|
|
|
- timestamp=datetime.utcnow(), device_id=params.device_id
|
|
|
- ),
|
|
|
- )
|
|
|
+ # if params.feedback == FeedbackValue.noisy_or_blowy:
|
|
|
+ # blowy_feedback_time_in_db = blowy_feedback_time.get_time_by_device(
|
|
|
+ # db=db, device_id=params.device_id
|
|
|
+ # )
|
|
|
+ # if blowy_feedback_time_in_db:
|
|
|
+ # blowy_feedback_time.update(
|
|
|
+ # db=db,
|
|
|
+ # db_obj=blowy_feedback_time_in_db,
|
|
|
+ # obj_in=BlowyFeedbackTimeUpdate(
|
|
|
+ # timestamp=datetime.utcnow(), device_id=params.device_id
|
|
|
+ # ),
|
|
|
+ # )
|
|
|
+ # else:
|
|
|
+ # blowy_feedback_time.create(
|
|
|
+ # db=db,
|
|
|
+ # obj_in=BlowyFeedbackTimeCreate(
|
|
|
+ # timestamp=datetime.utcnow(), device_id=params.device_id
|
|
|
+ # ),
|
|
|
+ # )
|
|
|
+
|
|
|
+ # if regulated_vrf.speed_set == "HH":
|
|
|
+ # high_speed_time_in_db = high_speed_time.get_time_by_device(
|
|
|
+ # db=db, device_id=params.device_id
|
|
|
+ # )
|
|
|
+ # if high_speed_time_in_db:
|
|
|
+ # high_speed_time.update(
|
|
|
+ # db=db,
|
|
|
+ # db_obj=high_speed_time_in_db,
|
|
|
+ # obj_in=HighSpeedTimeUpdate(
|
|
|
+ # timestamp=datetime.utcnow(), device_id=params.device_id
|
|
|
+ # ),
|
|
|
+ # )
|
|
|
+ # else:
|
|
|
+ # high_speed_time.create(
|
|
|
+ # db=db,
|
|
|
+ # obj_in=HighSpeedTimeCreate(
|
|
|
+ # timestamp=datetime.utcnow(), device_id=params.device_id
|
|
|
+ # ),
|
|
|
+ # )
|
|
|
|
|
|
instructions = dict()
|
|
|
instructions.update({"switch_set": regulated_vrf.equip_switch_set})
|