Ereignis übergeben - Wer hat ausgelöst?

Hallo habe schon ein wenig gesucht aber weiß nicht so genau wonach. Unter Ereignissen bin ich nicht fündig geworden.

Habe ein Skript für mein Alarmanlage das von ca. 20 untergeordneten Ereignissen getriggert wird. Bis jetzt kam nur die Meldung Fenster wurde geöffnet. Nun möchte ich gerne im Skript den Auslöser ermitteln um diesen in die Prowlmeldung zu integrieren.

Habe ich für meine BWM’s gemacht, geht recht gut :

<?
$al_id = IPS_GetObjectIDByName("Alarm", IPS_GetParent($_IPS["SELF"]));
$al = GetValueBoolean($al_id);

$al_status_id = IPS_GetObjectIDByName("Alarm_status", IPS_GetParent($_IPS["SELF"]));
$al_status = GetValueBoolean($al_status_id);

if ($al)
{
switch ($_IPS['SENDER'])
	{
	    case 'Variable':

       $text = IPS_GetName(IPS_GetVariable($_IPS['VARIABLE'])['VariableID']);
//       print_r($id); //['VariableID']
       WFC_PushNotification(38327 /*[WebFront Haus]*/ , 'Alarm', $text, '', 0);
setvalue ($al_status_id, true);
IPS_Sleep(1000);
setvalue ($al_status_id, false);

       break;
	}
}
else
{


}

?>

Alarm und Alarm_status sind bool Vars unter einer Kategorie im Objektbaum, alarm_staus wird von den Meldern getriggert, Alarm ist die Hand /Auto war, wenn true wird was getan.(Schalter im Webfront).

Bestimmt nicht perfekt, aber ich habe die Meldungen auf dem Handy, wer was macht…

Und hier noch das Bild :

Vermutlich ist mein PHP zu schlecht, sitze da nur gelegentlich vor, aber ich finde nicht den Teil mit dem ich den Trigger für ein Skript auslesen kann… :frowning:

Suche im Prinzip nach einer Programmzeile: $Auslöser = GetNameTrigger oder sowas… :wink:

Ich habe das ganz mit den Namen der Ereignisse gelöst. Diese stellen den Text da welcher versendet wird.
IPS_GetName($_IPS[‚EVENT‘])
Weil die Bezeichnung der Variablen ist nicht unbedingt aussagekräftig genug.
Michael

Hat eher wenig mit PHP zu tun, sondern alles IPS Funktionen aus der Doku.

Was du suchst sind die Systemvariablen.
Systemvariablen — IP-Symcon :: Automatisierungssoftware
Und da Ereignisse auch Objekte sind, gehen diese Befehle:
Objektverwaltung — IP-Symcon :: Automatisierungssoftware
Michael

Auch da hast du Recht, aber ich nutze IPS auch zur Doku meiner Hardware-Module und ändere die Namen.
Somit ist IPS zur kompletten Doku meiner LCN Module geworden, da geht einfach mehr…

Ich ändere die Namen der Variablen ja auch, nur reicht das häufig nicht.
Michael

Danke, Systemvariablen. Das hatte ich gesucht. :slight_smile: Hatte auch in der Doku so ziemlich alles durchgeschaut, nur da nicht. Wusste nicht mehr wie die heißen. Glaube nun komme ich weiter.

Werde aber die ID nutzen und mir irgendwie nen Array basteln um von ID auf nen kurzen Namen zu kommen. Mit Pfadangabe sind mir die Infos zu lang für ne Puschnachricht.

GetName ist nicht der Pfad sondern der Name, der Pfad das wäre so aus dem Kopf GetLocation oder so.
Michael

GetName geht bei unbenannten Ereignissen nicht, ist laut Doku ein Sonderfall. Lese jetzt die ID aus, vergleiche die dann mit den Daten die ich in einem Mehrdimensionalen Array abgelegt habe und hole mir dann da einen abgelegten Namen. Läuft :slight_smile:

Dann gibt dem Kind einfach einen Namen… :rolleyes:
Michael

Oh man… :banghead:

geht auch viel schneller :wink: Sollte mich wieder öfter mit IPS beschäftigen. :rolleyes:

Kannst du mir da mal ein Bespiel nennen ?

Variable:
Rauchmelder Flur OG
Regensensor Gartenhaus
Wassermelder Keller
Das Ereignis heißt dann:
Der Rauchmelder im Flur Obergeschoss hat ausgelöst.
Es fängt an zu regnen.
Oder
Der Wasserstand im Keller erreicht das Maximum.

So brauche ich im Script keinen statischen Text.
Zumal der Text ja je Gewerk auch ganz anders lautet.
Michael

Danke Micheal,
so macht das mehr Sinn.
Werde einige Dinge hier im Haus, mal ändern…