+ Antworten
Ergebnis 1 bis 6 von 6
  1. #1
    Registriert seit
    Jun 2007
    Ort
    Hockenheim
    Beiträge
    1,798

    Question 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
    IP-Symcon V4.4,MAC mini mit Parallels 12 und W10 und PI 5.0 Testing,15" Touch Screen,iPADs,Sonos,FHZ1300,HM Gateways,Allnet 3691,USB-T 868,Homematic: 140 Instanzen, FS20: 6 Instanzen, Allnet: 1 Instanz

  2. #2
    Registriert seit
    Mar 2007
    Ort
    Neulußheim
    Beiträge
    353

    Hi Bernd,

    damit müsste es laufen:

    Code:
    $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\n";
    }
    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.

    iP-Symcon 4.10 (Windows 10 x64 auf ESXi 5)
    Homematic | IRTrans (Ethernet) | WebLogPro' | eHZ | Bose Lifestyle 650 | SONOS | LAN-T 846 | verschiedene IP-Cams

  3. #3
    Registriert seit
    Jan 2012
    Beiträge
    1

    Standard Skript läuft nicht richtig?!

    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

  4. #4
    Registriert seit
    Oct 2018
    Beiträge
    7

    Standard Export nur für eine Variable

    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?

  5. #5
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    19,428

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

    paresy

  6. #6
    Registriert seit
    Oct 2018
    Beiträge
    7

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

Ähnliche Themen

  1. Von Newbie für Newbies: Register Variablen
    Von jwka im Forum Skripte, PHP, SQL
    Antworten: 18
    Letzter Beitrag: 26.11.12, 21:02
  2. Neues Interface FHT 8I
    Von RWN im Forum Sonstige Funkkomponenten / Wetterstationen
    Antworten: 108
    Letzter Beitrag: 11.01.12, 00:27
  3. Daten in Excel exportieren?
    Von Tetrapack im Forum IP-Symcon WIIPS für Version 1.0
    Antworten: 6
    Letzter Beitrag: 19.02.08, 17:32
  4. EXCEL Export AddIn
    Von wgreipl im Forum Ideen & Anregungen
    Antworten: 11
    Letzter Beitrag: 08.08.06, 08:18