Regenerfassung mit KS300

Hallo,

da es hier im Forum anscheinend Unstimmigkeiten bezüglich der Funktionsweise des Regensensors der KS300-Wetterstation gibt, habe ich mit tatkräftiger Unterstützung von Rainer (RWN) ein Skript zur Regenerfassung geschrieben.

Der große Vorteil dieses Skripts: Es ist absolut unabhängig von der tatsächlichen Bit-Breite des KS300-Wippenzählers.
Die Unabhängigkeit wird dadurch erreicht, dass nur die untersten 8 Bit (das unterste Byte) ausgewertet werden. Es wird immer nur die Differenz zum vorausgegangenen Messwert ermittelt.

Die Bit-Breite war hier des Öfteren Gegenstand ausgiebiger Diskussionen. Sie ist offensichtlich bis heute nicht zweifelsfrei geklärt. Ab sofort spielt sie auch keine Rolle mehr. :wink:

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : KS300_Regenerfassung.ips.php
Trigger  : Regenzaehler_neu
Interval : OnUpdate
Author   : HJH
Date     : 25.05.07

Das Skript wir durch die Integer Variable "Regenzaehler_neu" OnUpdate getriggert.
"Regenzaehler_neu" ist der Zählerstand, den die KS300 ca. alle 3 Minuten meldet.
*/



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



// aktuelle Werte einlesen
$rza = GetValueInteger("Regenzaehler_alt"); // vorausgegangene Messung
$rzn = GetValueInteger("Regenzaehler_neu"); // 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
SetValueInteger("Regenzaehler_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 = GetValueFloat("Liter_heute");
$lpd += $Zuwachs*UMRECHNUNGSFAKTOR;
SetValueFloat("Liter_heute", $lpd);
?>

Der im Skript verwendete UMRECHNUNGSFAKTOR ist ein Multiplikator zur Umrechnung der Wippenschläge in mm bzw. Liter/m².
Dieser Faktor kann möglicherweise zwischen einzelnen KS300-Exemplaren leicht unterschiedlich sein. Wer seinen Sensor kalibrieren möchte, sollte nach der von Winfried (winni2) beschriebenen Methode verfahren. Um die größtmögliche Genauigkeit zu bekommen, sollte beim Einfüllen des Wassers die Wippe möglichst nie mehr als etwa 1 Schlag pro Sekunde machen. Die vorgeschlagene Menge von 5 Litern ist ein guter Wert, auch wenn der Vorgang dadurch relativ lange dauert.

Der UMRECHNUNGSFAKTOR berechnet sich, wie folgt:

UMRECHNUNGSFAKTOR = Wassermenge/Wippenschläge/Durchtrittsfläche

Bei einem Durchmesser des Trichters von 140mm beträgt die Durchtrittsfläche 0.015394 m².

Nach der Umrechnung hat der Wert immer die Einheit Liter/m² bzw. einfach nur mm.

Gruß
HJH

Hallo Hans-Jörg,

Danke für diese ausführliche Beschreibung und das Script.

ich würde die Überschrift noch anpassen KS 300-2

Damit es nicht wieder Durcheinander gibt, da die KS 300 wohl etwas anderst in der Funktionsweise ist. :slight_smile:

many thx

Ich habe mich mal ein bisschen mit dem ganzen befasst und möchte das hier mal kund tun.

Ich denke es wird auch dem ein oder anderen helfen dann die KS300-2 einzusetzen, mit doch relativ sehr guten Werten.

Vorab, ich habe keinerlei Refferenz zum messen, deswegen habe ich das Internet auf den Kopf gestellt und auch mit Messbechern usw. gearbeitet.
Hier im Forum stehen ja schon viele Zahlen für den KS300-2 im Raum-nur wo kommen sie her und wie bekomme ich sie.

Es bezieht sich hier alles auf die KS300-2!!

Fangen wir mal an, der Trichter hat eine Eintrittsöffnung von 14cm oder 0.140m. Um daraus die Fläche in m² zu erhalten gibt es diese Formel.
Wobei ich bei Pi mit 4 Nachkommastellen rechne.

F=d²*Pi/4

F=0,140²3.1415/4 oder so,
F=0.14
0.14*3.1415/4=0.0153933 m²

Folglich hat der Trichter eine Fläche von 0.0153933m²
Diese Fläche passt jetzt 64.963328 mal in einen m²

1 Liter pro m² entspricht 1mm Niederschlag

Warum das ganze jetzt? Ganz einfach, jetzt weiss ich wieviele Liter/Milliliter durch die Öffnung laufen müssen um einen Wert zu bekommen und das ganze Umzurechnen.
Da die Fläche immer gleich ist, ändert sich an der Rechnung auch nicht´s.

Nun will ich aber wissen, was zeigt mir mein Sensor denn überhaupt an. Gute Frage.

Man nehme 100ml oder 0,1 Liter Wasser :wink: lasse diese durch den Trichter laufen und multipliziere es mit der Fläche welche in einen m² passt.

Also errechnete Fläche auf den m²0.1 Liter, ergibt dann das Ergebniss von l/m² oder mm.
64.963328
0.1=6.4963328 Liter/m²

Das heisst im Klartext Wenn 100ml oder 0.1 Liter Wasser durch meinen Trichter gelaufen sind, muss ich 6.4963…Liter pro m²…mm stehen haben
Da beisst die Maus kein Faden ab.

Nun zu den Wippenschlägen.

Ich habe das mal grob gemessen, es passen auf die Wippe ca. 3.8 ml Wasser drauf, es könnten auch 3,9 oder 3,7 sein. Unwichtig.

Deswegen eine möglichst genaue Wassermenge nehmen, hier 100ml es können auch mehr sein.

Nach ca. glaube ich mitterweile 50 Messungen per Hand mit 100ml und Umrechnungen mit Bechern usw. kommen wir hier der Sache schon näher.

Bei 21 Wippenschläge was 100ml Wasser entspricht, habe ich nun einen Umwandlungsfaktor(Kalibrierwert von 0.3094) was dann einem Anzeigewert von 6.4974 Liter/m²-mm entspricht. Welcher dann einem Wert von 6.4963…gegenüber steht.

Das ganze kann noch verfeinert werden, wenn ich alle Messdaten dokumentiere und den Umwandlungsfaktor anpasse.

Neuer Kalibrierwert = 6.4963…*alter Kalibrierwert/aktuelle Anzeige.

Das ganze wird sich nicht mehr allzuviel geben.

Ich denke mit diesen Werten kann ich leben.

Wer das ganze nachvollziehen will, nur zu.

Es sollte dann wie HJH schon geschrieben hat alles sehr langsam mit dem Einfüllen von statten gehen.
Wenn man sich dann mal die Umrechnung von hier anschaut http://www.ipsymcon.de/forum/showpost.php?p=16033&postcount=26, passt das ganze schon ziemlich.
Führt man sich das ganze mal vor Augen, sind 5 Liter durch den Trichter um die 325 Liter/m², da gibt es richtig nasse Füsse :smiley:

So ich hoffe nix vergessen zuhaben, denke auch das es einigen etwas weiterhilft.

Ganz vergessen, dieser sollte dann mit 0.3094 veranschlagt werden im obigen Script.

Hallo,

ich weiss nicht so richtig, aber irgendetwas stimmt dann doch nicht mit dem Skript. Ich habe es genau so probiert wie es da steht, eben ohne etwas dran zu ändern
Ich soll gestern 128 mm Niederschlag gehabt haben, doch wo? Es nieselte gelegentlich.

mfG Franz

Hallo,

auch bei mir ohne nennenswerten Regen ein unerklärlicher Sprung bei der Regenmenge von 10 auf 70 mm.

Gruß Otto

Regenmenge.jpg

Und heute morgen sagenhafte 256 l/m². Obwohl es weiterhin nur wenig genieselt hat.

Speziell für Newbies sollte man villeicht erwähnen, dass die Regenmenge 1x am Tag (meistens um 0h00 Uhr) zurückgesetzt werden muss sosnt hat man nicht die Regenmenge auf 24h.

mfG Franz

Hallo,

bei mir läuft es einwandfrei. Ich setze morgens um 7 Uhr zurück.

Bis heute morgen waren es 20.72 mm und bis jetzt wieder 12.99 mm. Bei uns regnet es auch ganz gut, seit gestern morgen.

Was mir bis jetzt an der Ks300-2 aufgefallen ist, sind manchmal Spizenwerte nach oben oder unten, Temp, Wind. Bei Regen ist mir das jetzt noch nicht aufgefallen. Ist allerdings auch sporadisch aber fast immer Nachts.

Nee, aber in diesem Fall bleibt der Wert bei 256 stehen und wird nur noch weiter inkrementiert.
Ich werde ihn heute abend mal auf null setzten, und dann schau ich mir das mal weiterhin an.

mfG Franz

Hallo Franz,

hast Du eventuell nicht den KS300-2 sondern den KS300-4?

Dort gibt es das „verdrehte Byte“ bei der Übertragung nicht…

Hallo,

möglicherweise ist die neue „1-Byte“-Korrektur nicht so fehlerrobust wie die alte „2-Byte“-Version. Ich habe beide Skripte parallel laufen und heute folgende Situation gefunden:



Messpunkt   KS300  1-Byte  1-Byte-Liter   2-Byte  2-Byte-Liter
-------------------------------------------------------------
     1      2307     48         29,6       2352       29,6
     2      2054     96         41,4       2144      -21,7
     3      2323     49         93,0       2353       29,8
     4      2339     50         93,3       2354       30,1

Der Messpunkt 2 war wohl ein Mess- oder Übertragungsfehler. Bei der 2-Byte-Korrektur habe ich einen falschen (negativen) Wert; anschließend aber eine korrekte Messreihe. Bei der 1-Byte-Korrektur erhalte ich innerhalb von 10 min. einen Sprung von 29,6 auf 93,3 Liter.

viele Grüße
Otto

Nee, ich hatte mal die Werte mitgeloggt, und es ist eine fehlerhafte version, also KS300-2 !

mfg Franz

Hallo Franz,

ich habe auch die KS300-2. Mit der 2-Byte-Korrekturfunktion (unten) habe ich korrekte Regenmengenverläufe. Mit der 1-Byte-Korrektur die bekannten Sprünge (hier um 12:30 Uhr).

Gruß Otto

Regenmengen_Korrektur.gif

Ich hatte den Zähler letzte Nacht auf Null gesetzt und heute morgen stand die Regenmenge wieder auf sagenhaften 92 Liter. Ich probier das Skript nochmal ohne Korrektur vom LSB. Ich hoffe, dass mir das Aufschluss gibt.

mfG Franz

Lass mal den Faktor raus um den absoluten Fehler zu sehen. Damit kann man dann hoffentlich auf den BitFehler schließen.

So, heute hatte ich wieder Wischer drauf diesmal auch bei Regen obwohl keiner war. An dem Zählerwert hat sich auch nichts geändert.

Das ganze Teil spinnt.

Regen 79,21
Wind 110 Km/h
Feuchte 8%
das ganze um 9:45
Es liegt nicht am Script!

Ich tausche den Sensor um

Batterien ? Sensor anderswo aufstellen wegen besserem Empfang ?

Probier das mal !

Hallo Rainer,
hast Du einen Nachbarn mit einem KS300 oder ist bei sonst Sendemäßig was in der Luft ? Von deiner Firma ?

Hallo ,

ich habe die KS300, FHZ1300 und eine WS300. Das Script von HJH stimmt hundertprozentig mit der Anzeige auf der WS300 überein. Allerdings ist dies nicht die Regenmenge in L/Tag , sondern die Gesamtregenmenge.
Toll fände ich es wenn jemand mal dahinterkommen würde wie man die „Es regnet“ Meldung richt ig in IPS auswertet und dann angezeigt bekommt.

Viele Grüße Klaus

Na, dann ist ja mal einer zufrieden.

Ja klar ist das die Totalregenmenge. Wenn du auf 24h haben willst, musst du den Wert einmal im Tag auf 0 rücksetzen.

mfG Franz