MySQLData V2 für IPS V2

Hallo Thomas,

gute Idee. Danke für den Tipp!
Fleissabreit ist gut, hab 36 Variablen zum umbenennen. Naja, im Vergleich zur V2 Umstellung sitz ich das auf einer Backe ab :wink:

Grüße
andrge

36 ist doch ein Klacks, hatte über 100 zu ändern, geht aber schnell von der Hand.

Viel Erfolg.

Gruß
Thomas

Hallo,

kann man aber auch per Script oder GUI machen. Nehmt einfach das Admin Tool von mySQL, damit ist das ein Kinderspiel.

Moin,

Nehmt einfach das Admin Tool von mySQL,

ja klar mit was denn sonst ???
Es gibt doch kein Mensch mehr Befehle in dem schönen schwarzen Kasten ein oder ??

Bis man sich da ein Script für gebaut hat, ist man mit der händischen Änderung schon fertig :wink:

Gruß
Thomas

Hallo Thomas,

soweit passt jetzt alles, bis auf das „varconfig“ file. Wenn ich die config aufrufe erhalte ich den Fehler:
„Parse error: parse error, unexpected T_DOUBLE_ARROW in C:\IP-Symcon\Web\mySQLData2.0.3\varconf.php on line 51“

Wie kann ich die beiden „varconfig“ files der bestehenden V1 und der V2 zusammen werfen?

ciao
andrge

Hi,

dieses Problem wurde glaube ich von Bruns schon mal besprochen.

Hier mal mein Script (varconf.php), müsste fast das gleiche sein:

<?
include("../includes/weblogin.inc.php");

header ("Pragma:no-cache");
header("Cache-Control:private,no-store,no-cache,must-revalidate");

if( $_SERVER["PHP_AUTH_USER"]!= $ben1 or
$_SERVER["PHP_AUTH_PW"]!= $pw1)
{
Header('HTTP/1.1 401 Unauthorized');
Header('WWW-Authenticate: Basic realm="Bitte einloggen"');
echo "Sie haben den Vorgang abgebrochen!";
return;
}
else
{
unset($_SERVER["PHP_AUTH_PW"]);
?>

<HTML>
<head>
<link rel="stylesheet" type="text/css" href="css/mystyle.css">
</head>
<BODY>	
<BR>
<center>
<TABLE width="80%" border="0">
	<TR><TD align="left"><B>Konfiguration Trends:</B></TD>
	</TR></TABLE><BR><BR>
<?
include ("include/logindb.inc.php");

mysql_select_db("ipsdatav2") or die("Auswahl der Datenbank fehlgeschlagen");
?>
<form name="mydbneu"  method="post" action="varconfneu.php" target="_self">
<TABLE width="80%" border="0"><TR><TD>Beschreibung</TD><TD>Einheit</TD><TD>IPS Variable</TD></TR>
<TR>
<TD align="left"><input name="fbeschreibung" type="text" size="30" maxlength="40"></TD>
<TD align="left"><input name="feinheit" type="text" size="15" maxlength="15"></TD>
<TD><select name="fvariable" size="1"><option></option>
<?
$variables = IPS_GetVariableList();		
$select = "SELECT id, ipsvar FROM dataconf ORDER BY ipsvar";
$query = mysql_query($select);
while($row = mysql_fetch_array($query)) {																				// Array usedvars erzeugen, enthält eine Liste aller
  $usedvars[$row['ipsvar']] = $row['id'];																					// Liefert ein Array mit ID's aller Variablen
}
foreach($variables as $varID) {	
if (!array_key_exists($varID, $usedvars)) { 																								// Jeden Eintrag des Arrays verarbeiten
	$varinfo = IPS_GetVariable($varID);																						// Liefert Infos zur Variable mit der ID $varID
	if ($varinfo['VariableValue']['ValueType'] != 3) {														// Es handelt sich nicht um eine Stringvariable
		$vartype = ($varinfo['VariableValue']['ValueType'] == 0 ? 'Boolean' : '').
							 ($varinfo['VariableValue']['ValueType'] == 1 ? 'Integer' : '').
							 ($varinfo['VariableValue']['ValueType'] == 2 ? 'Float' : '');
		$varinfo = IPS_GetObject($varID);																						// Liefert allgemeine Infos zum Objekt $varID
		$varname = $varinfo['ObjectName'];              														// Den Namen der Variable erfassen
		$options[$varID] = $varname.", ".$vartype;
	}
}
}
asort($options);																																// Die Variablen sortieren
foreach($options as $number => $text) {
	echo '<option value="'.$number.'">'.$text.'</option>';												// und als option-Tag mit Value ausgeben
}
?>
</select></TD>	
<TD align="left"><input type="submit" name="submit" value="anlegen"></form></TD></TR>
</table><BR><BR>

<form name="mydbdel"  method="post" action="varconfdel.php" target="_self">
<Table class="tab_normal" witdh="100%" cellspacing="3" cellpadding="3" >
  <COLGROUP>
		<COL WIDTH="5%">
	  <COL WIDTH="30%">
		<COL WIDTH="10%">
		<COL WIDTH="45%">
		<COL WIDTH="10%">
		
	</COLGROUP>
<TR class="tab_headline"><TD>Delete</TD><TD>Beschreibung</TD><TD>Einheit</TD><TD>IPS Variable</TD><TD>Type</TD></TR>
<?
$pkeys = "";
$select = "SELECT * FROM dataconf order by description";
$query = mysql_query($select);
while($row = mysql_fetch_array($query)) {
	if (IPS_VariableExists((int)$row['ipsvar'])) {
		$varName = IPS_GetLocation((int)$row['ipsvar']);
	} else {
		$varName = "#".$row['ipsvar']." (unbekannte ID)";
	}
?>
<TR class="tab_normal_line"><center><TD><input type="checkbox" name="fdelete_<?echo $row['id'];?>"><center></TD>
<TD><?echo $row['description'];?></TD>
<TD><?echo $row['einheit'];?></TD>
<TD><?echo $varName;?></TD>
<TD><?echo $row['vartype'];?></TD>
</TR>
<?
$pkeys = (string)$pkeys.$row['id'].",";
}
?>
</TABLE><BR>
<input type="hidden" name="fpkeys" value="<?echo $pkeys;?>">
<input type="submit" name="delete" value="Delete"></form></TD></TR>
<?	
mysql_close();
}

?>
</center>
</BODY>
</HTML>

Die Passwortabfrage kannst du ja entfernen wenn du die nicht benötigst.

Probier mal und gib dann wieder bescheid.

Und die varconfneu.php:

include ("include/logindb.inc.php");
mysql_select_db("ipsdatav2") or die("Auswahl der Datenbank fehlgeschlagen");
$variable = $_REQUEST["fvariable"];						// Hier wird die ID der Variablen übergeben
$varInfo = IPS_GetVariable((int)$variable);
$varType = ($varInfo['VariableValue']['ValueType'] == 0 ? 'Boolean' : '').
           ($varInfo['VariableValue']['ValueType'] == 1 ? 'Integer' : '').
					 ($varInfo['VariableValue']['ValueType'] == 2 ? 'Float' : '');
$description = &$_REQUEST["fbeschreibung"];
$einheit = &$_REQUEST["feinheit"];
$polltime = 1;
//$polltime=&$_REQUEST["fpolltime"];

if ($description) {
 $insert="INSERT INTO dataconf SET ipsvar='".$variable."', vartype='".$varType."'
 , description='".$description."', einheit='".$einheit."', polltime='".$polltime."'";
 $tempvar = mysql_query($insert);
 $alter="ALTER TABLE data ADD COLUMN `".$variable."` ".$varType." NOT NULL DEFAULT 0";
 $tempvar = mysql_query($alter);
 If ($tempvar == false)
{
echo "<center><h1>Trend schon vorhanden, Trend konnte nicht angelegt werden!</center></h1>";
}
else
{
echo "<center><h1>Trend wurde erfolgreich gespeichert!</center></h1>";
}

}
mysql_close();
?>
<HTML>
	<meta http-equiv="refresh" content="3; URL=./varconf.php">
</HTML>



Hier noch das ccs File:

body  {  background-color:#FFFFFF;
         text-align:center;
         font: 12pt Arial;
         }
h1    {  text-align:center;
         color:#000000;
         font: 12pt Arial;
         }


h2    {  text-align:center;
         color:#000000;
         font: bold 12pt Arial;
         }



p,li  { font: 8pt Arial;
        letter-spacing:0.2mm;
        word-spacing:0.8mm;
        color:black;
        }

table { font: 12pt Arial; border: none; 
      }


.hauptmenu { align:left;
             background-color:#88AABB;
             font: 10pt Arial;
             }

a.hauptmenulink:link          {color: #000000; font: bold 9pt Arial; text-decoration:none}
a.hauptmenulink:visited       {color: #000000; font: bold 9pt Arial; text-decoration:none}
a.hauptmenulink:hover         {color: #2020FF; font: bold 9pt Arial; text-decoration:none}


.submenu { align:left;
           background-color:#88AABB;
           font: 10pt Arial;
           }

a.submenulink:link          {color: #000000; font: bold 10pt Arial; text-decoration:none}
a.submenulink:visited       {color: #000000; font: bold 10pt Arial; text-decoration:none}
a.submenulink:hover         {color: #2020FF; font: bold 10pt Arial; text-decoration:none}

a.ccdatalink:link          {color: #000000; font: bold 10pt Arial;}
a.ccdatalink:visited       {color: #000000; font: bold 10pt Arial;}
a.ccdatalink:hover         {color: #2020FF; font: bold 10pt Arial; }



.tab_normal { align:center;
              border:2px solid black;
              background-color:#CCE6FF;
              border-collapse:collapse;
              empty-cells:show;
              font: 8pt Arial;
              text-align:left;
              color:#000000;
              rules:groups;
             }

.tab_headline { background-color: #CCE6FF;
                color:#000000;
                border:2px solid black;
                empty-cells:show;
                font: 9pt Arial bold;
                rules:groups;
              }
.tab_normal_line  { background-color:#C0C0C0;
                    border-color:#000000;
                    color:#000000;
                    font: 8pt Arial;
                    border-top:2px solid black;
                    empty-cells:show;
                    rules:groups;
                    }
.tab_secound_line  { background-color:#22AABB;
                    border-color:#000000;
                    color:#000000;
                    font: 8pt Arial;
                    border: none;
                    empty-cells:show;
                    rules:groups;
                    }                    

.tab_headfield { background-color:#22AABB;
                 color:#000000;
                 empty-cells:show;
                 font: bold 10pt Arial;
                }


.nav_cat {  font: 10pt Arial;
 font-weight: bold; color: #000000; text-decoration: none; background-color:#FF9C10;}
.nav_sub { font: 9pt Arial;
 font-weight: normal; color: #000000; text-decoration: none; background-color:#F9EAA7}
.nav_sub_link { font: 9pt Arial;
 font-weight: normal; color: #000000; text-decoration: underline;}


a.menulink:link     {color: #808080; font: bold 10pt Arial; text-decoration:none}
a.menulink:visited  {color: #000000; font: bold 10pt Arial; text-decoration:none}
a.menulink:hover    {color: #00008B; font: bold 10pt Arial; text-decoration:none}

.menutext-s        {color: #808080; font: bold 8pt Arial; }
.menutext-m        {color: #808080; font: bold 12pt Arial; }
.menutext-l        {color: #808080; font: bold 16pt Arial; }
.menutext          {color: #808080; font: Arial; }

.header            {color: #FFFFFF; font: bold 12pt Arial; background-color: #F9F1C9; }
.subheader         {color: #000000; font: bold 12pt Arial; }
.normaltext        {color: #000000; font: 10pt Arial; }


.standard {color: black;font: 10pt Arial}
.small {color: black;font: 9pt Arial}

a:link { color:#000080; text-decoration:none; }
 a:visited { color:#000080; text-decoration:none;  }
 a:hover { color:#33CCFF; text-decoration:none;  }
 a:active { color:#0000EE;  }
 a:focus { color:#00AA00;  }


Gruß
Thomas

Hallo Thomas,

ich hatte wohl Tomaten auf den Augen. Das mit der Zeile 51 wurde wirklich von Bruns beschrieben.

Ich habe den Fehler der Zeile 51 korregiert, nun bekomme ich die richtige Poller Konfiguration wieder angezeigt. Nur werden jetzt keine aktuellen Daten aufgezeichnet. Wenn ich auf ein altes Datum gehe (noch von der V1 geschrieben) bekomme ich Kurven angezeigt.
Ich verwende das Skript der Version V2.0.3 - 001. Es wird auch getriggert. An was kann´s den jetzt noch liegen???

Grüße
Andreas

Hallo,

ich bin Newbie und schlage mich gerade so mit mein Perl Kenntnissen durch bzw. mach gerad learnig by doing mit PHP.

Tolle Arbeit mit dem MYSQL Graph Addon.

Die Beispielscripte zur Korrektur die hier gepostet wurden sind nicht ganz 1:1 verwendbar ?

Ich glaub das Problem ist die Funktion die aufgerufen wurde, um die MySQL Verbindung herzustellen in den neuen Scripten hier. Der Syntax in den alten PHP Scripten war leicht anders und ich denke es wird deswegen auch keine Verbindung zur DB hergestellt.
Die logindb.inc.php gibt’s ja nicht.


// include ("include/logindb.inc.php"); 
// mysql_select_db("ipsdatav2") or die("Auswahl der Datenbank fehlgeschlagen")

// habe ich ersetzt durch

include ("./mysql.php"); 
$link = dbopen();

Das scheint bei mir zu funktionieren. Weiß nicht hoffe das nicht noch mehr angpasst werden muss.

Weiß gar nicht womit ich mich zuerst beschäftigen soll, so viele Möglichkeiten gibts mit IPS bzw.tolle Ideen die schon umgesetzt wurden hier im Forum.

Also als nächstes muss ich rausfinden wie ich die Graphen regelmäßig erstellen lasse und in Webseiten einbinde.

Bis dann

Sascha

Hi,

hier kannst du dir das neueste Paket herunterladen, damit sollte eigentlich alles funktionieren (habe zumindest bisher keine negative Rückmeldung).

Gruß
Thomas

Hallo,

danke probier ich mal aus … da schien noch mehr im Argen zu sein ganz so einfach gings dann doch nicht :slight_smile:

Sascha

Hallo MySQL´er

ich würde gern nochmals den Gedanken für Tagesauswertungen aufbringen. Wäre es möglich einmal am Tag werte einzulesen und diese Tageweise auszuwerten?
Leider fehlen mir die Kenntnisse um selber die MySQL anzupassen.

Grüße
Andrge

Liebe MySQLData - Fangemeinde :slight_smile:

ich möchte euch heute einmal kurz über den aktuellen Status des Projekts informieren.

Nach meinen bisher gemachten Erfahrungen und den aus der Analyse des DUG-Tools (übrigens eine ganz hervorragende Arbeit, und sehr durchdacht das Ganze… meinen Glückwunsch an Tobias zu diesem gelungenen Projekt) gewonnenen Erkenntnissen habe ich mich entschlossen, MySQLData einer Totalkur zu unterziehen:

  • Aus Speicherplatzgründen (meine MySQLData-Datenbank hat inzwischen fast 400MB und wächst täglich um 0.5MB an) wird die Erfassung der Messwerte wie im DUG-Tool auf Change-Ereignis umgestellt. Dazu müssen dann auch umfangreiche Anpassungen an der Diagrammerzeugung erfolgen.
  • Es wird eine automatische, zyklische Diagrammerstellung geben (ebenfalls aus’m DUG-Tool „geklaut“ :rolleyes:)
  • Neben den reinen Ereignisgesteuerten Aufzeichnungen wird es auch weiterhin Zyklische Aufzeichnungen geben, damit lassen sich dann z.B. Tagesverbrauchswerte generieren und visualisieren)

Und für alle, die jetzt Angst um ihre bisherigen Aufzeichnungen haben - es gibt zukünftig einen Installer, der alle Arbeiten erledigt (auch diese Idee habe ich mir beim DUG-Tool „geliehen“ ;)) und natürlich einen Datenbankkonverter enthält, der vorhandene Altdaten in die neue Datenbank überträgt.

So, genug geplaudert, ich muss mich wieder an die Arbeit machen.

PS: Wie dem einen oder anderen aufgefallen sein dürfte sind die Änderungen ziemlich umfassend. Daher bitte ich noch um einiges an Gedult, manchmal bleibt mir nur wenig Zeit am Tag (so 1-2 Stunden) für das Projekt… :frowning:

Hallo Thorsten,

ich interessiere mich für deine neuen MySQL Aktivitäten. Hast du schon was zum ansehen?

Grüße
Andrge

Hallo zusammen,

ich beobachte zur Zeit die Lösungen welche zur Visualisierung der Messwerte in IPS wachsen … ich habe selbst 2 (DugTool/MySQLData) im Einsatz … WIIPS gefällt mir von der RRD-Datenbank nicht …

Ich sehe im Moment MySQLData bei der Datenbank im Vorteil … und DUGTool bei den Diagrammen/Design/Integration in IPS …

Und gerade nach den letzten Postings in dem DUGTool und MySQLData-Thread … sehe ich den Trend dass sich beide Projekte annähern …

Bei DUGTool wurde schon der Vorschlag gebracht doch bitte MySQL als Datenbank-Backend zu nutzen währen im MySQLData-Thread die Struktur, Diagramm-Erstellung usw. von DugTool gelobt wird.

Ohne die Arbeit der beiden Hauptakteure irgendwie schmälern zu wollen, Eure Arbeit ist echt spitze !! Frage ich mich, ob hier eventuell eine Zusammenarbeit machbar, gewünscht, möglich wäre … denn das knappste was wir alle haben ist Zeit und geteilte Arbeit ist halbe Arbeit :wink: . Bitte nicht falsch verstehen … ich bin nur auf diese Schnapsidee gekommen, da sich wie beiden Lösungen meiner Meinung nach wirklich in die gleiche Richtung bewegen …

Just my 2 cents

Viele Grüße

Andreas

PS: Ich hab da mal ganz Absichtlich ein Doppel-Posting in beiden Theads gemacht :smiley:

…ich zb. fände es schön Mysql als Datenbank zu nutzen und die Diagrammdarstellung über achmarts zu machen. So hat jeder seine eigenen Vorstellungen von den ganzen Projekten. Man kann jedoch es nicht jedem recht machen…

Hallo liebe mySQLData-Fans.

Ich möchte euch heute über die aktuellesten Entwicklungen zum Thema Datenerfassung in IPS informieren.

Zunächst die etwas traurigere Nachricht:

Ich stelle mit sofortiger Wirkung die Weiterentwicklung von mySQLData ein :(.
Das mag den ein oder anderen entsetzen (;)), ich kann aber aus zeitlichen Gründen die Weiterentwicklung nicht mehr machen,

denn

Ich arbeite jetzt intensiv an der Weiterentwicklung des DUGTools mit (was hoffentlich für den einen oder anderen eine erfreuliche Nachricht ist). Damit soll die Funktionsvielfalt des DUGTools mit den althergebrachten Basisfähigkeiten von mySQLData zusammen laufen. Wir (Tobias als Initiator und meine Wenigkeit) versprechen uns davon eine verbesserte Weiterentwicklung des DUGTools (unter uns, die anbindung von mySQL als Datenbankengine ist schon voll in der Entwicklung, danach steht ein Datenkonverter für den Umstieg von mySQLData auf DUGTool in der Warteschlange).

Ich hoffe es sind mir nicht all zu viele Böse das ich mySQLData damit in den Winterschlaf schicke, aber mich haben die inzwischen sehr weit entwickelten Fähigkeiten und Funktionen von DUGTool auch überzeugt.

Sollten noch größere Probleme mit mySQLData auftreten (also heftige Bugs) werde ich selbstverständlich entsprechenden Support machen. Das Thema Sommerzeit wird aber nicht mehr gefixt werden - dazu müsste ich weite Teile der Software umbauen.

Hallo Thorsten,

freud mich das Ihr eure Energien bündelt und gemeinsam an DUG arbeitet.

Bin auf den Ausfluss aus dem gemeinsamen Projet gespannt.

Hallo Thorsten,

wie Werner schon geschrieben hat … super dass Ihr nun zusammen arbeitet - Eure super Ideen in einen Topf werft - freue mich schon auf das DUGTool mit MySQL-db :smiley:

Wenn Ihr Alpha-, Beta-Tester sucht … ich bin dabei !!

Viele Grüße

Andreas

Hallo zusammen,

bei mir läuft immer noch diese mysql-DB und ich bin auch immer noch sehr zufrieden.

Nun möchte ich die Umstellung von IPS 2.4 auf 2.5 vornehmen, lese aber in einigen Beiträgen, dass php_mssql.dll nicht mehr läuft. Darf ich annehmen, dass php_mysql.dll aber weiterhin klappt?

Gruss NBA

Hallo,

würde mich auch interessieren, da ich als Einsteiger gleich von Anfang auf mysql setzen möchte.

Wie verhält es sich denn in IPS wenn ich bei einer Variable die Option „Datenlogging“ aktiviere? Werden die Daten dann direkt in die mysql gelogged?