Home Assistant (https://www.home-assistant.io/) is a free and open-source smart home control system. It has a focus on "local" device control, data collection, and home automation - all without making your smart home dependent on the "cloud" (aka someone else's computer).
I use Home Assistant and other open-source projects, like Tasmota (https://tasmota.github.io/docs/), to connect my lights, fans, temp/humidity sensors, and other "smart" devices into one cohesive ecosystem. It's very stable and integrates well with other services like Apple HomeKit, Google Assistant, and Alexa.
One feature of Home Assistant is the ability to integrate weather data from a "Weather Provider." You can then display weather info in the Home Assistant dashboard, or use it to control smarthome automations. Some weather-related automation examples would include:
- Turn on the dehumidifier when it starts raining
- Close the blinds in a particular room when the sun comes out
- Make all your smarthome speakers play "Africa" by Toto every time the rain pours down
- And so on
The default Weather Provider is Meteorologisk institutt (Met.no), which is a cloud service provided by the Norwegian Meteorological Institute and the NRK. This is suboptimal, because:
- I'm not in Norway, and
- It relies on the cloud
To fix this problem, we can use Vitality GOES as the weather provider in Home Assistant. This removes Home Assistant's reliance on the cloud for its weather information - instead, it will use satellites. Satellites are above the clouds, which make them inherently better.
To set this up, the following items should already be configured:
- Vitality GOES: The "Current Weather" screen must load successfully, and the "Current Weather" and "7-day Forecast" cards must work. If either are missing, verify your config.ini.
- Home Assistant: To get started with it, see https://www.home-assistant.io/getting-started/. You must be running version 2023.9 or newer.
Vitality GOES and Home Assistant can (and probably should) be on different machines, as long as they can talk to each other across the network.
Nothing will need to be changed about Vitality GOES as long as its Current Weather screen already shows the necessary items.
In Home Assistant, edit your configuration.yaml file to include the configuration information found in configs/homeassistant-configuration.yaml of this repo.
If you don't already have a rest:
or weather:
section in your configuration.yaml (you probably won't), you can just copy and paste my example into your config file, save it, and restart Home Assistant. Don't forget to set the IP/hostname and port of your Vitality GOES instance where notated!
If you're a Home Assistant Pro and already have one or both of these sections, work the example config in as necessary.
The rest:
configuration pulls pertinent weather data from Vitality GOES via the dataHandler API. The data values are loaded into a multitude of Home Assistant "Sensor" entities. Then, the weather:
configuration assembles all the sensors into one cohesive "Weather" entity.
You can also use the sensors directly to track trends in temp, humitidity, etc over time.
Make sure each of the forecast sensors have an Entity ID of "sensor.vitality_goes_forecast_day_X", where X is 1-7. This should be created autmatically when you add in the configuration, but if you fiddle with the config, you may need to reset the Entity ID in the GUI. Some or all of the forecast may be missing if the Entity ID is incorrect.