[Modul] Energierechner

Ich habe die aWATTar Fuktion aus der Tarife Instanz wieder entfernt.
Ich muss mir erstmal überlegen, wie ich das pro Zeitraum einbinden kann.

Grüße,
Kai

Zu dem Wh Problem:
Ich bin gerade ernsthaft am überlegen, das wieder zu entfernen und als Variable eine Variable mit den Werten in kWh zu erwarten, da ich sonst im Modul zu viel ändern müsste.
Oder die Werte in der Tarife Instanz müssten in Wh angegeben werden.

Aktuell möchte ich das ungerne alles verändern.
Um erstmal eine Lösung für das Problem zu haben, schlage ich vor, dass man sich eine zweite Variable anlegt, welche die Werte in kWh speichert. Um auch die Werte aus der Vergangenheit in der richtigen Einheit zu haben, müsste man natürlich die Werte der Wh Variable aus dem Archiv auslesen, umrechnen und in das neue Archiv der neuen Variable speichern. Wenn dabei jemand Hilfe benötigt, kann er sich gerne melden.

Grüße,
Kai

Moin Kai,

danke! Und oh, gepennt….

Ich denke mal drüber nach uns schreibe was auf.

Gruß Michael

Wie Kai ja scheibt, es geht im Moment nicht.
Ich würde das mit dieser Funktion umrechnen, kurze Sache und alles funktioniert perfekt…
GitHub - symcon/Rechenmodule

Das Modul kannte ich nicht.

Danke!

Hallo @micf1
Wenn du HomeMatic Geräte hast, kannst du auch das HomeMatic Extended Modul nutzen. [Modul] Homematic Extended (Systemvariablen, Programme, Powermeter, u.v.m.)
Das enthält einen Summenzähler - in kWh - für die Verbrauchsmesser.

Gruß
Rainer

Was mir dazu spontan einfällt, ist die Beschriftung der Variablen, die dann nicht Verbrauch/Kosten sondern besser Lieferung/Ertrag lauten könnten. Die Berechnung passt da ja auch nach Eingabe der entsprechenden ct/kWh.

Gruß
Rainer

Moin Moin,

Wenn ich mir meine PV anschaue, gibt es zwei Wünsche. Da ist zum einen die Visualisierung der Bezugs- und Verbraucherströme. Insofern habe ich mich sehr gefreut, dass das mit der neuen Visu geht. (siehe Niels Vortrag am 28.01. auf dem IPS Event)

Zum anderen denke ich an: Eigenverbrauchsquote, Autakrie, Einsparung, Gesamtkosten unter Einbeziehung der Stromverkäufe, und wenn möglich sogar eine Amortisierungsquote.

Gruß Michael

Ich denke dafür sollte man dann etwas eigenes schreiben.

Grüße,
Kai

1 „Gefällt mir“

@KaiS
Kann das sein, dass du weiter oben geschrieben hast, dass die Berechnung am ersten Tag, wo ein Tarif gültig ist, nicht stimmt? Wenn das so ist, wäre das schlecht. Denn bei Awattar ist jeder Tag der erste Tag, wenn für jeden Tag ein neuer Eintrag generiert wird.
Heute ist bei mir der erste Tag mit Awattar und am Morgen haben die Euro-Werte für den Bezug nicht gestimmt. Wurden mit dem bis gestern gültigen Preis berechnet. Ich habe dann die Instanz deaktiviert und wieder aktiviert, dann hat er neu berechnet. Wenn das ein Workaround ist, soll mir das recht sein.

Ich habe aWATTar wieder entfernt.
Ich muss das noch mal anders machen.

Nein, das war darauf bezogen, wenn man das Logging der Variable an dem Tag erst eingeschaltet hat. Da bin ich mir unsicher, ob das passt.

Grüße,
Kai

Dast ist kein Problem, hab ja meine eigene Verson

Ok, dann hab ich das falsch verstanden. Ich werde es morgen noch mal kontrollieren. Wobei ich bei mir einen Fehler gefunden hab. Ich hab für den Tages- und Nachtpreis die Zahl als String eingetragen. Interessanterweise wurde es in der Liste korrekt angezeigt. In der Änderungsmaske (Zahnrad in der Liste) dann waren die Werte 0. Hab ich erste heute in der Früh bemerkt.

Hi Kai,

das fände ich eher ungünstig wenn man nur kWh angeben kann.

Denn wenn man das nicht nur für ein Haus auswertet sondern auch für einzelne Geräte, dann ist kWh sehr sehr grob und man bekommt kein gutes Bild der Kosten.
Wenn zB nur alle 3-5 Tage eine weitere kWh anfällt, das Gerät aber dauernd läuft, sagt das nicht mehr viel aus.

Gibt ja auch Zähler die man auf Wh einstellen kann oder gleich kWh und Wh liefern (wie zB die Lingg&Janke die ich am liebsten verwende).

Schöne Grüße
Seppm

Hallo, ich habe ein Problem. Der Verbrauch (Grundlage Gas in Liter) wird ca. um den Faktor 10 größer als die Anzeige im Symcon Graph der Basisvariable angezeigt.
Zusätzlich ist dann der Preis nochmal um den Faktor ca. 10? ggf. auch die Z-Zahl*Brennwert=11,11 zu hoch.

Sieht jemand einen groben Fehler?

Verbrauch laut Graph von Symcon:

  • Heute: 2800 Liter
  • Gestern: 7000 Liter

Die Werte kommen nur mit 1 Impuls je 100 Liter.

PS: Die Beschriftung der Felder ist etwas ungenau: Kommt da jetzt der Abschlag und Grundpreis je Monat, Tag oder Jahr rein?

Ich Antworte mir mal selber. Folgende Informationen haben mir zu Anfang gefehlt.

  • Die oben stehende Abfrage nach Einheit - für mich so erkannt - der Zählervariable, stellt offenbar die anzuzeigende Einheit der Ausgabe ein (das hätte ich jetzt manuell per Hand im Profil erwartet)
    → Dies führt dazu, dass ich bei der Angabe Liter eine interne Umrechnung auf die von der Software erwarteten m³ erwartet habe → Wandlerfaktor im Tarif hat mir hier kurzfristig geholfen
    → Unabhängig der angezeigten Einheit wird intern (auch bei Gas) immer auf kWh umgerechnet. Das ist auch durchaus so zu erwarten, verwirrt aber wenn die Einheit autom. auf Liter gesetzt ist.

Modul Tarif:

  • Spaltenbreite zu breit. 1650px muss man erstmal haben. Allerdings recht viel weiß

  • Obwohl mit den drei Gasfaktoren multipliziert wird, ist die Vorauswahl ungünstigerweise 0. Hier würde ich mir wünschen, wenn ‚irgendwelche‘ halbwegs passenden Werte (z.B: Z-Zahl: 0.9597, Brennwert: 11,58) oder die eins (für - keine Änderung) eingetragen wären.

  • Der Grundpreis ist für jeden Tag anzugeben. Leider kann man hier nur zwei Nachkommastellen angeben. Bei 365 Rundungsfehlern kann hier aber ganz schön was auflaufen. Bitte auf drei Stellen anpassen. Feldbeschriftung bitte dann auch in Grundpreis je Tag umbenennen.

  • Abschlagszahlung gilt je einen von 12 Monaten. Die Stadtwerke meiner Stadt haben aber nur 11 Abschläge, welche idr. den Gesamtbetrag abdecken sollten. Der 12. Monat ist für ggf. zu leistende Nachzahlungen bewusst ‚frei‘.
    Feldbeschriftung bitte ebenso anpassen.

Grundsätzlich möchte ich auch nochmal an die typischen PHP Probleme mit Fließkommazahlen erinnern. Ggf. kann es deutliche Unterschiede geben, ob man je Archivzeile rechnet oder je auf die passende Variable (also ganzer Tag, Woche, etc.) aggregiert abfragt.

Und da ich gerne Rechenzeit optimiere: Kann man die Berechnung so umbauen, dass im Normalfall (ohne Änderung der Konfiguration) eine Aktualisierung nur die wirklich relevanten Daten (also idr. HEUTE) ausrechnet? Selbst das Erreichen des Abschlagbetrages (der übrigens idr. bei keinem Anbieter mit dem Jahr gleich sitzt) würde mir alle 24h ausreichen.

Zudem wundert es mich etwas, dass nicht mit den schon durch Symcon Aggregierten Werten gerechnet wird. Das hat bestimmt einen Grund, den ich nur bisher nicht erkannt habe.

Hi @BommelPommel,
eine Frage zu Deinem Skript.

Wenn Du die Kosten um 23:59 einträgst und das eine Zähler Variable ist (hätte ich gerne damit ich Balken und keine Linie habe), müsste dann nicht am gleichen Tag um 00:00 eine 0 eingetragen werden, damit er das richtig hochzählt?

Hab es nämlich gerade bei einer geloggten Zählervariabel (Kosten heute) gemacht und dann zeigt er mir den Wert nicht richtig an.
Hier
03.02. 23.59 Wert 0
04.02. 23.59 Wert 0,74 / angezeigt wird 0,74 passt
05.02. aktuell Wert 1,80 / angezeigt wird aber 1,06 und nicht die 1,8 für heute.

Oder hab ich da einen Wurm drin?

Merci Seppm

Das ist eine spannende Frage und könnte evtl. die Lösung für „meinen Denkfehler“ sein. schau mal das ich da was einbaue.

Hab ich gerade eingebaut,
EDIT: hab es jetzt gesäubert und mehrfach getestet auch mit mehreren Jahren auf einmal. Würde es aber nicht länger als 1 Jahr machen, denn mir ist Symcon ein paar mal abgeschmiert dabei.

Hier das Skript das ich von Dir bzw ggf. KaiS anpasste:
Es reaggregiert die Variable nun auch am Ende.

<?php

// Diese Script liest eine Variable aus und berechnet die Kosten für den jeweilgen Tag in Verbindung mit dem Energierechner von KaiS
// Archiv steht auf Zähler und bitte NICHT "0 Werte ignrorieren" anklicken, sonst stimmen die Tageswerte nicht.
// Das Skript basiert auf KaiS und BommelPommels Vorarbeit. 
// Ich (seppm) hab nur den Teil ergänzt der für den jeweiligen Tag um 00:01 eine 0.01 im Archiv einträgt damit der Zähler stimmt (nun kann man auch einstellen dass die Nullen ignoriert werden).

// Folgende Daten anpassen
$StartDate = "01.01.2023";
$EndDate = "31.01.2023"; //Heute - 1 Tag da Werte nicht neuer sein dürfen und der Wert immer für 23:59 gesetz wird
$InstanzIDEnergieRechner = 36826;
$ArchiveId = 43570; // Archive Handler
$Zielvariable = 21546; // Da wo die Daten rein sollen ... am besten Kosten heute - hier dann aber die Archivierung einstellen

// ab hier nichts mehr anpassen
while (strtotime($StartDate) <= strtotime($EndDate)) {

    $Start = $StartDate; 
    $End = $StartDate;

    $Start = date('d.m.Y H:i', strtotime($Start));
    $End = date('d.m.Y H:i', strtotime($End . ' +1439 minutes'));
   
    $InstanzID = $InstanzIDEnergieRechner;
    $Start = strtotime($Start);
    $Ende = strtotime($End);
    $aggregationsTyp = 0;
    $result = ER_calculate($InstanzID , $Start, $Ende,$aggregationsTyp);

	$Cost = $result["costs"];
    $Timestamp = strtotime($End);

    $ArchiveArray[] = array(
        'TimeStamp' => $Timestamp,
        'Value' => $Cost
    );

    AC_AddLoggedValues($ArchiveId, $Zielvariable, $ArchiveArray);
    unset($ArchiveArray);

        // Sepp Teil ergänzt um 0 als Startwert kurz nach Mitternacht einzutrageneinzutragen
        $Cost2 = 0.01 ; // Verhindert dass es bei Zähler mit ignorieren von Nullen dann falsche Zahlenwerte für den Tag gibt (war vorher auf 0)
        $End2 = date('d.m.Y H:i', strtotime($End . ' +2 minutes'));  // wird damit um 00:01 eingetragen
        $Timestamp2 = strtotime($End2);

        $ArchiveArray2[] = array(
            'TimeStamp' => $Timestamp2,
            'Value' => $Cost2
        );

        AC_AddLoggedValues($ArchiveId, $Zielvariable, $ArchiveArray2);
        unset($ArchiveArray2);
  
    $StartDate = date('d.m.Y H:i', strtotime($StartDate . ' +1 day '));
}
AC_ReAggregateVariable($ArchiveId, $Zielvariable);

Cheers Seppm

EDIT: Skript angepasst damit es auch bei Zähler geht und man Null Werte ignorieren kann. Wurde für mich notwendig da ich aus Kais Modul jeden Tag manchmal eine Null reinbekam oder öfter und dann die Werte nicht mehr stimmten.
Nun geht also beides.

Ich mag nochmal meine Frage stellen:

Blockzitat
Wenn ich nun n Instanzen des Energierechners habe, könnte ich irgendwo den Gesamtverbrauch, d. h. die Summe aller Instanzen „abgreifen“?

Wie würdet ihr das lösen?
Oder habe ich hier eine Summenfunktion übersehen?

Also würdest du eine Auswahl für die Anzeige erwarten und eine für die Umrechnung?
Das könnte tatsächlich Sinn machen und würde es evtl. vereinfachen.

Das hatte ich so eingestellt, dass die Überschriften auch angezeigt werden, da kann ich aber gerne noch etwas verändern.

Das ist Geschmackssache, kann ich gerne eintragen. Dann gib mir bitte die genauen Werte vor, welche ich dort eintragen soll.

Wieso für jeden Tag? Hast du jeden Tag einen anderen Preis?
Die Nachkommastellen kann ich gerne anpassen.

Da hast du recht, ich habe gerade bei mir nachgeschaut, bei mir ist der Januar „frei“.
Ich schaue mal, ob ich das anpassbar gestalte.

Das kann ich mir auch bei Gelegenheit nochmal anschauen.

Das kannst du selbst einstellen, allerdings wird die stündliche Aggregation benötigt, um auch die Nacht- & Tagtarife zu berechnen.

Ich finde deine Art und Weise, wie du das kommunizierst nicht so passend, du schreibst hier mit einem Entwickler, der das alles in seiner Freizeit macht und nicht mit einem Angestellten von dir. :wink:

Grüße,
Kai

3 „Gefällt mir“