equipment.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. # -*- coding: utf-8 -*-
  2. from enum import Enum
  3. from typing import List, Optional
  4. from pydantic import BaseModel
  5. from app.schemas.space import Space
  6. class AirValveSpeed(float, Enum):
  7. off = 0.0
  8. low = 1.0
  9. medium = 2.0
  10. high = 3.0
  11. class BaseEquipment(BaseModel):
  12. id: str
  13. running_status: Optional[bool] = False
  14. in_cloud_status: Optional[bool]
  15. on_time: Optional[str]
  16. off_time: Optional[str]
  17. equip_switch_set: Optional[bool] = False
  18. class FCU(BaseEquipment):
  19. work_mode: Optional[int]
  20. air_valve_speed: Optional[AirValveSpeed] = AirValveSpeed.off
  21. space: Optional[Space]
  22. setting_temperature: Optional[float] = 0.0
  23. supply_air_temperature: Optional[float] = 0.0
  24. water_out_temperature: Optional[float] = 0.0
  25. water_in_temperature: Optional[float] = 0.0
  26. class VAVBox(BaseEquipment):
  27. spaces: Optional[List[Space]]
  28. supply_air_temperature: Optional[float]
  29. supply_air_flow: Optional[float]
  30. supply_air_flow_set: Optional[float]
  31. supply_air_flow_lower_limit: Optional[float]
  32. supply_air_flow_upper_limit: Optional[float]
  33. setting_temperature: Optional[float] = 0.0
  34. virtual_realtime_temperature: Optional[float]
  35. virtual_target_temperature: Optional[float]
  36. class AHU(BaseEquipment):
  37. fan_freq_set: Optional[float]
  38. supply_air_temperature_set: Optional[float]
  39. class VentilationFan(BaseEquipment):
  40. pass
  41. class PAU(BaseEquipment):
  42. pass
  43. class VRF(BaseEquipment):
  44. speed_set: Optional[str]
  45. temperature_set: Optional[float]
  46. mode_set: Optional[str]