Scripte verallgemeinern

Hallo,

ich habe verschiedene HM-Geräte - u.a. Fenstergriffesensoren. Dabei lesen ich deren Zustand aus. Bei Änderung wird der neue Wert in eine Mysql-DB geschrieben. Das funktioniert auch gut. Im Script wende ich spezifische Werte wie Namen vom jeweiligen Fenster an. Diese möchte ich nun in ein einziges Script legen. Meine Idee:

die auslösende Variable lesen,
den Namen der HM-Instanz lesen,
den Zustand lesen,
Namen und Zustand mit Datum und Uhrzeit in die DB schreiben.

Diese Dinge hatte ich bisher manuelle gemacht. Änderungen an einem Script musste ich dadurch an allen Scripten auch machen. So habe ich eines - viel besser. (Am Ende möchte ich dann noch zusätzlich die mysql-Befehle über eine Funktion aufrufen - aber das ist die Kür.)

Aber irgendwie will das nicht so wie ich.

<?

IPS_Sleep(5000);

 /* Aufbauen einer Verbindung zur Datenbank */
include ("db_conn_ips.inc.php");


if ($IPS_SENDER == 'Variable')
	{
	$ausloesende_var = $IPS_VARIABLE;
	$state = GetValue ($ausloesende_var);

	switch ($state)
		{
		case 0;
		$zustand = "geschlossen";
		break;
		case 1;
		$zustand = "gekippt";
		break;
		case 2;
		$zustand = "geöffnet";
		break;
		}

$instanz_id = IPS_GetInstanceParentID($ausloesende_var);
$instanz_info = IPS_GetObject($instanz_id);

$objekt = $instanz_info['ObjectName'];


/* SQL-Befehl festlegen */
$sql = "INSERT INTO ips.fenster (objekt, datum, zeit, zustand) VALUES ('$objekt', curdate(), curtime(), '$zustand' )";

/* SQL-Befehl ausführen */
mysql_query($sql) or die (mysql_error());


/* Verbindung zur DB schließen */
mysql_close($connection);

	}

?>

in $objekt steht nun „IP-Symcon“ - im Anhang mein Objektbaum.

ips_1.PNG

Sieh dir das mal an. Da steht eigentlich alles drin, was Du für dein Vorhaben benötigst.

Danke.

Ich breche mir schon seit gestern die Zähne an diesem Script aus, da ich es nicht verstehe. :mad::confused:

Habe das Script mal einfach so kopiert - nicht vorhandene Variable (ganz unten). Okay: also eine String-Var angelegt. Nun kein Fehler mehr aber auch keine Anzeige im WFE. Beim Klicken auf das Script im WFE kommt nur kurzzeitig ein grünes Highlightning. Wie bekomme ich denn das so wie in Deinem Screenshot angezeigt?

Du liest alles Homematic pauschal aus? Wie kommt mam dann auf die Variable, durch das Script ausgelöst wurde, weil dort das Fenster geöffnet worden ist? Ich kapier das einfach micht!

Mein Anliegen ist folgendes:

Ein Variable löst das Script aus, z.B. STATE. Zu dieser möchte ich den Namen der zugehörigen Homematic-Instanz lesen, z.B. Giebelfenster. Zu dieser dann den Raum (also Name der Kategorie), z.B. Jasmin. Und all diese Werte sollen dann in die DB.