Hallo Olaf - ich kenne den/das KS300 nicht, aber die Arbeitsweise sollte ähnlich der ‚alten‘ Regenmesser sein.
Angelegte Variablen - als Beispiel:
Integer „IN_FS10_RAIN“ (mein Regensensor sendet noch auf 433MHz und kommt über einen FS10-Empfänger rein)
Integer „RAIN_LAST“
Integer „IN_RAIN_MIDNIGHT“
Float „IN_RAIN_TODAY“
Konstanten.ips.php - aber Achtung ist mit Sicherheit unterschiedlich. Unbedingt in der Anleitung nachschauen wieviel ml bzw. mm einem Wippenwechsel entspricht:
// siehe Bedienungsanleitung > Regenmelder
$regenmelder_faktor = 0.088; //0.088mm pro Wippe
Das Script:
<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File : regenmelder.ips.php
Trigger : on update of "IN_FS10_RAIN"
Interval :
*/
include("Scripts/Konstanten.ips.php");
$regen_zaehler = GetValueInteger("IN_FS10_RAIN");
$regen_alt = GetValueInteger("RAIN_LAST");
// Process only if counter has changed
if ($regen_zaehler !== $regen_alt) {
$regen_delta = $regen_zaehler - $regen_alt;
// correct counter overflow
if ($regen_delta < 0) $regen_delta += 4095;
// hier soll noch eine Plausibilitätsprüfung hin
$regen_mitternacht = GetValueInteger("IN_RAIN_MIDNIGHT");
$regen_heute = ($regen_zaehler - $regen_mitternacht) ;
if ($regen_zaehler < $regen_mitternacht) $regen_heute += 4095;
$regenmenge = $regen_delta * $regenmelder_faktor;
SetValueFloat("IN_RAIN_TODAY",($regen_heute * $regenmelder_faktor));
}
SetValueInteger("RAIN_LAST",$regen_zaehler);
?>
Beim Script ist zu beachten, wie gross der Zähler im Regensensor ist, bei mir sind es 12 Bit entspricht dem Wert 4095
Kurz nach Mitternacht läuft dann noch folgendes Script:
<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File : midnight.ips.php
Trigger :
Interval :
*/
$regen = GetValueInteger("IN_FS10_RAIN");
SetValueInteger("IN_RAIN_MIDNIGHT",$regen);
SetValueFloat ("IN_RAIN_TODAY",0);
IPS_RunScript("cleanUpLogs");
?>
Alles klar? 