Hallo Fabian,
offensichtlich gibt es hier im Forum mindestens drei Leute (Du gehörst leider auch dazu), bei denen immer noch Ausreißer auftreten.
Aber ich glaube, dass nach der Einführung der neuen DLL für die KS300 im Gesamtergebnis dennoch ein drastischer Rückgang der Fehlmeldungen zu verzeichnen ist. Ich habe Einblick in die Wetterstation von Rainer (RWN). Bei ihm sind seither nie wieder Fehler aufgetreten.
Noch eine Bemerkung zur Checksumme:
Man sollte die Absicherung des Datenverkehrs durch eine simple Checksumme nicht überbewerten. Soweit ich weiß wird hier eine XOR-Verknüpfung verwendet. Wenn in zwei verschiedenen Bytes dasselbe Bit einen falschen Zustand hat, so ist die daraus resultierende Checksumme korrekt, obwohl zwei Bytes falsch sind. Dieser Fehler ist also mit dieser Art der Checksummenbildung nicht zu erfassen.
Schlimmer noch, man kann den obigen Satz noch allgemeiner fassen:
Wenn in einer geraden Anzahl von Bytes dasselbe Bit einen falschen Zustand hat, so ist die daraus resultierende Checksumme korrekt, obwohl mindestens zwei (oder vier, sechs, …) Bytes falsch sind.
Man sieht, dass es jede Menge Fehlermöglichkeiten gibt, die so nicht erfasst werden können. Daher ist es besonders wichtig auch andere Kriterien zur Plausibilitätsprüfung heranzuziehen, z.B.:
- sind Vor- und Abspann vorhanden und korrekt?
- ist die Anzahl der empfangenen Bytes korrekt?
- ist die Telegrammkennung korrekt?
- und natürlich: ist die Checksumme korrekt?
Diese Prüfungen können aber nur von Paresy eingebaut werden, da er das Protokoll kennt. Von ihm ist z.Z aber keine Hilfe zu erwarten, da er mit der Version 2.0 gerade vollbeschäftigt ist.
Plausibilitätskontrollen im Skript:
Die von einigen verwendete Überprüfung auf übergroße Werte ist leider auch nicht korrekt. Dass sie zu funktionieren scheint ist reiner Zufall.
Im Prinzip wird geprüft, ob ein Wert eine bestimmte Schwelle überschreitet. Liegt er darüber, so wird er als Ausreißer gewertet. Wie groß die Abweichung ist, hängt davon ab, ob sich der Zähler schon in der Nähe des Überlaufs befindet oder nicht. Nahe des Überlaufs können Fehler unterhalb der Schwelle auftreten. Es wird also Regen gezählt, obwohl gar kein Regen gefallen ist.
Die Fehlerwahrscheinlichkeit bei diesem Verfahren kann zumindest dadurch gelindert werden, indem man die volle Breite des Zählers nutzt (12bit statt 8bit). Dann befindet sich der Zähler viel seltener (1/16tel) in der Nähe des Überlaufs.
Gruß
HJH