This is a Custom Integration for Home Assistant. It combines real-time weather readings from a Personal Weather station produced by WeatherFlow and Forecast data also from Weatherflow. It uses the public REST API to pull data from Weatherflow.
There is currently support for the following device types within Home Assistant:
- Weather
- Sensor
- Binary Sensor
Forecast data can be delivered as hourly or daily data. The Forecast API is still under development from WeatherFlow, so it might change over time. As it is right now, it is very stable and uses the same AI driven model as you can see in there own APP. A BIG thank you to @max-rousseau for doing the initial implementation of this.
Note: If you are a version 1.x user, please read the Upgrade section below before you install this.
This Integration is part of the default HACS store, so go to the HACS page and search for SmartWeather.
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
binary_sensor.py
config_flow.py
const.py
entity.py
manifest.json
sensor.py
strings.json
weather.py
translation (Directory with all files)
Please be aware that the old sensor names and the new sensor names might not match. So if you use this in any Automations, Value Templates, Scripts etc. you will have to change those after adding the new component.
The integration has been rewritten, to use Config Flow as configuration option, so if you have a previous version installed, you must first remove that.
To upgrade perform the below steps in that order:
- Edit the yaml files that contain references to
smartweather
and remove them from the file. (configuration.yaml and were ever you storesensor
,binary_sensor
andweather
configuration) - Remove the Integration from HACS
- Restart Home Assistant
- When HA is back online go to HACS and install the new Version of SmartWeather
- Restart Home Assistant
- When HA is back online, go to Configuration and then Integrations, click the + sign in the bottom right, and search for SmartWeather.
- Fill out the Configuration Options, and click Submit. You should now have all the Devices and Entities configured.
To add SmartWeather to your installation, go to the Integration page inside the configuration panel and add a Personal Weather station by providing the API Key and Station ID of yours or a another Weatherflow Weather Station.
During installation you will have the option of selecting if you want to:
- have Daily or Hourly based Forecast data
- use mps or km/h as wind unit if you use the Metric unit system
- set the interval for updating current data and forecast data
These settings can also be changed after you add the Integration, by using the Options link on the Integration widget.
You can configure more than 1 instance of the Integration by either using a different Station ID, og by using the same Station ID, but then a different Forecast Type (Daily / Hourly). If you select the last option de-select the check-box Install individual sensors
as this will only create the same sensors two times.
The WeatherFlow REST API requires a Token. If you own a WeatherFlow station you can login with your account and create the token. Go to Settings and choose Data Authorizations (almost at the bottom). Create a personal access token and use that as Token (API key).
Please Note: The Token you create here will ONLY work with Stations that are registered under the same Login. If you don't have your own station you will currently need to use the old Public Developer key. It is though uncertain for how long this will work.
WeatherFlow is releasing a new Authorization flow, so in the future you will have to obtain your own personal key, or use Oauth2 to retrieve data. The developer key will continue to operate through the end of 2020, but after that, you will need to obtain your own key. You can read more here on how to obtain your own key - please note Oauth2 is not currently implemented in this integration.
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
For each Station ID you add, the following sensors are being added to Home Assistant:
- air_density - Air Density.
- air_temperature - Outside Temperature.
- brightness - Brightness in Lux
- dew_point - Outside Dewpoint.
- feels_like - Outside Feels Like Temp.
- heat_index - Outside Heat Index.
- lightning_strike_last_time - the date and time of last strike.
- lightning_strike_last_distance - the distance away of last strike.
- lightning_strike_count - the daily strike count.
- lightning_strike_count_last_1hr - the strike count last 1 hour.
- lightning_strike_count_last_3hr - the strike count last 3 hours.
- precip_accum_last_1hr - Precipition for the Last Hour.
- precip_accum_local_day - Precipition for the Day.
- precip_accum_local_yesterday - Precipition for Yesterday.
- precip_rate - current precipitaion rate.
- precip_minutes_local_day - Precipition Minutes Today.
- precip_minutes_local_yesterday - Precipition Minutes Yesterday.
- pressure_trend - The pressure trend in text form. (Only english)
- relative_humidity - relative Humidity.
- solar_radiation - Solar Radiation.
- station_pressure - Station Pressure.
- sea_level_pressure - Sea Level Pressure.
- uv - UV Index.
- wind_avg - Wind Speed Average.
- wind_bearing - Wind Bearing as Degree.
- wind_chill - Wind Chill Temperature.
- wind_gust - Wind Gust Speed.
- wind_direction - Wind Direction Compass Symbol.
- battery_DEVICE_NAME - Reporting the current Voltage of each unit attached to the Hub. There will be one sensor per device.
Default they are named: sensor.smartweather_SENSORNAME
. They all have a Unique ID, so you can rename them to whatever you like afterwards.