Stundenwert der letzten 24 Stunden hat immer um 0 Uhr einen falschen Wert

Hallo
Ich will mir den COP der Wärmepumpe ausrechenen gemittelt auf die letzten 24 Stunden.

$thermisch = AC_GetAggregatedValues(25692, 57384, 1 /* Täglich */, strtotime("time() - 24*60*60"), time(), 0); //57384 57384ist die ID der Variable, 25692 vom Archiv 
$elektrisch = AC_GetAggregatedValues(25692, 58317, 1 /* Täglich */, strtotime("time() - 24*60*60"), time(), 0); //58317 ist die ID der Variable, 25692 vom Archiv 

$COP = ($thermisch[0] ['Avg']) / ($elektrisch[0] ['Avg']);
Setvalue (26036, $COP);

habe dann aber immer über 0.00 Uhr einen Einbruch.

Doe WP läuft durch.
Welchen Fehler machen ich?

Bernd

Hallo
der Fehler ist immer noch da.
Niemand eine Idee?

Kann ich nicht irgendwie einen einzelnen Wert aus dem Archiv ziehen,
der 24 Stunden zurück ab dem Abfragezeitpunkt liegt?
Dann kann ich einfach den aktl. Wert minus des alten Wert zur Berechnung nehmen.

Bernd

Ja, das kannst du mit AC_GetLoggedValues. Im Array ist der erste Eintrag der jüngste. Es muss aber der Abfragezeitraum groß genug sein, damit auf jeden Fall ein Wert enthalten ist.

So müsste es funktionieren:

<?php

declare(strict_types=1);

const ID_ELEKRTISCH = 58317;
const ID_THERMISCH  = 57384;
const ID_COP        = 26036;

$archiveID = IPS_GetInstanceListByModuleID('{43192F0B-135B-4CE7-A0A7-1475603F3060}')[0];

$elektrisch = AC_GetLoggedValues($archiveID, ID_ELEKRTISCH, strtotime('-10 days'), strtotime('-1 day'), 1);
$thermisch  = AC_GetLoggedValues($archiveID, ID_THERMISCH, strtotime('-10 days'), strtotime('-1 day'), 1);

$elektrisch_alt = $elektrisch[0]['Value'];
$thermisch_alt  = $thermisch[0]['Value'];

$COP = (GetValue(ID_THERMISCH) - $thermisch_alt) / (GetValue(ID_ELEKRTISCH) - $elektrisch_alt);

SetValueFloat(ID_COP, $COP);
1 „Gefällt mir“

Ich probiere es aus, vielen Dank!

Warum -10Days?
Ich will ja nur den Wert der letzten 24 Stunden wissen

Moin, hat funktioniert.
Nochmal Danke!
Bernd