OpenWeatherMapAPI via HTTPMOD

Begonnen von Prof. Dr. Peter Henning, 04 Oktober 2026, 11:13:51

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Das OpenWeatherMapAPI von Wetter.com liefert eigentlich ganz gute Daten für die Vorhersage. Allerdings weist das entsprechende API-Modul für das Hauptmodul 59_Weather.pm einen Fehler auf: Es holt die mehrtägige Vorhersage nur von einem kostenpflichtigen Account.

Ich bin sicher, dass die Kollegen den Fehler fixen werden.

Hier gibt es einen temporären Workaround, denn man kann das auch mit HTTPMOD holen (oder mit JSONMOD, Geschmackssache).

Das Device erzeugt - in diesem Falle einmal alle 3600 Sekunden - rund 360 Readings, das ist die 3-Stunden-genaue Wettervorhersage für den jeweils heutigen und die beiden nachfolgenden Tage. Die Readings haben (fast) alle Namen, die mit tfc_XX beginnen, wobei XX = 01..24, tfc_XX_start ist die Startzeit des entsprechenden Blocks.
define WetterVorhersage HTTPMOD https://api.openweathermap.org/data/2.5/forecast?lat={HIER GEOGRAFISCHE BREITE}&lon={HIER GEOGRAFISCHE LÄNGE}&appid={HIER DER API-KEY}&units=metric&lang=de 3600
attr WetterVorhersage bodyEncode utf8
attr WetterVorhersage reading0102JSON list_01_dt_txt
attr WetterVorhersage reading0102Name tfc_01_start
attr WetterVorhersage reading0103JSON list_01_main_temp
attr WetterVorhersage reading0103Name tfc_01_temperature
attr WetterVorhersage reading0104JSON list_01_main_humidity
attr WetterVorhersage reading0104Name tfc_01_humidity
attr WetterVorhersage reading0105JSON list_01_main_grnd_level
attr WetterVorhersage reading0105Name tfc_01_pressure
attr WetterVorhersage reading0106JSON list_01_visibility
attr WetterVorhersage reading0106Name tfc_01_visibility
attr WetterVorhersage reading0107JSON list_01_clouds_all
attr WetterVorhersage reading0107Name tfc_01_clouds
attr WetterVorhersage reading0108JSON list_01_pop
attr WetterVorhersage reading0108Name tfc_01_ch_rain
attr WetterVorhersage reading0109JSON list_01_wind_speed
attr WetterVorhersage reading0109Name tfc_01_wind_speed
attr WetterVorhersage reading0110JSON list_01_wind_deg
attr WetterVorhersage reading0110Name tfc_01_wind_dir
attr WetterVorhersage reading0111JSON list_01_wind_gust
attr WetterVorhersage reading0111Name tfc_01_wind_gust
attr WetterVorhersage reading0112JSON list_01_weather_01_id
attr WetterVorhersage reading0112Name tfc_01_weatherid
attr WetterVorhersage reading0114JSON list_01_weather_01_description
attr WetterVorhersage reading0114Name tfc_01_description
attr WetterVorhersage reading0202JSON list_02_dt_txt
attr WetterVorhersage reading0202Name tfc_02_start
attr WetterVorhersage reading0203JSON list_02_main_temp
attr WetterVorhersage reading0203Name tfc_02_temperature
attr WetterVorhersage reading0204JSON list_02_main_humidity
attr WetterVorhersage reading0204Name tfc_02_humidity
attr WetterVorhersage reading0205JSON list_02_main_grnd_level
attr WetterVorhersage reading0205Name tfc_02_pressure
attr WetterVorhersage reading0206JSON list_02_visibility
attr WetterVorhersage reading0206Name tfc_02_visibility
attr WetterVorhersage reading0207JSON list_02_clouds_all
attr WetterVorhersage reading0207Name tfc_02_clouds
attr WetterVorhersage reading0208JSON list_02_pop
attr WetterVorhersage reading0208Name tfc_02_ch_rain
attr WetterVorhersage reading0209JSON list_02_wind_speed
attr WetterVorhersage reading0209Name tfc_02_wind_speed
attr WetterVorhersage reading0210JSON list_02_wind_deg
attr WetterVorhersage reading0210Name tfc_02_wind_dir
attr WetterVorhersage reading0211JSON list_02_wind_gust
attr WetterVorhersage reading0211Name tfc_02_wind_gust
attr WetterVorhersage reading0212JSON list_02_weather_01_id
attr WetterVorhersage reading0212Name tfc_02_weatherid
attr WetterVorhersage reading0214JSON list_02_weather_01_description
attr WetterVorhersage reading0214Name tfc_02_description
attr WetterVorhersage reading0302JSON list_03_dt_txt
attr WetterVorhersage reading0302Name tfc_03_start
attr WetterVorhersage reading0303JSON list_03_main_temp
attr WetterVorhersage reading0303Name tfc_03_temperature
attr WetterVorhersage reading0304JSON list_03_main_humidity
attr WetterVorhersage reading0304Name tfc_03_humidity
attr WetterVorhersage reading0305JSON list_03_main_grnd_level
attr WetterVorhersage reading0305Name tfc_03_pressure
attr WetterVorhersage reading0306JSON list_03_visibility
attr WetterVorhersage reading0306Name tfc_03_visibility
attr WetterVorhersage reading0307JSON list_03_clouds_all
attr WetterVorhersage reading0307Name tfc_03_clouds
attr WetterVorhersage reading0308JSON list_03_pop
attr WetterVorhersage reading0308Name tfc_03_ch_rain
attr WetterVorhersage reading0309JSON list_03_wind_speed
attr WetterVorhersage reading0309Name tfc_03_wind_speed
attr WetterVorhersage reading0310JSON list_03_wind_deg
attr WetterVorhersage reading0310Name tfc_03_wind_dir
attr WetterVorhersage reading0311JSON list_03_wind_gust
attr WetterVorhersage reading0311Name tfc_03_wind_gust
attr WetterVorhersage reading0312JSON list_03_weather_01_id
attr WetterVorhersage reading0312Name tfc_03_weatherid
attr WetterVorhersage reading0314JSON list_03_weather_01_description
attr WetterVorhersage reading0314Name tfc_03_description
attr WetterVorhersage reading0402JSON list_04_dt_txt
attr WetterVorhersage reading0402Name tfc_04_start
attr WetterVorhersage reading0403JSON list_04_main_temp
attr WetterVorhersage reading0403Name tfc_04_temperature
attr WetterVorhersage reading0404JSON list_04_main_humidity
attr WetterVorhersage reading0404Name tfc_04_humidity
attr WetterVorhersage reading0405JSON list_04_main_grnd_level
attr WetterVorhersage reading0405Name tfc_04_pressure
attr WetterVorhersage reading0406JSON list_04_visibility
attr WetterVorhersage reading0406Name tfc_04_visibility
attr WetterVorhersage reading0407JSON list_04_clouds_all
attr WetterVorhersage reading0407Name tfc_04_clouds
attr WetterVorhersage reading0408JSON list_04_pop
attr WetterVorhersage reading0408Name tfc_04_ch_rain
attr WetterVorhersage reading0409JSON list_04_wind_speed
attr WetterVorhersage reading0409Name tfc_04_wind_speed
attr WetterVorhersage reading0410JSON list_04_wind_deg
attr WetterVorhersage reading0410Name tfc_04_wind_dir
attr WetterVorhersage reading0411JSON list_04_wind_gust
attr WetterVorhersage reading0411Name tfc_04_wind_gust
attr WetterVorhersage reading0412JSON list_04_weather_01_id
attr WetterVorhersage reading0412Name tfc_04_weatherid
attr WetterVorhersage reading0414JSON list_04_weather_01_description
attr WetterVorhersage reading0414Name tfc_04_description
attr WetterVorhersage reading0502JSON list_05_dt_txt
attr WetterVorhersage reading0502Name tfc_05_start
attr WetterVorhersage reading0503JSON list_05_main_temp
attr WetterVorhersage reading0503Name tfc_05_temperature
attr WetterVorhersage reading0504JSON list_05_main_humidity
attr WetterVorhersage reading0504Name tfc_05_humidity
attr WetterVorhersage reading0505JSON list_05_main_grnd_level
attr WetterVorhersage reading0505Name tfc_05_pressure
attr WetterVorhersage reading0506JSON list_05_visibility
attr WetterVorhersage reading0506Name tfc_05_visibility
attr WetterVorhersage reading0507JSON list_05_clouds_all
attr WetterVorhersage reading0507Name tfc_05_clouds
attr WetterVorhersage reading0508JSON list_05_pop
attr WetterVorhersage reading0508Name tfc_05_ch_rain
attr WetterVorhersage reading0509JSON list_05_wind_speed
attr WetterVorhersage reading0509Name tfc_05_wind_speed
attr WetterVorhersage reading0510JSON list_05_wind_deg
attr WetterVorhersage reading0510Name tfc_05_wind_dir
attr WetterVorhersage reading0511JSON list_05_wind_gust
attr WetterVorhersage reading0511Name tfc_05_wind_gust
attr WetterVorhersage reading0512JSON list_05_weather_01_id
attr WetterVorhersage reading0512Name tfc_05_weatherid
attr WetterVorhersage reading0514JSON list_05_weather_01_description
attr WetterVorhersage reading0514Name tfc_05_description
attr WetterVorhersage reading0602JSON list_06_dt_txt
attr WetterVorhersage reading0602Name tfc_06_start
attr WetterVorhersage reading0603JSON list_06_main_temp
attr WetterVorhersage reading0603Name tfc_06_temperature
attr WetterVorhersage reading0604JSON list_06_main_humidity
attr WetterVorhersage reading0604Name tfc_06_humidity
attr WetterVorhersage reading0605JSON list_06_main_grnd_level
attr WetterVorhersage reading0605Name tfc_06_pressure
attr WetterVorhersage reading0606JSON list_06_visibility
attr WetterVorhersage reading0606Name tfc_06_visibility
attr WetterVorhersage reading0607JSON list_06_clouds_all
attr WetterVorhersage reading0607Name tfc_06_clouds
attr WetterVorhersage reading0608JSON list_06_pop
attr WetterVorhersage reading0608Name tfc_06_ch_rain
attr WetterVorhersage reading0609JSON list_06_wind_speed
attr WetterVorhersage reading0609Name tfc_06_wind_speed
attr WetterVorhersage reading0610JSON list_06_wind_deg
attr WetterVorhersage reading0610Name tfc_06_wind_dir
attr WetterVorhersage reading0611JSON list_06_wind_gust
attr WetterVorhersage reading0611Name tfc_06_wind_gust
attr WetterVorhersage reading0612JSON list_06_weather_01_id
attr WetterVorhersage reading0612Name tfc_06_weatherid
attr WetterVorhersage reading0614JSON list_06_weather_01_description
attr WetterVorhersage reading0614Name tfc_06_description
attr WetterVorhersage reading0702JSON list_07_dt_txt
attr WetterVorhersage reading0702Name tfc_07_start
attr WetterVorhersage reading0703JSON list_07_main_temp
attr WetterVorhersage reading0703Name tfc_07_temperature
attr WetterVorhersage reading0704JSON list_07_main_humidity
attr WetterVorhersage reading0704Name tfc_07_humidity
attr WetterVorhersage reading0705JSON list_07_main_grnd_level
attr WetterVorhersage reading0705Name tfc_07_pressure
attr WetterVorhersage reading0706JSON list_07_visibility
attr WetterVorhersage reading0706Name tfc_07_visibility
attr WetterVorhersage reading0707JSON list_07_clouds_all
attr WetterVorhersage reading0707Name tfc_07_clouds
attr WetterVorhersage reading0708JSON list_07_pop
attr WetterVorhersage reading0708Name tfc_07_ch_rain
attr WetterVorhersage reading0709JSON list_07_wind_speed
attr WetterVorhersage reading0709Name tfc_07_wind_speed
attr WetterVorhersage reading0710JSON list_07_wind_deg
attr WetterVorhersage reading0710Name tfc_07_wind_dir
attr WetterVorhersage reading0711JSON list_07_wind_gust
attr WetterVorhersage reading0711Name tfc_07_wind_gust
attr WetterVorhersage reading0712JSON list_07_weather_01_id
attr WetterVorhersage reading0712Name tfc_07_weatherid
attr WetterVorhersage reading0714JSON list_07_weather_01_description
attr WetterVorhersage reading0714Name tfc_07_description
attr WetterVorhersage reading0802JSON list_08_dt_txt
attr WetterVorhersage reading0802Name tfc_08_start
attr WetterVorhersage reading0803JSON list_08_main_temp
attr WetterVorhersage reading0803Name tfc_08_temperature
attr WetterVorhersage reading0804JSON list_08_main_humidity
attr WetterVorhersage reading0804Name tfc_08_humidity
attr WetterVorhersage reading0805JSON list_08_main_grnd_level
attr WetterVorhersage reading0805Name tfc_08_pressure
attr WetterVorhersage reading0806JSON list_08_visibility
attr WetterVorhersage reading0806Name tfc_08_visibility
attr WetterVorhersage reading0807JSON list_08_clouds_all
attr WetterVorhersage reading0807Name tfc_08_clouds
attr WetterVorhersage reading0808JSON list_08_pop
attr WetterVorhersage reading0808Name tfc_08_ch_rain
attr WetterVorhersage reading0809JSON list_08_wind_speed
attr WetterVorhersage reading0809Name tfc_08_wind_speed
attr WetterVorhersage reading0810JSON list_08_wind_deg
attr WetterVorhersage reading0810Name tfc_08_wind_dir
attr WetterVorhersage reading0811JSON list_08_wind_gust
attr WetterVorhersage reading0811Name tfc_08_wind_gust
attr WetterVorhersage reading0812JSON list_08_weather_01_id
attr WetterVorhersage reading0812Name tfc_08_weatherid
attr WetterVorhersage reading0814JSON list_08_weather_01_description
attr WetterVorhersage reading0814Name tfc_08_description
attr WetterVorhersage reading0902JSON list_09_dt_txt
attr WetterVorhersage reading0902Name tfc_09_start
attr WetterVorhersage reading0903JSON list_09_main_temp
attr WetterVorhersage reading0903Name tfc_09_temperature
attr WetterVorhersage reading0904JSON list_09_main_humidity
attr WetterVorhersage reading0904Name tfc_09_humidity
attr WetterVorhersage reading0905JSON list_09_main_grnd_level
attr WetterVorhersage reading0905Name tfc_09_pressure
attr WetterVorhersage reading0906JSON list_09_visibility
attr WetterVorhersage reading0906Name tfc_09_visibility
attr WetterVorhersage reading0907JSON list_09_clouds_all
attr WetterVorhersage reading0907Name tfc_09_clouds
attr WetterVorhersage reading0908JSON list_09_pop
attr WetterVorhersage reading0908Name tfc_09_ch_rain
attr WetterVorhersage reading0909JSON list_09_wind_speed
attr WetterVorhersage reading0909Name tfc_09_wind_speed
attr WetterVorhersage reading0910JSON list_09_wind_deg
attr WetterVorhersage reading0910Name tfc_09_wind_dir
attr WetterVorhersage reading0911JSON list_09_wind_gust
attr WetterVorhersage reading0911Name tfc_09_wind_gust
attr WetterVorhersage reading0912JSON list_09_weather_01_id
attr WetterVorhersage reading0912Name tfc_09_weatherid
attr WetterVorhersage reading0914JSON list_09_weather_01_description
attr WetterVorhersage reading0914Name tfc_09_description
attr WetterVorhersage reading1002JSON list_10_dt_txt
attr WetterVorhersage reading1002Name tfc_10_start
attr WetterVorhersage reading1003JSON list_10_main_temp
attr WetterVorhersage reading1003Name tfc_10_temperature
attr WetterVorhersage reading1004JSON list_10_main_humidity
attr WetterVorhersage reading1004Name tfc_10_humidity
attr WetterVorhersage reading1005JSON list_10_main_grnd_level
attr WetterVorhersage reading1005Name tfc_10_pressure
attr WetterVorhersage reading1006JSON list_10_visibility
attr WetterVorhersage reading1006Name tfc_10_visibility
attr WetterVorhersage reading1007JSON list_10_clouds_all
attr WetterVorhersage reading1007Name tfc_10_clouds
attr WetterVorhersage reading1008JSON list_10_pop
attr WetterVorhersage reading1008Name tfc_10_ch_rain
attr WetterVorhersage reading1009JSON list_10_wind_speed
attr WetterVorhersage reading1009Name tfc_10_wind_speed
attr WetterVorhersage reading100JSON city_id
attr WetterVorhersage reading100Name city_id
attr WetterVorhersage reading1010JSON list_10_wind_deg
attr WetterVorhersage reading1010Name tfc_10_wind_dir
attr WetterVorhersage reading1011JSON list_10_wind_gust
attr WetterVorhersage reading1011Name tfc_10_wind_gust
attr WetterVorhersage reading1012JSON list_10_weather_01_id
attr WetterVorhersage reading1012Name tfc_10_weatherid
attr WetterVorhersage reading1014JSON list_10_weather_01_description
attr WetterVorhersage reading1014Name tfc_10_description
attr WetterVorhersage reading101JSON city_coord_lat
attr WetterVorhersage reading101Name city_coord_lat
attr WetterVorhersage reading102JSON city_country
attr WetterVorhersage reading102Name city_country
attr WetterVorhersage reading103JSON city_sunset
attr WetterVorhersage reading103Name city_sunset
attr WetterVorhersage reading104JSON city_population
attr WetterVorhersage reading104Name city_population
attr WetterVorhersage reading105JSON city_sunrise
attr WetterVorhersage reading105Name city_sunrise
attr WetterVorhersage reading106JSON city_timezone
attr WetterVorhersage reading106Name city_timezone
attr WetterVorhersage reading107JSON city_name
attr WetterVorhersage reading107Name city_name
attr WetterVorhersage reading108JSON city_coord_lon
attr WetterVorhersage reading108Name city_coord_lon
attr WetterVorhersage reading1102JSON list_11_dt_txt
attr WetterVorhersage reading1102Name tfc_11_start
attr WetterVorhersage reading1103JSON list_11_main_temp
attr WetterVorhersage reading1103Name tfc_11_temperature
attr WetterVorhersage reading1104JSON list_11_main_humidity
attr WetterVorhersage reading1104Name tfc_11_humidity
attr WetterVorhersage reading1105JSON list_11_main_grnd_level
attr WetterVorhersage reading1105Name tfc_11_pressure
attr WetterVorhersage reading1106JSON list_11_visibility
attr WetterVorhersage reading1106Name tfc_11_visibility
attr WetterVorhersage reading1107JSON list_11_clouds_all
attr WetterVorhersage reading1107Name tfc_11_clouds
attr WetterVorhersage reading1108JSON list_11_pop
attr WetterVorhersage reading1108Name tfc_11_ch_rain
attr WetterVorhersage reading1109JSON list_11_wind_speed
attr WetterVorhersage reading1109Name tfc_11_wind_speed
attr WetterVorhersage reading1110JSON list_11_wind_deg
attr WetterVorhersage reading1110Name tfc_11_wind_dir
attr WetterVorhersage reading1111JSON list_11_wind_gust
attr WetterVorhersage reading1111Name tfc_11_wind_gust
attr WetterVorhersage reading1112JSON list_11_weather_01_id
attr WetterVorhersage reading1112Name tfc_11_weatherid
attr WetterVorhersage reading1114JSON list_11_weather_01_description
attr WetterVorhersage reading1114Name tfc_11_description
attr WetterVorhersage reading1202JSON list_12_dt_txt
attr WetterVorhersage reading1202Name tfc_12_start
attr WetterVorhersage reading1203JSON list_12_main_temp
attr WetterVorhersage reading1203Name tfc_12_temperature
attr WetterVorhersage reading1204JSON list_12_main_humidity
attr WetterVorhersage reading1204Name tfc_12_humidity
attr WetterVorhersage reading1205JSON list_12_main_grnd_level
attr WetterVorhersage reading1205Name tfc_12_pressure
attr WetterVorhersage reading1206JSON list_12_visibility
attr WetterVorhersage reading1206Name tfc_12_visibility
attr WetterVorhersage reading1207JSON list_12_clouds_all
attr WetterVorhersage reading1207Name tfc_12_clouds
attr WetterVorhersage reading1208JSON list_12_pop
attr WetterVorhersage reading1208Name tfc_12_ch_rain
attr WetterVorhersage reading1209JSON list_12_wind_speed
attr WetterVorhersage reading1209Name tfc_12_wind_speed
attr WetterVorhersage reading1210JSON list_12_wind_deg
attr WetterVorhersage reading1210Name tfc_12_wind_dir
attr WetterVorhersage reading1211JSON list_12_wind_gust
attr WetterVorhersage reading1211Name tfc_12_wind_gust
attr WetterVorhersage reading1212JSON list_12_weather_01_id
attr WetterVorhersage reading1212Name tfc_12_weatherid
attr WetterVorhersage reading1214JSON list_12_weather_01_description
attr WetterVorhersage reading1214Name tfc_12_description
attr WetterVorhersage reading1302JSON list_13_dt_txt
attr WetterVorhersage reading1302Name tfc_13_start
attr WetterVorhersage reading1303JSON list_13_main_temp
attr WetterVorhersage reading1303Name tfc_13_temperature
attr WetterVorhersage reading1304JSON list_13_main_humidity
attr WetterVorhersage reading1304Name tfc_13_humidity
attr WetterVorhersage reading1305JSON list_13_main_grnd_level
attr WetterVorhersage reading1305Name tfc_13_pressure
attr WetterVorhersage reading1306JSON list_13_visibility
attr WetterVorhersage reading1306Name tfc_13_visibility
attr WetterVorhersage reading1307JSON list_13_clouds_all
attr WetterVorhersage reading1307Name tfc_13_clouds
attr WetterVorhersage reading1308JSON list_13_pop
attr WetterVorhersage reading1308Name tfc_13_ch_rain
attr WetterVorhersage reading1309JSON list_13_wind_speed
attr WetterVorhersage reading1309Name tfc_13_wind_speed
attr WetterVorhersage reading1310JSON list_13_wind_deg
attr WetterVorhersage reading1310Name tfc_13_wind_dir
attr WetterVorhersage reading1311JSON list_13_wind_gust
attr WetterVorhersage reading1311Name tfc_13_wind_gust
attr WetterVorhersage reading1312JSON list_13_weather_01_id
attr WetterVorhersage reading1312Name tfc_13_weatherid
attr WetterVorhersage reading1314JSON list_13_weather_01_description
attr WetterVorhersage reading1314Name tfc_13_description
attr WetterVorhersage reading1402JSON list_14_dt_txt
attr WetterVorhersage reading1402Name tfc_14_start
attr WetterVorhersage reading1403JSON list_14_main_temp
attr WetterVorhersage reading1403Name tfc_14_temperature
attr WetterVorhersage reading1404JSON list_14_main_humidity
attr WetterVorhersage reading1404Name tfc_14_humidity
attr WetterVorhersage reading1405JSON list_14_main_grnd_level
attr WetterVorhersage reading1405Name tfc_14_pressure
attr WetterVorhersage reading1406JSON list_14_visibility
attr WetterVorhersage reading1406Name tfc_14_visibility
attr WetterVorhersage reading1407JSON list_14_clouds_all
attr WetterVorhersage reading1407Name tfc_14_clouds
attr WetterVorhersage reading1408JSON list_14_pop
attr WetterVorhersage reading1408Name tfc_14_ch_rain
attr WetterVorhersage reading1409JSON list_14_wind_speed
attr WetterVorhersage reading1409Name tfc_14_wind_speed
attr WetterVorhersage reading1410JSON list_14_wind_deg
attr WetterVorhersage reading1410Name tfc_14_wind_dir
attr WetterVorhersage reading1411JSON list_14_wind_gust
attr WetterVorhersage reading1411Name tfc_14_wind_gust
attr WetterVorhersage reading1412JSON list_14_weather_01_id
attr WetterVorhersage reading1412Name tfc_14_weatherid
attr WetterVorhersage reading1414JSON list_14_weather_01_description
attr WetterVorhersage reading1414Name tfc_14_description
attr WetterVorhersage reading1502JSON list_15_dt_txt
attr WetterVorhersage reading1502Name tfc_15_start
attr WetterVorhersage reading1503JSON list_15_main_temp
attr WetterVorhersage reading1503Name tfc_15_temperature
attr WetterVorhersage reading1504JSON list_15_main_humidity
attr WetterVorhersage reading1504Name tfc_15_humidity
attr WetterVorhersage reading1505JSON list_15_main_grnd_level
attr WetterVorhersage reading1505Name tfc_15_pressure
attr WetterVorhersage reading1506JSON list_15_visibility
attr WetterVorhersage reading1506Name tfc_15_visibility
attr WetterVorhersage reading1507JSON list_15_clouds_all
attr WetterVorhersage reading1507Name tfc_15_clouds
attr WetterVorhersage reading1508JSON list_15_pop
attr WetterVorhersage reading1508Name tfc_15_ch_rain
attr WetterVorhersage reading1509JSON list_15_wind_speed
attr WetterVorhersage reading1509Name tfc_15_wind_speed
attr WetterVorhersage reading1510JSON list_15_wind_deg
attr WetterVorhersage reading1510Name tfc_15_wind_dir
attr WetterVorhersage reading1511JSON list_15_wind_gust
attr WetterVorhersage reading1511Name tfc_15_wind_gust
attr WetterVorhersage reading1512JSON list_15_weather_01_id
attr WetterVorhersage reading1512Name tfc_15_weatherid
attr WetterVorhersage reading1514JSON list_15_weather_01_description
attr WetterVorhersage reading1514Name tfc_15_description
attr WetterVorhersage reading1602JSON list_16_dt_txt
attr WetterVorhersage reading1602Name tfc_16_start
attr WetterVorhersage reading1603JSON list_16_main_temp
attr WetterVorhersage reading1603Name tfc_16_temperature
attr WetterVorhersage reading1604JSON list_16_main_humidity
attr WetterVorhersage reading1604Name tfc_16_humidity
attr WetterVorhersage reading1605JSON list_16_main_grnd_level
attr WetterVorhersage reading1605Name tfc_16_pressure
attr WetterVorhersage reading1606JSON list_16_visibility
attr WetterVorhersage reading1606Name tfc_16_visibility
attr WetterVorhersage reading1607JSON list_16_clouds_all
attr WetterVorhersage reading1607Name tfc_16_clouds
attr WetterVorhersage reading1608JSON list_16_pop
attr WetterVorhersage reading1608Name tfc_16_ch_rain
attr WetterVorhersage reading1609JSON list_16_wind_speed
attr WetterVorhersage reading1609Name tfc_16_wind_speed
attr WetterVorhersage reading1610JSON list_16_wind_deg
attr WetterVorhersage reading1610Name tfc_16_wind_dir
attr WetterVorhersage reading1611JSON list_16_wind_gust
attr WetterVorhersage reading1611Name tfc_16_wind_gust
attr WetterVorhersage reading1612JSON list_16_weather_01_id
attr WetterVorhersage reading1612Name tfc_16_weatherid
attr WetterVorhersage reading1614JSON list_16_weather_01_description
attr WetterVorhersage reading1614Name tfc_16_description
attr WetterVorhersage reading1702JSON list_17_dt_txt
attr WetterVorhersage reading1702Name tfc_17_start
attr WetterVorhersage reading1703JSON list_17_main_temp
attr WetterVorhersage reading1703Name tfc_17_temperature
attr WetterVorhersage reading1704JSON list_17_main_humidity
attr WetterVorhersage reading1704Name tfc_17_humidity
attr WetterVorhersage reading1705JSON list_17_main_grnd_level
attr WetterVorhersage reading1705Name tfc_17_pressure
attr WetterVorhersage reading1706JSON list_17_visibility
attr WetterVorhersage reading1706Name tfc_17_visibility
attr WetterVorhersage reading1707JSON list_17_clouds_all
attr WetterVorhersage reading1707Name tfc_17_clouds
attr WetterVorhersage reading1708JSON list_17_pop
attr WetterVorhersage reading1708Name tfc_17_ch_rain
attr WetterVorhersage reading1709JSON list_17_wind_speed
attr WetterVorhersage reading1709Name tfc_17_wind_speed
attr WetterVorhersage reading1710JSON list_17_wind_deg
attr WetterVorhersage reading1710Name tfc_17_wind_dir
attr WetterVorhersage reading1711JSON list_17_wind_gust
attr WetterVorhersage reading1711Name tfc_17_wind_gust
attr WetterVorhersage reading1712JSON list_17_weather_01_id
attr WetterVorhersage reading1712Name tfc_17_weatherid
attr WetterVorhersage reading1714JSON list_17_weather_01_description
attr WetterVorhersage reading1714Name tfc_17_description
attr WetterVorhersage reading1802JSON list_18_dt_txt
attr WetterVorhersage reading1802Name tfc_18_start
attr WetterVorhersage reading1803JSON list_18_main_temp
attr WetterVorhersage reading1803Name tfc_18_temperature
attr WetterVorhersage reading1804JSON list_18_main_humidity
attr WetterVorhersage reading1804Name tfc_18_humidity
attr WetterVorhersage reading1805JSON list_18_main_grnd_level
attr WetterVorhersage reading1805Name tfc_18_pressure
attr WetterVorhersage reading1806JSON list_18_visibility
attr WetterVorhersage reading1806Name tfc_18_visibility
attr WetterVorhersage reading1807JSON list_18_clouds_all
attr WetterVorhersage reading1807Name tfc_18_clouds
attr WetterVorhersage reading1808JSON list_18_pop
attr WetterVorhersage reading1808Name tfc_18_ch_rain
attr WetterVorhersage reading1809JSON list_18_wind_speed
attr WetterVorhersage reading1809Name tfc_18_wind_speed
attr WetterVorhersage reading1810JSON list_18_wind_deg
attr WetterVorhersage reading1810Name tfc_18_wind_dir
attr WetterVorhersage reading1811JSON list_18_wind_gust
attr WetterVorhersage reading1811Name tfc_18_wind_gust
attr WetterVorhersage reading1812JSON list_18_weather_01_id
attr WetterVorhersage reading1812Name tfc_18_weatherid
attr WetterVorhersage reading1814JSON list_18_weather_01_description
attr WetterVorhersage reading1814Name tfc_18_description
attr WetterVorhersage reading1902JSON list_19_dt_txt
attr WetterVorhersage reading1902Name tfc_19_start
attr WetterVorhersage reading1903JSON list_19_main_temp
attr WetterVorhersage reading1903Name tfc_19_temperature
attr WetterVorhersage reading1904JSON list_19_main_humidity
attr WetterVorhersage reading1904Name tfc_19_humidity
attr WetterVorhersage reading1905JSON list_19_main_grnd_level
attr WetterVorhersage reading1905Name tfc_19_pressure
attr WetterVorhersage reading1906JSON list_19_visibility
attr WetterVorhersage reading1906Name tfc_19_visibility
attr WetterVorhersage reading1907JSON list_19_clouds_all
attr WetterVorhersage reading1907Name tfc_19_clouds
attr WetterVorhersage reading1908JSON list_19_pop
attr WetterVorhersage reading1908Name tfc_19_ch_rain
attr WetterVorhersage reading1909JSON list_19_wind_speed
attr WetterVorhersage reading1909Name tfc_19_wind_speed
attr WetterVorhersage reading1910JSON list_19_wind_deg
attr WetterVorhersage reading1910Name tfc_19_wind_dir
attr WetterVorhersage reading1911JSON list_19_wind_gust
attr WetterVorhersage reading1911Name tfc_19_wind_gust
attr WetterVorhersage reading1912JSON list_19_weather_01_id
attr WetterVorhersage reading1912Name tfc_19_weatherid
attr WetterVorhersage reading1914JSON list_19_weather_01_description
attr WetterVorhersage reading1914Name tfc_19_description
attr WetterVorhersage reading2002JSON list_20_dt_txt
attr WetterVorhersage reading2002Name tfc_20_start
attr WetterVorhersage reading2003JSON list_20_main_temp
attr WetterVorhersage reading2003Name tfc_20_temperature
attr WetterVorhersage reading2004JSON list_20_main_humidity
attr WetterVorhersage reading2004Name tfc_20_humidity
attr WetterVorhersage reading2005JSON list_20_main_grnd_level
attr WetterVorhersage reading2005Name tfc_20_pressure
attr WetterVorhersage reading2006JSON list_20_visibility
attr WetterVorhersage reading2006Name tfc_20_visibility
attr WetterVorhersage reading2007JSON list_20_clouds_all
attr WetterVorhersage reading2007Name tfc_20_clouds
attr WetterVorhersage reading2008JSON list_20_pop
attr WetterVorhersage reading2008Name tfc_20_ch_rain
attr WetterVorhersage reading2009JSON list_20_wind_speed
attr WetterVorhersage reading2009Name tfc_20_wind_speed
attr WetterVorhersage reading2010JSON list_20_wind_deg
attr WetterVorhersage reading2010Name tfc_20_wind_dir
attr WetterVorhersage reading2011JSON list_20_wind_gust
attr WetterVorhersage reading2011Name tfc_20_wind_gust
attr WetterVorhersage reading2012JSON list_20_weather_01_id
attr WetterVorhersage reading2012Name tfc_20_weatherid
attr WetterVorhersage reading2014JSON list_20_weather_01_description
attr WetterVorhersage reading2014Name tfc_20_description
attr WetterVorhersage reading2102JSON list_21_dt_txt
attr WetterVorhersage reading2102Name tfc_21_start
attr WetterVorhersage reading2103JSON list_21_main_temp
attr WetterVorhersage reading2103Name tfc_21_temperature
attr WetterVorhersage reading2104JSON list_21_main_humidity
attr WetterVorhersage reading2104Name tfc_21_humidity
attr WetterVorhersage reading2105JSON list_21_main_grnd_level
attr WetterVorhersage reading2105Name tfc_21_pressure
attr WetterVorhersage reading2106JSON list_21_visibility
attr WetterVorhersage reading2106Name tfc_21_visibility
attr WetterVorhersage reading2107JSON list_21_clouds_all
attr WetterVorhersage reading2107Name tfc_21_clouds
attr WetterVorhersage reading2108JSON list_21_pop
attr WetterVorhersage reading2108Name tfc_21_ch_rain
attr WetterVorhersage reading2109JSON list_21_wind_speed
attr WetterVorhersage reading2109Name tfc_21_wind_speed
attr WetterVorhersage reading2110JSON list_21_wind_deg
attr WetterVorhersage reading2110Name tfc_21_wind_dir
attr WetterVorhersage reading2111JSON list_21_wind_gust
attr WetterVorhersage reading2111Name tfc_21_wind_gust
attr WetterVorhersage reading2112JSON list_21_weather_01_id
attr WetterVorhersage reading2112Name tfc_21_weatherid
attr WetterVorhersage reading2114JSON list_21_weather_01_description
attr WetterVorhersage reading2114Name tfc_21_description
attr WetterVorhersage reading2202JSON list_22_dt_txt
attr WetterVorhersage reading2202Name tfc_22_start
attr WetterVorhersage reading2203JSON list_22_main_temp
attr WetterVorhersage reading2203Name tfc_22_temperature
attr WetterVorhersage reading2204JSON list_22_main_humidity
attr WetterVorhersage reading2204Name tfc_22_humidity
attr WetterVorhersage reading2205JSON list_22_main_grnd_level
attr WetterVorhersage reading2205Name tfc_22_pressure
attr WetterVorhersage reading2206JSON list_22_visibility
attr WetterVorhersage reading2206Name tfc_22_visibility
attr WetterVorhersage reading2207JSON list_22_clouds_all
attr WetterVorhersage reading2207Name tfc_22_clouds
attr WetterVorhersage reading2208JSON list_22_pop
attr WetterVorhersage reading2208Name tfc_22_ch_rain
attr WetterVorhersage reading2209JSON list_22_wind_speed
attr WetterVorhersage reading2209Name tfc_22_wind_speed
attr WetterVorhersage reading2210JSON list_22_wind_deg
attr WetterVorhersage reading2210Name tfc_22_wind_dir
attr WetterVorhersage reading2211JSON list_22_wind_gust
attr WetterVorhersage reading2211Name tfc_22_wind_gust
attr WetterVorhersage reading2212JSON list_22_weather_01_id
attr WetterVorhersage reading2212Name tfc_22_weatherid
attr WetterVorhersage reading2214JSON list_22_weather_01_description
attr WetterVorhersage reading2214Name tfc_22_description
attr WetterVorhersage reading2302JSON list_23_dt_txt
attr WetterVorhersage reading2302Name tfc_23_start
attr WetterVorhersage reading2303JSON list_23_main_temp
attr WetterVorhersage reading2303Name tfc_23_temperature
attr WetterVorhersage reading2304JSON list_23_main_humidity
attr WetterVorhersage reading2304Name tfc_23_humidity
attr WetterVorhersage reading2305JSON list_23_main_grnd_level
attr WetterVorhersage reading2305Name tfc_23_pressure
attr WetterVorhersage reading2306JSON list_23_visibility
attr WetterVorhersage reading2306Name tfc_23_visibility
attr WetterVorhersage reading2307JSON list_23_clouds_all
attr WetterVorhersage reading2307Name tfc_23_clouds
attr WetterVorhersage reading2308JSON list_23_pop
attr WetterVorhersage reading2308Name tfc_23_ch_rain
attr WetterVorhersage reading2309JSON list_23_wind_speed
attr WetterVorhersage reading2309Name tfc_23_wind_speed
attr WetterVorhersage reading2310JSON list_23_wind_deg
attr WetterVorhersage reading2310Name tfc_23_wind_dir
attr WetterVorhersage reading2311JSON list_23_wind_gust
attr WetterVorhersage reading2311Name tfc_23_wind_gust
attr WetterVorhersage reading2312JSON list_23_weather_01_id
attr WetterVorhersage reading2312Name tfc_23_weatherid
attr WetterVorhersage reading2314JSON list_23_weather_01_description
attr WetterVorhersage reading2314Name tfc_23_description
attr WetterVorhersage reading2402JSON list_24_dt_txt
attr WetterVorhersage reading2402Name tfc_24_start
attr WetterVorhersage reading2403JSON list_24_main_temp
attr WetterVorhersage reading2403Name tfc_24_temperature
attr WetterVorhersage reading2404JSON list_24_main_humidity
attr WetterVorhersage reading2404Name tfc_24_humidity
attr WetterVorhersage reading2405JSON list_24_main_grnd_level
attr WetterVorhersage reading2405Name tfc_24_pressure
attr WetterVorhersage reading2406JSON list_24_visibility
attr WetterVorhersage reading2406Name tfc_24_visibility
attr WetterVorhersage reading2407JSON list_24_clouds_all
attr WetterVorhersage reading2407Name tfc_24_clouds
attr WetterVorhersage reading2408JSON list_24_pop
attr WetterVorhersage reading2408Name tfc_24_ch_rain
attr WetterVorhersage reading2409JSON list_24_wind_speed
attr WetterVorhersage reading2409Name tfc_24_wind_speed
attr WetterVorhersage reading2410JSON list_24_wind_deg
attr WetterVorhersage reading2410Name tfc_24_wind_dir
attr WetterVorhersage reading2411JSON list_24_wind_gust
attr WetterVorhersage reading2411Name tfc_24_wind_gust
attr WetterVorhersage reading2412JSON list_24_weather_01_id
attr WetterVorhersage reading2412Name tfc_24_weatherid
attr WetterVorhersage reading2414JSON list_24_weather_01_description
attr WetterVorhersage reading2414Name tfc_24_description
Das Ganze ist natürlich witzlos, wenn man daraus keine menschenlesbare Vorhersage ableitet. Deshalb wird das Device duch ein notify überwacht
define WetterVorhersage.Notify notify WetterVorhersage:tfc_01_start:.* {WetterVorhersageMessage()}
Wenn die Wettervorhersage aktualisiert wurde, wird also die Funktion WetterVorhersageMessage gerufen, die sechs neue Readings erzeugt:
fcx_wday = Wochentag, wobei x=0,1,2
fcx_message = menschenlesbare Vorhersage.
Zunächst der Code
##############################################
#
#  WetterVorhersage
#
##############################################

use Time::Local;

sub WetterKategorie {
    my ($id) = @_;

    return "Gewitter"       if $id >= 200 && $id <= 232;
    return "Nieselregen"    if $id >= 300 && $id <= 321;
    return "Regen"          if $id >= 500 && $id <= 511;
    return "Regenschauer"   if $id >= 520 && $id <= 531;
    return "Schnee"         if $id >= 600 && $id <= 622;
    return "Nebel"          if $id >= 701 && $id <= 781;
    return "Klarer Himmel"  if $id == 800;
    return "Leicht bewölkt" if $id == 801;
    return "Bewölkt"        if $id == 802;
    return "Stark bewölkt"  if $id == 803;
    return "Bedeckt"        if $id == 804;

    return "Unbeständiges Wetter";
}

sub WetterLocalTime {
    my ($start,$offset) = @_;

    return unless $start =~
        /^(\d{4})-(\d{2})-(\d{2})\s+(\d{2}):(\d{2}):(\d{2})$/;

    my $t = timegm($6,$5,$4,$3,$2-1,$1);
    $t += $offset;

    my @lt = gmtime($t);

    return (
        sprintf("%04d-%02d-%02d",
            $lt[5]+1900,
            $lt[4]+1,
            $lt[3]
        ),
        $lt[2]
    );
}

sub WetterDate {
    my ($offset,$days) = @_;

    my $t = time() + $offset;
    my @x = gmtime($t);

    my $noon = timegm(
        0,0,12,
        $x[3],$x[4],$x[5]+1900
    );
    $noon += $days * 86400;
    my @d = gmtime($noon);
    return sprintf(
        "%04d-%02d-%02d",
        $d[5]+1900,
        $d[4]+1,
        $d[3]
    );
}

sub WetterDominant {
    my @d = @_;
    return "" unless @d;

    my %count;
    for my $f (@d) {
        $count{$f->{weather}}++;
    }
    return (
        sort {
            $count{$b} <=> $count{$a}
        } keys %count
    )[0];
}

sub WetterRelevant {
    my ($w) = @_;

    return 1 if $w =~ /Gewitter/;
    return 1 if $w =~ /Regen/;
    return 1 if $w =~ /Schnee/;
    return 1 if $w =~ /Nebel/;

    return 0;
}

sub WetterTempText {
   my ($tmin,$tmax) = @_;
   return "$tmin °C"
       if( $tmin == $tmax);
   return "$tmin - $tmax °C";
}

sub WetterWindText {
    my ($speed,$gust) = @_;
    $speed //= 0;
    $gust  //= 0;
    return "starker Wind"
        if $speed >= 8 || $gust >= 14;
    return "mäßiger Wind"
        if $speed >= 4 || $gust >= 8;
    return "leichter Wind";
}


sub WetterTagesverlauf {
    my @d = @_;

    my @nacht =
        grep { $_->{hour} < 6 } @d;

    my @vormittag =
        grep { $_->{hour} >= 6 &&
               $_->{hour} < 12 } @d;

    my @nachmittag =
        grep { $_->{hour} >= 12 &&
               $_->{hour} < 18 } @d;

    my @abend =
        grep { $_->{hour} >= 18 } @d;

    my $n  = WetterDominant(@nacht);
    my $vm = WetterDominant(@vormittag);
    my $nm = WetterDominant(@nachmittag);
    my $a  = WetterDominant(@abend);

    my @text;
    if ($n && WetterRelevant($n)) {
        push @text, "Nachts $n";
    }

    if ($vm) {
        push @text, "vormittags $vm";
    }

    if ($nm && (!$vm || $nm ne $vm)) {
        push @text, "nachmittags $nm";
    }

    if ($a && ((!$nm || $a ne $nm) || WetterRelevant($a))) {
        push @text, "abends $a";
    }
    return join(", ",@text);
}

sub WetterVorhersageMessage {
    my $dev = "WetterVorhersage";
    return unless defined $defs{$dev};

    my $offset =
        ReadingsNum($dev,"city_timezone",0);
    my @fc;
    for my $i (1..24) {
        my $n = sprintf("%02d",$i);
        my $start =
            ReadingsVal($dev, "tfc_${n}_start","");
        next unless $start;
        my ($date,$hour) = WetterLocalTime($start,$offset,);
        next unless defined $date;
        my $id = ReadingsNum($dev,"tfc_${n}_weatherid",0);
        push @fc, {date => $date,hour => $hour,
            weather => WetterKategorie($id),
            temp => ReadingsNum($dev,"tfc_${n}_temperature",0),
            pop =>  ReadingsNum($dev,"tfc_${n}_ch_rain",0),
            wind => ReadingsNum($dev,"tfc_${n}_wind_speed",0),
            gust => ReadingsNum($dev,"tfc_${n}_wind_gust",0),
        };
    }
    return unless @fc;

    for my $day (0..2) {
        my $date = WetterDate($offset,$day);
        my ($y,$m,$d) = split(/-/,$date);
        my $t = timegm(0,0,12,$d,$m-1,$y);
        my @wd = qw(So Mo Di Mi Do Fr Sa);
        my $wday = $wd[(gmtime($t))[6]];
        readingsSingleUpdate($defs{$dev},"fc${day}_wday",$wday,1);
        my @d = grep {$_->{date} eq $date} @fc;
        if (!@d) {
            readingsSingleUpdate($defs{$dev},"fc${day}_message","",1);
            next;
        }

        my $tmin = $d[0]{temp};
        my $tmax = $d[0]{temp};
        my $pop = 0;
        my $windmax = 0;
        my $gustmax = 0;

        for my $f (@d) {
            $tmin = $f->{temp}
                if $f->{temp} < $tmin;
            $tmax = $f->{temp}
                if $f->{temp} > $tmax;
            $pop = $f->{pop}
                if $f->{pop} > $pop;
            $windmax = $f->{wind}
                if $f->{wind} > $windmax;
            $gustmax = $f->{gust}
                if $f->{gust} > $gustmax;
        }
        $tmin = sprintf("%.0f",$tmin);
        $tmax = sprintf("%.0f",$tmax);
        my $temptext = WetterTempText($tmin,$tmax);
        $pop =  sprintf("%.0f",$pop * 100);
        my $windtext = WetterWindText($windmax,$gustmax);
        my $weather;

        if ($day == 0) {
            my @w;
            for my $f (@d) {
                next
                    if @w &&
                       $w[-1] eq $f->{weather};
                push @w,
                    $f->{weather};
            }
            if (@w == 1) {
                $weather = $w[0];
            }elsif (@w >= 2) {
                $weather = $w[0] . ", später " .$w[-1];
            }else {
                $weather = "Keine Wetterangabe";
            }
        }else{
            $weather = WetterTagesverlauf(@d);
            $weather = "Keine Wetterangabe"
                    unless $weather;
        }

        my $msg = 
              $weather
            . "<br>Temperatur ".$temptext
            . "<br>Regenwahrscheinlichkeit ".$pop."%, "
            . $windtext;

        readingsSingleUpdate($defs{$dev},"fc${day}_message",$msg,1);
    }

    return;
}

Und, sozusagen als Abschluss mal das Ergebnis gerade jetzt:
Zitatfc0_message Bedeckt, später Regen<br>Temperatur 15 - 21 °C<br>Regenwahrscheinlichkeit 79%, leichter Wind   
fc0_wday So
   
fc1_message vormittags Bewölkt, nachmittags Leicht bewölkt, abends Klarer Himmel<br>Temperatur 13 - 23 °C<br>Regenwahrscheinlichkeit 0%, leichter Wind
fc1_wday Mo
   
fc2_message vormittags Bewölkt, nachmittags Klarer Himmel<br>Temperatur 9 - 23 °C<br>Regenwahrscheinlichkeit 0%, leichter Wind
fc2_wday Di

LG

pah