|
@@ -21,10 +21,18 @@ class EarlyStartTimeDTRBuilder:
|
|
|
self.model_path = f'{settings.ML_MODELS_DIR}{model_path}'
|
|
|
|
|
|
async def get_prediction(self, indoor_temp: float, outdoor_temp: float) -> float:
|
|
|
- model = load(self.model_path)
|
|
|
- pre_time = model.predict([[outdoor_temp, indoor_temp]])
|
|
|
+ try:
|
|
|
+ model = load(self.model_path)
|
|
|
+ except FileNotFoundError:
|
|
|
+ return 0
|
|
|
|
|
|
- return pre_time[0]
|
|
|
+ try:
|
|
|
+ pre = model.predict([[outdoor_temp, indoor_temp]])
|
|
|
+ pre_time = pre[0]
|
|
|
+ except (ValueError, IndexError):
|
|
|
+ pre_time = 0
|
|
|
+
|
|
|
+ return pre_time
|
|
|
|
|
|
|
|
|
async def fetch_params(project_id: str, space_id: str, db: Session) -> Tuple[float, float, str]:
|
|
@@ -44,9 +52,12 @@ async def fetch_params(project_id: str, space_id: str, db: Session) -> Tuple[flo
|
|
|
device_id = device.get('id')
|
|
|
break
|
|
|
|
|
|
- model_path = model_path_early_start_dtr.get_path_by_device(db, device_id)
|
|
|
+ if device_id:
|
|
|
+ model_path = model_path_early_start_dtr.get_path_by_device(db, device_id)
|
|
|
+ else:
|
|
|
+ model_path = ''
|
|
|
|
|
|
- return indoor_temp, outdoor_temp, model_path.model_path
|
|
|
+ return indoor_temp, outdoor_temp, model_path
|
|
|
|
|
|
|
|
|
@logger.catch()
|