PowerShell, OpenWeather Script

Kill-RDPs
PowerShell, Kill RDP Sessions
30 maggio 2016
Get-VirtualBox
PowerShell, Modulo VirtualBox
6 giugno 2016
Mostra tutto

PowerShell, OpenWeather Script

Get-Weather
Grazie alla API di OpenWeather è possibile consultare le informazioni meteo direttamente dalla console di PowerShell.
Per prima cosa bisogna registrare un account (gratuito) su OpenWeather e appuntare la chiave API fornita al momento della registrazione.
A questo punto è sufficiente:
  • Salvare il seguente script
Function Get-LocalTime($UTCTime)
{
$LocalTime = [System.TimeZoneInfo]::ConvertTimeFromUtc($UTCTime, [System.TimeZoneInfo]::Local)
Return $LocalTime
}

function get-weather {
    param(
        [string]$City = "YOUR_CITY",
        [string]$country = "YOUR_ COUNTRY",
        [switch]$fahrenheit
    )

    $api = "YOUR_API_KEY"

    [xml]$wr = Invoke-WebRequest "api.openweathermap.org/data/2.5/weather?q=$City,$country&APPID=$api&mode=xml&&lang=it"
    $data = $wr.current
    [email protected]{}

    $OutputObject.Città=$data.city.name 
    $OutputObject.Nazione=$data.city.country
    $OutputObject.Temperatura=$data.weather.value
    if($fahrenheit){
        $OutputObject.Temperatura="$([math]::Round(($data.temperature.value - 273.15)*1.8+32,2))°f"
        $OutputObject.TempMAX="$([math]::Round(($data.temperature.max - 273.15)*1.8+32,2))°f"
        $OutputObject.TempMIN="$([math]::Round(($data.temperature.min - 273.15)*1.8+32,2))°f"
    }
    else{
        $OutputObject.Temperatura="$([math]::Round(($data.temperature.value - 273.15),2))°C"
        $OutputObject.TempMAX="$([math]::Round(($data.temperature.max - 273.15),2))°C"
        $OutputObject.TempMIN="$([math]::Round(($data.temperature.min - 273.15),2))°C"
    }
    $OutputObject.Umidità="$($data.humidity.value) $($data.humidity.unit)"
    $OutputObject.Nuvole=$data.clouds.name
    $OutputObject.Pioggia=$data.precipitation.mode
    $OutputObject.Vento=$data.wind.speed.name
    $OutputObject.Pressione="$($data.pressure.value) hPa"
    
    #UTC
    #$OutputObject.Alba=$(get-date($data.city.sun.rise)).ToString("HH:mm:ss")
    #$OutputObject.Tramonto=$(get-date($data.city.sun.set)).ToString("HH:mm:ss")
    #END UTF Format

    #UTC-To-Local
    $OutputObject.Alba=$(Get-LocalTime($data.city.sun.rise)).ToString("HH:mm:ss")
    $OutputObject.Tramonto=$(Get-LocalTime($data.city.sun.set)).ToString("HH:mm:ss")
    #End UTC-To-Local

    #Display output
    return $OutputObject
}

get-weather
write-host ""
Pause
  • Inserire la propria città (Riga: 9)
  • Inserire la propria nazione (Riga: 10)
  • Inserire la chiave API (Riga: 14)
  • Eseguire lo script!
Get-Weather Output

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *