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.
<?
/*
*******************************
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