Erweitert: 70_JSONMETER.pm - Interpretiert OBIS JSON Dateien von Smartmetern

Begonnen von tupol, 11 Februar 2014, 19:38:31

Vorheriges Thema - Nächstes Thema

tupol

Lieber FHEM-Community,

Der clevere Lösungsweg, der von Zwiebel im EFR Modul http://forum.fhem.de/index.php/topic,17821.0.html gewählt wurde, hat mich inspiriert, ein möglichst universelles Modul für Smartmeter zu schreiben, die ihre Daten OBIS kompatibel http://de.wikipedia.org/wiki/OBIS-Kennzahlen und im JSON Format bereitstellen. Zur Zeit kenne ich zwar nur Stromzähler, die dies tun, aber der OBIS Standard ist auch für Wärme- und Gaszähler gültig.
Beschreibung: http://fhem.de/commandref.html_DE#JSONMETER

Ich habe versucht, das Modul 70_JSONMETER.pm so zu strukturieren, dass es relativ leicht auf andere (JSON-OBIS) Smartmeter-Typen erweiterbar ist.

Das Modul liest die Daten entweder per http oder aus dem FHEM Dateisystem. Mir bekannte Typen (ITF & EFR Smart Hub Grid von N-ERGIE) sind vorkonfiguriert.
Standardmäßig geht das Modul von einer statischen Dateistruktur aus. Beim ersten Durchlauf werden die Daten analysiert und die Position in der JSON Struktur gespeichert. Danach wird die Datei (zeitsparsam) nur noch mit den zwischengespeicherten Daten interpretiert.

Ach. Durch Zwiebel's Lösungsweg wird das Perl-Modul JSON nicht benötigt. Läuft also auch auf der Fritzbox.  ;)

Gruß

Tupol

PS: Bin mir nicht sicher, ob das Modul automatisch verteilt wird. Ansonsten hilft: "update 70_JSONMETER.pm"

tupol

Modul-Erweiterung:
Attribut: doStatistics < 0 | 1 >
     Bildet tägliche, monatliche und jährliche Statistiken bestimmter Gerätewerte.
     Für grafische Auswertungen können die Werte der Form 'statReadingNameLast' genutzt werden.

Derzeit implementierte Gerätetypen (neben der frei wählbaren URL oder Datei):
  ◾ ITF - Eintarifzähler von N-ENERGY Netz GmbH (ITF Fröschl)
  ◾ EFR - EFR Smart Grid Hub für Stromzähler von EON, N-ENERGY, EnBW
  ◾ LS110 - YouLess LS110 Netzwerkfähiger Sensor für elektromechanische Stromzähler

tupol

Modulerweiterung:

set <device> activeTariff <0 - 9>

Erlaubt die gezielte, separate Erfassung der statistischen Verbrauchswerte (doStatistics = 1) für verschiedene Tarife (Doppelstromzähler), wenn der Stromzähler dies selbst nicht unterscheiden kann (z.B. LS110) oder wenn geprüft werden soll, ob ein zeitabhängiger Tarif preiswerter wäre.
Dieser Wert muss entsprechend des vorhandenen oder geplanten Tarifes zum jeweiligen Zeitpunkt z.B. durch den FHEM-Befehl "at" gesetzt werden.
0 = tariflos

###############################################################
#   Stromtarif für Stromzähler
################################################################
define Strom_HT_W at *06:00 { if ( $wday != 0 ) {fhem( "set Stromzaehler activeTariff 1");;} }
define Strom_NT_W at *22:00 set Stromzaehler activeTariff 2
define Strom_NT_Sa at *13:00 { if ( $wday == 6 ) {fhem( "set Stromzaehler activeTariff 2");;} }