Hallo Zusammen Ich besitze eine Bresser 5-in-1 Wetterstation (7002510). Vor ca. einer Woche habe ich mir aus einem Adafruit Feather ESP-S2 Board und dem Adafruit Radio FeatherWing (RFM95W) eine Anbindung an MQTT, Influx und Grafana gebaut um die Wetterdaten zu speichern und auszuwerten. Hierzu verwende ich folgende Library: https://github.com/matthias-bs/BresserWeatherSensorReceiver Den Versand per MQTT habe ich selbst realisiert. Ich habe nun aber das Problem, das es immer wieder Kommunikationsausfälle gibt, und zwar teilweise Minutenlang. Im Normalzustand läuft es über Stunden fast fehlerfrei (1-2 Pakete in 5h Verlust sind verkraftbar), dann gibt es aber immer wieder grössere Pausen (>3min) oder Perioden mit häufigen einzelnen Ausfällen. Zuerst hatte ich die WIFI / MQTT anbindung im Verdacht, hier habe ich aber bereits in offensichtliches Kommunikationsproblem ausgeschlossen, da im log von Mosquitto keine connect/disconnect des Feathers ESP32 kommt. Ebenfalls gibt es im Log meines Wlan-Accespoints keine Logs des ESP32 was bedeutet das er nie "neu" verbunden hat. Auf dem ESP32 habe ich eine Prüfung eingebaut ob eine Wifi und MQTT Verbindung besteht, wenn nicht, wird neu gestartet. Im Log von Telegraf gibt es auch keine Hinweise das die Influx-DB nicht verfügbar war. Somit schliesse ich die Verbindung [ESP32] -> [WIFI] -> [Mosquitto] -> [Influx] erst mal aus. Ich suche hier nach der Ursache für das Problem. Anbei habe ich zwei Screenshot angehängt wo man die Ausfälle sieht. In Rot habe ich die Zeitbereiche "Pause" beschriftet damit ihr euch etwa die Grössenordnung vorstellen könnt. Das generell Empfangen funktioniert aber sehr gut, wenn man sich 1-2 Stunden die Pakete in MQTT anschaut wird genau alle 24s ein Datenpaket versendet (die Station sendet alle 24s an den ESP32). Zudem habe ich die Software auch so gestaltet das auch "Teildatensätze" übertragen werden würden. Hat jemand von euch eine Idee woran das liegen könnte bzw. ein ähnliches Problem schon mal gehabt?
:
Bearbeitet durch User
OtasLab O. schrieb: > Den Versand per MQTT habe ich selbst realisiert. Ich habe nun aber das > Problem, das es immer wieder Kommunikationsausfälle gibt, und zwar > teilweise Minutenlang. Ist vielleicht die Fehlerbehandlung nicht ausgefuchst genug?
uwe schrieb: > OtasLab O. schrieb: >> Den Versand per MQTT habe ich selbst realisiert. Ich habe nun aber das >> Problem, das es immer wieder Kommunikationsausfälle gibt, und zwar >> teilweise Minutenlang. > > Ist vielleicht die Fehlerbehandlung nicht ausgefuchst genug? Welche Fehler meinst du?
OtasLab O. schrieb: > uwe schrieb: >> OtasLab O. schrieb: >>> Den Versand per MQTT habe ich selbst realisiert. Ich habe nun aber das >>> Problem, das es immer wieder Kommunikationsausfälle gibt, und zwar >>> teilweise Minutenlang. >> >> Ist vielleicht die Fehlerbehandlung nicht ausgefuchst genug? > > Welche Fehler meinst du? *Fehlerbehandlung != Fehler* Solltest du wiederkehrende, teilweise minutenlange Kommunikationsausfälle nicht als Fehler betrachten - dann ist ja alles gut.
OtasLab O. schrieb: > Im Normalzustand läuft es über Stunden fast > fehlerfrei (1-2 Pakete in 5h Verlust sind verkraftbar), dann gibt es > aber immer wieder grössere Pausen (>3min) oder Perioden mit häufigen > einzelnen Ausfällen. .. > Das generell Empfangen funktioniert aber sehr gut, wenn man sich 1-2 > Stunden die Pakete in MQTT anschaut wird genau alle 24s ein Datenpaket > versendet (die Station sendet alle 24s an den ESP32). .. > Hat jemand von euch eine Idee woran das liegen könnte bzw. ein ähnliches > Problem schon mal gehabt? Schau erst mal ob überhaupt alle Pakete im RFM95 Modul ankommen. Z.B. mit einem Paketzähler den du mit logs. Die HF geht ja manchmal seltsame Wege und kommt manchmal auch gar nicht an. Eine olles Backup via USB3 drück hier z.B. das SNR auf 868MHz um ~6dB. (Der RTL-SDR Stick im Metallgehäuse hängt am selben PC(nuc). SNR hat rtl_433 errechnet)
Ich habe jetz die letzen tage etwas herumprobiert, und habe jetz umgestellt das ich die beiden Datenpakete separat und direkt verarbeite denn: - alle 12s kommt Wind+Temp+Feuchte - alle 24s kommt Wind+Regen Da ich die Werte im Datenpaket teilen. Die Bibliothek wartet gerne bis beide empfangen sind, und meldet erst dann einen den OK-Zustand. Ich verarbeite aktuell jedes Paket, was schon zu deutlich weniger Ausfällen führt. Ich vermute das es zu Timing-Problemen innderhalb der Funktion gibt die Daten abholt. Nichts desto trotz kommt es zu kleineren Kommunikationsunterbrüchen die sich immer ansammeln, es geht also mehrere Minuten nicht, und dann wieder z.b. 80min Fehlerfrei. Ich kenne mich mit HF und Funk fast garnicht aus, aber was ich bis jetz probiert und analysiert habe ist folgendes. - Die Bibliothek versucht mittels radio.receive(buffer, 27) ein Datenpaket zu erhalten, ist dies gelungen, wird buffer[0] auf den Wert D4 geprüft, ist dies nicht korrekt, wird das Paket verworfen. - Ich habe nun eine Ausgabe eingebaut, das sobald ein Paket empfangen wird, dies in der Konsole ausgegeben wird, egal was der Inhalt ist. - Die Pakete der Wetterstation haben immer einen RSSI von ca. -71 bis -80 - Zusätzlich empfange ich aber leider auch sehr viele "fremde" Pakete mit RSSI >100. Ich frage mich daher, ob es möglich ist, das es dazu kommen kann das Pakete von der Wetterstation "gleichzeitig" wie fremde Pakete ankommen, und somit entweder die kompletten Wetterdaten "überschreiben" oder zerstören? Der Empfänger für die Wetterstation sitzt sehr nahe an der Station (hinter einer Scheibe, ca 1.5m entfernt. Gäbe es eine möglichkeit den Empfang des RFM95 bewusst künstlich zu verringern (in Hardware oder Software) so das dieser quasi nur noch wenige Meter Reichweite hat um festzustellen ob dann eine Verbesserung möglich ist?
:
Bearbeitet durch User
Hier z.b. ein aktuelles Beispiel: T:88514ms RSSI:-103.00 BC 5F FF FF 5B EF 9F FE FF ..... T:88556ms RSSI:-89.50 D4 C3 DB 14 40 07 ED 18 FD ..... Hier wird bei 88514ms ein falsches Paket empfangen, und 42ms später ein korrektes. Dafür das es normalerweise zwischen den Wetterstationen fast keine Paket gibt, sind diese z.b. schon aufällig nahe bei einander.
Ich habe mittlerweile Neugikeiten: Ich hatte gestern abend gegen 21:00 die Auswerteelektronik in einen anderen Raum verschoben und den Antennendraht unter eine Haube aus Alufolie gesteckt, der RSSI der Wetterstation sank so um ca. 20dBm, das brachte aktuell die Verbesserung das seit gestern aben um 21:00 nur ein einzelnes Paket von wohl ca. 3600 Paketen nicht empfangen wurde. Diese Fehlerquote von <0.1% ist völlig akzeptabel. Nun muss ich nur noch einen Weg finden wie ich eine Antenne bauen kann, welche ohne eine Aluhaube schon einen weniger guten Empfang hat.
OtasLab O. schrieb: > Nun muss ich nur noch einen Weg finden wie ich eine Antenne bauen kann, > welche ohne eine Aluhaube schon einen weniger guten Empfang hat. Meine erste Antwort: Wer Funk kennt, nimmt Kabel. Bei Funk musst du immer mit Störungen rechnen, die Frequenz gehört dir nicht alleine! Am einfachsten ist es, den Draht ganz weg zu lassen oder ihn zu kürzen. Das Empfangsmodul arbeitet auch ohne Antenne, es kann allerdings sein, dass es gar nichts mehr empfängt. Also musst du dich an die für dich optimale Länge herantasten.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.