Für welchen Wetterdienst?
API-Keys sind lediglich dein Zugang für einen bezahlten Service und bezeichnet keinen Ort!
Es geht auch ohne API-Keys, wenn man Dienste in Anspruch nimmt , welche keinen benötigen.
Ich verwende gern https://open-meteo.com/
Allerdings benötigt dies statt Adressdaten eien Geolocation (Länge/Breite)
Diese kann man jedoch für so ziemlich jede Adresse ohne großen aufwand über das Debubgnterface von Openstreetmap abrufen. https://nominatim.openstreetmap.org/ui/about.html
hier ein kleines Powershellscript, welches das aktuelle Wetter für meine Stadt abruft.
#Geokoordinaten für einen Ort ermitteln
#Was immer an Adressdaten verfügbar ist
$SearchStrings = @(
'Leipzig'
'Grünau'
'Mitte'
)
$queryStrings = $SearchStrings|%{[uri]::EscapeDataString($_)}
$Query = $queryStrings -join '+'
Write-Host "QueryString: $Query" -fo green
$ProgressPreference = 'SilentlyContinue' # Consolefortschrittsbalken aus
#geodaten für "Adresse" abfragen
$GeoCoords=(Invoke-WebRequest "https://nominatim.openstreetmap.org/search?q=$Query&format=json&addressdetails=0").content | ConvertFrom-Json
$GeoCoords #mal anshauen
#https://open-meteo.com/
#querystring für Wetterapi basteln
$WeatherQuery=@(
'latitude={0}'-f $GeoCoords.lat
'longitude={0}'-f $GeoCoords.lon
'current=temperature_2m,relative_humidity_2m,precipitation,rain,showers,snowfall,weather_code,cloud_cover,wind_speed_10m,wind_direction_10m'
)-join '&'
$WeatherQuery
#Wetterdaten für ermittelten Geo-Tag abrufen
$html = Invoke-WebRequest "https://api.open-meteo.com/v1/forecast?$WeatherQuery"
$Weatherobject = $html.Content|ConvertFrom-Json
$Weatherobject #mal angucken
$Weatherobject.Current
pause
Achtung:
nominatim.openstreetmap.org/search kann auch mehrere Treffer liefern. Dann meutert natürlich die Bastelei der Abfrage für den Wetterdienst.
Ich habe eine Selektion weggelassen um die Demo nicht unnötig kompliziert zu machen.
(ergo vorher sicherstellen das die Query nur eine Geocoordinate liefert oder eine aktive Auswahl statfinden kann)