Regenerfassung mit KS300

Hallo HJH,

hör mal, du nerfs doch nicht. Das Skript ist schon seit 2 Wochen das original copy/paste Skript hier aus dem Forum. Ich verstehs auch nicht mehr. Bin wohl der einzige, der Störungen hat. Ich werd mal den Standort wechseln des KS300. Vielleicht ein sporadischer Störsender

mfG franz

Hallo Franz,

der Fehler kann nicht weit entfernt liegen. Das beschriebene Fehlerbild passt einfach zu gut.

Ich bin mir ziemlich sicher, dass aus der Zeit, wo Du eine abgewandelte Version des Skripts benutzt hast, noch eine oder mehrere Zeilen versehentlich zurückgeblieben sind.

Ich vermute, dass die erste der beiden Zeilen weiter hinten in Deinem Skript noch einmal auftaucht. Damit würde dann Regenzähler_alt einen zu großen Wert bekommen.

// Zählerstand abspeichern
SetValueInteger("Regenzaehler_alt", $rzn);  // diese Zeile darf nur hier und nur einmal auftreten

// Zählerüberlauf abfangen
if ($rza > $rzn) $rzn += 256;

Schau bitte noch einmal nach.

Gruß
HJH

Hab ich,

es ist ein kompletes Copy/Paste aus dem Forum hier. Diesen Fehler kann ich ausschliessen.
Ich werde mal einfach den Standort wechseln, dann schau ich mal.

mfG Franz

Hallo KS300-Test-Team!

Bin gerade aus dem Urlaub zurück und musste erstmal nachlesen…

Also ich habe, wie oben bereits beschrieben, sporadisch auch noch einen Fehler. Es handelt sich hierbei allerdings um einen exakten Bitfehler.

Franz, es wäre gut, wenn Du mal die tatsächlichen Zählerstände mitteilen/überprüfen würdest. Die fehlerhafte Regenmenge ist zu sehr vom (variablen) Umrechnungsfaktor abhängig. Schau bitte auch mal im Log nach.

Bei mir sieht es so aus, dass immer mal ein Zählerstand übertragen wird, der von den anderen um ein Bit abweicht. Die nächste Übertragung ist dann wieder korrekt.
Beispiel gestern 13:53
korrekter Zählerstand vorher und nachher: 0x710
fehlerhafter Zähler (um 13:53): 0x700

(Die Angaben sind Rohdaten, wie sie vom KS übertragen werden)

Gruß
Fabian

PS: In diesen Fällen zeigt aber das Debug-Log, dass der Fehler scheinbar vom KS kommt. Das Interessante daran ist, es tritt erst auf seit dem die dll geändert wurde… :confused:

Hallo,
nachdem der Regen 3Wochen korrekt gemeldet wurde hatte ich heute morgen gegen 6.00 Uhr wiedermal einen Aussreißer von ca. 750l Regen.

Vielleicht kann sich nochmal jemand dieses Problem ansehen?

Grüße

Wolfi

Hallo,

hatte ich auch, nur wollte es keiner so richtig wahrhaben.

Ich habe jetzt wieder meine Plausibilitätsabfrage eingebaut, ein wenig modifiziert, doch jetzt läuft es fabelhaft. Habe seitdem keine Ausrutscher mehr.

mfG Franz

Hallo Franz,

hast Du den letzten Post von mir gelesen? Wie sehen die Daten im Log bei Dir aus?

Gruß
Fabian

Hallo Fabian,

ich hatte noch keine Zeit irgendein Log zu starten. Ich bin ehrlich, bin momentan mit meinem xComfort-Umbau beschäftigt, deshalb liegt KS300 momentan auf Eis.
Ich werde das später wieder in Angriff nehmen.

mfG Franz

nochmal Bild nachgereicht.

Ist hier noch jemand an dem Problem dran?

Grüße

Wolfi

Ich habe heute die FHZ unters Dach gelegt und eine aktive USB-Verlängerung dazwischen.
Abstand zur KS300 jetzt nur noch ca 4 m und Sichtverbindung.
Empfang geht endlich wieder einmal (wer weiss wie lange?):frowning:

nur noch ca 4 m und Sichtverbindung

Die FHZ1300PC mit der Empfangsmöglichkeit des KS300 zu bewerben ist
nicht nur irreführend sondern schon fast frech… :mad:

Komisch, ich komme aber durch mindestens 15 m Luftlinie durch 2 dicke Betonwände.
Vielleicht ich die Sendeeinheit der KS300 nur einfach schlecht kalibriert worden von Werk aus. Da ist doch so ein kleiner Poti dran, nee?

mfG Franz

Kennst Du dich damit aus. Mir ist das etwas zu gefährlich, dass ich es mir ganz versaue. Ich bin zwar Amateurfunker, aber ohne genaue Beschreibung mach ich da trotzdem nichts.
Am Anfang habe ich die KS300 über 100 Ecken gut empfangen. Dann wurde es fast unmöglich(Batterie ok). Ich dachte an einen Störsender(Funkkopfhörer, Dect oder ähnliches), konnte aber nichts feststellen.

Jetzt nach 10 Stunden gehts immer noch. Na, mal abwarten.

Hallo,

auch auf die Gefahr hin mich unbeliebt zu machen, aber die regenerfassung mit der KS300 funktioniert nicht richtig.

Heute morgen, nach knapp 8 Wochen, hatte ich wieder extreme Ausreißer in der Regenmenge.
1146,88l.
Die Regenwippe habe ich zur Zeit ausser Betrieb gesetzt, sodaß der Zählerstand konstant ist.
Ich nutze übrigens nicht den 8bit-Zähler von HJH sondern 12bit. Ansonsten Gleiches Script.
Meine Regenmenge von 1146,88l kann man zurückrechnen und siehe da es ergibt genau einen Überlauf von 4096 = 12bit.
Wenn man den 8 bit Zähler nutzt ergibt sich bei Fehlinterpretationen des Überlaufs zwangsläufig ein kleinerer max. Fehler bei der Regenmenge (256x 0,28l)= 72l
Kurz gesagt- ich vermute mal den Fehler nicht mehr unbedingt in der Datenübertragung KS300 sondern eher in der Datenverarbeitung der FHZ usw.

Grüsse
Wolfi

Habe ich auch im Verdacht, doch leider ist dieses Thema tot. Irgendwie haben nicht genug Leute Probleme damit als dass es genügend Gewicht bringen würde, irgendwas ins Rollen zu bringen.
Meine Wetterstation, die in der Küche steht, bekommt die selben Werte, zeigt jedoch keine solchen Ausreisser.

Ich habe das Problem jetzt auf meine Weise gelöst mit einer ‚Plausibilitätsabfrage‘ (verbesserte Variante) bevor ich die Daten auswerte. Und seither klappt es.

Franz

Ich muss Franz recht geben!

Leider wird uns wohl nur ein „work around“ übrig bleiben.

Bei mir funktioniert die Plausibilitätsabfrage übrigens auch sehr zuverlässig.
btw: Meine Grenze liegt bei 20l, was habt ihr da so?

Wie weiter oben beschrieben konnte ich auch ohne nachweisliche Wippenbewegung einzelne Bit-Dreher nachweisen. Mit Checksumme stimmt mich das bedenklich…
Was wird da wohl „gecheckt“? Die Bewölkung, Jahreszeit… :rolleyes:

Grüße
Fabian

Das Thema ist nicht tot, aber das ist wohl eher ne langwierige Sache. Ich habe das hier vorgeschlagene Prinzip erst seit knapp 2 Monaten im Einsatz, ein wenig erweitert mit Stunden- und Monatszähler und jeweils Vorwerte (vorherige Stunde, gestern, letzter Monat). klicksdu

Bisher läufts bei mir recht gut. Aber ich hab ein Auge drauf, wenn da was schiefgeht. Übrigens schreibe ich generell alle Daten onchange in eine SQL-Datenbank, wenn IPS also was ungewöhnliches empfängt, dürfte das nicht verlorengehen. Aber bisher wars halt ok…

Edit:

@prof: noch keine Begrenzung im Einsatz da bisher unnötig, das originale von HJH vorgeschlagene Prinzip. KS300 übrigens so 1 1/2 Jahre alt

Gruß Gerd

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

Hallo,

ich wollte einmal hören, wie der momentane Zwischenstand ist.

Ich verwende IPS v2 und habe die KS300 eingebunden. Diese Daten lasse ich in eine MySQL Datenbank schreiben.
Vor kurzem habe ich mir eine kleine Auswertung in Access gebastelt um ein paar Grafiken zu sehen. Bei mir treten die hier im Forum beschriebenen Sprünge ebenfalls auf.

Ich verwende das Originalskript siehe:

<?
/*
Author   : HJH
Date     : 25.05.07
*/

// Regenzaehler_neu = KS300_Rain_Amount

define("UMRECHNUNGSFAKTOR", 0.2469); // Faktor für die Umrechnung der Wippenschläge in Millimeter



// aktuelle Werte einlesen
$rza = GetValue(31230 /*[Außenbereich\KS300 Wetterstation\Rain Amount alt]*/); // vorausgegangene Messung
//$rzn = GetValueInteger("Regenzaehler_neu"); // aktuelle Messung
$rzn = GetValue(53930 /*[Außenbereich\KS300 Wetterstation\Rain Amount]*/); // aktuelle Messung

// zur Fehlerbereinigung die unteren Nibbles vertauschen
$rzn = (($rzn & 0x00f0) >> 4)  // oberes  Nibble des LSB 4x rechts schieben (entspricht Division durch 16)
     + (($rzn & 0x000f) << 4); // unteres Nibble des LSB 4x links schieben  (entspricht Multiplikation mit 16)

// Zählerstand abspeichern
SetValue(31230 /*[Außenbereich\KS300 Wetterstation\Rain Amount alt]*/, $rzn);

// Zählerüberlauf abfangen
if ($rza > $rzn) $rzn += 256;

// Zuwachs (Wippenschläge) seit der letzten Messung
$Zuwachs = $rzn - $rza;

// Berechnung der aktuellen Regenmenge in mm (entspricht l/m²) für den laufenden Tag
$lpd = GetValue(40377 /*[Außenbereich\KS300 Wetterstation\Liter heute]*/);
$lpd += $Zuwachs*UMRECHNUNGSFAKTOR;
SetValue(40377 /*[Außenbereich\KS300 Wetterstation\Liter heute]*/, $lpd);
?>

Ich könnte bei Bedarf die Variablen (Datum,Uhrzeit,Liter_heute und Rain_Amount) über mehrere Monate hinweg liefern.

Danke

Stefan

Funktioniert die Regenerfassung mittlerweile bei jedem (außer bei mir) komplett ohne Ausreisser?

Vielen Dank