## The *ping-weather.ps1* Script This PowerShell script continuously shows the current weather conditions (similar to htop, 10 min update interval by default). ## Parameters ```powershell /home/mf/Repos/PowerShell/Scripts/ping-weather.ps1 [[-Location] ] [[-UpdateInterval] ] [] -Location Specifies the location to use (determined automatically per default) Required? false Position? 1 Default value Accept pipeline input? false Accept wildcard characters? false -UpdateInterval Required? false Position? 2 Default value 600 Accept pipeline input? false Accept wildcard characters? false [] This script supports the common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariable, and OutVariable. ``` ## Example ```powershell PS> ./ping-weather Current weather conditions at Paris (Ile-de-France), updating every 10 min... 🕗10:24 AM UTC 🌡23°C ☂️0.0mm 💨9km/h from S ☁️0% 💧41% ☀️UV6 1020hPa Sunny ``` ## Notes Author: Markus Fleschutz | License: CC0 ## Related Links https://github.com/fleschutz/PowerShell ## Source Code ```powershell <# .SYNOPSIS Ping the currrent weather conditions .DESCRIPTION This PowerShell script continuously shows the current weather conditions (similar to htop, 10 min update interval by default). .PARAMETER Location Specifies the location to use (determined automatically per default) .EXAMPLE PS> ./ping-weather Current weather conditions at Paris (Ile-de-France), updating every 10 min... 🕗10:24 AM UTC 🌡23°C ☂️0.0mm 💨9km/h from S ☁️0% 💧41% ☀️UV6 1020hPa Sunny .LINK https://github.com/fleschutz/PowerShell .NOTES Author: Markus Fleschutz | License: CC0 #> param([string]$Location = "", [int]$UpdateInterval = 600) try { $Weather = (Invoke-WebRequest -URI http://wttr.in/${Location}?format=j1 -userAgent "curl" -useBasicParsing).Content | ConvertFrom-Json $Area = $Weather.nearest_area.areaName.value $Region = $Weather.nearest_area.region.value "Current weather conditions at $Area ($Region), updating every $($UpdateInterval / 60) min..." do { $Description = $Weather.current_condition.WeatherDesc.value $TempC = $Weather.current_condition.temp_C $PrecipMM = $Weather.current_condition.precipMM $WindSpeed = $Weather.current_condition.windspeedKmph $WindDir = $Weather.current_condition.winddir16Point $Clouds = $Weather.current_condition.cloudcover $Humidity = $Weather.current_condition.humidity $UV = $Weather.current_condition.uvIndex $Visib = $Weather.current_condition.visibility $Pressure = $Weather.current_condition.pressure $Time = $Weather.current_condition.observation_time "🕗$Time UTC 🌡$($TempC)°C ☂️$($PrecipMM)mm 💨$($WindSpeed)km/h from $WindDir ☁️$($Clouds)% 💧$($Humidity)% ☀️UV$UV 👀$($Visib)km $($Pressure)hPa $Description" Start-Sleep -s $UpdateInterval $Weather = (Invoke-WebRequest -URI http://wttr.in/${Location}?format=j1 -userAgent "curl" -useBasicParsing).Content | ConvertFrom-Json } while ($true) exit 0 # success } catch { "⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])" exit 1 } ``` *Generated by convert-ps2md.ps1 using the comment-based help of ping-weather.ps1*