space.py 988 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. # -*- coding: utf-8 -*-
  2. from typing import List, Optional
  3. import numpy as np
  4. from pydantic import BaseModel as PydanticBaseModel, validator
  5. class BaseModel(PydanticBaseModel):
  6. @validator("*")
  7. def change_to_nan(cls, v):
  8. if v == -999.9:
  9. v = np.NAN
  10. return v
  11. class SpaceBase(BaseModel):
  12. id: Optional[str]
  13. realtime_temperature: float = np.NAN
  14. class Space(SpaceBase):
  15. equipment: Optional[List]
  16. temperature_target: Optional[float] = np.NAN
  17. comfortable_temperature: Optional[float] = np.NAN
  18. diff: Optional[float] = np.NAN
  19. class SpaceATVA(Space):
  20. vav_default_weight: Optional[float] = np.NAN
  21. vav_temporary_weight: Optional[float] = np.NAN
  22. vav_temporary_update_time: Optional[str] = ""
  23. class SpaceATAH(Space):
  24. ahu_default_weight: Optional[float] = np.NAN
  25. ahu_temporary_weight: Optional[float] = np.NAN
  26. ahu_temporary_update_time: Optional[str] = ""
  27. class SpaceATFU(SpaceBase):
  28. realtime_co2: float