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.
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.
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
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:
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”.
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)
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
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:
<script/>
<ows:Exception exceptionCode="InvalidParameterValue" locator="GetFeature">
<ows:ExceptionText>Illegal property name: WARNCELLID for feature type dwd:Warnungen_Gemeinden</ows:ExceptionText>
</ows:Exception>
</ows:ExceptionReport>
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.
<FeatureType xmlns:dwd="http://www.dwd.de">
<Name>dwd:Warnungen_Gemeinden_vereinigt</Name>
<Title>Wetterwarnungen und Vorabinformationen auf Gemeindeebene (vereinigte Warngebiete)</Title>
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,
Jörg
8.6.2021:
The problem seems to be solved.
But a “status” or “error” channel in the binding would be helpful.
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:
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”,
…
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?