Beispiel: 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}