Bladeren bron

add limmit to mean of targets

chenhaiyang 4 jaren geleden
bovenliggende
commit
bf2ab15992

+ 0 - 0
app/api/dependencies/db.py


+ 0 - 0
app/api/routers/item.py


+ 0 - 0
app/api/routers/user.py


+ 7 - 4
app/controllers/targets.py

@@ -133,6 +133,7 @@ class TemperatureTargetController(TargetController):
                         or 'so hot' in self._feedback
                         or 'switch on' in self._feedback):
                     mid = self._realtime_data - _VAR
+                    mid = self._cut(mid)
                     new_lower_bound = mid - _RANGE
                     new_upper_bound = mid + _RANGE
             elif self._season == Season.heating:
@@ -140,10 +141,11 @@ class TemperatureTargetController(TargetController):
                         or 'so cold' in self._feedback
                         or 'switch on' in self._feedback):
                     mid = self._realtime_data + _VAR
+                    mid = self._cut(mid)
                     new_lower_bound = mid - _RANGE
                     new_upper_bound = mid + _RANGE
 
-        return self._cut(new_lower_bound), self._cut(new_upper_bound)
+        return new_lower_bound, new_upper_bound
 
     async def get_targets(self) -> float:
         current_lower_target = self._current_targets['temperatureMin'].loc[self._quarter_time]
@@ -176,8 +178,8 @@ class TemperatureTargetController(TargetController):
 
     async def generate_global(self):
         _RANGE = 1
-        new_targets = self._current_targets['new_targets'].apply(lambda x: [self._cut(x - _RANGE),
-                                                                            self._cut(x + _RANGE)])
+        new_targets = self._current_targets['new_targets'].apply(lambda x: [self._cut(x) - _RANGE,
+                                                                            self._cut(x) + _RANGE])
         time_index = self._current_targets.reset_index()['time']
         result = {}
         for i in range(len(time_index)):
@@ -193,12 +195,13 @@ class TemperatureTargetController(TargetController):
             else:
                 current_target = await self.get_targets()
                 new_target = await self.readjust_current(current_target, diff)
+                new_target = self._cut(new_target)
                 if not self._is_temporary:
                     self._results.update({'latest_change': new_target})
                     await self.readjust_global(new_target, self._previous_changes)
                     await self.generate_global()
                 else:
-                    await self.generate_temporary(self._cut(new_target) - 1.0, self._cut(new_target + 1.0))
+                    await self.generate_temporary(new_target - 1.0, new_target + 1.0)
         else:
             return
 

+ 0 - 0
app/crud/base.py


+ 0 - 0
app/crud/crud_item.py


+ 0 - 0
app/crud/crud_user.py


+ 24 - 0
app/db/init_db.py

@@ -0,0 +1,24 @@
+from sqlalchemy.orm import Session
+
+from app import crud, schemas
+from app.core.config import settings
+from app.db import base  # noqa: F401
+
+# make sure all SQL Alchemy models are imported (app.db.base) before initializing DB
+# otherwise, SQL Alchemy might fail to initialize relationships properly
+# for more details: https://github.com/tiangolo/full-stack-fastapi-postgresql/issues/28
+
+
+def init_db(db: Session) -> None:
+    # Tables should be created with Alembic migrations
+    # But if you don't want to use migrations, create
+    # the tables un-commenting the next line
+    # Base.metadata.create_all(bind=engine)
+
+    user = crud.user.get_by_email(db, email=settings.FIRST_SUPERUSER)
+    if not user:
+        user_in = schemas.UserCreate(
+            email=settings.FIRST_SUPERUSER,
+            password=settings.FIRST_SUPERUSER_PASSWORD,
+        )
+        user = crud.user.create(db, obj_in=user_in)  # noqa: F841

+ 0 - 0
app/db/session.py


+ 0 - 0
app/models/item.py


+ 0 - 0
app/models/user.py


+ 0 - 0
app/schemas/item.py


+ 0 - 0
app/schemas/user.py