Wettermitteilung: Windwarnung


In diesem Beispiel wird eine Windwarnung als Mitteilung versendet, wenn Windgeschwindigkeiten über 70 km/h für den Tag vorhergesagt werden.

Windwarnung
0:00
Starker Wind mit 85 km/h wird für 20:30 vorausgesagt.

Dazu wird die stündliche Wetterprognose mit der Funktion GetHourlyWeather geladen. Anhand der prognostizierten Windgeschwindigkeiten wird ermittelt, ob eine Mitteilung versendet werden soll oder nicht.

 1// This script checks every day at midnight if wind speeds
 2// greater than 70 km/h are predicated for the day. 
 3// If yes, a notification will be sent.
 4var hkknx, fmt, time = import("hkknx"), import("fmt"), import("time")
 5
 6midnight = hkknx.AtTime(0,0,0)
 7for {
 8	// Wait until midnight.
 9	<-midnight
10    
11    // Get the hourly weather forecast.
12    hourly, err = hkknx.GetHourlyWeather()
13    if err != nil {
14        println(err)
15        continue
16    }
17    
18    for weather in hourly {
19        // Check if the forecast is for today.
20        if weather.Date.Day() != time.Now().Day() {
21            continue
22        }
23        
24        // Convert meter per second to kilometer per hour.
25        windSpeed = weather.WindSpeed * 3.6
26        if windSpeed > 70 {
27            hm = fmt.Sprintf("%02d:%02d", weather.Date.Hour(), weather.Date.Minute())
28            msg = fmt.Sprintf("Starker Wind mit %.0f km/h wird für %s vorausgesagt.", windSpeed, hm)
29            hkknx.SendNotification("Windwarnung", msg)
30            break
31        }
32    }
33}

Auf dieser Seite
Ähnliche Beiträge
© Matthias Hochgatterer – MastodonGithubRésumé