DWD-Unwetter-Binding (OH3) no warnings


after enabling debugging of the DWD Unwetter Binding, I found exactly the same response as Reinhard did for the warncell id from my configuration.

So I suspect it’s a general issue with the binding? I’m using the SNAPSHOT that was announced here on Dec 30th.

By the way: In the complete json from the binding documentation I found two warncell ids for my city. I tried setting up the thing with both, but the results are always the same.


Hi Forum,

does anyone has an idea to fix it?
Is it possible that there is a problem in the binding 3.0.1 that only fixed in Snapshot 3.1?

Best Regards,

Hello Forum,

I am testing the DWD Unwetter Binding just at the moment and have seen the same response.
I found warnings for several Cell-IDs in the json-file, but when I tested to request those warnings by using those Cell-IDs through the Unwetter-Binding it returned no warnings. I assume the reason for this is, that there are differences with the warnings issued through the json-file and the geoserver-request that the Unwetter-Binding uses.

I would suggest to enter the mentioned “raw request” in a web browser.


As a result a file "features.xml’ is returned. If this file contains

numberMatched=“0” numberReturned=“0”

then there is actually no warning returned by the DWD server for the given cell-ID and it is not a fault of the binding.


I did manage to get it running for my case.

The actual issue is: The module uses the hardcoded URL https://maps.dwd.de/geoserver/dwd/ows?service=WFS&version=2.0.0&request=GetFeature&typeName=dwd:Warnungen_Gemeinden&CQL_FILTER=WARNCELLID+LIKE+

This does not work for “Landkreise”

I’ve changed the URL to https://maps.dwd.de/geoserver/dwd/ows?service=WFS&version=2.0.0&request=GetFeature&typeName=dwd:Warnungen_Landkreise&CQL_FILTER=GC_WARNCELLID+LIKE+ which gives me the expected output for my cell ID.

I do see two solutions here:

  • Intruduce a parameter to use either the “Gemeine” or the “Landkreis” url
  • fallback to the “Landkreis” route as a fallback when there is no data returned from the “Gemeinde” route

Open for suggestion and willing to work on this :wink:

If someone is working on the “DWD-Unwetter” binding, i suggest to solve another problem:
(I know this is slightly off-topic, but it is only a short hint in case the code is revised anyway).

Converting the values for “ALTITUDE” and “CEILING” can lead to conversion errors:


will throw a conversion error:

14:01:01.734 [WARN ] [se.internal.SseItemStatesEventBuilder] - Exception while formatting value '3000.00000456 m' of item WeatherWarnings_Heightto1 with format '%d m': d != java.math.BigDecimal

I assume that the conversion from “feet” to “m” is the reason for this. The correct result should be “3000 m”.

@JoergDr Thanks for the hint. I created a PR to fix it:

At the moment there is another issue with the “DWD-Unwetter” binding:
The DWD servers answer very slow. The timeout value of 5000 ms is not sufficient:

14:50:46.866 [WARN ] [er.internal.data.DwdWarningDataAccess] - Communication error occurred while getting data: java.util.concurrent.TimeoutException: Total timeout 5000 ms elapsed

(Please tell me if I should open a new thread instead of posting this here)


I think I’ll have the same problem as @plevie. Is there a solution for my issue?

Normally, you just have to wait until there is a concrete warning for your city.
I had to wait several weeks, until today. Now there is a warning “Sturmböen” and it is available for my city.

If you change the URL from “Warnungen_Gemeinden” to “Warnungen_Landkreise” you will get more warnings, but the location is less precise.

HI @joerg, I have tested with different cities (also cities where warnings at the moment are available). My scripting solution for DWD-Unwetter is working here. Only the binding in OH3 didn’t work :frowning:


i have some debug-messages for this issue:

2021-05-13 18:35:16.786 [DEBUG] [.internal.handler.DwdUnwetterHandler] - Start initializing!
2021-05-13 18:35:16.788 [DEBUG] [r.internal.data.DwdWarningDataAccess] - Refreshing Data for cell 109476000
2021-05-13 18:35:16.788 [DEBUG] [.internal.handler.DwdUnwetterHandler] - Finished initializing!
2021-05-13 18:35:16.833 [TRACE] [r.internal.data.DwdWarningDataAccess] - Raw request: https://maps.dwd.de/geoserver/dwd/ows?service=WFS&version=2.0.0&request=GetFeature&typeName=dwd:Warnungen_Gemeinden&CQL_FILTER=WARNCELLID+LIKE+%27109476000%27
2021-05-13 18:35:16.834 [TRACE] [r.internal.data.DwdWarningDataAccess] - Raw response: <?xml version="1.0" encoding="UTF-8"?><wfs:FeatureCollection xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:dwd="http://www.dwd.de" xmlns:wfs="http://www.opengis.net/wfs/2.0" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" numberMatched="0" numberReturned="0" timeStamp="2021-05-13T16:35:16.805Z" xsi:schemaLocation="http://www.dwd.de https://maps.dwd.de/geoserver/dwd/wfs?service=WFS&amp;version=2.0.0&amp;request=DescribeFeatureType&amp;typeName=dwd%3AWarnungen_Gemeinden http://www.opengis.net/wfs/2.0 https://maps.dwd.de/geoserver/schemas/wfs/2.0/wfs.xsd http://www.opengis.net/gml/3.2 https://maps.dwd.de/geoserver/schemas/gml/3.2.1/gml.xsd"/>

At the moment there is a warning for 27109476000 and I’ll get this: numberMatched=“0” numberReturned=“0”

A technical call auf the Website ist working also on the system:

curl https://www.dwd.de/DWD/warnungen/warnapp/json/warnings.json | less

Is there any idea for it? My scripted solution finds warnings for the cellid.

Very very strange …

Best regards,


sorry for my late reply, but I somehow missed the message that there was a reply for me here.

Have you tried to enter the request URL direct in a browser?
For example:


The OH3 binding worked fine for me in the past and I got warnings issued for my city, but at the moment, the DWD warning server does not function at all, I get the following answer when I use the OH3 binding or if I enter the request URL direct in a browser:

<ows:Exception exceptionCode="InvalidParameterValue" locator="GetFeature">
<ows:ExceptionText>Illegal property name: WARNCELLID for feature type dwd:Warnungen_Gemeinden</ows:ExceptionText>

Maybe this is only a temporary error.

Best regards,


at the moment the webservice seams to work. For this request:


I’ll get this response:

<ows:ExceptionReport xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0.0" xsi:schemaLocation="http://www.opengis.net/ows/1.1 https://maps.dwd.de/geoserver/schemas/ows/1.1.0/owsAll.xsd">
<ows:Exception exceptionCode="InvalidParameterValue" locator="typeName">
<ows:ExceptionText>Feature type dwd:Warnungen_Gemeinden unknown</ows:ExceptionText>

And this message I’ll didn’t get from the Log in the binding. My scripted solution works fine, so I think the “Warnungen_Gemeinden” ist not integrated in the binding.

If I have a look at WFS 2.0.0 at 2m Temperatur an RBSN Stationen from GeoServer: Willkommen

There is only this feature type available:

<FeatureType xmlns:dwd="http://www.dwd.de">
<Title>Wetterwarnungen und Vorabinformationen auf Gemeindeebene (vereinigte Warngebiete)</Title>

For this call / request:


I get this response:

<ows:ExceptionReport xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0.0" xsi:schemaLocation="http://www.opengis.net/ows/1.1 https://maps.dwd.de/geoserver/schemas/ows/1.1.0/owsAll.xsd">
<ows:Exception exceptionCode="InvalidParameterValue" locator="GetFeature">
<ows:ExceptionText>Illegal property name: WARNCELLID for feature type dwd:Warnungen_Gemeinden_vereinigt</ows:ExceptionText>

It seams that the WARNCELLID ist not the right parameter for the call.

Does someone has an idea for a workaround?

Best regards,

I assume there currently is a bug on the DWD geoserver.

As the error messages are changing during the last days, they might be testing new software at DWD. I recommend to wait some days, so maybe the problems will disappear.

As the OH3-DWD-Unwetter-Binding does not recognize this behaviour as an error, I suggest to add something like a “Status” or “Error” channel, so one can distinct between “no warnings available” and “service unavailable”.

Best regards,

The problem seems to be solved.
But a “status” or “error” channel in the binding would be helpful.


I have done some tests with different WARNCELLID’s. If have used my ID for “Gemeinde” (Amtlicher Gemeindeschlüssel – Wikipedia) and a prepended “8”.

Now I get Warnings for my “Gemeinde” (with “Landkreis” it didn’t work in the binding for my scenario).

Best regards,

Just some additional information:

A detailed explanation of the CQL_FILTER can be found here:

IMHO the current implementation is quite dangerous:

  • An empty response from the DWD server doesn’t result in a message in the debug log. Get your WARNCELLID wrong, and you’ll never see a warning.
  • There is no way to know the NAME of the region corresponding to the data. Get your WARNCELLID wrong (especially when using the wildcard %), and you’ll see wrong or no warnings at all.

So it is of utmost importance to get your WARNCELLID right:

BTW, thanks to @malmix (see Obviously simple task: textbox to display item (string) with more than approximately 56 characters on the sitemap. But how? - #4 by malmix) I found a quite elegant way to embed long texts into sitemaps:

Webview url="http://<ip address>:8080/rest/items/DWDUnwetterWarnungen_Description1/state" visibility=[DWDUnwetterWarnungen_Warning1==ON] height=3
Image url="https://www.dwd.de/DWD/warnungen/warnapp_gemeinden/json/warnungen_gemeinde_map_de.png" visibility=[DWDUnwetterWarnungen_Warning1==ON]

hi all,

is this binding still broken ? (used the ‘official’ one)

just tried it during an active warning for e.g. this cellID :

“109189000”: [{
“regionName”: “Kreis Traunstein”,
“state”: “Bayern”,
“event”: “STURMBÖEN”,
“level”: 3,
“type”: 1,
“description”: “Es treten oberhalb 1500 m Sturmböen mit Geschwindigkeiten um 70 km/h (20m/s, 38kn, Bft 8) aus westlicher Richtung auf. In exponierten Lagen muss mit Sturmböen bis 85 km/h (24m/s, 47kn, Bft 9) gerechnet werden.”,
“end”: 1636045200000,
“start”: 1636009200000,
“headline”: “Amtliche WARNUNG vor STURMBÖEN”,
“instruction”: “ACHTUNG! Hinweis auf mögliche Gefahren: Es können zum Beispiel einzelne Äste herabstürzen. Achten Sie besonders auf herabfallende Gegenstände.”,
“stateShort”: “BY”,
“altitudeStart”: 1500,
“altitudeEnd”: null
}, {
“regionName”: “Kreis Traunstein”,
“state”: “Bayern”,
“event”: “WINDBÖEN”,

and i did not receive any warning…

Raw request: https://maps.dwd.de/geoserver/dwd/ows?service=WFS&version=2.0.0&request=GetFeature&typeName=dwd:Warnungen_Gemeinden&CQL_FILTER=WARNCELLID+LIKE+‘109279000’
14:49:19.967 [TRACE] [ter.internal.dto.DwdWarningDataAccess] - Raw response: <?xml version="1.0" encoding="UTF-8"?><wfs:FeatureCollection xmlns:xs=“XML Schema” xmlns:dwd=“http://www.dwd.de” xmlns:wfs=“http://www.opengis.net/wfs/2.0” xmlns:gml=“http://www.opengis.net/gml/3.2” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” numberMatched=“0” numberReturned=“0” timeStamp=“2021-11-04T13:49:19.911Z” xsi:schemaLocation=“http://www.dwd.de https://maps.dwd.de/geoserver/dwd/wfs?service=WFS&version=2.0.0&request=DescribeFeatureType&typeName=dwd%3AWarnungen_Gemeinden http://www.opengis.net/wfs/2.0 https://maps.dwd.de/geoserver/schemas/wfs/2.0/wfs.xsd http://www.opengis.net/gml/3.2 https://maps.dwd.de/geoserver/schemas/gml/3.2.1/gml.xsd”/>

as mentioned above, the cell is included in the warnings:

Same for me. I just see the updated timestamp, but get no values. I tried several different (active) IDs.
Is there a fix that can be installed manually?

Hello all together,

I put the jar-file into the addons folder and uninstalled the “original” DWD Unwetter Binding.

But the “new” binding doesn’t start.

The log entries says:

Error while starting bundle: file:/Users/PJH/openhab3/addons/org.openhab.binding.dwdunwetter-3.1.0-SNAPSHOT.jar

org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.dwdunwetter [286]

Unresolved requirement: Import-Package: javax.measure; version="[1.0.0,2.0.0)"

Can anybody help me?

Thank you and best regards. Paul

Hello all,
I installed the original binding under OH3.3 but could not receive updates.
After some searches in the internet I found these 2 links which helped solve the problem:
In my case the root cause was a new cell_id for the community I am living in.
Maybe it helps some of you to solve the problems.