Closed hoetzgit closed 2 years ago
Um das nachvollziehen zu können, müßte ich wissen, mit welcher Station die Fehlermeldung aufgetreten ist. Außerdem wäre die komplette Fehlermeldung hilfreich. Dann kann ich es mir ansehen.
Hallo, hier zusätzliche Angaben:
Station: Weiden, ID: 10688
Aufruf:
./dwd-mosmix --config=/home/weewx/weewx.conf --verbose --hourly 10688
Ausgabe:
-- MOSMIX_L_2022022209_10688.kml --
processing KML file
KML file processed, 1 placemarks found
what to output: ['hourly', 'html', 'json']
start loop over placemarks
process placemark id "10688" name "WEIDEN"
output hourly forecast
<ephem.Observer date='2022/2/22 11:00:00' epoch='2022/2/22 11:00:00' lon='12:10:48.0' lat='49:40:12.0' elevation=438.00000000000006m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
night=False ww=(2, 'Bewölkung unverändert 73%', 'State of sky on the whole unchanged 73.0', 27, 'mostly-cloudy-day.png', '5-8.png')
<ephem.Observer date='2022/2/22 12:00:00' epoch='2022/2/22 12:00:00' lon='12:10:48.0' lat='49:40:12.0' elevation=438.00000000000006m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
night=False ww=(3, 'Bewölkung zunehmend 77%', 'Clouds generally forming or developing 77.0', 26, 'mostly-cloudy-day.png', '5-8.png')
<ephem.Observer date='2022/2/22 13:00:00' epoch='2022/2/22 13:00:00' lon='12:10:48.0' lat='49:40:12.0' elevation=438.00000000000006m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
night=False ww=(3, 'Bewölkung zunehmend 80%', 'Clouds generally forming or developing 80.0', 26, 'mostly-cloudy-day.png', '5-8.png')
<ephem.Observer date='2022/2/22 14:00:00' epoch='2022/2/22 14:00:00' lon='12:10:48.0' lat='49:40:12.0' elevation=438.00000000000006m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
night=False ww=(3, 'Bewölkung zunehmend 82%', 'Clouds generally forming or developing 82.0', 26, 'mostly-cloudy-day.png', '5-8.png')
<ephem.Observer date='2022/2/22 15:00:00' epoch='2022/2/22 15:00:00' lon='12:10:48.0' lat='49:40:12.0' elevation=438.00000000000006m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
night=False ww=(3, 'Bewölkung zunehmend 86%', 'Clouds generally forming or developing 86.0', 26, 'mostly-cloudy-day.png', '5-8.png')
<ephem.Observer date='2022/2/22 16:00:00' epoch='2022/2/22 16:00:00' lon='12:10:48.0' lat='49:40:12.0' elevation=438.00000000000006m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
night=False ww=(3, 'Bewölkung zunehmend 89%', 'Clouds generally forming or developing 89.0', 26, 'mostly-cloudy-day.png', '8-8.png')
<ephem.Observer date='2022/2/22 17:00:00' epoch='2022/2/22 17:00:00' lon='12:10:48.0' lat='49:40:12.0' elevation=438.00000000000006m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
night=True ww=(3, 'Bewölkung zunehmend 94%', 'Clouds generally forming or developing 94.0', 26, 'mostly-cloudy-night.png', '8-8.png')
<ephem.Observer date='2022/2/22 18:00:00' epoch='2022/2/22 18:00:00' lon='12:10:48.0' lat='49:40:12.0' elevation=438.00000000000006m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
night=True ww=(61, 'durchgehend leichter Regen', 'slight rain, not freezing, continuous', 23, 'rain.png', '7.png')
<ephem.Observer date='2022/2/22 19:00:00' epoch='2022/2/22 19:00:00' lon='12:10:48.0' lat='49:40:12.0' elevation=438.00000000000006m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
night=True ww=(61, 'durchgehend leichter Regen', 'slight rain, not freezing, continuous', 23, 'rain.png', '7.png')
<ephem.Observer date='2022/2/22 20:00:00' epoch='2022/2/22 20:00:00' lon='12:10:48.0' lat='49:40:12.0' elevation=438.00000000000006m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
night=True ww=(61, 'durchgehend leichter Regen', 'slight rain, not freezing, continuous', 23, 'rain.png', '7.png')
<ephem.Observer date='2022/2/22 21:00:00' epoch='2022/2/22 21:00:00' lon='12:10:48.0' lat='49:40:12.0' elevation=438.00000000000006m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
night=True ww=(61, 'durchgehend leichter Regen', 'slight rain, not freezing, continuous', 23, 'rain.png', '7.png')
<ephem.Observer date='2022/2/22 11:00:00' epoch='2022/2/22 11:00:00' lon='12:10:48.0' lat='49:40:12.0' elevation=438.00000000000006m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
<ephem.Observer date='2022/2/22 12:00:00' epoch='2022/2/22 12:00:00' lon='12:10:48.0' lat='49:40:12.0' elevation=438.00000000000006m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
<ephem.Observer date='2022/2/22 13:00:00' epoch='2022/2/22 13:00:00' lon='12:10:48.0' lat='49:40:12.0' elevation=438.00000000000006m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
<ephem.Observer date='2022/2/22 14:00:00' epoch='2022/2/22 14:00:00' lon='12:10:48.0' lat='49:40:12.0' elevation=438.00000000000006m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
<ephem.Observer date='2022/2/22 15:00:00' epoch='2022/2/22 15:00:00' lon='12:10:48.0' lat='49:40:12.0' elevation=438.00000000000006m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
<ephem.Observer date='2022/2/22 16:00:00' epoch='2022/2/22 16:00:00' lon='12:10:48.0' lat='49:40:12.0' elevation=438.00000000000006m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
<ephem.Observer date='2022/2/22 17:00:00' epoch='2022/2/22 17:00:00' lon='12:10:48.0' lat='49:40:12.0' elevation=438.00000000000006m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
<ephem.Observer date='2022/2/22 18:00:00' epoch='2022/2/22 18:00:00' lon='12:10:48.0' lat='49:40:12.0' elevation=438.00000000000006m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
<ephem.Observer date='2022/2/22 19:00:00' epoch='2022/2/22 19:00:00' lon='12:10:48.0' lat='49:40:12.0' elevation=438.00000000000006m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
<ephem.Observer date='2022/2/22 20:00:00' epoch='2022/2/22 20:00:00' lon='12:10:48.0' lat='49:40:12.0' elevation=438.00000000000006m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
<ephem.Observer date='2022/2/22 21:00:00' epoch='2022/2/22 21:00:00' lon='12:10:48.0' lat='49:40:12.0' elevation=438.00000000000006m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
<ephem.Observer date='2022/2/22 22:00:00' epoch='2022/2/22 22:00:00' lon='12:10:48.0' lat='49:40:12.0' elevation=438.00000000000006m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
json
Traceback (most recent call last):
File "./dwd-mosmix", line 1204, in <module>
dwd.forecast_all(mmos,output,options.dry_run,lang=options.lang)
File "./dwd-mosmix", line 1078, in forecast_all
self.forecast_placemark(placemark, mos['ForecastTimeSteps'], issue, output, dryrun, lang)
File "./dwd-mosmix", line 1059, in forecast_placemark
self.dump(placemark,days,timesteps,issue)
UnboundLocalError: local variable 'days' referenced before assignment
Konfiguration:
[DeutscherWetterdienst]
path='/home/weewx/skins/Belchertown/dwd'
[[warning]]
icons='../dwd/warn_icons_50x50'
states='Bayern',
[[[counties]]]
'Kreis Neustadt a.d. Waldnaab'='NEW'
# 'Mitgliedsgemeinde in Verwaltungsgemeinschaft Weiherhammer'='WEIHERHAMMER'
[[[cities]]]
'Mitgliedsgemeinde in Verwaltungsgemeinschaft Weiherhammer'='WEIHERHAMMER'
[[forecast]]
icons='../images'
Viele Grüße und Danke für die Software :-) Henry
Noch ein anderer Fehler der mir aufgefallen ist
Aufruf:
./dwd-cap-warnings --config=/home/weewx/weewx.conf --resolution=city --verbose
Ausgabe:
Using configuration file /home/weewx/weewx.conf
Traceback (most recent call last):
File "./dwd-cap-warnings", line 888, in <module>
dwd = DwdWarnings(config,options.verbose)
File "./dwd-cap-warnings", line 421, in __init__
if not isinstance(self.states,list): self.states=[states]
NameError: name 'states' is not defined
Fehler tritt bei dieser Konfiguration auf:
states='Bayern'
Abhilfe:
Das Komma in der Konfiguration nach 'Bayern' verhindert den Fehler
states='Bayern',
Geändert habe ich in dem File auch die Zeile mit:
'BY':'https://www.dwd.de/DE/wetter/warnungen_aktuell/warnlagebericht/nordrhein_westfalen/warnlage_nrw_node.html',
zu:
'BY':'https://www.dwd.de/DE/wetter/warnungen_aktuell/warnlagebericht/bayern/warnlage_bay_node.html',
Für den Fehler in dwd-mosmix
: Das ist eher ein Fehler der Dokumentation oder der Konzeption.
--hourly
braucht man noch die Option --html
. --daily
.Ich werde mal darüber nachdenken, ob man die JSON-Ausgabe so anpaßt, daß sie mit und ohne Tagesvorhersage möglich ist.
Der Fehler in dwd-mosmix
besteht darin, daß Klammern fehlen:
Falsch:
if 'daily' in output or 'json' in output or 'belchertown' in output:
if self.verbose:
loginf('calculate daily forecast')
days = self.calculate_daily_forecast(placemark,timesteps,lang=lang)
Richtig:
if ('daily' in output) or ('json' in output) or ('belchertown' in output):
if self.verbose:
loginf('calculate daily forecast')
days = self.calculate_daily_forecast(placemark,timesteps,lang=lang)
Mit der Änderung wird die Tagesvorhersage auch dann berechnet, wenn nur die JSON-Ausgabe gewählt ist. So war es letztlich vorgesehen. Die im vorherigen Beitrag angedachte Anpassung der JSON-Ausgabe erübrigt sich damit.
Zu dwd-cap-warnings
:
Vielen Dank für die Unterstützung. Dann warte ich mal auf die Anpassungen im Code und teste fleißig weiter. Was wird denn 'belchertown' für ein Parameter? Wollte mich eigentlich damit beschäftigen, die DWD Daten in das Aeris/Darksky Vorhersagelayout der Belchertown Skin zu übernehmen, sollte ich damit wohl noch warten? ;-)
Viele Grüße Henry
Die nächste Version wird die forecast.json
-Datei für die Belchertown-Skin erzeugen können. Ich bin schon fleißig am Testen.
Da freu ich mich drauf und nochmals vielen Dank. Übrigens ist auch die Wetter-Webseite eine prima Inspirationsquelle.
Weiterhin viel Freude beim Entwickeln.
Um die Fehler aus diesem Vorgang zu beseitigen, habe ich ein extra Commit hochgeladen. Es enthält schon Code für die Unterstützung der Belchertown-Skin, auch wenn der noch nicht fertig ist. Um ihn dennoch zu testen, ist eine Ergänzung in weewx.conf
nötig:
[DeutscherWetterdienst]
...
[[Belchertown]]
section = "Belchertown"
warnings = DL
forecast = P0291
Der Schlüssel section
muß den Namen des Abschnittes der Belchertown-Skin unter [StdReport]
angeben. Der Schlüssel warnings
gibt das Kürzel der zu verwendenden Warn-Datei aus dem Abschnitt [[warning]]
an. Der Schlüssel forecast
gibt das Kürzel der Station an, deren Vorhersage verwendet werden soll.
Beim Programmaufruf muß dwd-cap-warnings
unbedingt vor dwd-mosmix
aufgerufen werden. dwd-mosmix
muß mit der zusätzlichen Option --belchertown
aufgerufen werden.
Es sind keine Eingriffe in die Skin erforderlich. Lediglich ein Parameter muß angepaßt werden:
forecast_stale = 86400
Diese Änderung bewirkt, daß keine Abfragen bei Aeris mehr durchgeführt werden, die die von dwd-mosmix
erzeugte Vorhersage überschreiben könnten.
Ich bitte um Rückmeldung, ob die hier ursprünglich gemeldeten Fehler mit diesem Update beseitigt sind. Für eventuelle Fragen zu der --belchertown
-Option bitte einen neuen Vorgang eröffnen.
Prima, ich hoffe, ich komme gleich heute noch dazu etwas zu testen und gebe dann zeitnah eine Rückmeldung. Vielen Dank.
Grüsse Henry
Hallo, für mich sind die Fehler aus #3
behoben, alle o.g. Aufrufe funktionieren bei mir ohne Fehlermeldung.
zu --belchertown
mache ich einen neuen Vorgang.
Noch ein kleiner Hinweis zur Doku: https://github.com/roe-dl/weewx-DWD/wiki/Abkürzungen-der-Bundesländer-beim-Deutschen-Wetterdienst
in wget-dwd
habe ich für Bundesland Bayern DWD_BUNDESLAND="DWMG"
konfiguriert. Der in der Doku verwendete Wert in Spalte VHDL
(DWMS
) hat nicht funktioniert. Der Wert MS
hat jedoch für DWD_WARN="https://www.dwd.de/DWD/warnungen/warnstatus/SchilderMS.jpg"
gepasst.
Viele Grüße Henry
Hallo, ich probiere gerade etwas mit
dwd-mosmix
und glaube, dass in der Funktionforecast_placemark
die Definition der Variabledays
fehlt. Es kommt zu einer entsprechenden Fehlermeldung bei Verwendung des Parameters--hourly
. Bin aber kein Python Experte, es kommt jedoch nach der Definition keine Fehlermeldung mehr.Viele Grüße Henry