Forum: Mikrocontroller und Digitale Elektronik Bresser 5-in-1 Wetterstation Kommunikationsuntebrüche


von OtasLab O. (otaslab)


Angehängte Dateien:

Lesenswert?

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
von uwe (Gast)


Lesenswert?

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?

von OtasLab O. (otaslab)


Lesenswert?

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?

von uwe (Gast)


Lesenswert?

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.

von EMnichtV (Gast)


Angehängte Dateien:

Lesenswert?

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)

von OtasLab O. (otaslab)


Lesenswert?

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
von OtasLab O. (otaslab)


Lesenswert?

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.

von OtasLab O. (otaslab)


Lesenswert?

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.

von Helmut -. (dc3yc)


Lesenswert?

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
Noch kein Account? Hier anmelden.