AC_GetLoggedValues - Was macht das Limit genau?

Hallo,

in verschiedenen Scripten verwende ich den Befehl AC_GetLoggedValues.

In untenstehendem Script hätte ich erwartet das ausgehend von der Endzeit 24h zurück der StartZeitpunkt gesetzt wird. Also der 6.9. 15:40 oder später!

Stattdessen ist es der 6.9. 8:11 - vermutlich der Moment der letzten Wasserentnahme.

Start Auswertungszeitraum: 1315289485
08:11:25 06.09.2011
Startwert Auswertungszeitraum: 13362

Ende Auswertungszeitraum: 1315402819
15:40:19 07.09.2011
Endwert Auswertungszeitraum: 13491

Was macht das Limit genau?
Wo finde ich eine Doku dieser Befehle mit Erklärungen für NichtProgrammierer?

Herzliche Grüße, Stromer

AC_GetLoggedValues
array AC_GetLoggedValues (integer $InstanceID, integer $VariableID, float $StartTime, float $EndTime, integer $Limit)
integer $InstanceID
integer $VariableID
float $StartTime
float $EndTime
integer $Limit

Skript:

<?
echo "=============================================================================
";
echo "===== Wasser Verbrauchs und Kostenberechnung Täglich, 30Tage und 365 Tage ===
";
echo "=============================================================================
";
 //

 //Fuer Testzwecke koennen Debugausgaben aktiviert werden
 // Debug-Modus an=true / aus=false
$debug = true;
$archiveID = 59811 /*[Archive Handler]*/  ;   // Archive-Handler-ID

$TarifJeLiter = (GetValue(31117 /*[19 Verbrauchsauswertungen\40 Stichtag Verbrauchswerte\Wasser\Kosten\Wassergebühr]*/  ) / 1000); // Tarif je Liter

// Variablen
$objectID = 26350 /*[14 Wasser\16 Wasseruhr\M-Bus Device Wasseruhr\Wasserverbrauch]*/  ; // Wasserzähler in Litern
$ende = time(); // JETZT
$verbrauch_akt=getvalue(26350 /*[14 Wasser\16 Wasseruhr\M-Bus Device Wasseruhr\Wasserverbrauch]*/    );

// Berechnung täglicher Verbrauch und Kosten
$StartZeit = time()-(60*60*24); // 60sec * 60min * 24h * Datenbank auslesen letzter 24h

$buffer = AC_GetLoggedValues($archiveID, $objectID, $StartZeit, $ende, 0);
$anzahl = count($buffer); // Anz. Datensätze
$wert = $buffer[$anzahl-1];
$ts = $wert["TimeStamp"];
$value = $wert["Value"];
$VerbrauchZeiteinheit=($verbrauch_akt - $value);
setvalue(41123  /*[19 Verbrauchsauswertungen\Wasser Neu\Verbrauch 24h]*/    , number_format($VerbrauchZeiteinheit,4,",", "."));

$GrundGebVerbrauchstage = ($anzahl / 96); // Anzahl Datensätze / ca. 96 je Tag = Anzahl Tage
$Kosten = ($VerbrauchZeiteinheit * $TarifJeLiter);
SetValue(20025  /*[19 Verbrauchsauswertungen\Wasser Neu\Kosten 24h]*/   , $Kosten);

if($debug) {echo " 
";}
if($debug) {echo "letzte 24 Stunden Auswertung 
";}
if($debug) {echo "Anzahl Datensätze:  $anzahl 
";}
if($debug) {echo " 
";}
if($debug) {echo "Start Auswertungszeitraum:  $ts 
";}
if($debug) {echo strftime("%H:%M:%S %d.%m.%Y",($ts)) . "
";}
if($debug) {echo "Startwert Auswertungszeitraum:  $value 
";}
if($debug) {echo " 
";}
if($debug) {echo "Ende Auswertungszeitraum:  $ende 
";}
if($debug) {echo strftime("%H:%M:%S %d.%m.%Y",($ende)) . "
";}
if($debug) {echo "Endwert Auswertungszeitraum:  $verbrauch_akt 
";}
if($debug) {echo " 
";}
if($debug) {echo "Verbrauch in den letzten 24 Stunden:  $VerbrauchZeiteinheit Liter 
";}
if($debug) {echo "Kosten in den letzten 365 Tagen:      $Kosten ct 
";}
if($debug) {echo "=================================================================== 
";}

?>

Ergebnis:

===== Wasser Verbrauchs und Kostenberechnung Täglich, 30Tage und 365 Tage ===

letzte 24 Stunden Auswertung
Anzahl Datensätze: 38

Start Auswertungszeitraum: 1315289485
08:11:25 06.09.2011
Startwert Auswertungszeitraum: 13362

Ende Auswertungszeitraum: 1315402819
15:40:19 07.09.2011
Endwert Auswertungszeitraum: 13491

Verbrauch in den letzten 24 Stunden: 129 Liter
Kosten in den letzten 365 Tagen: 0.63468 ct

Die Doku dafür wurde noch nicht erstellt, falls wir noch Änderungen an den Befehlen vornehmen wollen. (Wahrscheinlich werden diese aber so bleiben und zur 2.5 dokumentiert werden)

Limit ist die maximal Anzahl der Datensätze, die du einlesen willst. 0 = Kein Limit.

paresy

2.5!!!:eek:
Sapperlot…:smiley:
Gruß
B71

Getreu dem Motto:„Ja is’ denn scho Weihnachten…?“

Die Doku dafür wurde noch nicht erstellt

Gibt es da noch gar nichts oder vielleicht vorab ein Draft für den interessierten Benutzer der Daten aus der Logging DB auswerten will?

Mit AC Steuerung+Leertaste bekommst Du doch alle Befehle die vorhanden sind. Diese sind eigendlich selbsterklärend. Im Forum gibt es auch ein dutzend Scripts dazu.

… die Funktion hat sich aber in ihrer Verhaltensweise von 2.3 nach 2.4 geändert. Ich hatte das http://www.ip-symcon.de/forum/f52/ac_getloggedvalues-2-4-veraendert-14454/ mal angesprochen, aber kein Feedback bekommen.

Ich möchte den ersten und letzten Wert eines Zeitraums - hier der letzten 24 Stunden - zur Visualisierung in einer Energieampel.

Grüße,
Axel

Ok, also learning by trying.