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)