/smartweather

WeatherFlow Smart Weather Component for Home Assistant

Primary LanguagePythonMIT LicenseMIT

Smart Weather for Home Assistant

WeatherFlow Logo
This a custom component for Home Assistant. It combines real-time weather readings from a Smart Weather weather station produced by WeatherFlow and Forecast data from Dark Sky.

GitHub release hacs_badge

It can create several sensor entities for each weather reading like Temperature, Precipitation, Rain etc. and it can create two binary_sensor, one indicating if it freezes outside and one indicating if it is raining. Finally it can also create a weather component, that then combines the real-time readings from the Weather Station and the Forecast data from Dark Sky, in to a standard weathercomponent.

The smartweather component uses the WeatherFlow REST API to retrieve current data for a local WeatherStation, and it uses Dark Sky to retrieve Forecast data if the weather component is activated.

Manual Installation

To add SMARTWEATHER to your installation, create this folder structure in your /config directory:

custom_components/smartweather. Then, drop the following files into that folder:

__init__.py
manifest.json
sensor.py
binary_sensor.py
weather.py

HACS Installation

This Integration is part of the default HACS store, so search for Weatherflow Smart Weather in HACS.

Configuration

Start by configuring the core platform. No matter which of the entities you activate, this has to be configured. The core platform by itself does nothing else than fetch the current data from WeatherFlow, so by activating this you will not see any entities being created in Home Assistant.

Edit your configuration.yaml file and add the smartweather component to the file:

# Example configuration.yaml entry
smartweather:
  station_id: <your station id>
  api_key: <Your WeatherFlow API Key>

station_id:
(string)(Required) If you have your own Smart Weather Station, then you know your Station ID. If you don't have one, there are a lot of public stations available, and you can find one near you on this link. If you click on one of the stations on the map, you will see that the URL changes, locate the number right after /map/ - this is the Station ID

api_key
(string)(Required) The WeatherFlow REST API requires a API Key, but for personal use, you can use a development key, which you can find here. Please note the restrictions applied.

name
(string)(Optional) Additional name for the platform.
Default value: SmartWeather

Binary Sensor

binary_sensor
In order to use the Binary Sensors, add the following to your configuration.yaml file:

# Example configuration.yaml entry
binary_sensor:
  - platform: smartweather
    monitored_conditions:
      - raining
      - freezing
      - lightning

Configuration Variables

name
(string)(Optional) Additional name for the sensors.
Default value: SmartWeather

monitored_conditions
(list)(optional) Sensors to display in the frontend.
Default: All Sensors are displayed

  • raining - A sensor indicating if it is currently raining
  • freezing - A sensor indicating if it is currently freezing outside.
  • lightning - A sensor indicating if a lightning strike has been recorded within the last minute

Sensor

sensor
In order to use the Sensors, add the following to your configuration.yaml file:

# Example configuration.yaml entry
sensor:
  - platform: smartweather
    wind_unit: kmh
    monitored_conditions:
      - temperature
      - feels_like_temperature
      - heat_index
      - wind_chill
      - dewpoint
      - wind_speed
      - wind_gust
      - wind_lull
      - wind_bearing
      - wind_direction
      - precipitation
      - precipitation_rate
      - precipitation_last_1hr
      - precipitation_yesterday
      - precip_minutes_local_day
      - precip_minutes_local_yesterday
      - humidity
      - pressure
      - uv
      - solar_radiation
      - illuminance
      - lightning_count

Configuration Variables

wind_unit
(string)(optional) If Home Assistant Unit System is metric, specify kmh to get units in km/h. Else this has no effect.
Default Value: m/s if Home Assistant Unit System is metric, and mph if Unit System is imperial

name
(string)(Optional) Additional name for the sensors.
Default value: SmartWeather

monitored_conditions
(list)(optional) Sensors to display in the frontend.
Default: All Sensors are displayed

  • temperature - Current temperature
  • feels_like_temperature - How the temperature Feels Like. A combination of Heat Index and Wind Chill
  • heat_index - A temperature measurement combining Humidity and temperature. How hot does it feel. Only used when temperature is above 26.67°C (80°F)
  • wind_chill - How cold does it feel. Only used if temperature is below 10°C (50°F)
  • dewpoint - Dewpoint. The atmospheric temperature (varying according to pressure and humidity) below which water droplets begin to condense and dew can form
  • wind_speed - Current Wind Speed
  • wind_gust - Highest Wind Speed in the last minute
  • wind_lull - Lowest Wind Speed in the last minute
  • wind_bearing - Wind bearing in degrees (Example: 287°)
  • wind_direction - Wind bearing as directional text (Example: NNW)
  • precipitation - Precipitation since midnight
  • precipitation_rate - The current precipitation rate - 0 if it is not raining
  • precipitation_last_1hr - Precipitation in the last hour
  • precipitation_yesterday - Precipitation yesterday
  • precip_minutes_local_day - Number of minutes it has been raining for the current day
  • precip_minutes_local_yesterday - Number of minutes it has been raining yesterday
  • humidity - Current humidity in %
  • pressure - Current barometric pressure, taking in to account the position of the station
  • uv - The UV index
  • solar_radiation - The current Solar Radiation measured in W/m2
  • illuminance - Shows the brightness in Lux
  • lightning_count - Shows the numbers of lightning strikes for last minute. Attributes of this sensor has more Lightning information.

Weather

weather
The Weather Entity uses Dark Sky for forecast data. Unfortunately it is no longer possible for new users to obtain an API Key, as DarkSky was aquired by Apple, and they decided to close down registration for new users. People who allready have a DarkSky API Key, can use this until the end of 2021. You can make up to 1000 calls per day for free which means that you could make one approximately every 86 seconds.

I made an alternative Weather Forecast provider, where data is pulled from Weatherbit.io. This is not integrated with your SmartWeather data, but I just wanted to mention it, in case you are looking for an alternative to DarkSky. Find the module here.

The difference between using this entity and the standard Dark Sky entity, is that Current data is coming from the local weather station, making it much more accurate than that what Dark Sky delivers.

On top of the standard attributes that a weather entity has available, the following additional attributes have been added to this Weather Entity: Wind Gust, Dewpoint, Feels Like Temperature, Precipitation and Precipitation Rate. These are all Current values.

In order to use the Weather component, add the following to your configuration.yaml file:

# Example configuration.yaml entry
weather:
  - platform: smartweather
    api_key: <Your Dark Sky API key>

Configuration Variables

api_key
(string)(Required) Your API key.
name
(string)(Optional) Additional name for the sensors.
Default value: SmartWeather
mode
(string)(Optional) hourly for hour based forecast, and daily for day based forecast
Default value: hourly