Rausfinden welches Ereignis ausgelöst hat.

So funktioniert das ganze:


<?
IF ($_IPS['SENDER']="Variable")
                {
                    $trigger=$_IPS['VARIABLE'];
                    IF ($trigger==15582 /*[Scripts\Test\Thomas]*/)
                        { $name="Thomas";
                        }
                    IF ($trigger==41453 /*[Scripts\Test\Uwe]*/)
                        { $name="Uwe";
                        }
                    IF ($trigger==46443 /*[Scripts\Test\Sonja]*/)
                        { $name="Sonja";
                        }
                    IF ($trigger==24146 /*[Scripts\Test\Birgit]*/)
                        { $name="Birgit";
                        }
                    IF ($trigger==41984 /*[Scripts\Test\Carsten]*/)
                        { $name="Carsten";
                        }
                    IF ($trigger==50052 /*[Scripts\Test\Anja]*/)
                        { $name="Anja";
                        }

                }
// Abfrage wer die Tür auf/zu geschlossen hat

IF ($_IPS['SENDER']="VALUE")
                {
                    $ist=$_IPS['VALUE'];
                    IF ($ist==1)
                        { $wert="aufgeschlossen";
                          HM_WriteValueBoolean(21119 /*[Aktoren\Schloss]*/, "OPEN", true);
                        }
                    IF ($ist==0)
                        { $wert="abgeschlossen";
                          HM_WriteValueBoolean(21119 /*[Aktoren\Schloss]*/, "STATE", false);
                        }
                    
                }
//Abfage ob die Tür auf oder zugeschlossen wurde und auf bzw zuschließen

$zeit=date("d.m. H:i:s");
//Schreibt das Datum und die Aktuelle Zeit in die Variable "zeit"

SMTP_SendMailEx(14436 /*[Aktoren\Mail\E-Mail senden (SMTP)]*/, "mail@mail.de", "INFO", "$name hat die Tür $wert. Zeitstempel: $zeit");
// Sendet eine Email mit dem Namen und Zustand der auslösenden Variable mit Datum und Uhrzeit

logging("Zutrittskontrolle","$name hat die Tür $wert.");
function logging( $dateiname, $text )
 {
    $text2=date("d.m. H:i:s")." ".$text."
";
    $datei="c:/ip-symcon/logs/test/".$dateiname.".log";
    $handler=fOpen($datei,"a+");
    fWrite($handler,$text2);
    fClose($handler);
 }
 //Schreibt die den Namen und ob auf/zu mit Datum in eine og Datei
 
?>

Bestimmt geht das auch schnöner…Aber es tut was es soll.

Besten dank an alle die mich unterstützt habe.

Für alle die es brauchen können zur Info. Ausgelöst wird das Script mit endsprechenden „Boolen“ Variablen. Hier scheint es wohl unterschiede bezüglich der Abfrage zu geben!?

Gruß Thomas

Hallo Thomas,

ein Hinweis dennoch - weil ich heute meinen pedantischen Tag habe :D: Der Code funktioniert zwar so, aber korrekt ist er deshalb nicht. Warum ?

IF ($_IPS['SENDER']="VALUE") 
                { 
                    $ist=$_IPS['VALUE']; 
                    IF ($ist==1) 
                        { $wert="aufgeschlossen"; 
                          HM_WriteValueBoolean(21119 /*[Aktoren\Schloss]*/, "OPEN", true); 
                        } 
                    IF ($ist==0) 
                        { $wert="abgeschlossen"; 
                          HM_WriteValueBoolean(21119 /*[Aktoren\Schloss]*/, "STATE", false); 
                        } 
                     
                } 

Dieser Part wird immer durchlaufen weil bei der Abfrage nur mit einem „=“ gearbeitet wird. Die IF-Abfrage ist also komplett überflüssig. Zu dem VALUE hab ich mich ja schon ausgelassen :slight_smile: Das gleiche gilt übrigens für die erste Abfrage bezgl. VARIABLE. Die ist immer erfüllt da „==“ fehlt. Das war übrigens auch in meinem Skript nicht korrekt. Da das Skript aber nie über Webfront oder andere Sender aufgerufen wird ist das nie aufgefallen. Der Code ansich ( IF-Abfrage ) ist damit überflüssig und verwirrend.

Gruß
Walter

Hi Walter,

Du hast Recht. Hab die Abfragen gelöscht und es funktioniert immer noch. Also für alle die es gebrauchen können:


<?
$trigger=$_IPS['VARIABLE'];
	IF ($trigger==15582 /*[Scripts\Auswertung\Thomas]*/)
		{
			$name="Thomas";
   	}
   IF ($trigger==41453 /*[Scripts\Auswertung\Uwe]*/)
		{
			$name="Uwe";
      }
   IF ($trigger==46443 /*[Scripts\Auswertung\Sonja]*/)
      {
			$name="Sonja";
      }
   IF ($trigger==24146 /*[Scripts\Auswertung\Birgit]*/)
      {
			$name="Birgit";
      }
   IF ($trigger==41984 /*[Scripts\Auswertung\Carsten]*/)
      {
			$name="Carsten";
      }
   IF ($trigger==50052 /*[Scripts\Auswertung\Anja]*/)
      {
			$name="Anja";
      }
// Abfrage wer die Tür auf/zu geschlossen hat

$ist=$_IPS['VALUE'];
   IF ($ist==1)
      {
			$wert="aufgeschlossen";
      	HM_WriteValueBoolean(21119 /*[Aktoren\Schloss]*/, "OPEN", true);
      }
   IF ($ist==0)
      {
			$wert="abgeschlossen";
         HM_WriteValueBoolean(21119 /*[Aktoren\Schloss]*/, "STATE", false);
      }
                    
//Abfage ob die Tür auf oder zugeschlossen wurde und auf bzw zuschließen

$zeit=date("d.m. H:i:s");
//Schreibt das Datum und die Aktuelle Zeit in die Variable "zeit"

SMTP_SendMailEx(14436 /*[Aktoren\Mail\E-Mail senden (SMTP)]*/, "mail@mail.de", "INFO", "$name hat die Tür $wert. Zeitstempel: $zeit");
// Sendet eine Email mit dem Namen und Zustand der auslösenden Variable mit Datum und Uhrzeit

logging("Zutrittskontrolle","$name hat die Tür $wert.");
function logging( $dateiname, $text )
 {
    $text2=date("d.m. H:i:s")." ".$text."
";
    $datei="c:/ip-symcon/logs/test/".$dateiname.".log";
    $handler=fOpen($datei,"a+");
    fWrite($handler,$text2);
    fClose($handler);
 }
 //Schreibt die den Namen und ob auf/zu mit Datum in eine log Datei
 
?>

Es müssen nur noch boolen Variablen angelegt werden und die ID´s oben im Script eingetragen werden. Oder Ihr nehmt direkt die Variablen Eurer Aktoren. Die Id´s der Befehle für Schloss auf und zu müssen auch gegen Eure ausgetauscht werden.

Gruß Thomas