In diesem Thread soll es um das s.g. „Smart Metering“ gehen.
Also alles über Zähler-Erfassung, Auswertung und Visualisierung.
Los geht es mit „Zahlenspielen“ - damit man ein Gefühl für die Größenordnungen bekommt. Beispiel der Gasverbrauch:
Der EMK-868 (oder andere S0-Zähler) messen einen Volumenstrom von z.B. 0.1 m^3 pro Stunde.
Aber was bedeutet dies für meinen Geldbeutel?
Der Gaspreis wird in kWh abgerechnet. Dazu muss man den Heizwert wissen.
Dieser liegt meistens bei einem Faktor von 11. Genauso wichtig ist natürlich der Preis pro kWh z.B.: 6 Cent
In dem unteren PHP-Beispiel kommen wir auf 10 Euro / Tag.
Das Problem einer guten Energieampel (Prognose) sind die unterschiedlichen Verbrauchswerte am Tag, Nacht, Sommer oder Winter.
In den folgenden Skripten wird versucht Lösungsansätze aufzuzeigen.
@Thomas: natürlich muss es sich NACH der Multiplikation um kW/h handeln. @NBA: bei 100 Impulse pro m^3 kommt man auch auf €10,- @DeejayT: danke für den Hinweis
Den Brennwert - so die korrekte Bezeichnung - sowie die Gaspreis entnimmt man der letzten Rechnung oder im Netz bei „Tarifrechner-Portalen“.
Der Einfachheit halber verzichte ich bei meiner Anzeige auf die Berücksichtigung der Kosten für den Grundpreis, Messgebühren (Schornsteinfeger), Abschreibung der Anlage usw.
Die Zahlen im 1. Thread bezogen sich auf die aktuelle aufgenommene Leistung des Brenners.
Um Tageswerte zu bekommen muss man Zählerstände miteinander vergleichen.
Hier ein kleines Beispiel, um die Kosten pro Stunde anzuzeigen:
Es folgt die modifizierte Variante die den Verbrauch der letzten 15 Minuten, der letzten Stunde sowie vom letzten Tag ermittelt.
Die jeweilige korrekte Zeitdifferenz wird über ‚VariableUpdated‘ ermittelt.
Somit erspart man sich zusätzliche Variablen.
Getriggert wird das Skript alle 15 Minuten und zusätzlich um Mitternacht (hier: $id_event == 37255).
Die Werte werden live im WebFront unter „Energie“ dargestellt.
MST
Zur Info: an der blauen Kurve ist schön die „Grundlast“ zu erkennen und an der Roten die Leistungsspitzen
(1300 Watt alle Lichter AN - siehe Bild)
wäre es möglich, die angehängten grafiken (objektbaum) (in zukunft) mit den objekt-ids zu versehen ? dadurch lassen sich die scripts von anfängern besser verstehen, zumindest wenn die scripts keine auto-benamsung der id haben.
sitze seit stunden um die scripts auf meinen ölverbrauch umzumünzen ( via s0 ) und es klappt irgendwie nicht
es scheint so, daß sich viele Energieversorgungsunternehmen auch gerade in diesem Bereich Gedanken machen.
Es gibt dort einige Festlegungen für neue Normen, z.B. WMBus und die Smart Message Language.
Von OMS, dem Open Meter Standard ist auch immer wieder zu lesen…
Hate jemand schon Erfahrungen mit einem SML oder WMBus?
so, EKM läuft perfekt und ich kann nun endlich Gas- und Stromverbrauch ermitteln. Hat sich mit dem Thema Energieampel schon jemand näher beschäftigt. Bei Gira gibt es ein nettes Feature, welches den Verbrauch vor einem Jahr mit dem aktuellen vergleicht und dies in Form einer Ampel anzeigt . Dies setzt nattürlich entsprechende Daten voraus.
Ich würde gern eine einfache und für jeden im Haushalt verständliche Visualisierung umsetzen, vielleicht hat hier ja schon jemand Lösungsansätze.
ich würde gern in nächster zeit mein IPS um die Möglichkeit des Wasserverbrauch-Monitorings erweitern. Nun habe ich in meiner Wohnung 2 Kaltwasserzähler (pro Etage 1x) vom Wasserwerk eingebaut, beide ohne S0-Schnittstelle. Nun würde ich hier gern die Messwerte abnehmen und per EKM 868 ans IPS übermitteln.
Ich meine, vor kurzem mal was über S0-Aufwätze für solche Wasseruhren gesehen zu haben, kann aber aktuell hierzu nichts im WEB finden. Da ein Austausch der Wasseruhren (evtl. gegen solche mit S0-Voirbereitung) nicht in meinem Entscheidungsbereich liegt würde ich gern solche Aufsätze verbauen und mit dem EKM 868 verbinden.
Hat jemand Infos dazu für mich?
Hallo,
ich habe bei meinem Versorger angerufen,
und er hat meine Wasseruhr durch eine mit S0 Schnittstelle getauscht.
Den S0 Aufsatz musste ich bezahlen.
Hallo,
wie es aussieht, werd ich mich doch etwas intensiver mit php-Scripting beschäftigen müssen und komme so ohne weiteres nicht an alle Informationen…und hoffe auf Unterstützung…
Bezogen auf Steiners Script vom 2.11. 18.18Uhr:
das die Variable counter im Script genauso heißt wie die ausm Objektbaum - ist das gewollt oder könnte diese auch anders heißen bzw. umgekehrt kann der Wert auch aus einer anderen Variablen kommen?
wenn ich einen direkten Wert für die kwh-Strom habe, braucht mich der ganze „Impulskram“ nicht interessieren?
woher kommt der Wert aus der Variablen $IPS_Event ? Ich kann in keiner Dokumentation was dazu finden…nur zb. IPS_EventExist…
ist (double) eine Typ-Zuweisung? Warum nicht (float)? Kann diese, wie in vernünftigen Programmiersprachen nicht auch am Beginn der Prozedur in der Variablendeklaration erfolgen?
Gibt es einen Grund, warum die Zeit bezüglich des Tagesverbrauchs über das IPS_event gesteuert wird und der stündl. Vebrauch/15min. Verbrauch über die „Rechenkopfstände“, könnte mann nicht alternativ IPS_event(ID) für jede beliebige Zeit über eine „case“-Verzweigung checken? …oder ist das einfach persönlicher Stil oder so?
Welchen Sinn, außer Info/Lesbarkeit evtl., haben die vom System generierten Variablenpfade(nach ID)?
Ich hoffe, ich konnte mich verständlich machen und freue mich auf ein Feedback…vielen Dank im voraus, kabo63.
Hallo Rainer,
vielen Dank, der 1. Link war genau richtig für Frage 3) die damit beantwortet ist, frag mich nur, warum die Suche das nicht gefunden hat…
Den 2. Link hab ich mir wohl schon vorher angeschaut…war recht unbefriedigend, oder ich hab nach den falschen Begriffen gesucht…hilft mir nicht wirklich weiter…
Gruß, Kay.
…mir ist aufgefallen, dass, wenn man die Verbrauchswerte z.b. als Zähler loggen möchte, erhält man in Webfront eine Anzeige erst für den darauffolgenden Zeitraum…dass kann’s doch nicht sein…oder habe ich hier einen Denkfehler?
MfG, kabo63.
Ich habe das Script von Steiner (#6) bei mir wie folgt umgesetzt:
<?
$imp_kw = 75; // Impulse pro kw/h
$counter = GetValue(12579 /*[EKM-868 - Strom\Counter]*/);
// 15 minütlicher Verbrauch
//echo "Counter: $counter
";
$delta = $counter - GetValue(19792 /*[EKM-868 - Strom\Counter old 15 min]*/);
//echo "Delta: $delta
";
$data = IPS_GetVariable(19792 /*[EKM-868 - Strom\Counter old 15 min]*/);
$delta_t =time()-($data['VariableUpdated']); // Wann wurde Counter old 15 Min das letzte mal upgedatet
//echo "delta_t: $delta_t Sekunden
";
SetValue(19792/*[EKM 868 - Srom\Counter old 15 Min]*/, $counter );
$delta = (double)($delta / $imp_kw);
SetValue(25097 /*[EKM-868 - Strom\durchschnittlicher Verbrauch letzte 15 Min]*/,$delta);
//echo "Verbrauch: ".$delta ." kW/h
";
// stündlicher Verbrauch
$data = IPS_GetVariable(33772 /*[EKM-868 - Strom\Counter old 60 Min]*/);
$delta_t =time()-($data['VariableUpdated']); // Wann wurde Counter old 60 Min das letzte mal upgedate
if ($delta_t >= 3600)
{
$delta = $counter - GetValue(33772 /*[EKM-868 - Strom\Counter old 60 Min]*/);
SetValue(33772 /*[EKM-868 - Strom\Counter old 60 Min]*/, $counter );
$delta = (double)($delta / $imp_kw);
SetValue(48678 /*[EKM-868 - Strom\durchschnittlicher Verbrauch letzte 60 Min]*/,$delta);
}
//Tages-Verbrauch
$ID_event = $IPS_EVENT;
if ($ID_event == 24994 /*[EKM-868 - Strom\Energie Ampel Strom\]*/){
$delta = $counter - GetValue(25187);
SetValue(25187 /*[EKM-868 - Strom\Counter old Midnight]*/, $counter );
$delta = (double)($delta / $imp_kw);
SetValue(21814 /*[EKM-868 - Strom\durchschnittlicher Verbrauch über den Tag]*/, $delta);
}
?>
Wenn ich das Script ausführe gibt es immer folgende Fehlermeldung:
„Undefined variable: IPS_EVENT in [EKM-868 - Strom\Energie Ampel Strom] on line 29“
Gemeint ist die Zeile „$ID_event = $IPS_EVENT;“. Sobald ich den Code ab „Tagesverbrauch“ auskommentiere, funktioniert das Script.