FHEM Tutorial-Reihe - Part 33: Energiekosten im Überblick

Mit ** gekennzeichne Links auf dieser Seite sind Affiliatelinks.

In diesem Teil möchte ich einmal auf meine Lösung eingehen, welche ich mir ausgedacht habe um möglichst genau für alle Geräte im Haus (welche einzeln gemessen werden) die entsprechenden Energiekosten zu speichern und anzuzeigen. Dabei habe ich ein neues Dummy-Device angelegt, welches mir einen Umrechnungfaktor speichert und diesen dann nutzt um die genauen Kosten pro Gerät auszurechnen.

Was wird benötigt?

  • Eine FHEM-Installation
  • Ein paar Geräte, welche Energiekosten / Verbrauchswerte sammeln

Video

FHEM-Kurs

Befehle

Damit ihr nicht alles aus dem Video abtippen müsst, hier mein Define. Bitte nicht einfach in die fhem.cfg kopieren, sondern über die Oberfläche anlegen.

define KO_Stromkosten dummy
attr KO_Stromkosten userattr kWhPreis
attr KO_Stromkosten alias Stromkosten
attr KO_Stromkosten group Kosten
attr KO_Stromkosten icon euro
attr KO_Stromkosten kWhPreis 0.2507
attr KO_Stromkosten room 93_Kosten
attr KO_Stromkosten stateFormat Gestern: Gesamtkosten
defmod at_KO_collect at *23:59:00 {
    my $kWhPreis = AttrNum("KO_Stromkosten", "kWhPreis", 0);

    fhem("get KU_Spuelmaschine meter");
    my $spuelmaschineKWh = ReadingsNum("KU_Spuelmaschine", "energy", 0);
    fhem("setreading KO_Stromkosten KU_Spuelmaschine " . ($spuelmaschineKWh * $kWhPreis));
    fhem("set KU_Spuelmaschine meterReset");

    fhem("get KU_Warmwasserspeicher meter");
    my $wasserspeicherKWh = ReadingsNum("KU_Warmwasserspeicher", "energy", 0);
    fhem("setreading KO_Stromkosten KU_Warmwasserspeicher " . ($wasserspeicherKWh * $kWhPreis));
    fhem("set KU_Warmwasserspeicher meterReset");

    my $rackKWh = ReadingsNum("BU_Steckdosenleiste", "Today", 0);
    fhem("setreading KO_Stromkosten BU_Steckdosenleiste " . ($rackKWh * $kWhPreis));

    my $gesamtKWh = $spuelmaschineKWh + $wasserspeicherKWh + $rackKWh;
    fhem("set WEB_Pushover msg 'Energiekosten' 'Kosten heute: " . sprintf("%.2f", $gesamtKWh * $kWhPreis) . "€'");

    fhem("setreading KO_Stromkosten Gesamtkosten " . ($gesamtKWh * $kWhPreis));
}

Am Ende des Videos zeige ich dann noch, wie man mit einer ReadingsHistory die letzten Werte eines bestimmten Readings auflisten kann. Meiner Meinung nach nicht unbedingt die sinnvollste Variante in diesem Szenario, aber in jedem Fall ein praktischer Gerätetype. Bitte beachtet, dass die einzelnen Readings erst dann auftauchen, wenn die Events dafür gefeuert wurden - die Daten werden also nicht automatisch aus dem Log gelesen o.ä.

define KO_Historie readingsHistory KO_Stromkosten:Gesamtkosten
attr KO_Historie alias Kosten der vergangenen Tage
attr KO_Historie room 93_Kosten
attr KO_Historie rows 5
attr KO_Historie timestampFormat %d.%m.

Newsletter

Trage Dich jetzt in den Newsletter ein und genieße dadurch viele Vorteile:

  • 5€-Gutschein als Dankeschön
  • Zugang zu exklusiven Inhalten
  • Rabattaktionen für Kurse
  • Angebote für Produkte

* Durch Angabe meiner E-Mail-Adresse erkläre ich mich damit einverstanden, dass mir regelmäßig Informationen und Produktempfehlungen aus dem Fachgebiet Smart Home zugesendet werden. Mit dem Eintrag akzeptieren Sie unsere Datenschutzbestimmungen. Meine Einwilligung kann ich jederzeit widerrufen.

Matthias Kleine

Matthias Kleine

Großer Fan und Anhänger von OpenSource-Projekten und erweiterbaren Haus-Automatisierungskomponenten. Je offener und flexibler das System, desto besser. Ich lege mich ungern auf einzelne Protokolle oder Standards fest, sondern probiere aus allen Welten das Beste zu verheiraten. Unterwegs als Softwareentwickler, Trainer und Blogger im Bereich Smart Home.

Auf YouTube und hier im Blog gibt es bereits unzählige kostenlose Videos, Informationen und Tutorials. Wenn Dir das noch nicht reicht, ist ein Training genau das richtige für Dich! Die folgenden Trainings haben den Vorteil, dass immer von Anfang an gestartet wird und Du ohne Vorwissen teilnehmen kannst.