Giter Club home page Giter Club logo

roe-dl / weewx-dwd Goto Github PK

View Code? Open in Web Editor NEW
19.0 19.0 4.0 3.27 MB

Darstellung von Wettersymbolen in WeeWX sowie Vorhersage- und Warndaten herunterladen und für WeeWX und Web-Darstellung aufbereiten

License: GNU General Public License v3.0

Shell 0.39% Python 99.61%
cap common-alerting-protocol deutscher-wetterdienst knmi knmi-weather mosmix nina ogc opengis python weather weather-forecast weather-radar weewx zamg zentralanstalt-fuer-meteorologie-und-geodynamik

weewx-dwd's People

Contributors

c0by85 avatar daveiano avatar hoetzgit avatar roe-dl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

weewx-dwd's Issues

Parameter --belchertown erzeugt 17 Spalten in der 1h Vorhersage

Hallo, nach kurzem Test (mein Internet ist gerade ausgefallen) sieht alles sehr gut aus. Bisher ist mir nur aufgefallen, das Zeile 1183 in dwd-mosmix eine Spalte zu viel erzeugt. Bei Änderung auf idx>=15 dann die gewünschten 16 Spalten.

Ich teste bei funktionierendem Internet weiter.

Viele Grüsse
Henry

Some really minor layout issues

  1. The table with hourly forecast doesn't include min/max temperatures (wouldn't make sense of course). But as a side effect the first column is a little bit smaller compared with forecast daily. If including both tables, their columns are no longer aligned. It would be nice (but maybe difficult), if the first columns would have the same widths. BTW you can see my "problem" also on your weather station https://www.woellsdorf-wetter.de/forecast/doebeln.html
  2. Currently the created HTML output forecast--.inc is neither indented nor uses much linebreaks. It would be nice to output the HTML with human readable indentation (2 blanks per indentation level - sadly I could't fool git to include unrendered HTML sample code here). That might easy debugging.

Regards, Michael

Option zum Ein- / Ausblenden vom Ortsnamen / Placemark

Kann evtl. noch eine Option mit eingebaut werden, das man vll. mit --hide-placemark o.ä., den Ortsnamen / Placemark beim Wetterbericht ausblenden kann? Aktuelle kommentiere ich immer folgende Zeile aus.

s += '<p itemscope itemtype="https://schema.org/Place"><strong itemprop="name">%s</strong></p>\n' % placemark['description']

By using the --open-meteo option i get the following error

root@ucs:/etc/weewx/skins/weewx-wdc/dwd# dwd-mosmix --weewx --open-meteo=metno --json -v
Using configuration file /etc/weewx/weewx.conf
-- configuration data ----------------------------------
log success: True
log failure: True
target path: /etc/weewx/skins/weewx-wdc/dwd
horiz. tab: True
vertical tab: True
icon set: 5
station location: lat 51.84 lon 4.64 alt -3.0
aeris api id:
aeris api secret:
SQLITE_ROOT: /etc/weewx/skins/weewx-wdc/dwd

Traceback (most recent call last):
File "/usr/local/bin/dwd-mosmix", line 2571, in
lat = float(loc[0])
ValueError: could not convert string to float: 'Döbeln'

what can i do to get it right

Datenabruf mit --open-meteo=x nicht möglich

Wie angefragt, hier das Issue für den Bug.

dwd-mosmix --weewx --hide-placemark --belchertown --html --json
--open-meteo=icon_d2 "51.x,14.x" --hourly --daily
Using configuration file /etc/weewx/weewx.conf
Traceback (most recent call last):
   File "dwd-mosmix", line 2448, in <module>
dwd.forecast_all(mmos,output,options.dry_run,lang=options.lang)
   File "dwd-mosmix", line 2073, in forecast_all
     self.forecast_placemark(placemark, mos['ForecastTimeSteps'], issue,
output, dryrun, lang)
   File "dwd-mosmix", line 2022, in forecast_placemark
     recs3hr =
self.calculate_3hr_forecast(placemark,timesteps,daynights,lang=lang)
   File "dwd-mosmix", line 1806, in calculate_3hr_forecast
     if placemark['Forecast']['ww3'][idx] is not None:
KeyError: 'ww3' 
dwd-mosmix --weewx --hide-placemark --html --json --open-meteo=gfs "51.x,14.x" --hourly --daily
Using configuration file /etc/weewx/weewx.conf
Traceback (most recent call last):
  File "dwd-mosmix", line 2448, in <module>
    dwd.forecast_all(mmos,output,options.dry_run,lang=options.lang)
  File "dwd-mosmix", line 2073, in forecast_all
    self.forecast_placemark(placemark, mos['ForecastTimeSteps'], issue, output, dryrun, lang)
  File "dwd-mosmix", line 2022, in forecast_placemark
    recs3hr = self.calculate_3hr_forecast(placemark,timesteps,daynights,lang=lang)
  File "dwd-mosmix", line 1806, in calculate_3hr_forecast
    if placemark['Forecast']['ww3'][idx] is not None:
KeyError: 'ww3'

Altimeter und Barometer werden falsch umgerechnet

Discussed in #27

Originally posted by hoetzgit January 5, 2023
@roe-dl

Hallo,

ich wünsche noch ein gesundes neues Jahr.

Nun habe ich auch den Service installiert, eine schöne Sache. Ich füge hier mal meine Rückmeldungen ein. Die Angaben sind sehr spärlich, da ich nicht genau weiß, welche Informationen für die Analyse notwendig sind. Gerne kann ich diese nachträglich liefern.

Beispiele Log Meldungen:

Jan  5 10:48:08 weewx weewx[3008558] ERROR user.DWD: thread 'DWD-CDC-05397': other table KeyError (1672909200, 'unix_epoch', 'group_time')
Jan  5 11:07:11 weewx weewx[3015695] ERROR user.DWD: thread 'DWD-POI-10688': TypeError - tuple indices must be integers or slices, not str

Bei der CDC Abfrage werden folgende Werte gebildet:

cdc_Altimeter = 30.125972518674676
cdc_Barometer = 30.15589163272085

alle anderen cdc_xxx/poi_xxx Werte scheinen plausibel.

Meine Konfiguration

[DeutscherWetterdienst]
    path = /home/weewx/skins/weewx-wdc/dwd
    log_success = False
    log_failure = True
    
    [[warning]]
        icons = ../dwd/warn_icons
        states = Bayern
        
        [[[counties]]]
            Kreis Neustadt a.d. Waldnaab = NEW
        
        [[[cities]]]
            Mitgliedsgemeinde in Verwaltungsgemeinschaft Weiherhammer = WEIHERHAMMER
    
    [[forecast]]
        icon_set = dwd
        icons = ../dwd/weather_icons
        orientation = h, v
    
    [[Belchertown]]
        section = Weiherhammer
        warnings = WEIHERHAMMER
        forecast = 10688
        include_advance_warnings = 14400
        aqi_source = uba509
        compass_lang = de
    
    [[BBK]]
        icons = ""
        logos = ""
        log_success = True
        log_failure = True
        [[[counties]]]
            090000000000 = BY
            093740000000 = NEW
            093630000000 = WEN
    
    [[POI]]
        [[[stations]]]
            [[[[10688]]]]
                prefix = poi_
                icon_set = dwd
                log_success = True
                log_failure = True
    
    [[CDC]]
        [[[stations]]]
            [[[[05397]]]]
                prefix = cdc_
                observations = air,wind,gust,precipitation,solar
                icon_set = dwd
                log_success = True
                log_failure = True

Viele Grüße
Henry

DWD Vorhersage wird nicht auf Mobiltelefon dargestellt

Ich erhalte die Wettervorhersage über mosmix von DWD und Open-Meteo.
Im Webbrowser am PC wird die Tabelle entsprechend dargestellt.

Screenshot 2024-08-02 at 18 17 13

Auf dem iPhone (egal ob mit Safari oder FireFox) wird die Tabelle nicht dargestellt IMG_6857 obwohl die Orientierung für beide Richtungen (h, v) angegeben ist.

[WeatherServices] path = /etc/weewx/skins/Belchertown/dwd [[current]] safe = True [[forecast]] icons = ../images orientation = h, v

Was mache ich falsch? Oder habe ich etwas missverstanden?

Vorhersagedaten um berechnete Größen erweitern

weewx kann aus Wetterdaten abgeleitete Größen berechnen wie z.B. windchill. Die berechneten Daten werden in der weewx-sqlite-Datenbank gespeichert (und nicht dynamisch bei Bedarf berechnet).

Daher meine Anregung: Bitte in die forecast-sqlite-Datenbank auch die "berechenbaren" Größen mit aufnehmen, konkret wäre das vermutlich nur windchill. Die Formeln dafür sind in bin/weewx/wxformulas.py. Ich hatte versucht, in skin.conf die Berechnung durchzuführen, aber Python-Routinen kann man dort nicht aufrufen.

DwdMosmix' object has no attribute 'belchertown_compasslang

dwd-mosmix --weewx --belchertown --verbose --open-meteo=gem 48.22,-89.19
Using configuration file /etc/weewx/weewx.conf
-- configuration data ----------------------------------
log success: True
log failure: True
target path: /home/weewx/skins/Belchertown/dwd
horiz. tab: True
vertical tab: True
icon set: 4
station location:
aeris api id: None
aeris api secret: None
SQLITE_ROOT: /home/weewx/conf

successfully downloaded https://api.open-meteo.com/v1/gem?latitude=48.22&longitude=-89.19&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,pressure_msl,cloudcover,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,winddirection_10m,windgusts_10m,weathercode&timeformat=unixtime
what to output: ['belchertown']
start loop over placemarks
process placemark id "openmeteo-48.22--89.19-gem" name "48.22 -89.19"
...
belchertown
geo file '/home/weewx/skins/Belchertown/dwd/geo-openmeteo-48.22--89.19-gem.json' succuessfully loaded
now 19:29:38 timestep 20:00:00
Traceback (most recent call last):
File "/usr/local/bin/dwd-mosmix", line 2452, in
dwd.forecast_all(mmos,output,options.dry_run,lang=options.lang)
File "/usr/local/bin/dwd-mosmix", line 2077, in forecast_all
self.forecast_placemark(placemark, mos['ForecastTimeSteps'], issue, output, dryrun, lang)
File "/usr/local/bin/dwd-mosmix", line 2053, in forecast_placemark
self.belchertown(placemark,days,recs3hr,timesteps,daynights,issue,dryrun)
File "/usr/local/bin/dwd-mosmix", line 1334, in belchertown
'windDir':compass(nround(placemark['Forecast']['DD'][idx]),self.belchertown_compasslang,False),
AttributeError: 'DwdMosmix' object has no attribute 'belchertown_compasslang'

weewx.conf (snippet)
################################################################################
[DeutscherWetterdienst]
[WeatherServices]
path='/home/weewx/skins/Belchertown/dwd'
[[current]]
[[[ThisStation]]]
# actual readings out of the forecast for the location of this station
debug = 3
provider = Open-Meteo
model = gem_regional
prefix = om
[[forecast]]
icons='../images'
orientation=h,v
show_obs_symbols = True # optional
show_obs_description = False # optional
show_placemark = True # optional

##############################################################################

Any tips or pointers?

dwd-mosmix, Parameter --belchertown, AttributeError: 'NoneType' object has no attribute 'km'

Hallo, beim Aufruf mit aktuellem Code erscheint folgende Meldung.

Aufruf:
/usr/local/bin/weewx-DWD/dwd-mosmix --config=/home/weewx/weewx.conf --verbose --belchertown 10688

Ausgabe:

Using configuration file /home/weewx/weewx.conf
-- configuration data ----------------------------------
log success:       True
log failure:       True
target path:       /home/weewx/skins/Belchertown/dwd
horiz. tab:        True
vertical tab:      True
icon set:          4
station location:  lat 49.63227 lon 12.056186 alt 394.0
--------------------------------------------------------
successfully downloaded https://opendata.dwd.de/weather/local_forecasts/mos/MOSMIX_L/single_stations/10688/kml/MOSMIX_L_LATEST_10688.kmz
-- MOSMIX_L_2022022403_10688.kml --
processing KML file
KML file processed, 1 placemarks found
what to output: ['belchertown']
start loop over placemarks
process placemark id "10688" name "WEIDEN"
calculate daily forecast
calculate 3hr forecast
<ephem.Observer date='1970/1/1 00:00:14' epoch='1970/1/1 00:00:14' 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='1970/1/1 00:00:13' epoch='1970/1/1 00:00:13' 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='1970/1/1 00:00:23' epoch='1970/1/1 00:00:23' 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='1970/1/1 00:00:32' epoch='1970/1/1 00:00:32' 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='1970/1/1 00:00:37' epoch='1970/1/1 00:00:37' 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='1970/1/1 00:00:42' epoch='1970/1/1 00:00:42' 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='1970/1/1 00:00:45' epoch='1970/1/1 00:00:45' 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='1970/1/1 00:00:43' epoch='1970/1/1 00:00:43' 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='1970/1/1 00:00:34' epoch='1970/1/1 00:00:34' 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='1970/1/1 00:00:34' epoch='1970/1/1 00:00:34' 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='1970/1/1 00:00:33' epoch='1970/1/1 00:00:33' 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='1970/1/1 00:00:31' epoch='1970/1/1 00:00:31' 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='1970/1/1 00:00:28' epoch='1970/1/1 00:00:28' 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='1970/1/1 00:00:21' epoch='1970/1/1 00:00:21' 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='1970/1/1 00:00:18' epoch='1970/1/1 00:00:18' 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='1970/1/1 00:00:27' epoch='1970/1/1 00:00:27' 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='1970/1/1 00:00:13' epoch='1970/1/1 00:00:13' 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='1970/1/1 00:00:16' epoch='1970/1/1 00:00:16' 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='1970/1/1 00:00:21' epoch='1970/1/1 00:00:21' 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='1970/1/1 00:00:25' epoch='1970/1/1 00:00:25' 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='1970/1/1 00:00:24' epoch='1970/1/1 00:00:24' 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='1970/1/1 00:00:19' epoch='1970/1/1 00:00:19' 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='1970/1/1 00:00:13' epoch='1970/1/1 00:00:13' 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='1970/1/1 00:00:13' epoch='1970/1/1 00:00:13' 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='1970/1/1 00:00:12' epoch='1970/1/1 00:00:12' 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='1970/1/1 00:00:14' epoch='1970/1/1 00:00:14' 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='1970/1/1 00:00:20' epoch='1970/1/1 00:00:20' 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='1970/1/1 00:00:26' epoch='1970/1/1 00:00:26' 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='1970/1/1 00:00:29' epoch='1970/1/1 00:00:29' 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='1970/1/1 00:00:25' epoch='1970/1/1 00:00:25' 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='1970/1/1 00:00:18' epoch='1970/1/1 00:00:18' 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='1970/1/1 00:00:16' epoch='1970/1/1 00:00:16' 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='1970/1/1 00:00:10' epoch='1970/1/1 00:00:10' 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='1970/1/1 00:00:11' epoch='1970/1/1 00:00:11' 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='1970/1/1 00:00:15' epoch='1970/1/1 00:00:15' 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='1970/1/1 00:00:24' epoch='1970/1/1 00:00:24' 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='1970/1/1 00:00:22' epoch='1970/1/1 00:00:22' 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='1970/1/1 00:00:17' epoch='1970/1/1 00:00:17' 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='1970/1/1 00:00:12' epoch='1970/1/1 00:00:12' 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='1970/1/1 00:00:11' epoch='1970/1/1 00:00:11' 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='1970/1/1 00:00:11' epoch='1970/1/1 00:00:11' 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='1970/1/1 00:00:12' epoch='1970/1/1 00:00:12' 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='1970/1/1 00:00:19' epoch='1970/1/1 00:00:19' 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='1970/1/1 00:00:21' epoch='1970/1/1 00:00:21' 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='1970/1/1 00:00:21' epoch='1970/1/1 00:00:21' 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='1970/1/1 00:00:17' epoch='1970/1/1 00:00:17' 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='1970/1/1 00:00:10' epoch='1970/1/1 00:00:10' 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='1970/1/1 00:00:08' epoch='1970/1/1 00:00:08' 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='1970/1/1 00:00:08' epoch='1970/1/1 00:00:08' 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='1970/1/1 00:00:11' epoch='1970/1/1 00:00:11' 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='1970/1/1 00:00:16' epoch='1970/1/1 00:00:16' 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='1970/1/1 00:00:20' epoch='1970/1/1 00:00:20' 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='1970/1/1 00:00:18' epoch='1970/1/1 00:00:18' 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='1970/1/1 00:00:14' epoch='1970/1/1 00:00:14' 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='1970/1/1 00:00:11' epoch='1970/1/1 00:00:11' 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='1970/1/1 00:00:08' epoch='1970/1/1 00:00:08' 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='1970/1/1 00:00:08' epoch='1970/1/1 00:00:08' 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='1970/1/1 00:00:11' epoch='1970/1/1 00:00:11' 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='1970/1/1 00:00:18' epoch='1970/1/1 00:00:18' 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='1970/1/1 00:00:18' epoch='1970/1/1 00:00:18' 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='1970/1/1 00:00:18' epoch='1970/1/1 00:00:18' 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='1970/1/1 00:00:14' epoch='1970/1/1 00:00:14' 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='1970/1/1 00:00:11' epoch='1970/1/1 00:00:11' 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='1970/1/1 00:00:09' epoch='1970/1/1 00:00:09' 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='1970/1/1 00:00:09' epoch='1970/1/1 00:00:09' 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='1970/1/1 00:00:11' epoch='1970/1/1 00:00:11' 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='1970/1/1 00:00:18' epoch='1970/1/1 00:00:18' 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='1970/1/1 00:00:19' epoch='1970/1/1 00:00:19' 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='1970/1/1 00:00:18' epoch='1970/1/1 00:00:18' 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='1970/1/1 00:00:14' epoch='1970/1/1 00:00:14' 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='1970/1/1 00:00:11' epoch='1970/1/1 00:00:11' 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='1970/1/1 00:00:09' epoch='1970/1/1 00:00:09' 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='1970/1/1 00:00:09' epoch='1970/1/1 00:00:09' 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='1970/1/1 00:00:11' epoch='1970/1/1 00:00:11' 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='1970/1/1 00:00:16' epoch='1970/1/1 00:00:16' 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='1970/1/1 00:00:18' epoch='1970/1/1 00:00:18' 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='1970/1/1 00:00:16' epoch='1970/1/1 00:00:16' 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='1970/1/1 00:00:13' epoch='1970/1/1 00:00:13' 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='1970/1/1 00:00:10' epoch='1970/1/1 00:00:10' 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='1970/1/1 00:00:08' epoch='1970/1/1 00:00:08' 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='1970/1/1 00:00:09' epoch='1970/1/1 00:00:09' 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='1970/1/1 00:00:11' epoch='1970/1/1 00:00:11' lon='12:10:48.0' lat='49:40:12.0' elevation=438.00000000000006m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
belchertown
now 09:51:49 timestep 10:00:00
<ephem.Observer date='2022/2/24 09:00:00' epoch='2022/2/24 09: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>
Traceback (most recent call last):
  File "/usr/local/bin/weewx-DWD/dwd-mosmix", line 1720, in <module>
    dwd.forecast_all(mmos,output,options.dry_run,lang=options.lang)
  File "/usr/local/bin/weewx-DWD/dwd-mosmix", line 1580, in forecast_all
    self.forecast_placemark(placemark, mos['ForecastTimeSteps'], issue, output, dryrun, lang)
  File "/usr/local/bin/weewx-DWD/dwd-mosmix", line 1561, in forecast_placemark
    self.belchertown(placemark,days,recs3hr,timesteps,issue,dryrun)
  File "/usr/local/bin/weewx-DWD/dwd-mosmix", line 1132, in belchertown
    'distanceKM':nround(rel_dist.km,1),
AttributeError: 'NoneType' object has no attribute 'km'

aktuelle Konfiguration:

[DeutscherWetterdienst]
    path = '/home/weewx/skins/Belchertown/dwd'
    [[warning]]
        icons = '../dwd/warn_icons_50x50'
        states = 'Bayern'
        `[[[counties]]]`
            'Kreis Neustadt a.d. Waldnaab' = 'NEW'
        [[[cities]]]
            'Mitgliedsgemeinde in Verwaltungsgemeinschaft Weiherhammer' = 'WEIHERHAMMER'
    [[forecast]]
        icons = '../images'
    [[Belchertown]]
        section = 'Belchertown'
        warnings = 'WEIHERHAMMER'
        forecast = 10688

Fehler: mosmix sqlite3 Datenbank wird nicht erstellt

  • weewx 5.0.0
  • Schema dwd.py Ordner: /home/RasPi Username/weewx-venv/bin, Attribut 664
  • extensions.py Ordner: /home/RasPi Username/weewx-data/bin/user, Attribut 664
  • Befehl: sudo /usr/local/bin/dwd-mosmix --config=/home/RasPi Username/weewx-data/weewx.conf --daily --hourly --json --database XXXXX

Fehlerlog:
Using configuration file /home/RasPi Username/weewx-data/weewx.conf
INFO successfully downloaded https://opendata.dwd.de/weather/local_forecasts/mos/MOSMIX_L/single_stations/XXXXX/kml/MOSMIX_L_LATEST_XXXXX.kmz
Traceback (most recent call last):
File "/usr/local/bin/dwd-mosmix", line 2949, in
dwd.forecast_all(mmos,output,options.dry_run,lang=options.lang)
File "/usr/local/bin/dwd-mosmix", line 2512, in forecast_all
self.forecast_placemark(placemark, mos['ForecastTimeSteps'], issue, output, dryrun, lang)
File "/usr/local/bin/dwd-mosmix", line 2483, in forecast_placemark
self.write_database(placemark,timesteps,issue)
File "/usr/local/bin/dwd-mosmix", line 2390, in write_database
self.dbm_open(placemark['id'],columns)
File "/usr/local/bin/dwd-mosmix", line 2543, in dbm_open
self.connection = sqlite3.connect(fn)
^^^^^^^^^^^^^^^^^^^
sqlite3.OperationalError: unable to open database file

Die Ergänzungen in dwd.py und extensions.py wurden gemäss Anleitung vorgenommen und XXXXX durch Mosmix ID ersetzt.

Wie kann ich die Datenbank 'dwd-forecast-XXXXX.sdb' erstellen?

Install errors

sudo weectl extension install master.zip
Using configuration file /etc/weewx/weewx.conf
Install extension 'master.zip' (y/n)? y
Extracting from zip archive master.zip
Traceback (most recent call last):
File "/usr/share/weewx/weectl.py", line 74, in
main()
File "/usr/share/weewx/weectl.py", line 66, in main
namespace.func(namespace)
File "/usr/share/weewx/weectllib/init.py", line 121, in dispatch
namespace.action_func(config_dict, namespace)
File "/usr/share/weewx/weectllib/extension_cmd.py", line 116, in install_extension
ext.install_extension(namespace.source, no_confirm=namespace.yes)
File "/usr/share/weewx/weecfg/extension.py", line 138, in install_extension
extension_name = self._install_from_file(extension_path, filetype)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/weewx/weecfg/extension.py", line 168, in _install_from_file
extension_name = self.install_from_dir(extension_dir)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/weewx/weecfg/extension.py", line 179, in install_from_dir
installer_path, installer = weecfg.get_extension_installer(extension_dir)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/weewx/weecfg/init.py", line 714, in get_extension_installer
import('install')
File "/tmp/tmp17882ax5/weewx-DWD-master/install.py", line 67
}
^
SyntaxError: closing parenthesis '}' does not match opening parenthesis '(' on line 29

$current.biowetterIssued manchmal undefiniert

Ungefähr zwischen 11:00Uhr und 12:00Uhr ist die Variable $current.biowetterIssued (regelmäßig) undefiniert.
Ggf. als Hinweis: In der Fußnote der Biowetter-Tabelle liegt die Vorhersage-Zeit einige Minuten VOR der Herausgabe-Zeit, z.B.

herausgegeben vom [DWD](https://www.dwd.de/) am 03.08.2024 11:00 | Vorhersage erstellt am 03.08.2024 10:58

Bei der Pollen-Tabelle tritt dieses Problem nicht auf.

Variable "days" in dwd-mosmix/forecast_placemark

Hallo, ich probiere gerade etwas mit dwd-mosmix und glaube, dass in der Funktion forecast_placemark die Definition der Variable days 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

Download error 404

Hallo, bei mir wird seit dem Nachmittag keine Aktualisierung mehr durchgeführt.

Im Logfile habe ich folgendes gefunden:

https://www.dwd.de/DWD/warnungen/warnapp/json/warnings.json Auflösen des Hostnamens www.dwd.de (www.dwd.de)… 141.38.3.62 Verbindungsaufbau zu www.dwd.de (www.dwd.de)|141.38.3.62|:443 … verbunden. HTTP-Anforderung gesendet, auf Antwort wird gewartet … 404 Not Found 2023-06-23 00:17:22 FEHLER 404: Not Found.

Wie kann der Fehler behoben werden?
Danke!

Crash if `log_success` and `log_failure` are not defined

Discussed in #53

Originally posted by timi35 July 18, 2023
Hallo,

ich bin Anfänger bei der Nutzung von weewx bzw. dem DWD Plugin.
Ich bin nach Aneleitung vorgegangen erhalte abe beim Einbinden von:

[Engine]

[[Services]]
    data_services =  user.weatherservices.DWDservice

Folgenden Fehler:
Jul 17 15:43:28 raspberrypi python3[8254]: weewx[8254] CRITICAL main: **** obj = weeutil.weeutil.get_object(svc)(self, config_dict)
Jul 17 15:43:28 raspberrypi python3[8254]: weewx[8254] CRITICAL main: **** File "/usr/share/weewx/user/weatherservices.py", line 1532, in init
Jul 17 15:43:28 raspberrypi python3[8254]: weewx[8254] CRITICAL main: **** self._create_poi_thread(location, station, location_dict)
Jul 17 15:43:28 raspberrypi python3[8254]: weewx[8254] CRITICAL main: **** File "/usr/share/weewx/user/weatherservices.py", line 1563, in _create_poi_th>
Jul 17 15:43:28 raspberrypi python3[8254]: weewx[8254] CRITICAL main: **** log_success=weeutil.weeutil.to_bool(station_dict.get('log_success',False)) >
Jul 17 15:43:28 raspberrypi python3[8254]: weewx[8254] CRITICAL main: **** AttributeError: 'DWDservice' object has no attribute 'verbose'
Jul 17 15:43:28 raspberrypi python3[8254]: weewx[8254] CRITICAL main: **** Exiting.
Jul 17 15:43:28 raspberrypi systemd[1]: weewx.service: Main process exited, code=exited, status=1/FAILURE
Jul 17 15:43:28 raspberrypi systemd[1]: weewx.service: Failed with result 'exit-code'.
Jul 17 15:43:28 raspberrypi systemd[1]: weewx.service: Consumed 2.284s CPU time.

Was habe ich falsch gemacht? Was habe ich evtl. übersehen?
Gibt es irgendwo eine Anleitung für Anfänger? Die bei Github scheint etwas zu "springen", was es für Anfänger nicht gerade einfach macht.

Vielen Dank!
VG Tim

Nur ein Hinweis: wget-dwd und Dateien mit HTML Umlauten und Sonderzeichen

Hallo,

ich habe eine Anpassung in der html2ent.ansi vorgenommen. Der DWD hatte heute in seinen Vorhersagetexten eine konkrete Temperatur, dadurch auch das ° (Grad) Symbol.

In der html2ent.ansi habe ich deshalb eine entsprechende zusätzliche Konvertierung eingebaut.
Der WeeWX cheetahgenerator lieferte bspw. folgende Meldung:
"UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb0 in position 491: invalid start byte"

Templates haben bei mir "#encoding UTF-8"

Du kannst ja mal prüfen, ob dies allgemein relevant sein könnte und nicht nur auf meine Installation beschränkt ist.

Offenbar unterschiedliche Schreibweisen

dwd

dwd-mosmix - airquality - UBA

Hallo,

wenn ich für die Luftqualität eine UBA Station verwende, kann es zu folgendem Verhalten kommen. Voraussetzung für meine Rückmeldung ist hier, dass ich dwd-mosmix Zeile 1765 richtig interpretiert habe und immer das letzte Element aus data für die jeweilige Station im UBA JSON benutzt wird.

Es ist tatsächlich so, dass der data Teil nicht (immer) aufsteigend nach Messdatum sortiert ist. Unten ein konkretes Beispiel von heute. Es werden dann durch dwd-mosmix "falsche" Ergebnisse erzeugt.

Abfrage:

https://www.umweltbundesamt.de/api/air_data/v2/airquality/json?date_from=2023-02-06&date_to=2023-02-07&lang=de&station=509

Result (erst aufsteigend, im unteren Teil jedoch 2 Elemente mit vorhergehendem Zeitstempel):

{
  "request": {
    "station": "509",
    "date_from": "2023-02-06",
    "date_to": "2023-02-07",
    "lang": "de",
    "index": "id",
    "time_from": "12:00:00",
    "datetime_from": "2023-02-06 11:00:00",
    "time_to": "12:00:00",
    "datetime_to": "2023-02-07 11:00:00"
  },
  "data": {
    "509": {
      "2023-02-06 11:00:00": [
        "2023-02-06 12:00:00",
        1,
        1,
        [
          3,
          5,
          0,
          "0.083"
        ],
        [
          5,
          28,
          1,
          "1.368"
        ]
      ],
      "2023-02-06 12:00:00": [
        "2023-02-06 13:00:00",
        1,
        1,
        [
          3,
          9,
          0,
          "0.150"
        ],
        [
          5,
          29,
          1,
          "1.421"
        ]
      ],
      "2023-02-06 13:00:00": [
        "2023-02-06 14:00:00",
        1,
        1,
        [
          3,
          20,
          0,
          "0.333"
        ],
        [
          5,
          23,
          1,
          "1.105"
        ]
      ],
      "2023-02-06 14:00:00": [
        "2023-02-06 15:00:00",
        1,
        1,
        [
          3,
          15,
          0,
          "0.250"
        ],
        [
          5,
          31,
          1,
          "1.526"
        ]
      ],
      "2023-02-06 15:00:00": [
        "2023-02-06 16:00:00",
        1,
        1,
        [
          3,
          11,
          0,
          "0.183"
        ],
        [
          5,
          38,
          1,
          "1.895"
        ]
      ],
      "2023-02-06 16:00:00": [
        "2023-02-06 17:00:00",
        2,
        1,
        [
          3,
          6,
          0,
          "0.100"
        ],
        [
          5,
          44,
          2,
          "2.051"
        ]
      ],
      "2023-02-06 17:00:00": [
        "2023-02-06 18:00:00",
        1,
        1,
        [
          3,
          16,
          0,
          "0.267"
        ],
        [
          5,
          39,
          1,
          "1.947"
        ]
      ],
      "2023-02-06 18:00:00": [
        "2023-02-06 19:00:00",
        2,
        1,
        [
          3,
          15,
          0,
          "0.250"
        ],
        [
          5,
          43,
          2,
          "2.034"
        ]
      ],
      "2023-02-06 19:00:00": [
        "2023-02-06 20:00:00",
        1,
        1,
        [
          3,
          19,
          0,
          "0.317"
        ],
        [
          5,
          33,
          1,
          "1.632"
        ]
      ],
      "2023-02-06 20:00:00": [
        "2023-02-06 21:00:00",
        1,
        1,
        [
          3,
          20,
          0,
          "0.333"
        ],
        [
          5,
          31,
          1,
          "1.526"
        ]
      ],
      "2023-02-06 21:00:00": [
        "2023-02-06 22:00:00",
        1,
        1,
        [
          3,
          10,
          0,
          "0.167"
        ],
        [
          5,
          39,
          1,
          "1.947"
        ]
      ],
      "2023-02-06 22:00:00": [
        "2023-02-06 23:00:00",
        1,
        1,
        [
          3,
          13,
          0,
          "0.217"
        ],
        [
          5,
          36,
          1,
          "1.789"
        ]
      ],
      "2023-02-06 23:00:00": [
        "2023-02-06 24:00:00",
        1,
        1,
        [
          3,
          6,
          0,
          "0.100"
        ],
        [
          5,
          38,
          1,
          "1.895"
        ]
      ],
      "2023-02-07 00:00:00": [
        "2023-02-07 01:00:00",
        1,
        1,
        [
          3,
          24,
          0,
          "0.400"
        ],
        [
          5,
          23,
          1,
          "1.105"
        ]
      ],
      "2023-02-07 01:00:00": [
        "2023-02-07 02:00:00",
        1,
        1,
        [
          3,
          19,
          0,
          "0.317"
        ],
        [
          5,
          27,
          1,
          "1.316"
        ]
      ],
      "2023-02-07 02:00:00": [
        "2023-02-07 03:00:00",
        1,
        1,
        [
          3,
          15,
          0,
          "0.250"
        ],
        [
          5,
          29,
          1,
          "1.421"
        ]
      ],
      "2023-02-07 03:00:00": [
        "2023-02-07 04:00:00",
        1,
        1,
        [
          3,
          13,
          0,
          "0.217"
        ],
        [
          5,
          29,
          1,
          "1.421"
        ]
      ],
      "2023-02-07 04:00:00": [
        "2023-02-07 05:00:00",
        1,
        1,
        [
          3,
          3,
          0,
          "0.050"
        ],
        [
          5,
          39,
          1,
          "1.947"
        ]
      ],
      "2023-02-07 05:00:00": [
        "2023-02-07 06:00:00",
        2,
        1,
        [
          3,
          1,
          0,
          "0.017"
        ],
        [
          5,
          41,
          2,
          "2.000"
        ]
      ],
      "2023-02-07 08:00:00": [
        "2023-02-07 09:00:00",
        2,
        1,
        [
          3,
          4,
          0,
          "0.067"
        ],
        [
          5,
          41,
          2,
          "2.000"
        ]
      ],
      "2023-02-07 09:00:00": [
        "2023-02-07 10:00:00",
        1,
        1,
        [
          3,
          15,
          0,
          "0.250"
        ],
        [
          5,
          30,
          1,
          "1.474"
        ]
      ],
      "2023-02-07 10:00:00": [
        "2023-02-07 11:00:00",
        1,
        1,
        [
          3,
          14,
          0,
          "0.233"
        ],
        [
          5,
          26,
          1,
          "1.263"
        ]
      ],
      "2023-02-07 06:00:00": [
        "2023-02-07 07:00:00",
        2,
        1,
        [
          5,
          45,
          2,
          "2.068"
        ]
      ],
      "2023-02-07 07:00:00": [
        "2023-02-07 08:00:00",
        2,
        1,
        [
          5,
          51,
          2,
          "2.169"
        ]
      ]
    }
  },
  "indices": {
    "data": {
      "station id": {
        "date start (CET)": [
          "date end (CET)"
        ],
        "date start": {
          "1": "total index",
          "2": "data incomplete",
          "3": [
            "component id",
            "value",
            "index",
            "y-value"
          ]
        }
      }
    }
  },
  "count": 1
}

Installationsdirectory unklar

Habe gerade entdeckt, daß es eine Reihe neuer Features in weewx-DWD gibt. Leider ist mir unklar, wohin die Python-Skripte installiert werden sollen. Wenn ich weewx-5.0 richtig verstanden habe, liegen die User-Erweiterungen unter /etc/weewx/bin/user und nicht mehr unter /usr/share/weewx/user (letztere Directory gibts auch nicht mehr). Daher habe ich z.B. weatherservicesradar.py nach /etc/weewx/bin/user kopiert. Rufe ich dieses Skript direkt manuell auf, gibts die Fehlermeldung
python3 ./weatherservicesradar.py --help Traceback (most recent call last): File "/etc/weewx/bin/user/./weatherservicesradar.py", line 130, in <module> from user.weatherservicesutil import wget, BaseThread ModuleNotFoundError: No module named 'user'

Im src findet sich die Zeile
sys.path.append('/usr/share/weewx')
die auf die weewx-Installation an sich verweist. Wenn ich hier /etc/weewx/bin (bewußt ohne user) eintrage, wird (logischerweise) weewx nicht gefunden.

Wohin sollen user-Erweiterungen ab weewx-5.0 installiert werden?

Als workaround habe ich /usr/shared/weewx/user als symbolic link verfügbar gemacht.

Fehlermeldung bzgl. belchertown von dwd_mosmix

Beim Aufruf von dwd-mosmix
dwd-mosmix --hourly --daily --icon-set=dwd --weewx K2714
gibts immer Fehlermeldungen bzgl. Belchertown, das ich nicht nutze (und somit auch nicht in weew.conf konfiguriert habe). Mit der alten Version von dwd_mosmix tuts.

In weewx.conf ist DWD wie folgt konfiguriert (leider wird Code nicht als Code übernommen:-():
`# settings for DWD
[DeutscherWetterdienst]
path = /etc/weewx/skins/Seasons_DWD/dwd

[[warning]]
    icons = icons/warn
    states = Baden-Württemberg
    [[[counties]]]
        Kreis Ludwigsburg = KL
    [[[cities]]]
        Stadt Ludwigsburg = SL
[[forecast]]
    icons = icons/wetter
    orientation = h

`

Die Fehlermeldung lautet:
Using configuration file /etc/weewx/weewx.conf
ERROR Belchertown config KeyError WeatherServices

Ich habe dann versucht (wie im README beschrieben), VOR den forecast-Eintrag einen WeatherServices-Eintrag zu machen:
`[WeatherServices]

Verzeichnis, in das die Dateien gespeichert werden sollen
path=/etc/weewx/skins/Seasons_DWD/dwd                               
# Stuttgart-Echterdingen                                   
[[current]]                                                
    [[[04931]]]                                              n
        provider = DWD                                     
        model = CDC                                        
        prefix = observation_type_prefix_for_station       
        # equipment of the weather station (optional)      
        observations = air,wind,gust,precipitation,solar   

`

so daß forecast dann unterhalb von WeatherServices steht. Gibt eine ähnliche Fehlermeldung, dann mit KeyError section.

Was mache ich falsch?

Mein Ziel ist eigentlich nur, erstmal das neue dwd_mosmix mit den alten Settings ans Laufen zu kriegen. Danach will ich die Option --database dazunehmen. Die Erwartung wäre, daß in der Datenbank Vorhersagedaten für K2714 abgelegt werden. D.h. ich will eigentlich gar keine Daten vom Stuttgarter Flughafen abrufen.

Biowetter benötigt zusätzliche Styles

Aktuell nutzt die von biowetter erzeugte Tabelle Style-Elemente von Belcherton. Daher sollte man den Style-File dwd.css wie folgt ergänzen:

.records-header {
    text-align:center;
    background:#D7D7D7;
    color:#000;
    font-weight:400;
}
.table-striped {
    tr:nth-child(even) {background-color: #f2f2f2;}
}

Ggf. die Doku hier entsprechend erweitern.

Keine Ausgabe von Pollen für area 110 (Baden-Württemberg)

Hoffentlich sitzt der Fehler nicht wieder vor dem Bildschirm:-) - aber ich kriege keine Pollen-Daten. Im weewx.conf steht (aber richtig eingerückt):

 [WeatherServices]
    path = /etc/weewx/skins/Seasons_DWD/dwd
    [[download]]
        [[[Schilder]]]
            provider = DWD
            model = warning-map-with-symbols
            area = SU
    [[forecast]]
        icons = icons/wetter
        icon_set = dwd
        orientation = h
        [[[K2714]]]
            provider = DWD
	    model = MOSMIX
        [[[Baden-Württemberg]]]
            provider = DWD
            model = text
	    area = DWSG
	[[[Health]]]
            provider = DWD
            model = biowetter
	    area = 'I'
	    file = 'I'
	    prefix = ''
	[[[Pollen]]]
            provider = DWD
            model = pollen
	    area = 110
	    file ='110'
	    prefix = ''

Habe auch mal versucht, area als String mit quotes anzugeben - ohne Erfolg. Es wird keine Datei in der Subdirectory dwd/health-pollen-110.inc erzeugt.

Wenn ich im Skin
<p class="widget_forecast">Pollen von $current.pollenIssued.</p>
ausgebe, gibts eine passende Fehlermeldung im HTML
Pollen von ?'pollenIssued'?.

biowetter hingegen funktioniert mit den analogen Einstellungen problemlos - da wird der passende Zeitstempel ausgegeben, und die erwartete Datei im Ordner dwd angelegt [abenr mit dem Layout der erzeugten biowetter-Tabelle muß ich noch was experimentieren].

weatherserviceshealth.py erzeugt Fehler

Ich habe gerade "nur" diese Datei upgedatet und ins richtige Verzeichnis geschoben.
Nach einem Neustart von weewx bekomme ich folgenden Fehler:

Aug 6 11:06:27 WXvm weewxd[577558]: INFO user.gw1000: GatewayCollector thread has been terminated Aug 6 11:06:27 WXvm weewxd[577558]: CRITICAL __main__: Caught unrecoverable exception: Aug 6 11:06:27 WXvm weewxd[577558]: CRITICAL __main__: **** invalid character '·' (U+00B7) (weatherserviceshealth.py, line 127) Aug 6 11:06:27 WXvm weewxd[577558]: CRITICAL __main__: **** Traceback (most recent call last): Aug 6 11:06:27 WXvm weewxd[577558]: CRITICAL __main__: **** File "/usr/share/weewx/weewxd.py", line 121, in main Aug 6 11:06:27 WXvm weewxd[577558]: CRITICAL __main__: **** engine = weewx.engine.StdEngine(config_dict) Aug 6 11:06:27 WXvm weewxd[577558]: CRITICAL __main__: **** File "/usr/share/weewx/weewx/engine.py", line 89, in __init__ Aug 6 11:06:27 WXvm weewxd[577558]: CRITICAL __main__: **** self.loadServices(config_dict) Aug 6 11:06:27 WXvm weewxd[577558]: CRITICAL __main__: **** File "/usr/share/weewx/weewx/engine.py", line 157, in loadServices Aug 6 11:06:27 WXvm weewxd[577558]: CRITICAL __main__: **** obj = weeutil.weeutil.get_object(svc)(self, config_dict) Aug 6 11:06:27 WXvm weewxd[577558]: CRITICAL __main__: **** File "/usr/share/weewx/weeutil/weeutil.py", line 1404, in get_object Aug 6 11:06:27 WXvm weewxd[577558]: CRITICAL __main__: **** module = importlib.import_module(module_name) Aug 6 11:06:27 WXvm weewxd[577558]: CRITICAL __main__: **** File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module Aug 6 11:06:27 WXvm weewxd[577558]: CRITICAL __main__: **** return _bootstrap._gcd_import(name[level:], package, level) Aug 6 11:06:27 WXvm weewxd[577558]: CRITICAL __main__: **** File "<frozen importlib._bootstrap>", line 1050, in _gcd_import Aug 6 11:06:27 WXvm weewxd[577558]: CRITICAL __main__: **** File "<frozen importlib._bootstrap>", line 1027, in _find_and_load Aug 6 11:06:27 WXvm weewxd[577558]: CRITICAL __main__: **** File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked Aug 6 11:06:27 WXvm weewxd[577558]: CRITICAL __main__: **** File "<frozen importlib._bootstrap>", line 688, in _load_unlocked Aug 6 11:06:27 WXvm weewxd[577558]: CRITICAL __main__: **** File "<frozen importlib._bootstrap_external>", line 883, in exec_module Aug 6 11:06:27 WXvm weewxd[577558]: CRITICAL __main__: **** File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed Aug 6 11:06:27 WXvm weewxd[577558]: CRITICAL __main__: **** File "/etc/weewx/bin/user/weatherservices.py", line 257, in <module> Aug 6 11:06:27 WXvm weewxd[577558]: CRITICAL __main__: **** import user.weatherserviceshealth Aug 6 11:06:27 WXvm weewxd[577558]: CRITICAL __main__: **** File "/etc/weewx/bin/user/weatherserviceshealth.py", line 127 Aug 6 11:06:27 WXvm weewxd[577558]: CRITICAL __main__: **** <title>weewx-DWD/bin/user/weatherserviceshealth.py at master · roe-dl/weewx-DWD · GitHub</title> Aug 6 11:06:27 WXvm weewxd[577558]: CRITICAL __main__: **** ^ Aug 6 11:06:27 WXvm weewxd[577558]: CRITICAL __main__: **** SyntaxError: invalid character '·' (U+00B7) Aug 6 11:06:27 WXvm weewxd[577558]: CRITICAL __main__: **** Exiting. Aug 6 11:06:27 WXvm weewxd[577558]: Traceback (most recent call last): Aug 6 11:06:27 WXvm weewxd[577558]: File "/usr/share/weewx/weewxd.py", line 226, in <module> Aug 6 11:06:27 WXvm weewxd[577558]: main() Aug 6 11:06:27 WXvm weewxd[577558]: File "/usr/share/weewx/weewxd.py", line 121, in main Aug 6 11:06:27 WXvm weewxd[577558]: engine = weewx.engine.StdEngine(config_dict) Aug 6 11:06:27 WXvm weewxd[577558]: File "/usr/share/weewx/weewx/engine.py", line 89, in __init__ Aug 6 11:06:27 WXvm weewxd[577558]: self.loadServices(config_dict) Aug 6 11:06:27 WXvm weewxd[577558]: File "/usr/share/weewx/weewx/engine.py", line 157, in loadServices Aug 6 11:06:27 WXvm weewxd[577558]: obj = weeutil.weeutil.get_object(svc)(self, config_dict) Aug 6 11:06:27 WXvm weewxd[577558]: File "/usr/share/weewx/weeutil/weeutil.py", line 1404, in get_object Aug 6 11:06:27 WXvm weewxd[577558]: module = importlib.import_module(module_name) Aug 6 11:06:27 WXvm weewxd[577558]: File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module Aug 6 11:06:27 WXvm weewxd[577558]: return _bootstrap._gcd_import(name[level:], package, level) Aug 6 11:06:27 WXvm weewxd[577558]: File "<frozen importlib._bootstrap>", line 1050, in _gcd_import Aug 6 11:06:27 WXvm weewxd[577558]: File "<frozen importlib._bootstrap>", line 1027, in _find_and_load Aug 6 11:06:27 WXvm weewxd[577558]: File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked Aug 6 11:06:27 WXvm weewxd[577558]: File "<frozen importlib._bootstrap>", line 688, in _load_unlocked Aug 6 11:06:27 WXvm weewxd[577558]: File "<frozen importlib._bootstrap_external>", line 883, in exec_module Aug 6 11:06:27 WXvm weewxd[577558]: File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed Aug 6 11:06:27 WXvm weewxd[577558]: File "/etc/weewx/bin/user/weatherservices.py", line 257, in <module> Aug 6 11:06:27 WXvm weewxd[577558]: import user.weatherserviceshealth Aug 6 11:06:27 WXvm weewxd[577558]: File "/etc/weewx/bin/user/weatherserviceshealth.py", line 127 Aug 6 11:06:27 WXvm weewxd[577558]: <title>weewx-DWD/bin/user/weatherserviceshealth.py at master · roe-dl/weewx-DWD · GitHub</title> Aug 6 11:06:27 WXvm weewxd[577558]: ^ Aug 6 11:06:27 WXvm weewxd[577558]: SyntaxError: invalid character '·' (U+00B7) Aug 6 11:06:27 WXvm systemd[1]: weewx.service: Main process exited, code=exited, status=1/FAILURE

Ich schaue mal, ob ich den "invalid character" selber berichtigen kann ...

WeeWX v5 Kompatibilität

dwd-mosmix
dwd-warnings

Diese Module importieren 'configobj', was einen Fehler ergibt.

Ist die Erweiterung weewx-DWD mit WeeWX v5 kompatibel und lauffähig?

log_success not boolean, if read from weewx.conf?

Discussed in #18

Originally posted by hoetzgit March 11, 2022
Hallo, ich probiere etwas mit dem "uba Mod", aber meine Python Kenntnisse reichen nicht.

Bei Aufruf:
/usr/local/bin/weewx-DWD/dwd-mosmix --config=/home/weewx/weewx.conf --print-uba=aqi --dry-run 509

kommt der JSON String immer zusätzlich mit der Ausgabe:

successfully downloaded https://www.umweltbundesamt.de/api/air_data/v2/airquality/json?date_from=2022-03-10&date_to=2022-03-11&lang=de&station=509
[
    {
...

Da ich diese Ausgabe für meinen Zweck in diesem Moment nicht möchte, habe ich kein --verbose angegeben und debug mit 0 sowie log_success überall mit False konfiguriert. Zum Eingrenzen des "Problems" habe ich den Code in download_uba testweise mit zwei prints so verändert:

...
        if reply.status_code==200:
            print('self.log_success is ', self.log_success)
            print('self.verbose is ', self.verbose)
            if self.log_success or self.verbose:
                loginf('successfully downloaded %s' % reply.url)
...

Ausgabe mit beiden Werten False aber trotzdem successfully ...:

self.log_success is  False
self.verbose is  False
successfully downloaded https://www.umweltbundesamt.de/api/air_data/v2/airquality/json?date_from=2022-03-10&date_to=2022-03-11&lang=de&station=509
[
    {
...

Ändere ich aber zum Test mal so und setze die Variablen:

...
        if reply.status_code==200:
            self.log_success = False
            self.verbose = False
            print('self.log_success is ', self.log_success)
            print('self.verbose is ', self.verbose)
            if self.log_success or self.verbose:
                loginf('successfully downloaded %s' % reply.url)
...

dann ist die Ausgabe wie erwartet ohne successfully ...:

self.log_success is  False
self.verbose is  False
[
    {
...

Kann es sein, dass z.B. diese Zuweisung:
self.log_success = forecast_dict.get('log_success',config_dict['DeutscherWetterdienst'].get('log_success',config_dict.get('log_success',False)))
keinen "echten" Boolean erzeugt?

Viele Grüße und ein schönes Wochenende
Henry

Ergänzung:
ist in der weewx.conf log_success nirgends definiert, ist die Ausgabe auch korrekt, da dann der default False in der Zuweisung den Boolean offensichtlich korrekt setzt.

Unschöner Leerraum in Text-Vorhersagen

Eigentlich kein neues Problem, konnte ich aber bislang in wget_dwd selber mit sed-Pattern fixen. Jetzt erfolgt der Download (praktischerweise) direkt durch dwd-mosmix, und dann habe ich dieses Leerraumproblem wieder zurück:

Wenn ich die textuelle Wettervorhersage mittels
#include raw "dwd/VHDL50_DWSG_LATEST.html"
(oder auch ohne raw) einbinde, werden die Leerräume aus dem HTML-File (richtigerweise) mitgerendert. Die HTML-Datei beginnt aber z.B. mit einer Leerzeile und hat rund um die Überschrift im <strong> weitere Leerzeilen, so daß der Text unschön nach unten rutscht
`Leerzeile

<strong>

Nachts im Norden ...

</strong>

Leerzeile

Text

Leerzeile`

Auch das Visualisieren hier ist mühsam, da der Markdown (bei mir?) Code nicht umbricht, solange ich nur ein Linefeed benutze - das ist aber ein Github-Problem.

Hier im Screenshot sieht man die unschönen Leerzeilen:
grafik

Hauptursache wird sein, daß die Datei eine DOS-Datei mit aus Linux-Sicht falschem CR/LF ist. iconv/recode lösen leider nicht das Leerzeilen-Problem.

Was tun?

Install Errors

You have closed my last report, while you have "fixed" the error, but here is the new error:

Using configuration file /etc/weewx/weewx.conf
Install extension 'weewx-dwd.zip' (y/n)? y
Extracting from zip archive weewx-dwd.zip
Traceback (most recent call last):
File "/usr/share/weewx/weectl.py", line 74, in
main()
File "/usr/share/weewx/weectl.py", line 66, in main
namespace.func(namespace)
File "/usr/share/weewx/weectllib/init.py", line 121, in dispatch
namespace.action_func(config_dict, namespace)
File "/usr/share/weewx/weectllib/extension_cmd.py", line 116, in install_extension
ext.install_extension(namespace.source, no_confirm=namespace.yes)
File "/usr/share/weewx/weecfg/extension.py", line 138, in install_extension
extension_name = self._install_from_file(extension_path, filetype)
File "/usr/share/weewx/weecfg/extension.py", line 168, in _install_from_file
extension_name = self.install_from_dir(extension_dir)
File "/usr/share/weewx/weecfg/extension.py", line 212, in install_from_dir
save_config |= installer.configure(self)
File "/tmp/tmp5kts_gke/weewx-DWD-master/install.py", line 83, in configure
KeyError: 'USER_ROOT'

Fehlendes warnicon warn_icons_eis_pre.png

Eigentlich nicht Dein Problem - die pre Icons scheinen in "warnicons_nach_stufen_50x50_zip.zip" (File hat im Download wirklich den doppelten zip im Dateinamen) zu fehlen - ging mir im Sommer mit gewitter_pre auch schon so.

Habe für mich einfach warn_icons_eis_3.png kopiert auf warn_icons_eis_pre.png

Grüßle aus dem verschneiten Süden, Michael

Wettervorhersage in vorhandene Diagramme integrierbar?

Kaum gibt es ein neues Feature (Darstellung der DWD-Vorhersagen als Diagramm), schon kommen die Anwender-Begehrlichkeiten:-)

Statt die Vorhersagen als zusätzliche Grafiken zu generieren, fände ich es toll, wenn die bereits existierenden Diagramme um die Vorhersagedaten "verlängert" werden könnten. Vorstellen könnte ich mir z.B. die Verbreiterung aller Diagramme um 3 Einheiten (Stunden oder Tage), wo die Vorhersagedaten etwa gestrichelt angehängt werden.

Aktuell könnte man ja schon die Vorhersage-Grafiken rechts hinter den Diagrammen mit den aktuellen Meßwerten rendern. Das hätte einen ähnlichen Effekt, allerdings vermutlich leider mit anderer, vertikaler Skalierung (da andere min/max-Werte). D.h. vielleicht wäre es schon hinreichend, wenn die vertikale Skalierung von den Diagrammen mit den Meßwerten übernommen werden könnten.

BTW ich nutze den Standard-Seasons-Skin (da Belcherton zu langsam auf meinem Tablet rendert).

No warnings displayed

Hi, the system works fine last weeks but now we have warnings (in warnings.json) but they are not displayed. Is these a general issue?
Thank you.
Regards,
Martin

dwd:
/usr/local/bin/dwd-warnings 2>/dev/null >/dev/null
[DeutscherWetterdienst]
    path = /etc/weewx/skins/neowx-material/dwd
    [[warning]]
        icons = ../neo/dwd/warn_icons_50x50
        states = Bayern
        [[[counties]]]
            Kreis Miltenberg = BY

Komische Fehlermeldung no such table: forecast_day_wind

Ich nutze ja seit Mitte Oktober 2023 das DWD forecast Modul auf meinem Raspberry pi3. Da ich gestern ein komisches Problem mit den GPIOs hatte, habe ich seit Langem mal wieder ins journalctl geguckt. Bzgl. GPIO gabs keine Fehlermeldungen, wohl aber bzgl. weewx-DWD. Die Fehler treten zeitabhängig auf, und zwar an JEDEM Tag immer exakt zwischen Mitternacht und 05:15 in 5min Abstand - unten nur ein Fehlerblock von journalctl als Beispiel

[Sorry - wieder cut&paste-Problem mit UNIX-ASCII ohne CR - aber immerhin lesbar]

Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: Caught unrecoverable exception in generator 'weewx.imagegenerator.ImageGenerator' Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** no such table: forecast_day_wind Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** Traceback (most recent call last): Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** File "/usr/share/weewx/weedb/sqlite.py", line 39, in guarded_fn Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** return fn(*args, **kwargs) Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** File "/usr/share/weewx/weedb/sqlite.py", line 233, in execute Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** return sqlite3.Cursor.execute(self, *args, **kwargs) Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** sqlite3.OperationalError: no such table: forecast_day_wind Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** During handling of the above exception, another exception occurred: Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** Traceback (most recent call last): Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/reportengine.py", line 197, in run Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** obj.start() Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/reportengine.py", line 385, in start Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** self.run() Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/imagegenerator.py", line 44, in run Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** self.gen_images(self.gen_ts) Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/imagegenerator.py", line 109, in gen_images Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** plot = self.gen_plot(plotgen_ts, Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/imagegenerator.py", line 248, in gen_plot Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** start_vec_t, stop_vec_t, data_vec_t = weewx.xtypes.get_series( Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/xtypes.py", line 100, in get_series Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** return xtype.get_series(obs_type, timespan, db_manager, aggregate_type, Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/xtypes.py", line 920, in get_series Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** return ArchiveTable.get_series(obs_type, timespan, db_manager, aggregate_type, Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/xtypes.py", line 167, in get_series Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** agg_vt = get_aggregate(obs_type, stamp, do_aggregate, db_manager) Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/xtypes.py", line 127, in get_aggregate Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** return xtype.get_aggregate(obs_type, timespan, aggregate_type, db_manager, Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/xtypes.py", line 1102, in get_aggregate Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** row = db_manager.getSql(sql, timespan) Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/manager.py", line 579, in getSql Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** _cursor.execute(sql, sqlargs) Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** File "/usr/share/weewx/weedb/sqlite.py", line 47, in guarded_fn Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** raise weedb.NoTableError(e) Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** weedb.NoTableError: no such table: forecast_day_wind Nov 13 00:00:33 imurr9 python3[579]: weewx[579] ERROR weewx.reportengine: **** Generator terminated

Es sieht für mich so aus, als ob in der DWD forecast sqlite DB jeweils in dem Zeitraum die Tabelle forecast_day_wind fehlen würde, und nur die. Datenlücken habe ich aber trotzdem nicht, da ich mir die Wind-Vorhersagen nachts noch nie angeguckt habe. Tagsüber ist der Fehler weg, die Windvorhersagen sehen plausibel aus.

Das Ganze tritt seit Anfang November auf. journalctl-Einträge aus der Zeit davor habe ich leider nicht, da aufgrund eines kurzen Stromausfalls Anfang November mein Raspi abgestürzt ist, aber problemlos wieder gebootet hat. D.h. gut möglich, daß mein DWD-Problem irgendeine Datei beschädigt haben könnte. Aber warum funktioniert die DWD-Vorhersage vollkommen fehlerfrei zwischen 5:15 und Mitternacht??

Ratlos, Michael

weewx.conf location

Ich grüße Sie,

ich versuche gerade, Ihr Paket der Wetterwarnungen in meine weewx Installation zu implementieren. Ich bin bis zu dem Punkt erfolgreich angelangt, wo die die weewx.conf gepflegt werden muss.

Ich habe nun schon einige Stellen versucht, jedoch startet weewx nicht mehr, wenn ich die weewx.conf um:

[DeutscherWetterdienst]
....

erweitere. An welcher Stelle haben Sie Ihre weewx.conf gepflegt?

Würde mich über eine Antwort sehr freuen.

Viele Grüße aus Bonn,

Nubi

Missing warnicons

Just a minor issue... Currently there is a pre warning for heavy rain. But the corresponding icon is missing within warn icons (as linked within the main description. The missing file is warn_icons_gewitter_pre.png.

Please update the warn icon zip file.

Koordinaten, die für Belchertown-Ausgabe bei der Abstandsbestimmung und bei AQI verwendet werden.

mosmix scheint AQI über Aeris abzurufen.
INFO successfully downloaded https://api.aerisapi.com/airquality/closest?p=52.152493,9.929383&format=json&radius=50mi&limit=1&client_id=zyx&client_secret=xyz
Hier werden wohl die fixen Koordinaten der Wetterstation verwendet.

Kann man dies in dem dwd-mosmix-call.sh.tmpl fixen? [Edit: habe eben # command 'aqi' converts to Belchertown format in dwd-mosmix gefunden und damit denke ich ... nein]

Oder sollte man etwas in dwd-mosmix verändern?

    def download_aeris(self, what):
        if what=='aqi':
            url = (
                "https://api.aerisapi.com/airquality/closest?p=%s,%s&format=json&radius=50mi&limit=1&client_id=%s&client_secret=%s"
                % (self.latitude, self.longitude, self.forecast_api_id, self.forecast_api_secret)
                )
        else:
            return []

Ich glaube, dies ist das erste Mal das self.latitude auftaucht:

        # almanac
        stn = config_dict.get('Station',dict())
        self.latitude = float(stn.get('latitude'))
        self.longitude = float(stn.get('longitude'))

Originally posted by @teffi71 in #30 (reply in thread)

Aufruf von dwd-cap-warnings unklar

dwd-cap-warnings ist ja ein Link, bei mir
ln -s /usr/share/weewx/user/capwarnings.py /etc/weewx/scripts/dwd-cap-warnings

Die Konfiguration in /etc/weewx.conf sieht so aus:
`[DeutscherWetterdienst]

path = /etc/weewx/skins/Seasons_DWD/dwd
[[warning]]
    icons = icons/warn
    states = Baden-Württemberg
    [[[counties]]]
        Kreis Ludwigsburg = KL
    [[[cities]]]
        Stadt Ludwigsburg = SL

`

Wenn ich dwd-cap-warnings wie im README beschrieben aufrufe, wird der zip-Dateiname als Dateiname für die Warnmeldung genutzt, d.h. ich bekomme zwei Dateien
`
/etc/weewx/scripts/dwd-cap-warnings --weewx --resolution=city Z_CAP_C_EDZW_LATEST_PVW_STATUS_PREMIUMCELLS_COMMUNEUNION_DE.zip

-rw-r--r-- 1 root root 2 10. Mär 08:44 warn-Z_CAP_C_EDZW_LATEST_PVW_STATUS_PREMIUMCELLS_COMMUNEUNION_DE.zip.json
-rw-r--r-- 1 root root 167 10. Mär 08:44 warn-Z_CAP_C_EDZW_LATEST_PVW_STATUS_PREMIUMCELLS_COMMUNEUNION_DE.zip.inc
`
aber keine zip-Datei an sich. Die .json/.inc enthalten die Warnungen für Stadt Ludwigsburg.

Laut Beschreibung sollte es auch möglich sein, feiner granularer Wettermeldungen auf Basis der WarncellID zu bekommen - wäre in meinem Fall 808118054;Gemeinde Murr;Murr;;BW Aber mir ist unklar, wie das z.B. in weewx.conf zu konfigurieren ist.

PS: Mir gelingt es nicht, hier im GIT-Text Code-Fragmente mit <> sauber einzugeben. Da fehlen immer die CRs. Als "workaround" füge ich manuell einzelne CRs ein, was den Code-Text immerhin etwas leserlicher macht.

dwd.py POI/CDC Zuordnung Icon und Wetterbeschreibung teilw. fehlerhaft

Habe am Abend die Daten für DWD POI/CDC auf meiner Seite verglichen. Dabei ist mir aufgefallen, dass evtl. die Zuordnung Icon zu Wetterbedingung fehlerhaft ist. In meinem Beispiel war es bedeckt und ein Schneefallicon.

Ich hänge mal Screenshots an. Zeitlich ist es bei mir heute evtl. etwas eng, sonst hätte ich mehr Voranalyse gemacht. Ich schreib's hier trotzdem, evtl. siehst Du ja das Problem sofort. Sonst schaue ich, dass ich mehr Infos geben kann wenn ich wieder da bin.

Konfiguration ist: icon_list = belchertown

Screenshot_20230131_221312_Opera
Screenshot_20230131_221335_Opera
Screenshot_20230131_221545_Opera

Parameter --belchertown zeigt in der 3H Ansicht keine maximale Windgeschwindigkeit

Hallo, bei mir wird in der 3H Ansicht der Vorhersage keine maximale Windgeschwindigkeit angezeigt (Platzhalter Wert "NaN").

Ein testweises Einfügen in dwd-mosmix z.B. nach Zeile 1120 von 'windGustKPH':rec['FFmax'], behebt den Fehler.

ach ja, und bitte nicht denken ich meckere über noch nicht fertigen Code, ich möchte nur unterstützen ;-)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.