equipment.py 2.1 KB

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