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