Hallo zusammen,
ich bin jetzt soweit und komme nicht mehr weiter.
Ich möchte gerne den Stromverbrauch meiner Haushaltgeräte z.B: Waschmaschine pro Waschvorgang aus dem Archiv laden und speichern.
Dazu habe ich folgendes Skript erstellt.
<?php
$archive = 24614; // ArchivID
$quelle = 34912; // Wirkarbeit von S0 Zähler
$aktuelle_Leistung = GetValueFloat(43560); //aktuelle Leistung extrapoliert aus S0 Zähler
$Takt_Ende = GetValueBoolean (56370); //Taktende z.B. Waschvorgang
$Uhrzeit = time();
//Abfrage ob Maschine in Betrieb ist
if ($aktuelle_Leistung > 20)
{
SetValueBoolean(50727,true);
($tStart = ($Uhrzeit));
}
if (($Takt_Ende == false) AND ($aktuelle_Leistung == 0))
{
SetValueBoolean(50727,false);
($tStopp = ($Uhrzeit));
//$Verbrauch_pro_Gang = AC_GetAggregatedValues($archive, $quelle, 0 /* Stündlich */, strtotime("yesterday 00:00"), strtotime("today 00:00")-1, 0);
$Verbrauch_pro_Gang = AC_GetAggregatedValues($archive, $quelle, 0 /* Stündlich */, strtotime($tStart), strtotime($tStopp), 0);
SetValueFloat(17578, $Verbrauch_pro_Gang[0]['Avg']);
SetValueBoolean(56370,true);
}
//$Verbrauch_pro_Gang = AC_GetAggregatedValues($archive, $quelle, 0 /* Stündlich */, strtotime($tStart), strtotime($tStopp), 0);
//SetValueFloat(17578, $Verbrauch_pro_Gang[0]['Avg']);
//$Start_Ende = IPS_GetVariable (50727);
//$Verbrauch_pro_Gang = AC_GetAggregatedValues($archive, $quelle, 0 /* Stündlich */, strtotime($tStart), ($Start_Ende['VariableChanged']), 0);
//$Verbrauch_pro_Gang = AC_GetAggregatedValues($archive, $quelle, 0 /* Stündlich */, strtotime($tStart), strtotime($tStopp), 0);
//SetValueFloat(17578, $Verbrauch_pro_Gang[0]['Avg']);
//var_dump ($Verbrauch_pro_Gang [0] ['Avg']);
//var_dump ($Uhrzeit);
//var_dump ($Start_Ende['VariableChanged']);
//strtotime("$Start_Ende")
//var_dump ((string) ("yesterday 00:00"));
//var_dump ((string) ($Start_Ende['VariableChanged']));
//var_dump ($tStart);
//var_dump ($tStopp);
?>
Das Skript funktioniert soweit, bis auf das, dass in die Variable ($Verbrauch_pro_Gang) nicht die kW/h pro Waschgang geschrieben werden.
Wenn ich folgendes mache
<?php
$archive = 24614; // ArchivID
$quelle = 34912; // Wirkarbeit von S0 Zähler
$aktuelle_Leistung = GetValueFloat(43560); //aktuelle Leistung extrapoliert aus S0 Zähler
$Takt_Ende = GetValueBoolean (56370); //Taktende z.B. Waschvorgang
$Uhrzeit = time();
//Abfrage ob Maschine in Betrieb ist
if ($aktuelle_Leistung > 20)
{
SetValueBoolean(50727,true);
($tStart = ($Uhrzeit));
}
if (($Takt_Ende == false) AND ($aktuelle_Leistung == 0))
{
SetValueBoolean(50727,false);
($tStopp = ($Uhrzeit));
$Verbrauch_pro_Gang = AC_GetAggregatedValues($archive, $quelle, 0 /* Stündlich */, strtotime("yesterday 00:00"), strtotime("today 00:00")-1, 0);
//$Verbrauch_pro_Gang = AC_GetAggregatedValues($archive, $quelle, 0 /* Stündlich */, strtotime($tStart), strtotime($tStopp), 0);
SetValueFloat(17578, $Verbrauch_pro_Gang[0]['Avg']);
SetValueBoolean(56370,true);
}
//$Verbrauch_pro_Gang = AC_GetAggregatedValues($archive, $quelle, 0 /* Stündlich */, strtotime($tStart), strtotime($tStopp), 0);
//SetValueFloat(17578, $Verbrauch_pro_Gang[0]['Avg']);
//$Start_Ende = IPS_GetVariable (50727);
//$Verbrauch_pro_Gang = AC_GetAggregatedValues($archive, $quelle, 0 /* Stündlich */, strtotime($tStart), ($Start_Ende['VariableChanged']), 0);
//$Verbrauch_pro_Gang = AC_GetAggregatedValues($archive, $quelle, 0 /* Stündlich */, strtotime($tStart), strtotime($tStopp), 0);
//SetValueFloat(17578, $Verbrauch_pro_Gang[0]['Avg']);
//var_dump ($Verbrauch_pro_Gang [0] ['Avg']);
//var_dump ($Uhrzeit);
//var_dump ($Start_Ende['VariableChanged']);
//strtotime("$Start_Ende")
//var_dump ((string) ("yesterday 00:00"));
//var_dump ((string) ($Start_Ende['VariableChanged']));
//var_dump ($tStart);
//var_dump ($tStopp);
?>
Also dem Beispiel aus der Doku folge, bekomme ich Werte in die Variable, die sind aber auch nicht die richtigen.
Ich denke das es nur an dem liegt
$Verbrauch_pro_Gang = AC_GetAggregatedValues($archive, $quelle, 0 /* Stündlich */, strtotime("yesterday 00:00"), strtotime("today 00:00")-1, 0);
Ich weiß nicht wie hier die richtige Syntax für meinen Anwendungsfall ist.
Könnte mir da jemand auf die Sprünge helfen?
Danke.