equipment.py 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. # -*- coding: utf-8 -*-
  2. from enum import Enum
  3. import numpy as np
  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 VRFMode(str, Enum):
  12. cooling = "cooling"
  13. heating = "heating"
  14. ventilation = "ventilation"
  15. unknown = "unknown"
  16. class BaseEquipment(BaseModel):
  17. id: str | None
  18. running_status: bool | None
  19. in_cloud_status: bool | None
  20. on_time: str | None
  21. off_time: str | None
  22. equip_switch_set: bool | None
  23. class FCU(BaseEquipment):
  24. work_mode: int | None
  25. air_valve_speed: AirValveSpeed | None = AirValveSpeed.off
  26. air_valve_speed_set: AirValveSpeed | None = AirValveSpeed.off
  27. recommended_speed: AirValveSpeed | None = AirValveSpeed.off
  28. space: Space | None
  29. setting_temperature: float | None
  30. supply_air_temperature: float | None
  31. water_out_temperature: float | None
  32. water_in_temperature: float | None
  33. speed_limit: AirValveSpeed | None = AirValveSpeed.high
  34. class VAVBox(BaseEquipment):
  35. spaces: list[Space]
  36. supply_air_temperature: float | None = np.NAN
  37. supply_air_flow: float | None = np.NAN
  38. supply_air_flow_set: float | None = np.NAN
  39. supply_air_flow_lower_limit: float | None = np.NAN
  40. supply_air_flow_upper_limit: float | None = np.NAN
  41. recommended_supply_air_flow: float | None = np.NAN
  42. valve_opening: float | None = np.NAN
  43. setting_temperature: float | None = 0.0
  44. virtual_realtime_temperature: float | None = np.NAN
  45. virtual_target_temperature: float | None = np.NAN
  46. class AHU(BaseEquipment):
  47. supply_air_temperature: float | None
  48. supply_air_temperature_set: float | None
  49. return_air_temperature: float | None
  50. return_air_temperature_set: float | None
  51. freq: float | None
  52. freq_set: float | None
  53. fan_freq_upper_limit_set: float | None
  54. fan_freq_lower_limit_set: float | None
  55. class VentilationFan(BaseEquipment):
  56. pass
  57. class PAU(BaseEquipment):
  58. pass
  59. class VRF(BaseEquipment):
  60. equip_switch_set: str | None
  61. work_mode: VRFMode | None
  62. speed: str | None
  63. speed_set: str | None
  64. current_temperature_set: float | None
  65. temperature_set: float | None
  66. mode_set: str | None
  67. return_air_temp: float | None
  68. class ASHP(BaseEquipment):
  69. out_temp_15min: list[float]
  70. out_temp_set_15min: list[float]
  71. out_temp_30min: list[float]
  72. out_temp_set_30min: list[float]
  73. out_temp_set: float | None
  74. iplr_15min: list[float]
  75. iplr_30min: list[float]