opendata-stuttgart / sensors-software

sourcecode for reading sensor data
571 stars 308 forks source link

NRZ-2019-125-B1, lange Dauer Messübertragung #568

Open dokape opened 4 years ago

dokape commented 4 years ago

Hi,

Der Wert der Messübertragung lag bei mir ürsprünglich bei Werten um 2000 ms. Seit ein paar Tagen liegt er bei 40 000 bis 60 000ms.

Konfiguration hier: Über eine Repeater (TP-Link RE500 mit eigener Linkstrecke zu AP mit OpenWRT, RE355) Über einen Router Linksys WRT3200ACM mit OpenWRT und Load-Balancing zu zwei Providern, Unitymedia/Vodafone Cable und Telekom VDSL). Ich habe mit keiner anderen Anwendung Probleme mit dieser Konfiguration.

Die Messwerte werden an folgende API übertragen: API Luftdaten.info (HTTPS), ping: < 30ms API Madavi.de (HTTPS), ping: < 30ms

sowie im lokalen Netz auf einen RaspberryPi, (ping im Netzwerk < 10ms) der als eigene API die Daten ebenfalls nochmals aufnimmt. Der Raspi übernimmt mit #pihole als Adblocker und Trackingfilter die DNS-Auflösung. Als Script zur Lokalen Datenspeicherung dient das alte PHP-simple-Beispiel.

Die neue Firmware 125-B1 läuft anscheinend sehr stabil seit rund 4 Wochen, wie der Zähler zeigt.

Zur Ursachensuche der hohen Werte der Messübertragung habe ich Fragen: Wie wird die Dauer der Messübertragung ermittelt? Ist es das Auslesen des SDS011? Ist es die Übertragung zu Luftdaten.info/Madavi.de? Ist es die Übertragung zum lokalen Raspi?

nrz-2019-125-B1

dokape commented 4 years ago

Ich habe mal einige Tests gemacht:

Deaktiviere ich in der Konfiguration die API Luftdaten.de, Sinken die messübertragungszeiten auf weniger als 200ms. Eine Deaktivierung lediglich der HTTPS Option bringt keine Besserung. Eine Deaktivierung lediglich von Madavi.de bringt ebenfalls keine Besserung, die Werte lagen immer noch über 10 000ms.

Deaktiviere ich die API luftdaten.info und madavi.de und lasse lediglich meine eigene API auf dem lokalen Raspi übrig, sind die Zeit der Messübertragung auf unter 10 ms.

Ich gehe daher von einem Problem der Übertragung der Daten zu Luftdaten.info aus. Responsezeiten von mehr als 50 Sekunden deuten auf irgendein anderes Problem hin.

ricki-z commented 4 years ago

Könnte man den Sensor (temporär) auf dem PiHole "freischalten"? Ich weiß aus der Vergangenheit, das dort api.luftdaten.info schon einmal auf einer Blacklist gelandet ist, weil für eine der Blacklists alle Domains genommen wurden, die aus Android-Apps heraus aufgerufen wurden. Also auch solche, von denen nur Daten geladen wurden, die für die Anwendung wirklich nötig waren. In unserem Fall haben die Apps einfach Daten von unserer API und unserem Archiv abgefragt. (EIner der Gründe, warum Blacklists, nur eingeschränkt Endanwender-tauglich sind. Denn normalerweise müsste man für jede verwendete Blacklist die genauen Kriterien für eine Aufnahme kennen und prüfen, ob das für die eigenen Bedürfnisse passt. Oder überhaupt sinnvolle Kriterien sind.)

dokape commented 4 years ago

Freischalten ist kein Problem. Ein deaktivieren des pihole brachte keine Besserung Die DNS-Anfragen auf madavi.de sind im pihole log registriert und akzeptiert. Für Luftdaten.de sehe ich keine Anfragen. Sensor.cummunity Anfragen inkl. Subdomains sind erkennbar und ebenfalls frei mit antwortzeiten unter 1s, Würde geblockt, wären keine Sensorwerte bei Luftdaten ersichtlich. Hmm..

E079BC4A-6880-4180-92FF-065BD4423B32

dirkmueller commented 4 years ago

@ricki-z ich habe das gleiche problem, irgendwas ist mit luftdaten/sensor.community kaputt. submission times > 25s sind keine seltenheit.

ricki-z commented 4 years ago

Irgend etwas blockiert gerade den Server alle 5 Minuten. Ich vermute ein Problem mit dem NAT/SAN beim Hoster. Ob es eventuell einen anderen Grund gibt muss ich schauen, habe aber erst seit heute mittag wieder einen funktionierenden Rechner.

dirkmueller commented 4 years ago

@dokape problem scheint geloest zu sein? Bei mir sind die werte wieder gut. ok zum schliessen?

dokape commented 4 years ago

Ich beobachte noch. Derzeit auf ca 2000ms runter. Was ich als subjektiv immer noch recht lange empfinde. Die paar Bytes sollten in 200ms Bereich übertragen sein. So subjektiv. (Upload hier um 30Mbit/sec)

dirkmueller commented 4 years ago

das ist definitiv lange. zum vergleich habe ich ca 600ms fuer 3 server (madavi, sensor.community und fsapp)

dokape commented 4 years ago

Gibt es eine Möglichkeit, App, Script, den Upload von Dummy-Daten nach Luftdaten.info zu generieren und zu schauen, die lange das dauert? Denn nehme ich den Upload zu Luftdaten.info raus (Häkchen weg), habe ich zu madavi und meinem Raspi noch 78ms Übertragungszeit.

bertrik commented 4 years ago

I'm running a Lora(TTN) to Luftdaten forwarder, that listens on an MQTT stream and uploads the data throught the Luftdaten HTTP API. What I saw in the past days was that the delivery took either a few 10s of ms (maybe 100 ms) or it got no response at all and timed out after 10 seconds (my own timeout). I suspect the high averages are caused by the transfers that eventually time out. My forwarder software does not retry a failed upload (new data arrives within a few minutes anyway).

This is real data, I think it would pollute the database if you would send "dummy" data.

dirkmueller commented 4 years ago

as far as I can tell this is a speciic issue with the luftdaten / sensorcommunity endpoint. and in my observation it is the SDS011 write not the environmental sensor (in my case bme280) that takes forever and in many cases times out

ricki-z commented 4 years ago

I think its more the first request than the sds011 specific one. So if the environmental data would be send first this would take longer.

dokape commented 4 years ago

I don't want to pollute the database. Therefore my question for dummy-data. I think to remember, data from not registered airrohr-IDs are uploaded but not stored. And perhaps for developing there could be a dummy-upload for dummy-data.

dokape commented 4 years ago

mähhhh, i didn't want to close it. :-( cold fingers, fast klicking. wrong button. YEAH! ;-)

UliMy-B commented 4 years ago

Ich kann das Problem bestätigen. Auch bei mir seit einiger Zeit sehr lange Meßübertragungszeit: grafik Auch scheinen viele Meßwerte nicht auf dem Server anzukommen. Die Kurver sind sehr lückenhaft: grafik Immer wieder resets, die die Anzahl der Messungen auf null setzen: grafik Es gibt auch immer wieder Zeiten, in denen die Übertragungszeit < 2s beträgt und die Menge der Unterbrechungen im Signalverlauf gering sind. Es fühlt sich so an, als ob der madavi-Server zeitweise überlastet ist. Heute früh stelle ich fest, daß das System wunderbar läuft, wenn ich die API madavi.de abschalte und nur nach sensor.community übertrage: grafik