Hallo!
Habe gerade das DUG Tool istalliert!
Jetzt brauche ich aber Hilfe!!!
Beim ausführen von DBupdate SQLite DUG Tool kommen folgende Fehler.
Notice: Undefined index: IPS_VARIABLE in C:\IP-Symcon\scripts\DBupdate.php on line 21
Warning: Variable #0 existiert nicht in C:\IP-Symcon\scripts\DBupdate.php on line 23
Notice: Undefined index: IPS_VALUE in C:\IP-Symcon\scripts\DBupdate.php on line 27
Warning: sqlite_query() [function.sqlite-query]: near " ": syntax error in C:\IP-Symcon\scripts\DBupdate.php on line 36
Warning: sqlite_fetch_array() expects parameter 1 to be resource, boolean given in C:\IP-Symcon\scripts\DBupdate.php on line 37
Warning: sqlite_query() [function.sqlite-query]: column IPSID is not unique in C:\IP-Symcon\scripts\DBupdate.php on line 56
Warning: sqlite_query() [function.sqlite-query]: near " ": syntax error in C:\IP-Symcon\scripts\DBupdate.php on line 63
Warning: sqlite_fetch_array() expects parameter 1 to be resource, boolean given in C:\IP-Symcon\scripts\DBupdate.php on line 64
<?
//==================================================================================
// Datei.......: DBupdate.php
// Beschreibung: speichert Variablenänderungen der Variablen, die dieses Script aufruft in der Datenbank
//
// DUG Version.....: V1.6
// SVN Revisionsnr: $Revision: 40 $
// zuletzt geändert : $Date: 2009-05-29 15:53:44 +0200 (Fr, 29 Mai 2009) $
// Author: $Author: tobias $
//==================================================================================
unset($_SERVER['argv']);
unset($_SERVER['argc']);
$logall = true;
include ("DUGToolbasis.php");
include ($DUGTOOLPFAD."sqlitebasis.php");
$dblink = dbopen();
$IPS_VarID = $_SERVER["IPS_VARIABLE"];
//Variablentyp abfragen (Boolean, Integery, Float, String)
$thisvar = IPS_GetVariable($IPS_VarID);
$varType = $thisvar['VariableValue']['ValueType'];
if ($varType == 0)
{
$varValue = (int)$_SERVER["IPS_VALUE"];
}
else
{
$varValue = $_SERVER["IPS_VALUE"];
}
//die IPS Variable in der DB suchen
$select = "SELECT * FROM Variable WHERE IPSID = ".$IPS_VarID;
$result = sqlite_query($dblink, $select);
$varindb = sqlite_fetch_array($result);
//Wenn sie noch nicht in der DB ist, muss sie angelegt werden
if (!isset($varindb['ID']))
{
//für später mal. evtl aus dem Zusatztext die Einheit extrahieren ( nur ne Idee)
$obj = IPS_GetObject($IPS_VarID);
$varName = $obj['ObjectName'];
$varText = $obj['ObjectInfo'];
$varEinheit = "unbekannt";
$varPfad = IPS_GetLocation($IPS_VarID);
if ($logall) {IPS_LogMessage("DUG Tool DB Update", "Die Variable ".$varName." mit der ID ".$IPS_VarID." ist noch nicht in der DB vorhanden.");}
//Variable in der DB neu anlegen
//als name der Variable, wird der Pfad mit dem Namen der Variablen eingetragen. Der DB Eintrag Name wird
//auch in der Legende des Graphen benutzt.
//Der Eintrag Name soll später mal veränderbar sein, während Pfad immer zur Variable gehört
$select = "INSERT INTO Variable (IPSID, Name, Typ, Einheit, MaxIntervallZeit, MaxAnzahl) VALUES ('".$IPS_VarID."','".$varPfad."','".$varType."','".$varEinheit."', 0, 0);";
sqlite_query($dblink, $select);
if ($logall) {IPS_LogMessage("DUG Tool DB Update", "Die Variable ".$varName." mit der ID ".$IPS_VarID." wurde in der DB '".$dbpfad."' angelegt.");}
}
//alle Informationen über die Variable aus der DB holen
$select = "SELECT * FROM Variable WHERE IPSID = ".$IPS_VarID;
$result = sqlite_query($dblink, $select);
$varindb = sqlite_fetch_array($result);
$override = false;
//falls eine maximale Anzahl an zu speichernden Datensätzen angegeben ist, überprüfe, ob dieses Limit schon erreicht worden ist
//falls die maximale Anazhal errreicht worden ist, wird override auf true gesetzt
//dann soll der älteste Wert neu überschrieben werden
if ((isset($varindb['MaxAnzahl'])) && ($varindb['MaxAnzahl'] != 0))
{
//abfragen wie viele Datensätze dieser Variable schon gespeichert sind
$select = "SELECT COUNT(ID) as Anzahl FROM VarEreignis WHERE VarID = '".$varindb['ID']."';";
$countresult = sqlite_query($dblink, $select);
$varcount = sqlite_fetch_array($countresult);
if ($varcount['Anzahl'] >= $varindb['MaxAnzahl']) {$override = true;}
}
if (((isset($varindb['MaxIntervallZeit']))&&($varindb['MaxIntervallZeit'] != 0)) || $override)
{
//suche den ältesten Datensatz raus
$select = "SELECT * FROM VarEreignis WHERE VarID = '".$varindb['ID']."' ORDER BY DatumZeit ASC LIMIT 1;";
$oldvarresult = sqlite_query($dblink, $select);
$varoldest = sqlite_fetch_array($oldvarresult);
if (($varindb['MaxIntervallZeit'] != 0)&&($varoldest['DatumZeit'] < (time()-$varindb['MaxIntervallZeit']))) {$override = true;}
$overrideme = $varoldest;
}
if ($override)
{
$select = "UPDATE VarEreignis SET 'DatumZeit' = '".$_SERVER["REQUEST_TIME"]."', Wert = '".$varValue."' WHERE ID ='".$overrideme['ID']."'; ";
}
else
{
$select = "INSERT INTO VarEreignis (DatumZeit, Wert, VarID) VALUES (".$_SERVER["REQUEST_TIME"].", '".$varValue."','".$varindb['ID']."'); ";
}
$result = sqlite_query($dblink, $select);
if (($result != null)&&($logall))
{
IPS_LogMessage("DUG Tool DB Update", "Variable ".$IPS_VarID." (".$varindb['ID'].") wurde in der DB '".$dbpfad."' aktualisiert.");
} else
{
IPS_LogMessage("DUG Tool DB Update", "Variable ".$IPS_VarID." (".$varindb['ID'].") konnte in der DB '".$dbpfad."' nicht aktualisiert werden.");
}
sqlite_close($dblink);
?>
Kann mir da jemand weiterhelfen?
Danke!