Hallo zusammen,
immer wenn ich Internet Ausfall habe (heute leider gehäuft) bekomme ich diese Warnings im DWD_Opendata Modul:
PERL WARNING: Odd number of elements in hash assignment at ./FHEM/55_DWD_OpenData.pm line 1753.
2026.07.18 15:06:34 1: stacktrace:
2026.07.18 15:06:34 1: main::__ANON__ called by ./FHEM/55_DWD_OpenData.pm (1753)
2026.07.18 15:06:34 1: DWD_OpenData::IsDocumentUpdated called by ./FHEM/55_DWD_OpenData.pm (1846)
2026.07.18 15:06:34 1: DWD_OpenData::GetForecastStart called by FHEM/Blocking.pm (194)
2026.07.18 15:06:34 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2026.07.18 15:06:34 1: main::BlockingCall called by ./FHEM/55_DWD_OpenData.pm (1665)
2026.07.18 15:06:34 1: DWD_OpenData::GetForecast called by ./FHEM/55_DWD_OpenData.pm (1127)
2026.07.18 15:06:34 1: DWD_OpenData::Timer called by fhem.pl (3522)
2026.07.18 15:06:34 1: main::HandleTimeout called by fhem.pl (709)
Und für einige andere Adressen:
PERL WARNING: Use of uninitialized value $t in concatenation (.) or string at ./FHEM/55_DWD_OpenData.pm line 1266.
PERL WARNING: Use of uninitialized value $_[3] in concatenation (.) or string at ./FHEM/55_DWD_OpenData.pm line 1762.
PERL WARNING: Use of uninitialized value $_[3] in concatenation (.) or string at ./FHEM/55_DWD_OpenData.pm line 1774.
....
Nicht lebensnotwendig, aber doch unschön.
Leider heute wieder, diesmal den ganzen Auszug:
2026.07.27 23:10:43 1: PERL WARNING: Odd number of elements in hash assignment at ./FHEM/55_DWD_OpenData.pm line 1753.
2026.07.27 23:10:43 1: stacktrace:
2026.07.27 23:10:43 1: main::__ANON__ called by ./FHEM/55_DWD_OpenData.pm (1753)
2026.07.27 23:10:43 1: DWD_OpenData::IsDocumentUpdated called by ./FHEM/55_DWD_OpenData.pm (1846)
2026.07.27 23:10:43 1: DWD_OpenData::GetForecastStart called by FHEM/Blocking.pm (194)
2026.07.27 23:10:43 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2026.07.27 23:10:43 1: main::BlockingCall called by ./FHEM/55_DWD_OpenData.pm (1665)
2026.07.27 23:10:43 1: DWD_OpenData::GetForecast called by ./FHEM/55_DWD_OpenData.pm (1127)
2026.07.27 23:10:43 1: DWD_OpenData::Timer called by fhem.pl (3522)
2026.07.27 23:10:43 1: main::HandleTimeout called by fhem.pl (709)
2026.07.27 23:10:43 1: PERL WARNING: Use of uninitialized value in list assignment at ./FHEM/55_DWD_OpenData.pm line 1753.
2026.07.27 23:10:43 1: stacktrace:
2026.07.27 23:10:43 1: main::__ANON__ called by ./FHEM/55_DWD_OpenData.pm (1753)
2026.07.27 23:10:43 1: DWD_OpenData::IsDocumentUpdated called by ./FHEM/55_DWD_OpenData.pm (1846)
2026.07.27 23:10:43 1: DWD_OpenData::GetForecastStart called by FHEM/Blocking.pm (194)
2026.07.27 23:10:43 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2026.07.27 23:10:43 1: main::BlockingCall called by ./FHEM/55_DWD_OpenData.pm (1665)
2026.07.27 23:10:43 1: DWD_OpenData::GetForecast called by ./FHEM/55_DWD_OpenData.pm (1127)
2026.07.27 23:10:43 1: DWD_OpenData::Timer called by fhem.pl (3522)
2026.07.27 23:10:43 1: main::HandleTimeout called by fhem.pl (709)
2026.07.27 23:10:43 1: PERL WARNING: Use of uninitialized value $t in concatenation (.) or string at ./FHEM/55_DWD_OpenData.pm line 1266.
2026.07.27 23:10:43 1: stacktrace:
2026.07.27 23:10:43 1: main::__ANON__ called by ./FHEM/55_DWD_OpenData.pm (1266)
2026.07.27 23:10:43 1: DWD_OpenData::FormatDateTimeUTC called by ./FHEM/55_DWD_OpenData.pm (1757)
2026.07.27 23:10:43 1: DWD_OpenData::IsDocumentUpdated called by ./FHEM/55_DWD_OpenData.pm (1846)
2026.07.27 23:10:43 1: DWD_OpenData::GetForecastStart called by FHEM/Blocking.pm (194)
2026.07.27 23:10:43 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2026.07.27 23:10:43 1: main::BlockingCall called by ./FHEM/55_DWD_OpenData.pm (1665)
2026.07.27 23:10:43 1: DWD_OpenData::GetForecast called by ./FHEM/55_DWD_OpenData.pm (1127)
2026.07.27 23:10:43 1: DWD_OpenData::Timer called by fhem.pl (3522)
2026.07.27 23:10:43 1: main::HandleTimeout called by fhem.pl (709)
2026.07.27 23:10:43 1: PERL WARNING: Use of uninitialized value $_[3] in concatenation (.) or string at ./FHEM/55_DWD_OpenData.pm line 1762.
2026.07.27 23:10:43 1: stacktrace:
2026.07.27 23:10:43 1: main::__ANON__ called by ./FHEM/55_DWD_OpenData.pm (1762)
2026.07.27 23:10:43 1: DWD_OpenData::IsDocumentUpdated called by ./FHEM/55_DWD_OpenData.pm (1846)
2026.07.27 23:10:43 1: DWD_OpenData::GetForecastStart called by FHEM/Blocking.pm (194)
2026.07.27 23:10:43 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2026.07.27 23:10:43 1: main::BlockingCall called by ./FHEM/55_DWD_OpenData.pm (1665)
2026.07.27 23:10:43 1: DWD_OpenData::GetForecast called by ./FHEM/55_DWD_OpenData.pm (1127)
2026.07.27 23:10:43 1: DWD_OpenData::Timer called by fhem.pl (3522)
2026.07.27 23:10:43 1: main::HandleTimeout called by fhem.pl (709)
2026.07.27 23:10:43 1: PERL WARNING: Use of uninitialized value $_[3] in numeric eq (==) at ./FHEM/55_DWD_OpenData.pm line 1763.
2026.07.27 23:10:43 1: stacktrace:
2026.07.27 23:10:43 1: main::__ANON__ called by ./FHEM/55_DWD_OpenData.pm (1763)
2026.07.27 23:10:43 1: DWD_OpenData::IsDocumentUpdated called by ./FHEM/55_DWD_OpenData.pm (1846)
2026.07.27 23:10:43 1: DWD_OpenData::GetForecastStart called by FHEM/Blocking.pm (194)
2026.07.27 23:10:43 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2026.07.27 23:10:43 1: main::BlockingCall called by ./FHEM/55_DWD_OpenData.pm (1665)
2026.07.27 23:10:43 1: DWD_OpenData::GetForecast called by ./FHEM/55_DWD_OpenData.pm (1127)
2026.07.27 23:10:43 1: DWD_OpenData::Timer called by fhem.pl (3522)
2026.07.27 23:10:43 1: main::HandleTimeout called by fhem.pl (709)
2026.07.27 23:10:43 1: PERL WARNING: Use of uninitialized value $_[3] in concatenation (.) or string at ./FHEM/55_DWD_OpenData.pm line 1774.
2026.07.27 23:10:43 1: stacktrace:
2026.07.27 23:10:43 1: main::__ANON__ called by ./FHEM/55_DWD_OpenData.pm (1774)
2026.07.27 23:10:43 1: DWD_OpenData::IsDocumentUpdated called by ./FHEM/55_DWD_OpenData.pm (1846)
2026.07.27 23:10:43 1: DWD_OpenData::GetForecastStart called by FHEM/Blocking.pm (194)
2026.07.27 23:10:43 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2026.07.27 23:10:43 1: main::BlockingCall called by ./FHEM/55_DWD_OpenData.pm (1665)
2026.07.27 23:10:43 1: DWD_OpenData::GetForecast called by ./FHEM/55_DWD_OpenData.pm (1127)
2026.07.27 23:10:43 1: DWD_OpenData::Timer called by fhem.pl (3522)
2026.07.27 23:10:43 1: main::HandleTimeout called by fhem.pl (709)
2026.07.27 23:10:43 1: PERL WARNING: Use of uninitialized value $mo in subtraction (-) at ./FHEM/55_DWD_OpenData.pm line 1285.
2026.07.27 23:10:43 1: stacktrace:
2026.07.27 23:10:43 1: main::__ANON__ called by ./FHEM/55_DWD_OpenData.pm (1285)
2026.07.27 23:10:43 1: (eval) called by ./FHEM/55_DWD_OpenData.pm (1285)
2026.07.27 23:10:43 1: DWD_OpenData::ParseDateTimeUTC called by ./FHEM/55_DWD_OpenData.pm (1849)
2026.07.27 23:10:43 1: DWD_OpenData::GetForecastStart called by FHEM/Blocking.pm (194)
2026.07.27 23:10:43 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2026.07.27 23:10:43 1: main::BlockingCall called by ./FHEM/55_DWD_OpenData.pm (1665)
2026.07.27 23:10:43 1: DWD_OpenData::GetForecast called by ./FHEM/55_DWD_OpenData.pm (1127)
2026.07.27 23:10:43 1: DWD_OpenData::Timer called by fhem.pl (3522)
2026.07.27 23:10:43 1: main::HandleTimeout called by fhem.pl (709)
2026.07.27 23:10:43 1: PERL WARNING: Use of uninitialized value $y in subtraction (-) at ./FHEM/55_DWD_OpenData.pm line 1285.
2026.07.27 23:10:43 1: stacktrace:
2026.07.27 23:10:43 1: main::__ANON__ called by ./FHEM/55_DWD_OpenData.pm (1285)
2026.07.27 23:10:43 1: (eval) called by ./FHEM/55_DWD_OpenData.pm (1285)
2026.07.27 23:10:43 1: DWD_OpenData::ParseDateTimeUTC called by ./FHEM/55_DWD_OpenData.pm (1849)
2026.07.27 23:10:43 1: DWD_OpenData::GetForecastStart called by FHEM/Blocking.pm (194)
2026.07.27 23:10:43 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2026.07.27 23:10:43 1: main::BlockingCall called by ./FHEM/55_DWD_OpenData.pm (1665)
2026.07.27 23:10:43 1: DWD_OpenData::GetForecast called by ./FHEM/55_DWD_OpenData.pm (1127)
2026.07.27 23:10:43 1: DWD_OpenData::Timer called by fhem.pl (3522)
2026.07.27 23:10:43 1: main::HandleTimeout called by fhem.pl (709)
2026.07.27 23:10:43 1: PERL WARNING: Use of uninitialized value $mday in addition (+) at fhem.pl line 5277.
2026.07.27 23:10:43 1: stacktrace:
2026.07.27 23:10:43 1: main::__ANON__ called by fhem.pl (5277)
2026.07.27 23:10:43 1: main::fhemTimeGm called by ./FHEM/55_DWD_OpenData.pm (1285)
2026.07.27 23:10:43 1: (eval) called by ./FHEM/55_DWD_OpenData.pm (1285)
2026.07.27 23:10:43 1: DWD_OpenData::ParseDateTimeUTC called by ./FHEM/55_DWD_OpenData.pm (1849)
2026.07.27 23:10:43 1: DWD_OpenData::GetForecastStart called by FHEM/Blocking.pm (194)
2026.07.27 23:10:43 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2026.07.27 23:10:43 1: main::BlockingCall called by ./FHEM/55_DWD_OpenData.pm (1665)
2026.07.27 23:10:43 1: DWD_OpenData::GetForecast called by ./FHEM/55_DWD_OpenData.pm (1127)
2026.07.27 23:10:43 1: DWD_OpenData::Timer called by fhem.pl (3522)
2026.07.27 23:10:43 1: main::HandleTimeout called by fhem.pl (709)
2026.07.27 23:10:43 1: PERL WARNING: Use of uninitialized value $hour in addition (+) at fhem.pl line 5277.
2026.07.27 23:10:43 1: stacktrace:
2026.07.27 23:10:43 1: main::__ANON__ called by fhem.pl (5277)
2026.07.27 23:10:43 1: main::fhemTimeGm called by ./FHEM/55_DWD_OpenData.pm (1285)
2026.07.27 23:10:43 1: (eval) called by ./FHEM/55_DWD_OpenData.pm (1285)
2026.07.27 23:10:43 1: DWD_OpenData::ParseDateTimeUTC called by ./FHEM/55_DWD_OpenData.pm (1849)
2026.07.27 23:10:43 1: DWD_OpenData::GetForecastStart called by FHEM/Blocking.pm (194)
2026.07.27 23:10:43 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2026.07.27 23:10:43 1: main::BlockingCall called by ./FHEM/55_DWD_OpenData.pm (1665)
2026.07.27 23:10:43 1: DWD_OpenData::GetForecast called by ./FHEM/55_DWD_OpenData.pm (1127)
2026.07.27 23:10:43 1: DWD_OpenData::Timer called by fhem.pl (3522)
2026.07.27 23:10:43 1: main::HandleTimeout called by fhem.pl (709)
2026.07.27 23:10:43 1: PERL WARNING: Use of uninitialized value $min in addition (+) at fhem.pl line 5277.
2026.07.27 23:10:43 1: stacktrace:
2026.07.27 23:10:43 1: main::__ANON__ called by fhem.pl (5277)
2026.07.27 23:10:43 1: main::fhemTimeGm called by ./FHEM/55_DWD_OpenData.pm (1285)
2026.07.27 23:10:43 1: (eval) called by ./FHEM/55_DWD_OpenData.pm (1285)
2026.07.27 23:10:43 1: DWD_OpenData::ParseDateTimeUTC called by ./FHEM/55_DWD_OpenData.pm (1849)
2026.07.27 23:10:43 1: DWD_OpenData::GetForecastStart called by FHEM/Blocking.pm (194)
2026.07.27 23:10:43 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2026.07.27 23:10:43 1: main::BlockingCall called by ./FHEM/55_DWD_OpenData.pm (1665)
2026.07.27 23:10:43 1: DWD_OpenData::GetForecast called by ./FHEM/55_DWD_OpenData.pm (1127)
2026.07.27 23:10:43 1: DWD_OpenData::Timer called by fhem.pl (3522)
2026.07.27 23:10:43 1: main::HandleTimeout called by fhem.pl (709)
2026.07.27 23:10:43 1: PERL WARNING: Use of uninitialized value $sec in addition (+) at fhem.pl line 5277.
2026.07.27 23:10:43 1: stacktrace:
2026.07.27 23:10:43 1: main::__ANON__ called by fhem.pl (5277)
2026.07.27 23:10:43 1: main::fhemTimeGm called by ./FHEM/55_DWD_OpenData.pm (1285)
2026.07.27 23:10:43 1: (eval) called by ./FHEM/55_DWD_OpenData.pm (1285)
2026.07.27 23:10:43 1: DWD_OpenData::ParseDateTimeUTC called by ./FHEM/55_DWD_OpenData.pm (1849)
2026.07.27 23:10:43 1: DWD_OpenData::GetForecastStart called by FHEM/Blocking.pm (194)
2026.07.27 23:10:43 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2026.07.27 23:10:43 1: main::BlockingCall called by ./FHEM/55_DWD_OpenData.pm (1665)
2026.07.27 23:10:43 1: DWD_OpenData::GetForecast called by ./FHEM/55_DWD_OpenData.pm (1127)
2026.07.27 23:10:43 1: DWD_OpenData::Timer called by fhem.pl (3522)
2026.07.27 23:10:43 1: main::HandleTimeout called by fhem.pl (709)
2026.07.27 23:10:43 1: PERL WARNING: Use of uninitialized value $dwdDocSize in concatenation (.) or string at ./FHEM/55_DWD_OpenData.pm line 1854.
2026.07.27 23:10:43 1: stacktrace:
2026.07.27 23:10:43 1: main::__ANON__ called by ./FHEM/55_DWD_OpenData.pm (1854)
2026.07.27 23:10:43 1: DWD_OpenData::GetForecastStart called by FHEM/Blocking.pm (194)
2026.07.27 23:10:43 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2026.07.27 23:10:43 1: main::BlockingCall called by ./FHEM/55_DWD_OpenData.pm (1665)
2026.07.27 23:10:43 1: DWD_OpenData::GetForecast called by ./FHEM/55_DWD_OpenData.pm (1127)
2026.07.27 23:10:43 1: DWD_OpenData::Timer called by fhem.pl (3522)
2026.07.27 23:10:43 1: main::HandleTimeout called by fhem.pl (709)
2026.07.27 23:10:45 1: SendEmail: Klaus.Voigt@Online.de,Braun.Christine@gmx.net - FHEM HM_IO: any_disconnected
2026.07.27 23:10:52 3: HMUARTLGW HMUART2: connect to http://192.168.1.5:23 timed out, retrying in 60.00s
2026.07.27 23:10:54 1: PERL WARNING: Odd number of elements in hash assignment at ./FHEM/55_DWD_OpenData.pm line 1753.
2026.07.27 23:10:54 1: stacktrace:
2026.07.27 23:10:54 1: main::__ANON__ called by ./FHEM/55_DWD_OpenData.pm (1753)
2026.07.27 23:10:54 1: DWD_OpenData::IsDocumentUpdated called by ./FHEM/55_DWD_OpenData.pm (2600)
2026.07.27 23:10:54 1: DWD_OpenData::GetAlertsStart called by FHEM/Blocking.pm (194)
2026.07.27 23:10:54 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2026.07.27 23:10:54 1: main::BlockingCall called by ./FHEM/55_DWD_OpenData.pm (2552)
2026.07.27 23:10:54 1: DWD_OpenData::GetAlerts called by ./FHEM/55_DWD_OpenData.pm (1145)
2026.07.27 23:10:54 1: DWD_OpenData::Timer called by fhem.pl (3522)
2026.07.27 23:10:54 1: main::HandleTimeout called by fhem.pl (709)
2026.07.27 23:10:54 1: PERL WARNING: Use of uninitialized value in list assignment at ./FHEM/55_DWD_OpenData.pm line 1753.
2026.07.27 23:10:54 1: stacktrace:
2026.07.27 23:10:54 1: main::__ANON__ called by ./FHEM/55_DWD_OpenData.pm (1753)
2026.07.27 23:10:54 1: DWD_OpenData::IsDocumentUpdated called by ./FHEM/55_DWD_OpenData.pm (2600)
2026.07.27 23:10:54 1: DWD_OpenData::GetAlertsStart called by FHEM/Blocking.pm (194)
2026.07.27 23:10:54 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2026.07.27 23:10:54 1: main::BlockingCall called by ./FHEM/55_DWD_OpenData.pm (2552)
2026.07.27 23:10:54 1: DWD_OpenData::GetAlerts called by ./FHEM/55_DWD_OpenData.pm (1145)
2026.07.27 23:10:54 1: DWD_OpenData::Timer called by fhem.pl (3522)
2026.07.27 23:10:54 1: main::HandleTimeout called by fhem.pl (709)
2026.07.27 23:10:54 1: PERL WARNING: Use of uninitialized value $t in concatenation (.) or string at ./FHEM/55_DWD_OpenData.pm line 1266.
2026.07.27 23:10:54 1: stacktrace:
2026.07.27 23:10:54 1: main::__ANON__ called by ./FHEM/55_DWD_OpenData.pm (1266)
2026.07.27 23:10:54 1: DWD_OpenData::FormatDateTimeUTC called by ./FHEM/55_DWD_OpenData.pm (1757)
2026.07.27 23:10:54 1: DWD_OpenData::IsDocumentUpdated called by ./FHEM/55_DWD_OpenData.pm (2600)
2026.07.27 23:10:54 1: DWD_OpenData::GetAlertsStart called by FHEM/Blocking.pm (194)
2026.07.27 23:10:54 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2026.07.27 23:10:54 1: main::BlockingCall called by ./FHEM/55_DWD_OpenData.pm (2552)
2026.07.27 23:10:54 1: DWD_OpenData::GetAlerts called by ./FHEM/55_DWD_OpenData.pm (1145)
2026.07.27 23:10:54 1: DWD_OpenData::Timer called by fhem.pl (3522)
2026.07.27 23:10:54 1: main::HandleTimeout called by fhem.pl (709)
2026.07.27 23:10:54 1: PERL WARNING: Use of uninitialized value $_[3] in concatenation (.) or string at ./FHEM/55_DWD_OpenData.pm line 1762.
2026.07.27 23:10:54 1: stacktrace:
2026.07.27 23:10:54 1: main::__ANON__ called by ./FHEM/55_DWD_OpenData.pm (1762)
2026.07.27 23:10:54 1: DWD_OpenData::IsDocumentUpdated called by ./FHEM/55_DWD_OpenData.pm (2600)
2026.07.27 23:10:54 1: DWD_OpenData::GetAlertsStart called by FHEM/Blocking.pm (194)
2026.07.27 23:10:54 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2026.07.27 23:10:54 1: main::BlockingCall called by ./FHEM/55_DWD_OpenData.pm (2552)
2026.07.27 23:10:54 1: DWD_OpenData::GetAlerts called by ./FHEM/55_DWD_OpenData.pm (1145)
2026.07.27 23:10:54 1: DWD_OpenData::Timer called by fhem.pl (3522)
2026.07.27 23:10:54 1: main::HandleTimeout called by fhem.pl (709)
2026.07.27 23:10:54 1: PERL WARNING: Use of uninitialized value $_[3] in numeric eq (==) at ./FHEM/55_DWD_OpenData.pm line 1763.
2026.07.27 23:10:54 1: stacktrace:
2026.07.27 23:10:54 1: main::__ANON__ called by ./FHEM/55_DWD_OpenData.pm (1763)
2026.07.27 23:10:54 1: DWD_OpenData::IsDocumentUpdated called by ./FHEM/55_DWD_OpenData.pm (2600)
2026.07.27 23:10:54 1: DWD_OpenData::GetAlertsStart called by FHEM/Blocking.pm (194)
2026.07.27 23:10:54 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2026.07.27 23:10:54 1: main::BlockingCall called by ./FHEM/55_DWD_OpenData.pm (2552)
2026.07.27 23:10:54 1: DWD_OpenData::GetAlerts called by ./FHEM/55_DWD_OpenData.pm (1145)
2026.07.27 23:10:54 1: DWD_OpenData::Timer called by fhem.pl (3522)
2026.07.27 23:10:54 1: main::HandleTimeout called by fhem.pl (709)
2026.07.27 23:10:54 1: PERL WARNING: Use of uninitialized value $_[3] in numeric eq (==) at ./FHEM/55_DWD_OpenData.pm line 1763.
2026.07.27 23:10:54 1: stacktrace:
2026.07.27 23:10:54 1: main::__ANON__ called by ./FHEM/55_DWD_OpenData.pm (1763)
2026.07.27 23:10:54 1: DWD_OpenData::IsDocumentUpdated called by ./FHEM/55_DWD_OpenData.pm (2600)
2026.07.27 23:10:54 1: DWD_OpenData::GetAlertsStart called by FHEM/Blocking.pm (194)
2026.07.27 23:10:54 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2026.07.27 23:10:54 1: main::BlockingCall called by ./FHEM/55_DWD_OpenData.pm (2552)
2026.07.27 23:10:54 1: DWD_OpenData::GetAlerts called by ./FHEM/55_DWD_OpenData.pm (1145)
2026.07.27 23:10:54 1: DWD_OpenData::Timer called by fhem.pl (3522)
2026.07.27 23:10:54 1: main::HandleTimeout called by fhem.pl (709)
2026.07.27 23:10:54 1: PERL WARNING: Use of uninitialized value $_[3] in concatenation (.) or string at ./FHEM/55_DWD_OpenData.pm line 1774.
2026.07.27 23:10:54 1: stacktrace:
2026.07.27 23:10:54 1: main::__ANON__ called by ./FHEM/55_DWD_OpenData.pm (1774)
2026.07.27 23:10:54 1: DWD_OpenData::IsDocumentUpdated called by ./FHEM/55_DWD_OpenData.pm (2600)
2026.07.27 23:10:54 1: DWD_OpenData::GetAlertsStart called by FHEM/Blocking.pm (194)
2026.07.27 23:10:54 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2026.07.27 23:10:54 1: main::BlockingCall called by ./FHEM/55_DWD_OpenData.pm (2552)
2026.07.27 23:10:54 1: DWD_OpenData::GetAlerts called by ./FHEM/55_DWD_OpenData.pm (1145)
2026.07.27 23:10:54 1: DWD_OpenData::Timer called by fhem.pl (3522)
2026.07.27 23:10:54 1: main::HandleTimeout called by fhem.pl (709)
2026.07.27 23:10:54 1: PERL WARNING: Use of uninitialized value $dwdDocSize in concatenation (.) or string at ./FHEM/55_DWD_OpenData.pm line 2614.
2026.07.27 23:10:54 1: stacktrace:
2026.07.27 23:10:54 1: main::__ANON__ called by ./FHEM/55_DWD_OpenData.pm (2614)
2026.07.27 23:10:54 1: DWD_OpenData::GetAlertsStart called by FHEM/Blocking.pm (194)
2026.07.27 23:10:54 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2026.07.27 23:10:54 1: main::BlockingCall called by ./FHEM/55_DWD_OpenData.pm (2552)
2026.07.27 23:10:54 1: DWD_OpenData::GetAlerts called by ./FHEM/55_DWD_OpenData.pm (1145)
2026.07.27 23:10:54 1: DWD_OpenData::Timer called by fhem.pl (3522)
2026.07.27 23:10:54 1: main::HandleTimeout called by fhem.pl (709)
2026.07.27 23:10:56 1: sendEmail returned: Jul 27 23:10:56 raspberry-prod sendemail[494]: ERROR => Connection attempt to smtp.1und1.de:587 failed: IO::Socket::INET6: getaddrinfo: Temporary failure in name resolution
2026.07.27 23:11:03 3: HMUARTLGW HMUART3: connect to http://192.168.1.17:23 timed out, retrying in 60.00s
2026.07.27 23:11:04 1: PERL WARNING: Use of uninitialized value $_ in substitution (s///) at FHEM/Blocking.pm line 238.
2026.07.27 23:11:04 1: stacktrace:
2026.07.27 23:11:04 1: main::__ANON__ called by FHEM/Blocking.pm (238)
2026.07.27 23:11:04 1: main::BlockingInformParent called by FHEM/Blocking.pm (201)
2026.07.27 23:11:04 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2026.07.27 23:11:04 1: main::BlockingCall called by ./FHEM/55_DWD_OpenData.pm (2552)
2026.07.27 23:11:04 1: DWD_OpenData::GetAlerts called by ./FHEM/55_DWD_OpenData.pm (1145)
2026.07.27 23:11:04 1: DWD_OpenData::Timer called by fhem.pl (3522)
2026.07.27 23:11:04 1: main::HandleTimeout called by fhem.pl (709)
2026.07.27 23:11:04 1: PERL WARNING: Use of uninitialized value $_ in concatenation (.) or string at FHEM/Blocking.pm line 238.
2026.07.27 23:11:04 1: stacktrace:
2026.07.27 23:11:04 1: main::__ANON__ called by FHEM/Blocking.pm (238)
2026.07.27 23:11:04 1: main::BlockingInformParent called by FHEM/Blocking.pm (201)
2026.07.27 23:11:04 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2026.07.27 23:11:04 1: main::BlockingCall called by ./FHEM/55_DWD_OpenData.pm (2552)
2026.07.27 23:11:04 1: DWD_OpenData::GetAlerts called by ./FHEM/55_DWD_OpenData.pm (1145)
2026.07.27 23:11:04 1: DWD_OpenData::Timer called by fhem.pl (3522)
2026.07.27 23:11:04 1: main::HandleTimeout called by fhem.pl (709)
2026.07.27 23:11:53 1: 192.168.1.5:23 reappeared (HMUART2)
2026.07.27 23:12:03 1: 192.168.1.17:23 reappeared (HMUART3)
2026.07.27 23:20:14 1: PERL WARNING: Argument "" isn't numeric in numeric eq (==) at ./FHEM/55_DWD_OpenData.pm line 1763.
2026.07.27 23:20:14 1: stacktrace:
2026.07.27 23:20:14 1: main::__ANON__ called by ./FHEM/55_DWD_OpenData.pm (1763)
2026.07.27 23:20:14 1: DWD_OpenData::IsDocumentUpdated called by ./FHEM/55_DWD_OpenData.pm (2600)
2026.07.27 23:20:14 1: DWD_OpenData::GetAlertsStart called by FHEM/Blocking.pm (194)
2026.07.27 23:20:14 1: main::BlockingStart called by FHEM/Blocking.pm (107)
2026.07.27 23:20:14 1: main::BlockingCall called by ./FHEM/55_DWD_OpenData.pm (2552)
2026.07.27 23:20:14 1: DWD_OpenData::GetAlerts called by ./FHEM/55_DWD_OpenData.pm (1145)
2026.07.27 23:20:14 1: DWD_OpenData::Timer called by fhem.pl (3522)
2026.07.27 23:20:14 1: main::HandleTimeout called by fhem.pl (709)
Habe einen Patch erstellt, wäre schön wenn dieser das Repository erreicht ..
Mit diesem Patch sind die lästigen Perl Warnings Geschichte..
- Die Prüfung, ob der DWD ein neues Warn-Dokument bereitgestellt
hat, funktioniert jetzt korrekt. Ein Netzwerkausfall wird als
solcher erkannt und nicht mehr stillschweigend als
"unverändert" behandelt.
- Schlägt der Abruf der Warnungen fehl, wird die Fehlermeldung
jetzt gespeichert. Dadurch erscheint der STÖRUNG-Hinweis
in den Readings, und a_state zeigt den Fehler an, statt weiterhin
"updated" zu melden.
Für welche Version/Datum ist der Patch geeignet / gedacht ?
(Hab die aus dem Contrib von DS_Starter bei mir laufen)
Habe diese hier im Einsatz:
# -----------------------------------------------------------------------------
# $Id: 55_DWD_OpenData.pm 30318 2025-09-23 12:49:36Z DS_Starter $
# -----------------------------------------------------------------------------
Ist bei mir nicht im Ordner conrtib ...
ZitatHabe diese hier im Einsatz:
# -----------------------------------------------------------------------------
# $Id: 55_DWD_OpenData.pm 30318 2025-09-23 12:49:36Z DS_Starter $
# -----------------------------------------------------------------------------
Das ist die aktuelle, offiziell eingecheckte Version. Das passt.
Ich schaue mir deinen Patch an und melde mich wieder.
LG,
Heiko
Ich habe den Patch übernommen. Das gepatchte Modul liegt zunächst in meinem Contrib (Fußtext).
Ich möchte den Tag morgen noch etwas beobachten ob es irgendwelche Seiteneffekte im normalen Vorhersagebetrieb gibt.
Hier noch das Changelog (auch mit meinen Änderungen):
- **Change:**
* neue Funktion RemoveTempFile
* @alertsData, @alertsReceived, @alertsUpdating und @alertsErrorMessage werden jetzt als Listen
statt als Array-Referenz initialisiert
* GetHeaders liefert eine Hash-Referenz (bisher Liste); IsDocumentUpdated angepasst
* GetAlertsStart übernimmt das Ergebnis von IsDocumentUpdated per Rückgabeliste
(update, dwdDocSize, dwdDocTime) statt über Ein-/Ausgabeparameter
* Fehlermeldung beim Abruf der Wetterwarnungen wird in @alertsErrorMessage gespeichert
(wird für die Störungsmeldung in UpdateAlerts benötigt)
- **Bugfix:**
* Readings eventDesc und instruction der Störungsmeldung werden bei global encoding != unicode nach UTF-8 kodiert
* Speicherleck behoben: tempfile(UNLINK => 1) entfernt (File::Temp merkt sich jeden Aufruf bis
Prozessende), Temp-Dateien werden explizit gelöscht
* Temp-Datei und Filehandle werden auch im Fehler-/up-to-date-Fall (Finish) und im Abort aufgeräumt
* Shutdown/Undef: BlockingCall für Alerts wird beendet (Hash-Schlüssel .alertsBlockingCall<N>
korrigiert), Temp-Dateien beider Alert-Caches werden entfernt
Ich hätte noch einen Vorschlag: ;)
# feature: Alert-Readings (a_N_*) werden nur noch geschrieben, wenn sich
# der Inhalt des Blocks (also irgendein Eintrag) geändert hat (verhindert Event- und
# Log-Flooding durch unveränderte Alerts, die bei jedem Update
# neu indiziert werden)
Siehe Anhang: updateAlerts.txt
# bugfix: UpdateAlerts wird bei Warnzellen-Update-Modi (UPDATE_DISTRICTS,
# UPDATE_COMMUNEUNIONS, UPDATE_ALL) nicht mehr aufgerufen; diese
# Modi aktualisieren nur den Cache
in GetAlertsFinished:
von
if ($paramCount > 3 && $errorMessage ne 'up-to-date') {
# update alert readings for warncell id
UpdateAlerts($hash, $warncellId, \%docHeader);
} nach
if ($paramCount > 3 && $warncellId >= 0 && $errorMessage ne 'up-to-date') {
# update alert readings for warncell id
UpdateAlerts($hash, $warncellId, \%docHeader);
}
ZitatIch hätte noch einen Vorschlag: ;)
Deinen Vorschlag bezgl. GetAlertsFinish habe ich unverändert übernommen.
Den Patch für UpdateAlerts habe ich korrigiert übernommen -> Fehler:
* Die alte Funktion löscht a_copyright am Anfang mit allen a_*-Readings.
Die neue schreibt es nur, wenn ein Alert da ist, und räumt es nie weg.
Nach "keine Alerts mehr" bleibt der Lizenztext stehen, auch im Fehlerfall danach.
Weiterhin habe ich die Sortierung noch etwas aufgehübscht. Problem:
* Bei gleichem Beginn, etwa zwei gleichzeitigen Warnungen, hängt die Reihenfolge von der Hash-Reihenfolge ab.
Ein Tie-Breaker behebt es.
Das Ziel deines Patches bleibt unverändert erreicht.
Weiterhin habe ich selbst noch einen Bugfix eingebaut, der sich auf ein vorhandenes Problem mit RotateForecast bezieht und dadurch fc0_0_* veraltet blieb.
Somit ergibt sich ein neues, erweitertes Changelog:
- Patch von Rampler eingebaut (Forum: https://forum.fhem.de/index.php?msg=1370034)
- **Change:** * neue Funktion RemoveTempFile
* @alertsData, @alertsReceived, @alertsUpdating und @alertsErrorMessage werden jetzt als Listen
statt als Array-Referenz initialisiert
* GetHeaders liefert eine Hash-Referenz (bisher Liste); IsDocumentUpdated angepasst
* GetAlertsStart übernimmt das Ergebnis von IsDocumentUpdated per Rückgabeliste
(update, dwdDocSize, dwdDocTime) statt über Ein-/Ausgabeparameter
* Fehlermeldung beim Abruf der Wetterwarnungen wird in @alertsErrorMessage gespeichert
(wird für die Störungsmeldung in UpdateAlerts benötigt)
* UpdateAlerts: Alerts mit gleichem Beginn (onset) werden stabil nach Identifier sortiert, damit die Reihenfolge
der Blöcke a_N_* zwischen Updates nicht wechselt
- **Bugfix:** * Readings eventDesc und instruction der Störungsmeldung werden bei global encoding != unicode nach UTF-8 kodiert
* Speicherleck behoben: tempfile(UNLINK => 1) entfernt (File::Temp merkt sich jeden Aufruf bis
Prozessende), Temp-Dateien werden explizit gelöscht
* Temp-Datei und Filehandle werden auch im Fehler-/up-to-date-Fall (Finish) und im Abort aufgeräumt
* Shutdown/Undef: BlockingCall für Alerts wird beendet (Hash-Schlüssel .alertsBlockingCall<N>
korrigiert), Temp-Dateien beider Alert-Caches werden entfernt
* ParseDateLocal lieferte immer undef (Time::Piece-Objekt an Timelocal übergeben), dadurch wurde
RotateForecast nie ausgeführt und fc0_0_* blieb veraltet; Datum wird jetzt per Regex zerlegt
* PruneForecast verwendete $hash->{READINGS}{TIME} statt den Zeitstempel des jeweiligen Readings
(bei forecastPruning=1 wurde nie etwas gelöscht)
* GetAlertsFinish: UpdateAlerts wird bei Warnzellen-Update-Modi (UPDATE_DISTRICTS, UPDATE_COMMUNEUNIONS, UPDATE_ALL) nicht mehr
aufgerufen; diese Modi aktualisieren nur den Cache; Alert-Readings des Devices gehen dabei nicht mehr verloren
- **Neu:** * Alert-Readings (a_N_*) werden nur noch geschrieben, wenn sich der Inhalt des Blocks (irgendein Eintrag) geändert hat;
verhindert Event- und Log-Flooding durch unveränderte Alerts, die bei jedem Update neu indiziert werden.
Nicht mehr vorhandene Blöcke werden gelöscht, Readings unveränderter Blöcke behalten ihren Zeitstempel
Die neu gepatchte Version liegt wieder in meinem contrib. Jetzt muß ich natürlich wieder einen Tag länger mit dem CheckIn warten um den Erfolg des korrigierten Rotate bestätigen zu können. ;)
Wer aber die neue Version schon einsetzen möchte, nimmt sie bitte aus meinem contrib. Sie läuft in meinen bisherigen Tests problemlos.
LG,
Heiko
Die Version 1.17.9 ist jetzt eingecheckt und wird morgen früh ab ca. 8:15 Uhr im Update enthalten sein.
In eigener Sache ...
Ich betreue das Modul nur weil es aktuell verwaist ist. Wer sich engagieren möchte, kann sich gern als Maintainer bereit erkären.
Verstärkung ist immer willkommen. :)
LG,
Heiko