This is the MeteoSwiss integration for Home Assistant.
- Interactive setup flow with reasonably good explanations of the settings.
- Lets you determine the real-time weather update frequency.
- Lets you customize all entities this integration provides (every entity has a unique ID).
- Detects when your real-time weather station has been retired, and offers suggestions on how to fix the issue.
- Supports hourly forecasts.
- Supports two different real-time stations: a weather station that may not give you rain data, and a precipitation station that will give you rain data but may not give you other info.
- Code is much cleaner and works properly.
See below for common issues.
You only need to do this if you had either Websylv's integration or an older version of this integration installed and setup.
- Remove the old integration from your HACS integrations screen.
- Go into the integration within the HACS integrations screen.
- Click on the three dots menu at the upper right corner.
- Select Remove.
- Remove the repository from your HACS setup.
- In the HACS integration screen, click the three dots menu.
- Delete the integration from the Custom repositories dialog.
- Remove the config entry.
- Write down the names you have given to your existing weather and sensor entities.
- In the Devices & Services settings screen, locate the integration configuration entry, then click its three-dots menu.
- Select Delete.
- Stop Home Assistant.
- Change into your Home Assistant configuration directory.
- Verify the folder
custom_components/meteo-swiss
is nonexistent under the Home Assistant configuration directory. Note the dash! - Start Home Assistant.
- Proceed with installation.
- Once you get to the setup stage, when you are asked for the names of the weather and sensor entities, re-use the same names you used before. Your statistics will then be preserved from the old entities managed by the old integration.
Add this integration as a custom repository to HACS. If you use HACS you already know the generic instructions on how to do this. Here is how it looks like on the add custom repo screen:
Once added as a custom repository, add the integration to your HACS setup:
Once done you should see a pending restart box:
Restart your Home Assistant:
Now you are ready to add one or more instances of the integration.
-
First make sure that your Home Assistant's basic setup (latitude, longitude) is correct. This information is used to help you set up the weather station. If, however, it is not correct, you can still override it later.
-
Get to the Home Asssistant settings screen:
- Then click on "Devices & Services":
- Than add a new integration:
- Search for MeteoSwiss and then proceed:
- By default the integration will try to determine the best settings for you based on your Home zone latitude and longitude (which you can override):
- The next screen will ask you (with a good guess) about your postal code, and update interval. This information will be used by the weather entity — and the name onscreen is what your weather entity will be named after.
- Finally, you get to select the real-time weather station closest to you (a good guess is provided) and name your location. You can select no weather station if you so desire — useful if there is no real-time weather station near where you live — in which case the real-time sensor data is simply not provided as sensors. You may also select a real-time precipitation station that is different from your weather station, to get rain information closer to where you are.
- Your task is done and your integration is working.
If you are not happy with the settings, in a future release you will be able to update them.
Here is a sample of a YAML-based trigger-powered template sensor that creates
three different sensors from a service call every fifteen minutes. From the
sample code below, you are to modify the entity_id
to match your own weather
entity ID, then place the adjusted code within your Home Assistant's
configuration.yaml
file (under template:
as exemplified below), then
restart Home Assistant.
# ...
template:
# ...
- trigger:
- platform: time_pattern
minutes: /15
action:
- service: weather.get_forecasts
data:
type: daily
target:
entity_id: weather.meteoswiss
response_variable: response_forecast_daily
sensor:
- name: Tomorrow Max Temp
unique_id: d1b441ec-e9c6-43f8-a50a-c7c5c42c0ef5
state: "{{ response_forecast_daily['weather.meteoswiss'].forecast[1].temperature }}"
- name: Tomorrow Min Temp
unique_id: b88a351c-8eb7-40ae-8a9e-dcfeaa224551
state: "{{ response_forecast_daily['weather.meteoswiss'].forecast[1].templow }}"
- name: Tomorrow Mean Temp
unique_id: 6344f875-4569-4c3f-ad8d-ad6bccc5bc61
state: "{{ ((response_forecast_daily['weather.meteoswiss'].forecast[1].temperature) + (response_forecast_daily['weather.meteoswiss'].forecast[1].templow)) /2}}"
You can also create a sensor that will have the list of hourly forecasts as an attribute you can consult:
# ...
template:
# ...
- trigger:
- platform: state
entity_id: weather.biasca_circolo_della_riviera_distretto_di_riviera_2
- platform: homeassistant
event: start
- platform: event
event_type: event_template_reloaded
action:
- service: weather.get_forecasts
data:
type: hourly
target:
entity_id: weather.biasca_circolo_della_riviera_distretto_di_riviera_2
response_variable: hourly
sensor:
- name: Wettervorhersage Biasca Stuendlich
unique_id: weather_forecast_biasca_hourly
state: "{{ now().isoformat() }}"
attributes:
forecast: "{{ hourly['weather.biasca_circolo_della_riviera_distretto_di_riviera_2'].forecast }}"
That one is very useful to retract awnings and other smart home activities.
In case of problem with the integration, please open an issue on this repository explaining the issue and attaching the logs in debug mode.
To obtain logs, activate the component debug log in your
configuration.yaml
, and restarting Home Assistant:
logger:
default: warning
logs:
# maybe more stuff here[...]
hamsclient.client: debug
hamsclientfork.client: debug
custom_components.meteoswiss: debug
- It used to be mandatory to select a real-time weather station during setup. This step (the last setup step) is now optional — you can select no weather station if you so desire (tracked in #6 #5).
- Users of older versions of this integration were not getting updates frequently enough. This should be fixed in the latest versions, with the proviso that Home Assistant must be restarted after updating this integration.
- Users of older versions of this integration may experience a problem whereby the real-time weather sensors provided by the integration don't update, and errors on the log appear frequently regarding this issue. This is caused by an older version of the code letting people configure precipitation stations as if they were weather stations. This is no longer possible, but if you have this issue, you'll have to upgrade this integration, delete the configuration and re-add it — the erroneous station no longer will appear as an option.
- When you upgrade, a number of entities will be created, and a number of other entities will be orphaned. The recommended upgrade path is to delete the existing integration, upgrade, restart Home Assistant, and re-add the integration. If you don't do this, you will have to delete entities no longer supplied by the integration. This situation is a one-time thing. The re-setup step is necessary because the old integration did not provide unique IDs.
- There is a migration step in the code that is supposed to migrate away
from
configuration.yaml
setup. I have not tested it, but you should know that this is deprecated and it will raise a repairs issue to remind you to delete the old YAML configuration.
Data comes from the MeteoSwiss official data sources. Forecasts are extracted from the MeteoSwiss API. Current conditions are from official data files.
A primer on Swiss weather stations can be found at https://rudd-o.com/meteostations . Information on the provided values is available at https://data.geo.admin.ch/ch.meteoschweiz.messwerte-aktuell/info/VQHA80_en.txt.
This integration uses:
- https://nominatim.openstreetmap.org to guess your post code
- https://data.geo.admin.ch/ for current weather conditions
- https://www.meteosuisse.admin.ch for forecast
This was forked from https://github.com/websylv/homeassistant-meteoswiss because the original author is unresponsive and the original integration was broken beyond fixing. Use this in your Home Assistant by deleting the original integration, then adding this as a custom HACS repo, and then reinstalling the integration through this repository.
- First remove any successfully-setup "Meteo Swiss" (note the space) integrations.
- Remove the integration itself from HACS.
- Remove the YAML config you might have been using before.
- Add this repository as a custom integration repo in HACS, then install it to your Home Assistant. See above for installation instructions.
- Restart Home Assistant.
- Now you can add the integration in Devices & Settings. See above for setup instructions.