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

Mit ** gekennzeichnete Links auf dieser Seite sind Affiliatelinks.

FHEM Tutorial-Reihe - Part 33: Energiekosten im Überblick
FHEM Tutorial-Reihe - Part 33: Energiekosten im Überblick
  • Matthias Kleine
  • 03.07.2017
  • Energie

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.

Achtung: Dieser Inhalt wurde vor mehreren Jahren aufgenommen und ist nicht mehr aktuell! Es ist nicht empfohlen nach dieser Anleitung vorzugehen.

Was wird benötigt?

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

Video

Hausbau-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.
Du willst mehr?

Smart-Home-Trainings von A-Z

Steig noch tiefer in die Themen ein und meistere Deine Projekte! Über 13.000 Teilnehmer konnten sich schon von der Qualität der Online-Kurse überzeugen.

ioBroker-Master-Kurs

ioBroker-Master-Kurs

Mehr Infos
Hausbau-Kurs

Hausbau mit KNX

Mehr Infos
Lox-Kurs

Lox-Kurs

Mehr Infos
Node-RED-Master-Kurs

Node-RED-Master-Kurs

Mehr Infos