Nachdem ich nun vor einigen Tage erfolgreich eine "uralte" Matrix Station mit weewx "verheiraten" konnte, habe ich folgende Frage/Problem.
Der Windmesser der Station fällt schon seit längerem immer mal wieder (acuh längere Zeit) aus bzw. liefert keine Daten mehr. Das war auch unter meteohub so. Das ist nicht schön, aber auch nich so tragisch.
Unter meteohub waren dann halt einfach keine Daten in der Aufzeichnung.
Unter weewx wird aber nun von dem Treiber ws23xx.py im logfile folgendes geliefert
Code: Alles auswählen
weewx[426591] INFO weewx.drivers.ws23xx: invalid wind reading: speed=51.0 dir=247.5 overflow=5 invalid=0
immer exakt 114.08403444890453 mph.
Natürlich kann ich gut die Werte mit z.B. phpAdmin entfernen, da es ja auch immer der gleiche Wert ist.
Das kann man ja auch ggf. automatisieren und regelmäßg ausführen lassen.
Schöner wäre jedoch das die Werte erst gar nicht in die DB geschrieben werden.
Frage 1: Warum wird der Wert in die DB übernommen, wenn er doch "invalid" ist?
Ich habe mir dazu den Treiber angeschaut und auch den entsprechenden Absatz gefunden, der dafür wohl zuständig ist:
Code: Alles auswählen
ws, wd, wso, wsv = data['wind']
if wso == 0 and wsv == 0:
packet['windSpeed'] = ws
if packet['windSpeed'] is not None:
packet['windSpeed'] *= 3.6 # weewx wants km/h
packet['windDir'] = wd
else:
log.info('invalid wind reading: speed=%s dir=%s overflow=%s invalid=%s'
% (ws, wd, wso, wsv))
packet['windSpeed'] = None
packet['windDir'] = None
packet['windGust'] = None
packet['windGustDir'] = None
Frage 2: Vielleicht kann mir jemand einen Tipp geben wie hier die Schleife (und das scheint ja eine zu sein) befüllt wird.
Evtl. muss ich die Abfrage erweitern?
z.B. "Wenn speed=114.08403444890453 dann setze speed=0"
Oder so ähnlich? Oder geht das auch einfacher?
Danke und Grüße
wedder_man