briis / smartweather

WeatherFlow Smart Weather Component for Home Assistant
MIT License
108 stars 11 forks source link
darksky home-assistant python weatherflow

//Smart Weather

This repository is now Archived and will no longer be maintained. There is now a new Custom Integration replacing this called WeatherFlow Weather. Please use this Integration instead.

WeatherFlow Logo
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.

GitHub release hacs_badge

There is currently support for the following device types within Home Assistant:

Forecast data can be delivered as hourly or daily data. The Forecast API 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.

Installation

HACS installation

This Integration is part of the default HACS store, so go to the HACS page and search for SmartWeather.

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
binary_sensor.py
config_flow.py
const.py
entity.py
manifest.json
sensor.py
strings.json
weather.py
translation (Directory with all files)

Upgrade from version 1.x

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:

  1. Edit the yaml files that contain references to smartweather and remove them from the file. (configuration.yaml and were ever you store sensor, binary_sensor and weather configuration)
  2. Remove the Integration from HACS
  3. Restart Home Assistant
  4. When HA is back online go to HACS and install the new Version of SmartWeather
  5. Restart Home Assistant
  6. When HA is back online, go to Configuration and then Integrations, click the + sign in the bottom right, and search for SmartWeather.
  7. Fill out the Configuration Options, and click Submit. You should now have all the Devices and Entities configured.

Configuration

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:

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.

Token for SmartWeather

The WeatherFlow REST API requires a Token. Please 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.

Station ID

Each WeatherFlow Station you setup, will get a unique Station ID, this id is needed during configuration. To get your Station ID, login with your account, select the station on the list, and then click Status. Here you will find your Station ID.

Sensors

For each Station ID you add, the following sensors are being added to Home Assistant (They will all be prefixed with smartweather_):

Default they are named: sensor.smartweather_SENSORNAME. They all have a Unique ID, so you can rename them to whatever you like afterwards.