Rudd-O / homeassistant-meteoswiss

:sun_behind_rain_cloud: :switzerland: Meteo Swiss Integration for Home Assistant (forked from websylv)
92 stars 11 forks source link
hacs-integration home-assistant weather

homeassistant-meteoswiss (forked)

This is the MeteoSwiss integration for Home Assistant.

Features

See below for common issues.

Installation

Removal of the obsolete integration

You only need to do this if you had either Websylv's integration or an older version of this integration installed and setup.

Installation of the updated integration

hacs_badge

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:

enter image description here

Once added as a custom repository, add the integration to your HACS setup:

enter image description here

Once done you should see a pending restart box:

enter image description here

Restart your Home Assistant:

enter image description here

Now you are ready to add one or more instances of the integration.

Setup

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

If you are not happy with the settings, in a future release you will be able to update them.

How to create a sensor that has the weather forecast data

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.

Troubleshooting

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

Upgrade notes / known issues

Information sources

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.

Privacy

This integration uses:

Origins of this work

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.

How to migrate away from websylv's integration

  1. First remove any successfully-setup "Meteo Swiss" (note the space) integrations.
  2. Remove the integration itself from HACS.
  3. Remove the YAML config you might have been using before.
  4. Add this repository as a custom integration repo in HACS, then install it to your Home Assistant. See above for installation instructions.
  5. Restart Home Assistant.
  6. Now you can add the integration in Devices & Settings. See above for setup instructions.