    struct WeatherTrait

This trait provides an interface for the weather conditions for a given Structure. The weather
information provided is based on the structure's address. If the structure's address has not
been set, then creation of an automation using this trait will fail validation.
- `


  ### [identifier](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/WeatherTrait#/s:15GoogleHomeTypes0A0O12WeatherTraitV10identifierSSvpZ)


  ` The trait identifier.

  #### Declaration

  Swift

      static let identifier: String

- `


  ### [supportedEventTypes](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/WeatherTrait#/s:15GoogleHomeTypes0A0O12WeatherTraitV014supportedEventC0Say0aB3SDK0G0_pXpGvpZ)


  ` List of all event types on the given Trait.

  Currently, only `MatterTrait` traits support any events, but this will likely expand to other
  traits in the future.

  #### Declaration

  Swift

      static let supportedEventTypes: [any Event.Type]

- `


  ### [supportedCommandTypes](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/WeatherTrait#/s:15GoogleHomeTypes0A0O12WeatherTraitV016supportedCommandC0Say0aB3SDK0G0_pXpGvpZ)


  ` List of all commands supported by the Trait's definition. The commands supported by a specific
  Trait instance may vary.

  #### Declaration

  Swift

      static var supportedCommandTypes: [any Command.Type] { get }

- `


  ### [metadata](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/WeatherTrait#/s:15GoogleHomeTypes0A0O12WeatherTraitV8metadata0aB3SDK0E8MetadataVvp)


  ` Metadata about this `Trait`.

  #### Declaration

  Swift

      let metadata: TraitMetadata

- `


  ### [init(decoder:interactionProxy:metadata:)](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/WeatherTrait#/s:15GoogleHomeTypes0A0O12WeatherTraitV7decoder16interactionProxy8metadataAE0aB3SDK0E7DecoderV_AI011InteractionH0_pSgAI0E8MetadataVtKcfc)


  ` Creates a new Trait instance using data read from the given `TraitDecoder`.
  Throws
  `HomeError.parseError` when parsing fails.

  #### Declaration

  Swift

      init(decoder: TraitDecoder, interactionProxy: (any InteractionProxy)?, metadata: TraitMetadata) throws

  #### Parameters

  |---|---|
  | ` decoder ` | The raw data representing this Trait. |
  | ` interactionProxy ` | Proxy to the Interaction Client. |
  | ` metadata ` | Metadata about this Trait. |

- `


  ### [encode(with:)](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/WeatherTrait#/s:15GoogleHomeTypes0A0O12WeatherTraitV6encode4withy0aB3SDK0E7EncoderC_tKF)


  ` Writes this object to the given `TraitEncoder`.
  Throws `HomeError.encodingFailed` if the data could not be encoded.

  #### Declaration

  Swift

      func encode(with encoder: TraitEncoder) throws

- `


  ### [==(_:_:)](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/WeatherTrait#/s:15GoogleHomeTypes0A0O12WeatherTraitV2eeoiySbAE_AEtFZ)


  ` Returns a Boolean value indicating whether two values are equal.

  Equality is the inverse of inequality. For any values `a` and `b`,
  `a == b` implies that `a != b` is `false`.

  #### Declaration

  Swift

      static func == (lhs: https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google.html.WeatherTrait, rhs: https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google.html.WeatherTrait) -> Bool

  #### Parameters

  |---|---|
  | ` lhs ` | A value to compare. |
  | ` rhs ` | Another value to compare. |

- `


  ### [hash(into:)](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/WeatherTrait#/s:15GoogleHomeTypes0A0O12WeatherTraitV4hash4intoys6HasherVz_tF)


  ` Hashes the essential components of this value by feeding them into the
  given hasher.

  Implement this method to conform to the `Hashable` protocol. The
  components used for hashing must be the same as the components compared
  in your type's `==` operator implementation. Call `hasher.combine(_:)`
  with each of these components.
  Important

  In your implementation of `hash(into:)`,
  don't call `finalize()` on the `hasher` instance provided,
  or replace it with a different instance.
  Doing so may become a compile-time error in the future.

  #### Declaration

  Swift

      func hash(into hasher: inout Hasher)

- `


  ### [CurrentConditions](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/WeatherTrait/CurrentConditions.html)


  ` The current weather conditions.

  #### Declaration

  Swift

      struct CurrentConditions

- `


  ### [HourlyForecastConditions](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/WeatherTrait/HourlyForecastConditions.html)


  ` The hourly forecasted weather conditions.

  #### Declaration

  Swift

      struct HourlyForecastConditions

- `


  ### [DailyForecastConditions](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/WeatherTrait/DailyForecastConditions.html)


  ` The daily forecasted weather conditions.

  #### Declaration

  Swift

      struct DailyForecastConditions

- `


  ### [PrecipitationType](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/WeatherTrait/PrecipitationType.html)


  ` The type of precipitation that has a chance of occurring.

  #### Declaration

  Swift

      enum PrecipitationType

- `


  ### [WeatherProvider](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/WeatherTrait/WeatherProvider.html)


  ` The source of the weather data's origin.

  #### Declaration

  Swift

      enum WeatherProvider