Skip to content

# OWMWeatherController

OWMWeatherController is not an integration with a home automation gateway/hub, but rather an interface to OpenWeatherMap's API for weather data. OWMWeatherController publishes weather information for each location you configure in an entity per location. These entities can be used to support automations just like any other entity in Reactor.

This is the simplest configuration for OWMWeatherController:

    controllers:
      - id: weather
        enabled: true
        implementation: OWMWeatherController
        name: OWM Weather
        config:
          appid: "own-api-key"

In this simple form, OWMWeatherController gathers weather for the system location (as defined by the `location` subkey in `reactor.yaml`). All you need to provide to get weather information for your home location is your OWM API key, which you get from their web interface.

If you want to set a specific location different from the system location, or get weather for additional locations (which will be published to additional entities), add a `locations` section with the location information formatted as shown:

    controllers:
      - id: weather
        enabled: true
        implementation: OWMWeatherController
        name: OWM Weather
        config:
          appid: "owm-api-key"
          locations:
          - id: home
            name: Home Current Weather
            # Set the location by specifying ONE OF: latitude+longitude, OWN city
            # ID, or location (as postal,country). If none is set, the system
            # location will be used.
            #latitude: 33.400876
            #longitude: -84.581101
            #city_id: 4215110
            #location: "30269,us"
            # Enable "save_full_response" to save the full response (you may have
            # need to use parts of the response that are not part of the wx
            # capability in your dashboard widgets).
            #save_full_response: false

To determine the location, you must provide one of the following:

- The latitude and longitude of the location, in fields `latitude` and `longitude` respectively; or
- The OWM City ID for the location, in the `city_id` field; or
- The postal code and ISO 3166-1 country code (two character) formatted `postcode,county` (e.g. `"30269,us"`) in the `location` field.

You may have multiple locations, as many locations as you want; just realize that each location increases the number of API calls (which counts against your quota). To add locations, simply duplicate the structure from `-id:` to the end of the example above and append it after the last location, then uncomment and modify the new location values as needed.

Use OWM City IDs

The OWM City IDs are published in a list that can be downloaded from their web site. Go to their site, select the "API" navigation at the top of the page, click on the "API doc" button under "Current Weather Data", and then scroll down to "By city ID". You'll find the link to download the list in the text there. Using these IDs removes ambiguity and speeds up responses.

Updated: 2021-Oct-13