Export Achive Handler Daten nach Excel

Hallo zusammen,

ich würde gerne das komplette Datenset des Archivehandlers nach Excel exportieren.

Könnt Ihr mir kurz helfen wie man dies nach dem Muster

Aktor ID/Wertebezeichnung als Kopf der Spalte und darunter sämtliche Daten in die Zeilen legen kann ?

Grund ist folgender:
Ich will für einen IPS Demotermin einen Auswertungstest mittels SAP BI on demand (Ihr erinnert Euch an meine Stromfresserauswertung) machen und brauche dafür meine historischen Livedaten. Diese Daten könnte man dann via der SAP App auf dem iPad aufrufen und wir hätten einen netten WOW Effekt.

Irgendeine Hilfestellung möglich ? In Bezug auf SQLlite bin ich nicht wirklich fit und eine 1:1 Kopie meines Archivehandlers wäre echt genial…

Wie gesagt: Ich brauche eine Kopfbezeichnung und die reinen Daten/Werte dann aneinandergereiht darunter.

Gruss
B71

Hi Bernd,

damit müsste es laufen:



$ArchiveHandlerId = 55645 /*[Archive Handler]*/ ;


$Filename = 'C:\IpsDbLog.csv';
$EndTime = time();   // Jetzt
$StartTime = $EndTime - 24*60*60; // -24 Stunden

// Open File
$fh = fopen($Filename, 'w');
if ($fh==false)
	return;
// ColumnHeader
fwrite($fh, "VariableId;Location;TimeStamp;Value\r");

// alle geloggten Variablen
$Arr = AC_GetAggregationVariables($ArchiveHandlerId, false );	
foreach($Arr as $Var)
{
	$VariableId = $Var["VariableID"];
	$Location = IPS_GetLocation($VariableId) ;
	
	// aus Datenbank lesem
	$LoggedData = AC_GetLoggedValues($ArchiveHandlerId, $VariableId, $StartTime, $EndTime, 0);
	
	if ($LoggedData==false)
		continue;

	// und ab ins File
	foreach($LoggedData as $V)
	{
	   $TimeStamp = date("c",$V["TimeStamp"]);
	   $Value = $V["Value"];
		fwrite($fh, "$VariableId;$Location;$TimeStamp;$Value\r");
	}
	
	echo "$VariableId - $Location ...... done
";
}

Du musst nur noch die Archive Handler ID und das Startdatum weit genug in die Vergangenheit stellen.
Dann noch in Excel importieren und das Format anpassen. Vielleicht musst du auch noch im Code das Datumsformat anpassen.

Hallo,

ich bin sowohl in IP-Symcon als auch in PHP absoluter Neueinsteiger. Ich möchte IP-Symcon nutzen um verschiedene Temperaturen von 1-Wire-Fühlern zu loggen. Als Sensoren verwende ich DS1820. Diese sind mit einem 1-Wire-Buskoppler von eservice mit IP-Symcon verbunden. Die Sensoren werden erkannt und die Daten logge ich mittels Archive Handler. Um die Daten aber extern verwenden zu können habe ich nun über „Skript hinzufügen“ das obige Skript gestartet. Zuvor habe ich noch die ID auf 14110 abgeändert (die ID meines ArchieveHandlers). Mir werden nun 2 Fehlermeldungen angezeigt:

Warning: Wrong parameter count for ac_getaggregationvariables() in … on line 17

Line 17 ist bei mir diese Zeile:
$Arr = AC_GetAggregationVariables($ArchiveHandlerId, false );

Desweiteren bemängelt er folgendes:

Warning: Invalid argument supplied for foreach() in … on line 18

Line 18 ist bei mir diese Zeile: foreach($Arr as $Var)

Könnte mir bitte jemand sagen, was da falsch ist?
Ich würde mich sehr über Hilfestellung freuen.

Mit freundlichen Grüßen

Johannes

Hallo zusammen,

das Script funktioniert einwandfrei, vielen Dank dafür! Ich würde gerne das ganze nur für eine Variable exportieren. Als absoluter PHP Anfänger bekomme ich es leider aber nicht hin. Kann mir da jemand weiterhelfen?

Schau dir das mal an. Vielleicht ist das einfacher: SDK (Excel) — IP-Symcon :: Automatisierungssoftware

paresy

perfekt, vielen Dank, das ist genau was ich gesucht habe.