devices.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. from enum import Enum
  2. from typing import Dict, List, Optional
  3. from pydantic import BaseModel, Field
  4. class ThermalMode(str, Enum):
  5. cooling = 'cooling'
  6. heating = 'heating'
  7. hold = 'hold'
  8. class DevicesInstructionsBaseResponse(BaseModel):
  9. project_id: str = Field(None, alias='projectId')
  10. device_id: str = Field(None, alias='equipId')
  11. output: Dict
  12. class DevicesEarlyStartTime(BaseModel):
  13. project_id: str = Field(None, alias='projectId')
  14. space_id: str = Field(None, alias='spaceId')
  15. minutes: float
  16. class ACATVIInstructionsRequest(BaseModel):
  17. return_air_temperature: float
  18. space_temperature_target: float
  19. space_realtime_temperature: float
  20. class ACATVIInstructionsTemporaryResponse(BaseModel):
  21. output: Dict
  22. class ACATVIInstructionsResponse(BaseModel):
  23. switch_set: Optional[str]
  24. speed_set: Optional[str]
  25. temperature_set: Optional[str]
  26. mode_set: Optional[str]
  27. class ACATFCInstructionsRequest(BaseModel):
  28. season: str
  29. space_temperature_target: float
  30. space_realtime_temperature: Optional[float]
  31. class ACATFCInstructionsResponse(BaseModel):
  32. switch_set: int = Field(None, alias='onOff')
  33. speed_set: int = Field(None, alias='speed')
  34. temperature_set: float = Field(None, alias='temperature')
  35. mode_set: int = Field(None, alias='mode')
  36. water_valve_switch_set: int = Field(None, alias='water')
  37. class Space(BaseModel):
  38. realtime_temperature: float
  39. temperature_target: float
  40. vav_default_weight: float
  41. vav_temporary_weight: float
  42. vav_temporary_update_time: str
  43. class ACATVAInstructionsRequest(BaseModel):
  44. season: str
  45. supply_air_temperature: float
  46. supply_air_flow: float
  47. supply_air_flow_lower_limit: float
  48. supply_air_flow_upper_limit: float
  49. spaces: List[Space]
  50. class ACATVAInstructionsResponse(BaseModel):
  51. supply_air_flow_set: float = Field(None, alias='SupplyAirFlowSet')
  52. virtual_temperature_target_set: float = Field(None, alias='TargetTemperatureSet')
  53. virtual_realtime_temperature: float = Field(None, alias='VirtualRealtimeTemperature')