mein Projekt: SQLite DUG Tool

Ne Frage :

Wenn ich meinen Stromverbrauch visualisiern wil, brauche ich da ne zusatzvariable?

Ich habe eine Variable wo ich den akteullen Zählerstand drinnen habe (einmal für Strom Allgemein und einmal für Strom Heizung)
Reicht es, wenn ich diese Variable aufzeichne?

Oder was sollte ich da aufzeichnen, das ich dann am besten was auswerten kann?

was sollte eigentlich der Button „Datensatz aus der DB löschen“ machen?

Solte der nicht nur die aufgezeichneten Daten löschen? Der setzt auch den Namen und die Einheit zurück.

Ich wollte nur die Datensätze löschen, da ich die Berechnung der Variable geändert habe, und die neuen Werte nicht mehr zu den alten passen …

Hallo Tobias,

ich hatte heute wieder auf einmal zwei Werte mit „,“ anstatt „.“ in der DB.
Das im ganz 2normalen" Betrieb. Dadurch hatte ich wieder Fehlermeldungen im IPS Meldungsfenster. Nachdem ich die Werte korrigiert hatte, lief wieder alles. Also muss dort wirklich noch ein Fehler im DUGTool sein. Wenn du noch mehr angaben brauchst, dann sag mir bescheid, was ich dir beim nächsten Auftreten des Fehlers zusenden soll.

Dieser Knopf soll die Variable komplett aus der DB löschen. d.h. es werden alle Informationen über die Variable gelöscht. Dazu zählt der Name, die Einheit und alle gespeicherten Werte. Die Variable ist dann nicht mehr in der DB vorhanden.

nein, wie gesagt, er löscht die Variable und damit alle Informationen darüber aus der DB.
Das die Variable wieder in deine DB aufgenommen worden ist, liegt wahrscheinlich daran, dass sie immer noch aufgezeichnet wird / worden ist. So bald sich die Variable geändert hat, hat das DUG Tool versucht diese Änderung in der DB zu speichern, hat gemerkt, die Variable gibt es aber nicht in der DB und diese mit den „Standartwerten“ neu angelegt.

Ich hoffe damit konnte ich weiter helfen.

Wichtig wäre mir die Information, bei welcher Variable dieses Phänomen auftritt. Also ist es immer die selbe Variable, bei der dieser „Fehler“ auftritt, oder passiert das bei allen Variablen mal.
Dann wäre noch interessant, zu welcher Komponente die Variable gehört. Es kann ja auch sein, dass eine IPS Komponente keinen echten Float wert zurück gibt, sondern einen String, der wie eine richtige Kommazahl aussieht.

Wenn der Fehler also z.b. immer beim selben Temeperatursensor auftritt, könnte auch da der Fehler sein.

Ich meld mich über PM nochmal. evtl werde ich dir einfach eine DUG Tool Version zuschicken, die diese „Anomalien“ mal aufzeichnet und in das IPS Log eine Warnung schreibt. Du musst dich aber bis zum WE gedulden.

Gruß Tobias

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!

Ich lasse Graphen erstellen über einen Monat mit acht Variable.
Aber leider schafft es mein Rechner nicht mehr innerhalb der 30 Seh´kunden Regel die Graphen zuerstellen.
Darum habe ich eine Bitte kann man inder nächsten Version diese Regel auf 60 Sekunden erhöhen.

Diese Graphen werden unabhängig von den anderen erstellt, keine Zeit überschreitung mit anderen Graphen.

Nur ein kleiner Wunsch

mfg
mike

Hallo,
bei mir wird eine Variable die in der Datenbank steht nicht mehr aufgezeichnet. Wie kann ich die Aufzeichnung wieder aktivieren ohne die Datensätze zu löschen?

cu uwe

Hallo habe mir die Zip Datei DUGTool heruntergeladen, auf das Verzeichniss /webfront/DUGTool installiert und alles ausgeführt.
soweit funktioniert ja alles, aber wenn ich einen Graphen einstelle auf 3 min Aktualisierung Anzeige 1 Stunde bekomme ich nach 1 Tag nur eine Linie mit der Temperatur vom erstellungszeitpunkt.

Was mache ich Da falsch

Bitte um Hilfe

lg

Bim

hallo miteinander,

ich habe das dug tool installiert, nur irgendwie hört bei mir kein webserver auf diesem port. muss ich das irgendwo erst einstellen/aktivieren ? (firewall habe ich keine).

mfg
lichti

Auf welchen Port? das DUGTool ist doch unter dem gleichen Port erreichbar, wie das WebFront. Also wenn du dein webFront auf Port 82 erreichen kannst, solltest du das DUGTool so erreichen können:

http://meine.IP.Adresse:82/DUGTool

wenn ich z.b mit tcpview gucke gibt es keinen offenen port 82.

ips hat nur einen port auf 3773 offen, und dort kommt irgendwas mit service info page. dugtool url ist dort drüber nicht zu erreichen.

daher meine frage ob ich irgendwo, irgendwie diesen port/http service freischalten muss.

grüsse,
ralf

Hallo Ralf,

ich denke Du hast Webfront noch nicht installiert.

Was steht den in der IPS-Console auf der Hauptseite.

Falls da steht „Webfront installieren“ bitte dies machen ansonsten hast Du keine funktionierende Webserver-Instanz.

Der andere Weg wäre eine neue Webserver-Instanz manuell anzulegen.

WF.png

WF1.png

ja nun geht alles, was steht das da auch so offensichtlich :stuck_out_tongue: kein wunder das ich es nicht finde.

danke dir!
mfg
ralf

Hallo zusammen.

Ich verwende auch das klasse Tool und hätte noch einen Verbesserungswunsch welcher vielleicht ja in die nächste Version übernommen werden könnten.

1: Wenn ich einen Graph angelegt habe, kann ich in diesen keine zusätzliche Variablen mehr einfügen. Ich muss ihn immer erst löschen und muss dann erneut einen Graphen mit den mehreren variablen erstellen.
wenn ich 6 Graphen habe, die mir alle die Kollektortemperatur in verschiedenen Zeitintervallen anzeigen und ich dann gerne noch die Aussentemp mit im Diagramm haben möchte, ist es schon recht nervig alle zu löschen und dann neu zu erstellen.

Vielleicht kann man das ja in die Funktion " Graphen barbeiten" mit einfügen. Einfach ein Button: Variable dem Diagramm hinzufügen.

Gruß heiko

Danke an den Vorredner

Ich würde mich über diese erweiterte Funktion freuen.

Wenn man nachträglich moch Sensoren im System installiert dann wird es nervig, weil löschen und dann wieder alles neu.

Auch meine Bitte an den Programierer

  1. nachträgliches einzelnes löschen/hinzufügen von Graphen
  2. die 30 sec. Berechnungs Intervall erhöhen

wie gesagt dies sind bitten

mfg
mike

Dem Wunsch des hinzufügens von Variablen würde ich mich auch anschliessen wollen…

Hallo Spezialisten,

ich habe das DuTool 1.61 installiert hat alles geklappt, habe auch Werte in der DB, aber beim erzeugen von Graphen fehlen anscheinend Rechte. Obwohl eigentlich nichts eingeschränkt ist. Folgende Meldung kommt:

JpGraph Error Can’t write to file „C:\IP-Symcon\webfront\DUGTool\Diagramme\Solar Vor-/Rücklauf_1.png“. Check that the process running PHP has enough permission

habt ihr einen Tipp was ich falsch mach? Auf das Verzeichnis …\Diagramme
habe ich auch schon mal „Jeder“ mit Vollzugriff eingetragen aber keine Änderung.

Danke für eure Hilfe
Bernd

Hallo Bernd,

ich denke das der Dateiname nicht FAT32/NTFS-konform ist.

Wähle für den Namen des Graphen was Einfaches. Im IP-Symcon Objektbaum kannst Du ihn anschließend nach deinen Wünschen umbenennen.

Hallo Werner,

danke für den Tip jetzt klappt alles, es lag an dem Namen.

Grüße
Bernd