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:

- 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:

- 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