Simples Auswerteskript für Zähler

Oder einfach hier:
Links — IP-Symcon :: Automatisierungssoftware

Diese Grundlagen erklären auch viele offene Fragen wenn man anfängt.
Michael

Hi wango,
der Tipp mit den Links ist wirklich nützlich.
Dank auch an raketenschnecke.

kds8

Hallo nall chan,

da hast Du sicher Recht.
Problem ist nur das die Doku sehr umfangreich ist und man einfach einen Tipp braucht wo man suchen muss.
Und das Forum hier ist für Anfänger oder diejenigen die nicht so in der Materie sind bestimmt eines der besten.

Auch ür mein neues Projekt IPSview werde ich Leute wie wango oder raketenschnecke brauchen und hoffe da mir geholfen wird.

kds8

Sicherlich, aber bevor man Fragt, sollte mal zumindest das Kapitel ‚Grundlagen‘ abarbeiten :wink:
Weil 100x die gleiche Frage zu beantworten, macht keinen Spaß.

Michael

so, habe meine scripte rausgeschmissen und mit wangos ersetzt. läuft so weit gut

ab IPSversion 4.0 meckert er mir „Duration“ an

Moin Axel,

ich habe noch nicht auf die Version 4.0 umgestellt. Unter anderem weil sich mit jedem großen Update einiges ändert und mir gerade die Zeit fehlt meine Skripte zu überarbeiten (und auch die Lust, es funktionert ja alles). Sobald ich auf die 4.0 umstellen muss, werde ich aber auch das Zählerskript anpassen.

Grüße aus dem Norden

Wango


Kabellabor - Alles automatisch

okidoki
viele grüsse

Hallo Axel,
hallo Wango,

bin jetzt auch auf 4.0 umgestiegen, läuft nach ein paar kleinen Änderungen (Dank an das Forum) :slight_smile:
Das Problem mit Duration in Wango’s Skript habe ich allerdings auch bei den Monats und Jahreswerten.

Habt Ihr schon eine Lösung???
Ich blicke trotz Doku bei den notwendigen Änderungen AC_GetAggregatedValues nicht durch :confused::confused::confused:

kds8

Ich hab das auch schon auf dem Radar…

IPS 4.0 AC_GetAggregatedValues - Duration fehlt im Array

Hallo,

ich würde auch gerne dieses Skript einsetzen. Leider bekomme ich immer folgende Fehlermeldungen.

Notice:  Undefined offset: -1 in C:\IP-Symcon\scripts\18297.ips.php on line 58

Notice:  Undefined offset: 0 in C:\IP-Symcon\scripts\18297.ips.php on line 60


Notice:  Undefined offset: -1 in C:\IP-Symcon\scripts\18297.ips.php on line 77


Notice:  Undefined offset: 0 in C:\IP-Symcon\scripts\18297.ips.php on line 79


Notice:  Undefined offset: 0 in C:\IP-Symcon\scripts\18297.ips.php on line 86


Warning:  Division by zero in C:\IP-Symcon\scripts\18297.ips.php on line 90


Notice:  Undefined offset: 0 in C:\IP-Symcon\scripts\18297.ips.php on line 95


Warning:  Division by zero in C:\IP-Symcon\scripts\18297.ips.php on line 99



Das Skript läuft seit gestern Nachmittag bei mir. Woran könnte das liegen?

Danke schon mal für eure Hilfe.

Update:

jetzt bekomme ich nur noch folgende Meldungen:


Notice:  Undefined offset: -1 in C:\IP-Symcon\scripts\18297.ips.php on line 58

Notice:  Undefined offset: 0 in C:\IP-Symcon\scripts\18297.ips.php on line 60

Und Verbrauch 1 Stunde und Verbrauch aktuell werden nicht angezeigt.

Grüße
Stephan

Moin Stephan,

der „undefined offset“ bedeutet nur, dass keine vorherigen Daten geloggt sind. Einfach etwas Geduld mitbringen, das erledigt sich von selbst.

„Verbrauch 1 Stunde und Verbrauch aktuell werden nicht angezeigt.“

Ich vermute mal das soll bedeuten, dass in der Variable der Wert 0 steht? Dann ist schlicht in der letzten Stunde nichts verbraucht worden…

Viele Grüße aus dem Norden

wango


Kabellabor - Alles automatisch

Hallo Stephan,

nutzt Du IPS 3.4 oder 4.0

Kds8

Danke für eure Antworten.

Ich nutze die 3.4 aber mittlerweile läuft alles! Die Variablen wurden, obwohl Logging aktiv irgendwie nicht geloggt.

Wie gesagt es läuft jetzt wie es soll. Danke!

Grüße
Stephan

Hallo,
niemand eine Lösung für 4.0,
oder einen Tipp wie das Skipt für die neue Version aussehen kann.:frowning:

kds8

Hallo zusammen,

hat hier eventuell einer eine funktionierende Lösung unter 4.0/4.1 gebastelt? Aufgrund meiner recht rudimentären PHP Kenntnisse komme ich mit der Archive Control Doku nicht wirklich klar. Alle Versuche mir etwas mit AC_GetLoggedValues zu basteln sind gescheitert.

Grüße

hab auch noch das gleiche Problem. Lösung basteln übersteigt leider meine Fähigkeiten. Und hier sieht mal leider auch wieder einen der Hauptnachteile von IPS und den zugefügten Lösungen der Community. Hat der Ersteller keine Lust mehr sind die anderen am A*****. Und diese Gefahr besteht leider bei jedem Update von IPS.

Viele Grüße
Stephan

Hallo,

hat jemand ein Idee bzgl. Modifizierung für 4.1?

Gruß Tobias

unter 4.1 ,finde den Original Fred gerade nicht dazu

leider ohne autoinstaller

<?
$imp_kw = 1000;                  // Impulse pro kw/h
$counter = GetValue(45261 /*[ext\EKM-868 (Counter) gesamt\Counter]*/);      // EKM Counter aktuell


// 15 minütlicher Verbrauch
                                                                                                                // echo "Counter: $counter
";   Anzeige aktueller Counter
					                                                                                                        // delta = Zählerdelta 15 Min.
$delta = $counter - GetValue(38440 /*[ext\EKM-868 (Counter) gesamt\Counter old 15 Min]*/);                                                                                                                // echo  "Delta: $delta
";                   // Anzeige Differenz Delta Counter
$data =  IPS_GetVariable(38440 /*[ext\EKM-868 (Counter) gesamt\Counter old 15 Min]*/);
$delta_t =time()-($data['VariableUpdated']);                                                  // Zeitdiff = aktuelle Zeit - Zeit wo die Var zuletzt upgedatet wurde
                                                                                                                // echo  "delta_t: $delta_t Sekunden
";               // Delta Zeit
SetValue(38440 /*[ext\EKM-868 (Counter) gesamt\Counter old 15 Min]*/, $counter);                                                                          // setzen Conter old 15 min mit dem aktuellen Wert
$delta = (double)($delta * 3600 / $delta_t / $imp_kw);
SetValue(34781 /*[ext\EKM-868 (Counter) gesamt\durschschnittlicher Verbrauch /h letzte 15 Min]*/,$delta);                                                                      // setzen Var für  durchschn. Verbrauch je Stunde
                                                                                                                // echo  "Verbrauch: ".$delta ." kW/h
";


// 15 minütlicher Verbrauch auf ein Jahr hochgerechnet
$delta_kj = $delta * 8760;
SetValue(49590 /*[ext\EKM-868 (Counter) gesamt\1 Jahr Hochrechnung letzte 15 Min kw/h]*/,$delta_kj);
// 15 minütlicher Verbrauch Kosten
$delta_k = $delta * GetValue(27457 /*[ext\EKM-868 (Counter) gesamt\epreis_kwh]*/);  // durschn Verbrauch letzte 15 Min * Preis je kWh
//echo  "Kosten letzte 15 Min.: ".$delta_k ." ?";
SetValue(56848 /*[ext\EKM-868 (Counter) gesamt\Kosten letzte 15 Min]*/,$delta_k);                          // Kosten letzte 15 Min -> Variable setzen
// 15 minütlicher Verbrauch Kosten auf ein Jahr hochgerechnet
$delta_kj = GetValue(56848 /*[ext\EKM-868 (Counter) gesamt\Kosten letzte 15 Min]*/) * 8760;    // Kosten hochgerechnet auf ein Jahr 35040 viertel Stunden
//echo  "1 Jahr Hochrechnung letzte 15 Min.: ".$delta_kj ." ?";
SetValue(14986 /*[ext\EKM-868 (Counter) gesamt\1 Jahr Hochrechnung letzte 15 Min €/h]*/,$delta_kj);                          // 1 Jahr Hochrechnung der Kosten letzte 15 Min -> Variable setzen


// stündlicher Verbrauch

$data =  IPS_GetVariable(15116 /*[ext\EKM-868 (Counter) gesamt\Counter old 60 Min]*/);                           // Counter letzte 60 min
$delta_t =time()-($data['VariableUpdated']);
if ($delta_t >= 3600){                                      // wenn delta > 3600 sekunden dann
   $delta = $counter - GetValue(15116 /*[ext\EKM-868 (Counter) gesamt\Counter old 60 Min]*/);                     // neuer counter - conter vor 60 min
    SetValue(15116 /*[ext\EKM-868 (Counter) gesamt\Counter old 60 Min]*/, $counter );                             // neuer wert in counter setzen für die nächste berechnung
    $delta = (double)($delta * 3600 / $delta_t / $imp_kw);  //
    SetValue(26124 /*[ext\EKM-868 (Counter) gesamt\durschschnittlicher Verbrauch /h letzte 60 Min]*/,$delta);

     //stündliche Kosten
    $delta_k = $delta * GetValue(27457 /*[ext\EKM-868 (Counter) gesamt\epreis_kwh]*/);
     SetValue(58661 /*[ext\EKM-868 (Counter) gesamt\Kosten letzte 60 Min]*/,$delta_k);

     // stündliche Hochrechnung Verbrauch
    $delta_vj = GetValue(26124 /*[ext\EKM-868 (Counter) gesamt\durschschnittlicher Verbrauch /h letzte 60 Min]*/) * 8760;    // Kosten hochgerechnet auf ein Jahr 8760 Stunden
    SetValue(40662 /*[ext\EKM-868 (Counter) gesamt\1 Jahr Hochrechnung letzte 60 Min kW/h]*/,$delta_vj);

    // stündliche Hochrechnung Kosten (Gesamtmenge * kW Preis)
    $delta_kj = GetValue(40662 /*[ext\EKM-868 (Counter) gesamt\1 Jahr Hochrechnung letzte 60 Min kW/h]*/) * GetValue(27457 /*[ext\EKM-868 (Counter) gesamt\epreis_kwh]*/);
    SetValue(57699 /*[ext\EKM-868 (Counter) gesamt\1 Jahr Hochrechnung letzte 60 Min €/h]*/,$delta_kj);
}

// Tages-Verbrauch
$id_event = $IPS_EVENT;
if ($id_event == 53869 /*[ext\EKM-868 (Counter) gesamt\Energie\]*/){
      $delta = $counter - GetValue(24712 /*[ext\EKM-868 (Counter) gesamt\Counter old Midnight]*/);                 // Counter um Mitternacht
    SetValue(24712 /*[ext\EKM-868 (Counter) gesamt\Counter old Midnight]*/, $counter );
    $delta = (double)($delta  / $imp_kw);
    SetValue(53342 /*[ext\EKM-868 (Counter) gesamt\durschschnittlicher Verbrauch gestern]*/,$delta);

     // Kosten gestern (Verbrauch gestern * kW Preis)
    $delta_k = $delta * GetValue(27457 /*[ext\EKM-868 (Counter) gesamt\epreis_kwh]*/);
     SetValue(57108 /*[ext\EKM-868 (Counter) gesamt\Kosten gestern]*/,$delta_k);

    // Tag Hochrechnung Verbrauch
    $delta_vj = GetValue(53342 /*[ext\EKM-868 (Counter) gesamt\durschschnittlicher Verbrauch gestern]*/) * 365;    // Verbrauch hochgerechnet auf ein Jahr 365 Tage
    SetValue(48448 /*[ext\EKM-868 (Counter) gesamt\1 Jahr Hochrechnung letzter Tag kW/h]*/,$delta_vj);

    // Tag Hochrechnung Kosten (Gesamtmenge * kW Preis)
    $delta_kj = GetValue(48448 /*[ext\EKM-868 (Counter) gesamt\1 Jahr Hochrechnung letzter Tag kW/h]*/) * GetValue(27457 /*[ext\EKM-868 (Counter) gesamt\epreis_kwh]*/);
    SetValue(49855 /*[ext\EKM-868 (Counter) gesamt\1 Jahr Hochrechnung letzter Tag €/h]*/,$delta_kj);
}
?>

gruß Jens

Wenn ich die Dokumentation richtig verstanden habe, ist die „Duration“ ab der 4.0 (oder auch schon vorher) bereits in den avg-Wert eingeflossen. Zumindest bei der Aggregation von Zählerwerten.

In den Zeilen

$duration=$aktwert[„Duration“];
$monat=60602430;
$verbrauch_monat=$verbrauch_monat
($monat/$duration);

wäre nach meiner unbedeutenden Ansicht also der Wert von $Duration gleich dem Wert von $Monat. Beide durcheinander dividiert gibt also immer 1.
Ich habe diese drei Zeilen (und die drei für den Jahresverbrauch) jetzt einmal bei mir auskommentiert.

Die Fehlermeldungen sind schon 'mal weg (ist ja auch klar), und Werte kommen jetzt auch in den Variablen an. Ob es die richtigen sind, werde ich wohl erst in einem Monat/Jahr sagen können.

Vielleicht hat ja jemand mehr Ahnung vom Thema und kann mir schon vorher sagen, ob ich richtig liege.:slight_smile:

Gruß
Frank