Um über PHP mit der Datenbank kommunizieren zu können, benötigen wir eine Extension und eine dll Datei. Diese sind im Anhang.
Datei libpq.dll kommt in den IPS Ordner, Extension php_pgsql.dll in den ext Ordner. Dazu den Dienst beenden und die Dateien dorthin kopieren. Nach Dienststart im Log kontrollieren ob sie eingebunden sind. Alternativ mit
<? phpinfo();?>
Jetzt kann es losgehen. In IPS legen wir uns eine Kategorie Datenbank Graphen an. Darunter ein Script Variablenupdate. In das Script, kopieren wir folgenden Inhalt.
<?
// Verbindungsaufbau und Auswahl der Datenbank
$dbconn = pg_connect("host=192.168.1.45 port=5432 dbname=ipsgraphenlogging user=ips password=ips") or die ('Verbindungsaufbau fehlgeschlagen: ' . pg_last_error());
// Tabelle erstellen über ausführen, bitte nur einmal klicken ansonsten hagelt es Fehlermeldungen!
if($IPS_SENDER == "Execute")
{
$create = " CREATE TABLE Variablen (
ID SERIAL,
VARID INTEGER NOT NULL,
VARNAME TEXT,
VARSUFFIX TEXT,
VALUE REAL,
TYP INTEGER,
UPDATEZEIT TIMESTAMP,
PRIMARY KEY(ID)
);";
pg_query($dbconn, $create);
}
// Datenbank mit Werten von Variablen füllen
if($IPS_SENDER == "Variable")
{
$variablenName = IPS_GetObject($IPS_VARIABLE);
$variable = IPS_GetVariable($IPS_VARIABLE);
$varType = $variable['VariableValue']['ValueType'];
$profil = IPS_GetVariableProfile($variable['VariableCustomProfile']);
$suffix = $profil['Suffix'];
setDataSql($IPS_VARIABLE, utf8_encode($variablenName['ObjectName']), utf8_encode($suffix), $IPS_VALUE, $varType, date('Y-m-d H:i'));
}
function setDataSql($varID, $varName, $suffix, $value, $typ, $time)
{
global $dbconn;
$setSQL = 'INSERT INTO Variablen(varid, varname, varsuffix, value, typ, updatezeit) VALUES ';
$setSQL .= "('".$varID."','".$varName."','".$suffix."','".$value."','".$typ."','".$time."');";
pg_query($dbconn, $setSQL);
}
// Verbindung schliessen
pg_close($dbconn);
?>
Hier brauchen wir jetzt wieder die Portnummer welche wir uns merken sollten(hoffentlich aufgeschrieben, sonst nachsehen). In $dbconn unter Port eintragen falls different und die IP-Adresse anpassen. Nun klicken wir einmal auf Ausführen, jetzt wird unsere erste Tabelle in der Datenbank erstellt. Zur Kontrolle sehen wir im pgAdmin nach(einmal auf den rot-grünen Kreis klicken) und unter unserer Datenbank sollte eine Tabelle vorhanden sein.(Tabellen(1)).
Sooft auf + klicken bis unsere Spalten erscheinen.
Ab sofort können wir die Tabelle mit Daten füllen. Dazu erstellen wir im Script ein Ereignis(Ausgelöstes Ereignis) wählen eine Variable aus, welche wir loggen wollen und wählen Bei Variablenänderung.
Ab jetzt wird bei jeder Variablenänderung der Variable diese mit ID, Namen, Wert, Typ, Suffix und Zeit in die Datenbank geschrieben.
Zur Kontrolle in pgAdmin auf variablen->rechte Maustaste->Daten anzeigen->Alle Zeilen zeigen. Es sollte eine Darstellung wie im Anhang ersichtlich sein. Bei entsprechenden Daten.
sql.rar (182 KB)