Hallo,
muss doch noch einmal aktiv werden. Die If Abfragen überblicke ich noch nicht in Ihren Auswirkungen…
Mein Problem ist, das die Tür nachts auch mal selbstständig aufgeht, ohne das die Bewegungsmelder Aktivität melden. Das schafft Verunsicherung wenn mann im Bett liegt und denkt " Da kommt jemand :D".
Das Script zum Öffnen wird nur von den beiden Bewegungsmeldern getriggert (wenn die auf True springen).
<?
echo "=============================================================================
";
echo "===== UG Kellertür öffnen ==================================================
";
echo "=============================================================================
";
// Trigger einschalten über den BMI UG Treppenhaus bei Variablenänderung
//Fuer Testzwecke koennen Debugausgaben aktiviert werden
// Debug-Modus an=true / aus=false
$debug = true;
// Variablen
$time = date("H:i");
$SperrzeitVon = "23:00";
$SperrzeitBis = "07:45";
$UgTuerSoftSwitch = GetValue(48725 /*[31 UG Türsteuerung\UG Tür]*/ );
// $TuerSchalterUG = GetValue(46869 /*[05 LCN\LCN Binäreingänge\B5B7 UG Tür\B5B7 UG Tür]*/ );
$BmiUgFlur = GetValue(56690 /*[05 LCN\LCN BMIs\M201 UG Kellertür BMI5\M201 UG Kellertür BMI5 Status]*/ );
$BmiEUgTreppe = GetValue(27206 /*[05 LCN\LCN BMIs\M11 EGUG Treppenhaus BMI5\M11 EGUG Treppenhaus BMI5 Status]*/ );
if($debug) {echo "
";}
if($debug) {echo "time: $time
";}
if($debug) {echo "SperrzeitVon: $SperrzeitVon
";}
if($debug) {echo "SperrzeitBis: $SperrzeitBis
";}
if($debug) {echo "UgTuerSoftSwitch: $UgTuerSoftSwitch
";}
if($debug) {echo "BmiUgFlur: $BmiUgFlur
";}
if($debug) {echo "BmiEUgTreppe: $BmiEUgTreppe
";}
if((($time >= $SperrzeitBis) And ($UgTuerSoftSwitch == 0) || ($time <= $SperrzeitVon) && ($UgTuerSoftSwitch == 0)) And (($BmiUgFlur = True) Or ($BmiEUgTreppe = True)))
{
// 1. Tür öffnen
if($debug) {echo "If erfüllt!
";}
LCN_SwitchRelay(25703 /*[05 LCN\LCN Relais real\R75S Kellertür]*/ ,true); //Tür öffnen
$Sender = "UG Tür öffnen";
$Meldung = "UG Tür geöffnet, UGTürSoftswitch: $UgTuerSoftSwitch, SperrzeitVon: $SperrzeitVon, SperrzeitBis: $SperrzeitBis, BmiUgFlur: $BmiUgFlur, BmiEUgTreppe: $BmiEUgTreppe";
ATN_SetValueEreignisListe(51159 /*[00 generische Scripte\Systeminfo v2\SInfo2]*/ ,$Sender,$Meldung); // ID der HTMLVariablen, Sender , Meldung die angezeigt wird
}
else
if($debug) {echo "Else erfüllt!
";}
$Sender = "UG Tür öffnen";
$Meldung = "UG Tür nicht geöffnet, If Bed. nicht erfüllt! UGTürSoftswitch: $UgTuerSoftSwitch, SperrzeitVon: $SperrzeitVon, SperrzeitBis: $SperrzeitBis, BmiUgFlur: $BmiUgFlur, BmiEUgTreppe: $BmiEUgTreppe";
ATN_SetValueEreignisListe(51159 /*[00 generische Scripte\Systeminfo v2\SInfo2]*/ ,$Sender,$Meldung); // ID der HTMLVariablen, Sender , Meldung die angezeigt wird
?>
Ausgabe vom Script:
===== UG Kellertür öffnen ==================================================
time: 10:42
SperrzeitVon: 23:00
SperrzeitBis: 07:45
UgTuerSoftSwitch: 0
BmiUgFlur:
BmiEUgTreppe:
If erfüllt!
Während die Scriptausgabe beim manuellen Aufruf des Scriptes korrekt keine Aktivität bei den Bewegungsmeldern zeigt, ist die Ausgabe im Webfront mit BmiUgFlur = 1 eigentlich falsch.
Darüber hinaus sollte die IF Bedingung nicht erfüllt sein. Bin gerade etwas konfus, wie ich diese Situation eingrenzen kann?
Was meint Ihr,
Gr, Stromer