pydrawise.schema
pydrawise.schema
GraphQL API schema for pydrawise.
DSL_SCHEMA
module-attribute
DSL_SCHEMA = DSLSchema(build_ast_schema(parse(SCHEMA_TEXT)))
SCHEMA_TEXT
module-attribute
SCHEMA_TEXT = read_text()
default_datetime
module-attribute
default_datetime = _now
ActualWaterTime
dataclass
ActualWaterTime(value: timedelta = _optional_field(metadata=(_duration_conversion('minutes')), default=(timedelta())))
Bases: _WaterTime
An actual water time duration.
AdvancedProgram
dataclass
AdvancedProgram(id: int = 0, name: str = '', scheduling_method: SelectedOption = SelectedOption(), monthly_watering_adjustments: list[int] = list(), applies_to_zones: list[BaseZone] = list(), zone_specific: bool = False, advanced_program_id: int = 0, watering_frequency: ProgramWateringFrequency = _optional_field(default_factory=ProgramWateringFrequency), run_time_group: RunTimeGroup = _optional_field(default_factory=RunTimeGroup))
Bases: Program
An advanced watering program.
advanced_program_id
class-attribute
instance-attribute
advanced_program_id: int = 0
run_time_group
class-attribute
instance-attribute
run_time_group: RunTimeGroup = _optional_field(default_factory=RunTimeGroup)
watering_frequency
class-attribute
instance-attribute
watering_frequency: ProgramWateringFrequency = _optional_field(default_factory=ProgramWateringFrequency)
zone_specific
class-attribute
instance-attribute
zone_specific: bool = False
AdvancedProgramDayPatternEnum
Bases: _AutoEnum
A value for an advanced watering program day pattern.
DAYS
class-attribute
instance-attribute
DAYS = auto()
EVEN
class-attribute
instance-attribute
EVEN = auto()
FRIDAY
class-attribute
instance-attribute
FRIDAY = auto()
MONDAY
class-attribute
instance-attribute
MONDAY = auto()
ODD
class-attribute
instance-attribute
ODD = auto()
SATURDAY
class-attribute
instance-attribute
SATURDAY = auto()
SUNDAY
class-attribute
instance-attribute
SUNDAY = auto()
THURSDAY
class-attribute
instance-attribute
THURSDAY = auto()
TUESDAY
class-attribute
instance-attribute
TUESDAY = auto()
WEDNESDAY
class-attribute
instance-attribute
WEDNESDAY = auto()
AdvancedProgramRef
dataclass
AdvancedProgramRef(id: int = 0, name: str = '')
Super small base class to reference a watering program without having to pull in all the voluminous sub-fields.
id
class-attribute
instance-attribute
id: int = 0
name
class-attribute
instance-attribute
name: str = ''
AdvancedWateringSettings
dataclass
AdvancedWateringSettings(fixed_watering_adjustment: int = 0, cycle_and_soak_settings: Optional[CycleAndSoakSettings] = None, advanced_program: Optional[AdvancedProgram] = None)
Bases: WateringSettings
Advanced watering program settings.
advanced_program
class-attribute
instance-attribute
advanced_program: Optional[AdvancedProgram] = None
BaseZone
dataclass
BaseZone(id: int = 0, number: SelectedOption = SelectedOption(), name: str = '')
Basic zone information.
id
class-attribute
instance-attribute
id: int = 0
name
class-attribute
instance-attribute
name: str = ''
number
class-attribute
instance-attribute
number: SelectedOption = field(default_factory=SelectedOption)
Controller
dataclass
Controller(id: int = 0, name: str = _optional_field(default=''), software_version: str = _optional_field(default=''), hardware: ControllerHardware = ControllerHardware(), last_contact_time: datetime = _optional_field(metadata=(DateTime.conversion()), default_factory=default_datetime), last_action: datetime = _optional_field(metadata=(DateTime.conversion()), default_factory=default_datetime), online: bool = _optional_field(default=False), sensors: list[Sensor] = _optional_field(default_factory=list), zones: list[Zone] = _optional_field(default_factory=list), master_zone: Optional[MasterValve] = None, permitted_program_start_times: list[ProgramStartTime] = _optional_field(default_factory=list), status: Optional[ControllerStatus] = None)
A Hydrawise controller.
hardware
class-attribute
instance-attribute
hardware: ControllerHardware = field(default_factory=ControllerHardware)
id
class-attribute
instance-attribute
id: int = 0
last_action
class-attribute
instance-attribute
last_action: datetime = _optional_field(metadata=conversion(), default_factory=default_datetime)
last_contact_time
class-attribute
instance-attribute
last_contact_time: datetime = _optional_field(metadata=conversion(), default_factory=default_datetime)
master_zone
class-attribute
instance-attribute
master_zone: Optional[MasterValve] = None
name
class-attribute
instance-attribute
name: str = _optional_field(default='')
online
class-attribute
instance-attribute
online: bool = _optional_field(default=False)
permitted_program_start_times
class-attribute
instance-attribute
permitted_program_start_times: list[ProgramStartTime] = _optional_field(default_factory=list)
sensors
class-attribute
instance-attribute
sensors: list[Sensor] = _optional_field(default_factory=list)
software_version
class-attribute
instance-attribute
software_version: str = _optional_field(default='')
status
class-attribute
instance-attribute
status: Optional[ControllerStatus] = None
zones
class-attribute
instance-attribute
zones: list[Zone] = _optional_field(default_factory=list)
from_json
classmethod
from_json(controller_json: dict) -> Controller
update_with_json
update_with_json(controller_json: dict) -> None
ControllerFirmware
dataclass
ControllerFirmware(type: str = '', version: str = _optional_field(default=''))
Information about the controller's firmware.
type
class-attribute
instance-attribute
type: str = ''
version
class-attribute
instance-attribute
version: str = _optional_field(default='')
ControllerHardware
dataclass
ControllerHardware(serial_number: str = _optional_field(default=''), version: str = _optional_field(default=''), status: str = _optional_field(default=''), model: ControllerModel = _optional_field(default_factory=ControllerModel), firmware: list[ControllerFirmware] = _optional_field(default_factory=list))
Information about a controller's hardware.
firmware
class-attribute
instance-attribute
firmware: list[ControllerFirmware] = _optional_field(default_factory=list)
model
class-attribute
instance-attribute
model: ControllerModel = _optional_field(default_factory=ControllerModel)
serial_number
class-attribute
instance-attribute
serial_number: str = _optional_field(default='')
status
class-attribute
instance-attribute
status: str = _optional_field(default='')
version
class-attribute
instance-attribute
version: str = _optional_field(default='')
ControllerModel
dataclass
ControllerModel(name: str = '', description: str = '')
Information about a controller model.
description
class-attribute
instance-attribute
description: str = ''
name
class-attribute
instance-attribute
name: str = ''
ControllerStatus
dataclass
ControllerStatus(summary: str = '', online: bool = False, actual_water_time: ActualWaterTime = _optional_field(default_factory=ActualWaterTime), normal_water_time: NormalWaterTime = _optional_field(default_factory=NormalWaterTime), last_contact: Optional[DateTime] = None)
Current status of a controller.
actual_water_time
class-attribute
instance-attribute
actual_water_time: ActualWaterTime = _optional_field(default_factory=ActualWaterTime)
last_contact
class-attribute
instance-attribute
last_contact: Optional[DateTime] = None
normal_water_time
class-attribute
instance-attribute
normal_water_time: NormalWaterTime = _optional_field(default_factory=NormalWaterTime)
online
class-attribute
instance-attribute
online: bool = False
summary
class-attribute
instance-attribute
summary: str = ''
ControllerWaterUseSummary
dataclass
ControllerWaterUseSummary(total_active_time: timedelta = timedelta(), active_time_by_zone_id: dict[int, timedelta] = dict(), total_use: Optional[float] = None, total_active_use: Optional[float] = None, total_inactive_use: Optional[float] = None, active_use_by_zone_id: dict[int, float] = dict(), unit: Optional[str] = None)
Water use summary for a controller.
Active use means water use during a scheduled or manual zone run. Inactive use means water use when no zone was actively running. This can happen when faucets (i.e., garden hoses) are installed downstream of the flow meter. Water use is only reported in the presence of a flow sensor. Active watering time is always reported.
active_time_by_zone_id
class-attribute
instance-attribute
active_time_by_zone_id: dict[int, timedelta] = field(default_factory=dict)
active_use_by_zone_id
class-attribute
instance-attribute
active_use_by_zone_id: dict[int, float] = field(default_factory=dict)
total_active_time
class-attribute
instance-attribute
total_active_time: timedelta = field(metadata=_duration_conversion('seconds'), default=timedelta())
total_active_use
class-attribute
instance-attribute
total_active_use: Optional[float] = None
total_inactive_use
class-attribute
instance-attribute
total_inactive_use: Optional[float] = None
total_use
class-attribute
instance-attribute
total_use: Optional[float] = None
unit
class-attribute
instance-attribute
unit: Optional[str] = None
CustomSensorTypeEnum
Bases: _AutoEnum
A value for a sensor type.
FLOW
class-attribute
instance-attribute
FLOW = auto()
LEVEL_CLOSED
class-attribute
instance-attribute
LEVEL_CLOSED = auto()
LEVEL_OPEN
class-attribute
instance-attribute
LEVEL_OPEN = auto()
THRESHOLD
class-attribute
instance-attribute
THRESHOLD = auto()
CycleAndSoakSettings
dataclass
CycleAndSoakSettings(cycle_duration: timedelta = timedelta(), soak_duration: timedelta = timedelta())
Cycle and soak durations.
cycle_duration
class-attribute
instance-attribute
cycle_duration: timedelta = field(metadata=_duration_conversion('minutes'), default=timedelta())
soak_duration
class-attribute
instance-attribute
soak_duration: timedelta = field(metadata=_duration_conversion('minutes'), default=timedelta())
DaysOfWeekEnum
Bases: _AutoEnum
All days of the week.
FRIDAY
class-attribute
instance-attribute
FRIDAY = auto()
MONDAY
class-attribute
instance-attribute
MONDAY = auto()
SATURDAY
class-attribute
instance-attribute
SATURDAY = auto()
SUNDAY
class-attribute
instance-attribute
SUNDAY = auto()
THURSDAY
class-attribute
instance-attribute
THURSDAY = auto()
TUESDAY
class-attribute
instance-attribute
TUESDAY = auto()
WEDNESDAY
class-attribute
instance-attribute
WEDNESDAY = auto()
LocalizedValueType
dataclass
LocalizedValueType(value: float = _optional_field(default=0.0), unit: str = _optional_field(default=''))
A localized value.
unit
class-attribute
instance-attribute
unit: str = _optional_field(default='')
value
class-attribute
instance-attribute
value: float = _optional_field(default=0.0)
MasterValve
dataclass
MasterValve(zone_number: Optional[SelectedOption] = None, delay: Optional[int] = None, post_timer: Optional[int] = None)
A master valve setting for a controller.
delay
class-attribute
instance-attribute
delay: Optional[int] = None
post_timer
class-attribute
instance-attribute
post_timer: Optional[int] = None
zone_number
class-attribute
instance-attribute
zone_number: Optional[SelectedOption] = None
NormalWaterTime
dataclass
NormalWaterTime(value: timedelta = _optional_field(metadata=(_duration_conversion('minutes')), default=(timedelta())))
Bases: _WaterTime
A normal water time duration.
PastZoneRuns
dataclass
PastZoneRuns(last_run: Optional[ScheduledZoneRun] = None, runs: list[ScheduledZoneRun] = _optional_field(default_factory=list))
Previous zone runs.
last_run
class-attribute
instance-attribute
last_run: Optional[ScheduledZoneRun] = None
runs
class-attribute
instance-attribute
runs: list[ScheduledZoneRun] = _optional_field(default_factory=list)
Program
dataclass
Program(id: int = 0, name: str = '', scheduling_method: SelectedOption = SelectedOption(), monthly_watering_adjustments: list[int] = list(), applies_to_zones: list[BaseZone] = list())
Base class for a watering program.
applies_to_zones
class-attribute
instance-attribute
applies_to_zones: list[BaseZone] = field(default_factory=list)
id
class-attribute
instance-attribute
id: int = 0
monthly_watering_adjustments
class-attribute
instance-attribute
monthly_watering_adjustments: list[int] = field(default_factory=list)
name
class-attribute
instance-attribute
name: str = ''
scheduling_method
class-attribute
instance-attribute
scheduling_method: SelectedOption = field(default_factory=SelectedOption)
ProgramStartTime
dataclass
ProgramStartTime(id: int = 0, time: time = time(), watering_days: list[AdvancedProgramDayPatternEnum] = _optional_field(default_factory=list), application: ProgramStartTimeApplication = ProgramStartTimeApplication())
Start time for a watering program.
application
class-attribute
instance-attribute
application: ProgramStartTimeApplication = field(default_factory=ProgramStartTimeApplication)
id
class-attribute
instance-attribute
id: int = 0
time
class-attribute
instance-attribute
time: time = field(metadata=_time_conversion(), default_factory=time)
watering_days
class-attribute
instance-attribute
watering_days: list[AdvancedProgramDayPatternEnum] = _optional_field(default_factory=list)
ProgramStartTimeApplication
dataclass
ProgramStartTimeApplication(all: bool = False, zones: list[BaseZone] = _optional_field(default_factory=list))
Application of a start time to a program.
all
class-attribute
instance-attribute
all: bool = False
zones
class-attribute
instance-attribute
zones: list[BaseZone] = _optional_field(default_factory=list)
ProgramWateringFrequency
dataclass
ProgramWateringFrequency(label: str = '', period: WateringPeriodicity = WateringPeriodicity(), description: str = '')
Watering frequency information.
description
class-attribute
instance-attribute
description: str = ''
label
class-attribute
instance-attribute
label: str = ''
period
class-attribute
instance-attribute
period: WateringPeriodicity = field(default_factory=WateringPeriodicity)
RunEvent
dataclass
RunEvent(id: str = '', zone: BaseZone = BaseZone(), standard_program: StandardProgramRef = _optional_field(default_factory=StandardProgramRef), advanced_program: AdvancedProgramRef = _optional_field(default_factory=AdvancedProgramRef), reported_start_time: Optional[datetime] = None, reported_end_time: Optional[datetime] = None, reported_duration: timedelta = _optional_field(metadata=(_duration_conversion('seconds')), default=(timedelta())), reported_status: RunStatusType = _optional_field(default_factory=RunStatusType), reported_water_usage: LocalizedValueType = _optional_field(default_factory=LocalizedValueType), reported_stop_reason: RunStopReasonType = _optional_field(default_factory=RunStopReasonType), reported_current: LocalizedValueType = _optional_field(default_factory=LocalizedValueType))
A Hydrawise run event type.
advanced_program
class-attribute
instance-attribute
advanced_program: AdvancedProgramRef = _optional_field(default_factory=AdvancedProgramRef)
id
class-attribute
instance-attribute
id: str = ''
reported_current
class-attribute
instance-attribute
reported_current: LocalizedValueType = _optional_field(default_factory=LocalizedValueType)
reported_duration
class-attribute
instance-attribute
reported_duration: timedelta = _optional_field(metadata=_duration_conversion('seconds'), default=timedelta())
reported_end_time
class-attribute
instance-attribute
reported_end_time: Optional[datetime] = field(metadata=conversion(), default=None)
reported_start_time
class-attribute
instance-attribute
reported_start_time: Optional[datetime] = field(metadata=conversion(), default=None)
reported_status
class-attribute
instance-attribute
reported_status: RunStatusType = _optional_field(default_factory=RunStatusType)
reported_stop_reason
class-attribute
instance-attribute
reported_stop_reason: RunStopReasonType = _optional_field(default_factory=RunStopReasonType)
reported_water_usage
class-attribute
instance-attribute
reported_water_usage: LocalizedValueType = _optional_field(default_factory=LocalizedValueType)
standard_program
class-attribute
instance-attribute
standard_program: StandardProgramRef = _optional_field(default_factory=StandardProgramRef)
zone
class-attribute
instance-attribute
zone: BaseZone = field(default_factory=BaseZone)
RunStatus
dataclass
RunStatus(value: int = _optional_field(default=0), label: str = _optional_field(default=''))
Run status.
label
class-attribute
instance-attribute
label: str = _optional_field(default='')
value
class-attribute
instance-attribute
value: int = _optional_field(default=0)
RunStatusType
dataclass
RunStatusType(value: int = 0, label: str = '')
label
class-attribute
instance-attribute
label: str = ''
value
class-attribute
instance-attribute
value: int = 0
RunStopReasonType
dataclass
RunStopReasonType(finished_normally: bool = False, description: list[str] = list())
description
class-attribute
instance-attribute
description: list[str] = field(default_factory=list)
finished_normally
class-attribute
instance-attribute
finished_normally: bool = False
RunTimeGroup
dataclass
RunTimeGroup(id: int = 0, name: str = _optional_field(default=''), duration: timedelta = timedelta())
The runtime of a watering program group.
duration
class-attribute
instance-attribute
duration: timedelta = field(metadata=_duration_conversion('minutes'), default=timedelta())
id
class-attribute
instance-attribute
id: int = 0
name
class-attribute
instance-attribute
name: str = _optional_field(default='')
ScheduledZoneRun
dataclass
ScheduledZoneRun(id: str = '', start_time: datetime = default_datetime(), end_time: datetime = default_datetime(), normal_duration: timedelta = timedelta(), duration: timedelta = timedelta(), remaining_time: timedelta = timedelta(), status: RunStatus = RunStatus())
A scheduled zone run.
duration
class-attribute
instance-attribute
duration: timedelta = field(metadata=_duration_conversion('minutes'), default=timedelta())
end_time
class-attribute
instance-attribute
end_time: datetime = field(metadata=conversion(), default_factory=default_datetime)
id
class-attribute
instance-attribute
id: str = ''
normal_duration
class-attribute
instance-attribute
normal_duration: timedelta = field(metadata=_duration_conversion('minutes'), default=timedelta())
remaining_time
class-attribute
instance-attribute
remaining_time: timedelta = field(metadata=_duration_conversion('seconds'), default=timedelta())
start_time
class-attribute
instance-attribute
start_time: datetime = field(metadata=conversion(), default_factory=default_datetime)
status
class-attribute
instance-attribute
status: RunStatus = field(default_factory=RunStatus)
ScheduledZoneRuns
dataclass
ScheduledZoneRuns(summary: str = '', current_run: Optional[ScheduledZoneRun] = None, next_run: Optional[ScheduledZoneRun] = None, status: Optional[str] = None)
Scheduled runs for a zone.
current_run
class-attribute
instance-attribute
current_run: Optional[ScheduledZoneRun] = None
next_run
class-attribute
instance-attribute
next_run: Optional[ScheduledZoneRun] = None
status
class-attribute
instance-attribute
status: Optional[str] = None
summary
class-attribute
instance-attribute
summary: str = ''
SelectedOption
dataclass
SelectedOption(value: int = 0, label: str = _optional_field(default=''))
A generic option.
label
class-attribute
instance-attribute
label: str = _optional_field(default='')
value
class-attribute
instance-attribute
value: int = 0
Sensor
dataclass
Sensor(id: int = 0, name: str = '', model: SensorModel = SensorModel(), status: SensorStatus = SensorStatus())
A sensor connected to a controller.
id
class-attribute
instance-attribute
id: int = 0
model
class-attribute
instance-attribute
model: SensorModel = field(default_factory=SensorModel)
name
class-attribute
instance-attribute
name: str = ''
status
class-attribute
instance-attribute
status: SensorStatus = field(default_factory=SensorStatus)
SensorFlowSummary
dataclass
SensorFlowSummary(total_water_volume: LocalizedValueType = _optional_field(default_factory=LocalizedValueType))
Summary of a sensor's water flow.
total_water_volume
class-attribute
instance-attribute
total_water_volume: LocalizedValueType = _optional_field(default_factory=LocalizedValueType)
SensorModel
dataclass
SensorModel(id: int = 0, name: str = _optional_field(default=''), active: bool = _optional_field(default=False), off_level: int = _optional_field(default=0), off_timer: int = _optional_field(default=0), delay: timedelta = _optional_field(metadata=(_duration_conversion('minutes')), default=(timedelta())), divisor: float = _optional_field(default=0.0), flow_rate: float = _optional_field(default=0.0), sensor_type: Optional[CustomSensorTypeEnum] = None)
Information about a sensor model.
active
class-attribute
instance-attribute
active: bool = _optional_field(default=False)
delay
class-attribute
instance-attribute
delay: timedelta = _optional_field(metadata=_duration_conversion('minutes'), default=timedelta())
divisor
class-attribute
instance-attribute
divisor: float = _optional_field(default=0.0)
flow_rate
class-attribute
instance-attribute
flow_rate: float = _optional_field(default=0.0)
id
class-attribute
instance-attribute
id: int = 0
name
class-attribute
instance-attribute
name: str = _optional_field(default='')
off_level
class-attribute
instance-attribute
off_level: int = _optional_field(default=0)
off_timer
class-attribute
instance-attribute
off_timer: int = _optional_field(default=0)
sensor_type
class-attribute
instance-attribute
sensor_type: Optional[CustomSensorTypeEnum] = None
SensorStatus
dataclass
SensorStatus(water_flow: Optional[LocalizedValueType] = None, active: bool = _optional_field(default=False))
Current status of a sensor.
active
class-attribute
instance-attribute
active: bool = _optional_field(default=False)
water_flow
class-attribute
instance-attribute
water_flow: Optional[LocalizedValueType] = None
SensorWithFlowSummary
dataclass
SensorWithFlowSummary(id: int = 0, name: str = '', model: SensorModel = SensorModel(), status: SensorStatus = SensorStatus(), flow_summary: Optional[SensorFlowSummary] = _optional_field(default_factory=SensorFlowSummary))
Bases: Sensor
A Sensor, as returned by its flowSummary method.
flow_summary
class-attribute
instance-attribute
flow_summary: Optional[SensorFlowSummary] = _optional_field(default_factory=SensorFlowSummary)
StandardProgram
dataclass
StandardProgram(id: int = 0, name: str = '', scheduling_method: SelectedOption = SelectedOption(), monthly_watering_adjustments: list[int] = list(), applies_to_zones: list[BaseZone] = list(), start_times: list[time] = _optional_field(metadata=(_list_conversion(_time_conversion())), default_factory=list), time_range: TimeRange = TimeRange(), ignore_rain_sensor: bool = False, days_run: list[DaysOfWeekEnum] = list(), standard_program_day_pattern: str = '', periodicity: StandardProgramPeriodicity = _optional_field(default_factory=StandardProgramPeriodicity))
Bases: Program
A standard watering program.
days_run
class-attribute
instance-attribute
days_run: list[DaysOfWeekEnum] = field(default_factory=list)
ignore_rain_sensor
class-attribute
instance-attribute
ignore_rain_sensor: bool = False
periodicity
class-attribute
instance-attribute
periodicity: StandardProgramPeriodicity = _optional_field(default_factory=StandardProgramPeriodicity)
standard_program_day_pattern
class-attribute
instance-attribute
standard_program_day_pattern: str = ''
start_times
class-attribute
instance-attribute
start_times: list[time] = _optional_field(metadata=_list_conversion(_time_conversion()), default_factory=list)
time_range
class-attribute
instance-attribute
time_range: TimeRange = field(default_factory=TimeRange)
StandardProgramApplication
dataclass
StandardProgramApplication(zone: BaseZone = BaseZone(), standard_program: StandardProgram = StandardProgram(), run_time_group: RunTimeGroup = RunTimeGroup())
A standard watering program application.
run_time_group
class-attribute
instance-attribute
run_time_group: RunTimeGroup = field(default_factory=RunTimeGroup)
standard_program
class-attribute
instance-attribute
standard_program: StandardProgram = field(default_factory=StandardProgram)
zone
class-attribute
instance-attribute
zone: BaseZone = field(default_factory=BaseZone)
StandardProgramPeriodicity
dataclass
StandardProgramPeriodicity(period: int = 0, series_start: datetime = default_datetime())
Program frequency for a standard program.
period
class-attribute
instance-attribute
period: int = 0
series_start
class-attribute
instance-attribute
series_start: datetime = field(metadata=conversion(), default_factory=default_datetime)
StandardProgramRef
dataclass
StandardProgramRef(id: int = 0, name: str = '')
Super small base class to reference a watering program without having to pull in all the voluminous sub-fields.
id
class-attribute
instance-attribute
id: int = 0
name
class-attribute
instance-attribute
name: str = ''
StandardWateringSettings
dataclass
StandardWateringSettings(fixed_watering_adjustment: int = 0, cycle_and_soak_settings: Optional[CycleAndSoakSettings] = None, standard_program_applications: list[StandardProgramApplication] = list())
Bases: WateringSettings
Standard watering settings.
standard_program_applications
class-attribute
instance-attribute
standard_program_applications: list[StandardProgramApplication] = field(default_factory=list)
StatusCodeAndSummary
dataclass
StatusCodeAndSummary(status: StatusCodeEnum = StatusCodeEnum.OK, summary: str = '')
A response status code and a human-readable summary.
status
class-attribute
instance-attribute
status: StatusCodeEnum = OK
summary
class-attribute
instance-attribute
summary: str = ''
StatusCodeEnum
Bases: _AutoEnum
Response status codes.
ERROR
class-attribute
instance-attribute
ERROR = auto()
OK
class-attribute
instance-attribute
OK = auto()
WARNING
class-attribute
instance-attribute
WARNING = auto()
TimeRange
dataclass
TimeRange(valid_from: datetime = _optional_field(metadata=(_timestamp_conversion()), default_factory=default_datetime), valid_to: datetime = _optional_field(metadata=(_timestamp_conversion()), default_factory=default_datetime))
Time range units.
valid_from
class-attribute
instance-attribute
valid_from: datetime = _optional_field(metadata=_timestamp_conversion(), default_factory=default_datetime)
valid_to
class-attribute
instance-attribute
valid_to: datetime = _optional_field(metadata=_timestamp_conversion(), default_factory=default_datetime)
UnitsSummary
dataclass
UnitsSummary(units_name: str = '')
Summary of user unit preferences.
units_name
class-attribute
instance-attribute
units_name: str = ''
User
dataclass
User(id: int = 0, customer_id: int = 0, name: str = '', email: str = _optional_field(default=''), controllers: list[Controller] = _optional_field(default_factory=list), units: UnitsSummary = UnitsSummary())
A Hydrawise user account.
controllers
class-attribute
instance-attribute
controllers: list[Controller] = _optional_field(default_factory=list)
customer_id
class-attribute
instance-attribute
customer_id: int = 0
email
class-attribute
instance-attribute
email: str = _optional_field(default='')
id
class-attribute
instance-attribute
id: int = 0
name
class-attribute
instance-attribute
name: str = ''
units
class-attribute
instance-attribute
units: UnitsSummary = field(default_factory=UnitsSummary)
WateringPeriodicity
dataclass
WateringPeriodicity(value: int = _optional_field(default=0), label: str = _optional_field(default=''))
Watering frequency description (e.g., "Every Program Start Time").
label
class-attribute
instance-attribute
label: str = _optional_field(default='')
value
class-attribute
instance-attribute
value: int = _optional_field(default=0)
WateringReportEntry
dataclass
WateringReportEntry(run_event: RunEvent = _optional_field(default_factory=RunEvent, metadata=fall_back_on_default))
A Hydrawise watering report entry.
run_event
class-attribute
instance-attribute
run_event: RunEvent = _optional_field(default_factory=RunEvent, metadata=fall_back_on_default)
WateringSettings
dataclass
WateringSettings(fixed_watering_adjustment: int = 0, cycle_and_soak_settings: Optional[CycleAndSoakSettings] = None)
Generic settings for a watering program.
cycle_and_soak_settings
class-attribute
instance-attribute
cycle_and_soak_settings: Optional[CycleAndSoakSettings] = None
fixed_watering_adjustment
class-attribute
instance-attribute
fixed_watering_adjustment: int = 0
Zone
dataclass
Zone(id: int = 0, number: SelectedOption = SelectedOption(), name: str = '', watering_settings: Union[AdvancedWateringSettings, StandardWateringSettings] = StandardWateringSettings(), scheduled_runs: ScheduledZoneRuns = ScheduledZoneRuns(), past_runs: PastZoneRuns = PastZoneRuns(), status: ZoneStatus = ZoneStatus(), suspensions: list[ZoneSuspension] = list())
Bases: BaseZone
A watering zone.
past_runs
class-attribute
instance-attribute
past_runs: PastZoneRuns = field(default_factory=PastZoneRuns)
scheduled_runs
class-attribute
instance-attribute
scheduled_runs: ScheduledZoneRuns = field(default_factory=ScheduledZoneRuns)
status
class-attribute
instance-attribute
status: ZoneStatus = field(default_factory=ZoneStatus)
suspensions
class-attribute
instance-attribute
suspensions: list[ZoneSuspension] = field(default_factory=list)
watering_settings
class-attribute
instance-attribute
watering_settings: Union[AdvancedWateringSettings, StandardWateringSettings] = field(default_factory=StandardWateringSettings)
from_json
classmethod
from_json(zone_json: dict) -> Zone
update_with_json
update_with_json(zone_json: dict) -> None
ZoneStatus
dataclass
ZoneStatus(relative_water_balance: int = 0, suspended_until: Optional[datetime] = None)
A zone's status.
relative_water_balance
class-attribute
instance-attribute
relative_water_balance: int = 0
suspended_until
class-attribute
instance-attribute
suspended_until: Optional[datetime] = field(metadata=conversion(), default=None)
ZoneSuspension
dataclass
ZoneSuspension(id: int = 0, start_time: datetime = _optional_field(metadata=(DateTime.conversion()), default_factory=default_datetime), end_time: datetime = _optional_field(metadata=(DateTime.conversion()), default_factory=default_datetime))
A zone suspension.
end_time
class-attribute
instance-attribute
end_time: datetime = _optional_field(metadata=conversion(), default_factory=default_datetime)
id
class-attribute
instance-attribute
id: int = 0
start_time
class-attribute
instance-attribute
start_time: datetime = _optional_field(metadata=conversion(), default_factory=default_datetime)