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.