FS20 SR Regensensor schaltet nicht automatisch wieder auf "FALSE"

Hallo,

habe heute endlich meinen FS20 SR Regendauersensor installiert und an IP-Symcon angemeldet. Alles ging sofort und sehr einfach. Dann habe ich also erst einmal die manuelle Funktionskontrolle mit den Tasten 1 und 2 durchgeführt. Mit diesen beiden Tasten kann man die Variable in IP-Symcon von TRUE auf FALSE und umgekehrt umschalten. Dieses verlief ebenefalls erfolgreich. Nach diesem Erfolg habe ich sofort dann ein wenig Wasser auf die Sensorfläche tröpfeln lassen und prompt zieht das Relais an und die Variable in IP-Symcon steht auf TRUE. Nach drei Minuten war denn die Sensorfläche auch schön warm, sodass das Wasser komplett wieder weg war. Also hörte man das Relais wieder knacken und nun kam die bittere Enttäuschung. In IP-Symcon war die Variable immer noch auf TRUE. Also habe ich diesen Versuch mehrmals durchgeführt und leider immer das gleiche Ergebnis bekommen. Auch habe ich schon den Regensensor 50cm entfernt von der FHZ 1300 PC gelegt und auch habe ich schon mal den Regensensor auf die Werkskonfiguration zurückgesetzt und anschließend wieder neu angemeldet. Alles jedoch ohne Erfolg. Da ich hier nun noch eine FS20 Schaltsteckdose rumfliegen hatte, habe ich diese mal als Empfänger bzw. Aktor für den FS20 SR benutzt. Und mit dieser funktionierte alles wunderbar. Die Sensorfläche war nass, dann ging die Lampe an. Die Sensorfläche war trocken und prompt ging die Lampe auch schon wieder aus. Insofern lief dieses alles wunderbar.
Da ich nun allerhand ausprobiert und getestet habe, fällt mir einfach keine Lösung mehr für mein Problem ein. Wenn ich meine Tests allerdings richtig deute, würde ich sagen, dass ich hiermit eigentlich die Fehlerquelle ziemlich auf ein Softwareproblem bei IP-Symcon lokalisiert haben sollte, oder? Naja, wer kann mir helfen, ich habe leider keine Idee mehr…

Vielen Dank schon im Voraus und viele Grüße

Akio

Hallo,

ich denke mal, es wird das gleiche Problem sein, wie beim PIRI. Hier wird die Variable auch nicht zurückgesetzt. Die wird dann einfach per Skript zurückgesetzt.

Es sind nur HMS Melder die tatsächlich wieder auf False zurücksetzen, doch bei FS20 nicht.

mfG Franz

Hallo Franz,

erst einmal vielen Dank für deine Antwort. Jedoch frage ich mich dann, wieso er mit einer FS20 Steckdose richtig funktioniert.
Ansonsten würde es mich ebenfalls interessieren, wie denn so ein Skript aussehen würde und was es bewirkt?

Vielen Dank schon im Voraus und viele Grüße

Akio

Stimmt schon. Ein Script durch die Variable triggern lassen und manuell zurücksetzen. Das muss so sein, weil nur auf diese Weise kannst du den Status des Sensors richtig erfassen.

Nehmen wir an es tröpfelt nur ein wenig, so dass der Sensor ständig zwischen true und false hin und her springt. Wenn die Variable (ohne trigger) alle Minute (als Beispiel) abgefragt wird und zufällig grad immer false drin steht, wirst du vor die Tür gehen und feststellen, dass es sehr wohl regnet.

Auf diese Art und Weise, also mit manuellem Reset, wirst du aber beim ersten Tropfen zuverlässig informiert und kannst ggf noch die Wäsche retten.

Toni

Hallo,

eigentlich wollte ich jedoch den Sensor nicht jedes mal wenn es mal wieder geregnet hat wieder manuell zurücksetzen müssen, denn dann kann ich auch bald alles andere wieder manuell machen. Insofern muss das schon automatisch geschehen. Weiterhin würde ich gerne mit diesem Sensor die Regendauer erfassen wollen, daher benötige ich jede Änderung von False auf True und umgekehrt. Die Variable für die Aktoren wie zB. Markise steuere ich, indem ich sie per „OnChange“ Funktion mit dem Regensensor verbinde. Somit fährt die Markise ein, wenn die Variable sich ändert.
Nur wie kann ich die ständig aktuelle Variable des Regensensor in IP-Symcon bekommen. Leider habe ich auch noch keinen Plan, wie solch ein Skript aussehen soll. Daher weiß ich momentan nicht mehr weiter…

Vielen Dank schon im Voraus und viele Grüße

Akio

Wenn du eine FHZ1300 Hast, kauf dir einen Wetter-Kombisensor KS300. Da haste alles drin, und hier schaltet die ‚is_raining‘ Variable auch richtig. Naja, theoretisch, denn da scehint es noch ein kleiner Bug zu geben.
Im Notfall kannst du ja immer noch die Regenmenge nehmen. Sobald der Wippenzähler sich bewegt, weiss du auch, dass es regnet ! :smiley:

mfG Franz

Hallo Akio,

hab noch mal gesucht und war fündig. Folgendes war mein Script - noch aus den Zeiten ohne 1-Wire :cool: :


<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : Regensensor_1.ips.php
Trigger  : Regensensor_1.Status
Interval : 
*/
include("Konstanten.ips.php");
include_once("Functions.ips.php");
//Variablen
$regen      = GetValueBoolean ("Regensensor_1.Status");         // Aktueller Status des Sensors
$updatetime = IPS_GetUpdateTime ("Regensensor_1.Status");       // letzter Variablen-Update
$time       = time();                                           // Aktuelle Zeit
$timedelay  = $updatetime + 25;                                 // Berechnung der Referenzzeit

//Programm
if ($regen == true)              //Einstieg nur wenn Regensensorstatus == TRUE
{
   $link = mysql_connect($server, $user, $password)
   or die("Keine Verbindung möglich: " . mysql_error());
   mysql_select_db($database) or die("Auswahl der Datenbank fehlgeschlagen");
   if ("$time" > "$timedelay")   // Ablaufzeit erreicht - Sensor trocken
   {
	  IPS_SetScriptTimer("Regensensor_1", 0);          // Stoppe script timer
      SetValueBoolean("Regensensor_1.Status", False);  // Regensensorstatus == FALSE
      // Ablegen von Ausschaltzeit und berechnete Regendauer
      $query = "UPDATE ips_rainsensor SET timestamp_off = NOW(), duration = SEC_TO_TIME((UNIX_TIMESTAMP(`timestamp_off`) - UNIX_TIMESTAMP(`timestamp_on`))) WHERE timestamp_on = timestamp_off";
      mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());
      // Lösche Regendauer < 1 min (Betauung) und Werte älter 30 Tage
      $query = "DELETE FROM ips_rainsensor WHERE duration < '00:01:00' OR timestamp_on < DATE_SUB( NOW( ), INTERVAL 30 DAY)";
      mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());
      /* schliessen der MySQL Verbinung */
      mysql_close($link);
   }
   else  // Sensor (immer noch) nass
   {
      if(IPS_GetScriptTimer("Regensensor_1") == 0)  // Nur zu Beginn der Regenperiode
      {
      // Anlegen neuer Datensatz mit Regenstartzeit = Regenendzeit
      $query = "INSERT INTO ips_rainsensor (timestamp_on, timestamp_off) VALUES (Now(),Now())";
      mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());
      /* schliessen der MySQL Verbinung */
      mysql_close($link);
      // Markise rein Befehl senden
      IPS_RunScript("markise_home");
      FS20_SIG(1);   // FS20SIG Message 1 - es regnet
      }
   IPS_SetScriptTimer("Regensensor_1", 35);  // Initialisiere den Script Timer auf 35 Sekunden
   }
}
?>

Du kannst ja den mysql-Kram rauswerfen und es mal versuchen - bei mir hat es damals bestens geplappt.

Viel Erfolg.

Gruss babba

Manuell bedeutet hier nicht, dass du etwas tun musst sondern, dass du ein Script triggern lässt, das das für dich erledigt. Von daher ist das schon automatisch, geht aber eben nicht „von selbst“ - wenn du verstehst was ich meine…

Toni

Hallo,

erst einmal vielen Dank für eure zahlreichen Antworten und Bemühungen. Allerdings verstehe ich euch wohl leider immer noch nicht richtig.
Das einzigste was ich möchte, ist das der Regensensor, wenn er Regen hat die Variable auf TRUE setzt und wenn das Relais wieder abfällt, er also kein Regen mehr hat, dass er dann die Variable wieder auf FALSE setzt. Wenn ich diese Schaltungen direkt mit anderen FS20 Komponenten verknüpfe funktioniert es doch auch. Also wieso klappt es nicht mit IP-Symcon? Gibt es denn dafür wirklich keine Lösungsmöglichkeit?

Vielen Dank schon im Voraus und viele Grüße

Akio

Kurz: Nee !

Nur FHZ1300 in Verbindung mit KS300 liefert den richtigen Regensensor mit True/False !

mfG Franz

Hallo AKio,

es ist nun mal so, wie beschrieben. Geht wirklich nicht anders zu loesen. Wie Franz schon schrieb, entweder diese Loesung oder Du nutzt 1-Wire, da gibts in Kuerze auch einen Regensensor. Hier hat babba schon einmal etwas dazu beschrieben.

Gruss Torro

Wiso Lösungsmöglichkeit? Es ist doch kein Problem, dass einer Lösung bedarf sondern absichtlich so eingebaut! Ist mir schon klar, dass du den Vorteil davon nicht sofort siehst, aber es ist wirklich einer vorhanden, versprochen :wink: Du hättest bei nieselregen (or whatever) ständig immer und immer wieder ein Event. So hast du nur einen Einzigen bei Regenbeginn. Wer sagt denn, dass ein Regenschauer mit einer Minute Unterbrechung nur ein Schauer ist und nicht Zwei - Oder wo ist die Grenze? 2 Minuten oder ein halber Tag? Es gibt hierauf keine alleinig richtige Antwort. Als musst du selbst ran.

Deine „Lösungsmöglichkeit“ hab ich doch schon geschrieben. Setz es von Hand zurück - Wo ist das Problem? Dann hast du wieder mehrere Events, nur mit einem Unterschied - Du kannst darauf reagieren und es behandeln wie du willst.

Also nochmal für „Dummies“:

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : Regen.ips.php
Trigger  : 
Interval : 
*/
   if (getValueBoolean("Regen") == TRUE)
   {
      SetValueBoolean("Regen", FALSE);
      
      // Reagiere hier auf "es regnet"
      // Fahre die Markiese rein
      // Mach die Fenster zu
      // Gib Alarm wenn die Wäsche draußen ist
   }
?>

Diese Script lässt du (oben rechts im Scripteditor unter „Events“) durch deine Variable „Regen“ triggern. Wenn dein oller Sensor nun true schaltet wird das Script getriggert und die Variable wieder zurück gesetzt.

Für noch mehr Komfort (multitrigger) könntest du hier einen Timer starten, der dann periodisch eine Zweite Variable verarbeitet und prüft ob es sinnvoll ist die erste Variable zurück zu setzen oder nicht.

Deiner Phantasie sind keine Grenzen gesetzt.

Toni

Hallo,

erst einmal vielen Dank für eure Geduld und unerschöpfliche Hilfe. Leider habe ich es aus Zeitmangel bisher nicht geschafft mich nochmal ausdrücklich bei paresy zu bedanken. Mit Hilfe von paresy habe ich nun endlich ein funktionierenden Regendauersensor. Damit auch andere User etwas davon haben, hier einmal das nötige Script:

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : Regendauer.ips.php
Trigger  : 
Interval : 
*/

if(!GetValueBoolean("Regen.Status")) { return; }

if($IPS_SENDER == "Variable") {
   IPS_SetScriptTimer("Regendauer", 10); //10 Sekunden (nach max 8 sollte ein neuer Befehl kommen)
} else {
   IPS_SetScriptTimer("Regendauer", 0);
   SetValueBoolean("Regen.Status", false);
}

?>

Also nochmals vielen Dank und viele Grüße

Akio

Klasse das du das fertige script bereit stellst :wink: TOP