HM-ES-TX-WM Zählersensor für Strom- und Gaszähler

Aus FHEMWiki
Wechseln zu: Navigation, Suche
HM-ES-TX-WM Zählersensor für Strom- und Gaszähler
HomeMatic Zählersensor
Allgemein
Protokoll HomeMatic
Typ Powersensor
Kategorie HomeMatic
Technische Details
Kommunikation 868 MHz
Kanäle 1
Betriebsspannung 6 V
Leistungsaufnahme 30 mA
Versorgung 4 Batterien LR6/AA/Mignon
Abmessungen 68x105x30mm
Sonstiges
Modulname CUL_HM
Hersteller ELV / eQ-3


Features

Der HM-ES-TX-WM ist eine Datenerfassungs- und Sendeeinheit, an die genau ein (separat zu erwerbender) Zählersensor für passende Strom-/Gaszähler angeschlossen wird, der den aktuellen Verbrauch direkt am jeweiligen Zähler erfasst und in FHEM als Momentanwerte und als laufenden Saldo verfügbar macht.

Technische Daten:

Gewicht: 195 g (inkl. 4 LR6/Mignon/AA-Batterien)

Anwendungsszenarien

Mit den erfassten und gesammelten Daten lassen sich Aktionen beim Erreichen bestimmter Schwellwerte auslösen, Verbrauchs- und Kostenstatistiken erstellen sowie beliebige weitere Abhängigkeiten bilden. Durch die Funkdatenübertragung sowie den Batteriebetrieb (1 bis 2 Jahre Betriebsdauer verspricht der Hersteller mit einem Satz) ist die Installation denkbar einfach und erfordert lediglich beim Anbringen der Leseeinheit Genauigkeit.

Im Februar 2015 hat die Auslieferung der Geräte als (einfacher) Bausatz begonnen, zu dem es

  • einen Ferraris-Sensor (für Stromzähler mit den markanten Laufscheiben) (ca. 25€),
  • einen LED-Sensor (für neue Zähler mit S0-Schnittstelle) (ca. 25€), sowie
  • einen BK-G4-Gaszähler von Elster-Kromschröder (die an einer Ziffernrolle einen kleinen Magneten haben, der über einen Sensor mit Reedkontakt erfasst wird) (ca. 60€)

gibt. Es ist laut Hersteller ELV als Bausatz (ca. 45€) oder auch - deutlich teurer - fertig montiert (ca. 70€) verfügbar.

Die Zähler werden mit rückstandslos entfernbaren Klebepads angebracht.

Parameter

list:        register | range              | peer     | description 
  0: pairCentral      |   0 to 16777215    |          | pairing to central 
  1: mtrConstGas      |   0 to 655.36      |          | constant gas 
  1: mtrConstIr       |   0 to 65536       |          | constant IR 
  1: mtrConstLed      |   0 to 65536       |          | constant led 
  1: mtrSensIr        | -99 to 99          |          | sensiblity IR 
  1: mtrType          |     literal        |          | type of measurement options:LED,gas,unknown,IR 

Probleme

Der HM-ES-TX-WM sendet zyklisch im 3-Minuten Takt die aktuellen Verbrauchsdaten. Dabei ist für das Reading "power" (aktuelle Stromleistung in Watt) zu beachten, dass alle drei Minuten der zuletzt bekannte Wert gesendet wird. Das heißt im Besonderen:

  • Sollten innerhalb der drei Minuten mehrfach Impulse auftreten mit unterschiedlichen Leistungswerten, wird nur der zuletzt bekannte Wert genommen. Es findet keine Aggregation der Impulse (Mittelwert, Summe, …) statt.
  • Sollten innerhalb der drei Minuten keinerlei Impulse auftreten, wird dennoch der zuletzt bekannte Leistungswert gesendet, auch wenn er mehrere Minuten/Stunden/Tage alt ist.

Der state des Devices zeigt den letzten Übertragungsstatus an das Device, das Geräte unterstützt keinen Burst. D.h. einen an das Gerät abgesetzten Befehl z.B. getConfig oder einstellen von Zählerkonstanten sollte man möglichst am Geräte bestätigen, sonst könnte es sein, dass ein ACK zu spät zurück kommt und man sich anschließend im state über ein NACK wundert.

Scheinbar gibt es für das reading energy bei 838860.7 einen Zählerüberlauf. Beitrag

Betrieb mit FHEM

Der Sensor wird mit einem FHEM im Update-Stand vom (mindestens) 7.2.2015 funktionsfähig eingebunden (getestet in der Variante mit Ferraris-Fühler). Es werden der Fühlertyp und die Fühlerkonstante richtig ausgelesen und im Reading energy die errechnete Energiemenge ausgegeben (bei Strom: Wattstunden, Wh).

Für die perfekte Konfiguration wird auf die Seite "Heizleistung und Gasverbrauch" verwiesen, wo eine vollständige Lösung für die Umrechnung von Gasverbrauch in kW/h, Graphen und Hilfsprogramme vorgestellt wird.

Readings

Reading:       |Beispiel   
D-firmware     |1.0
D-serialNr     |MEQ0025452 
battery        |ok
boot           |off 
current        |0 
eState         |E: 6199.9 P: 1713 I: 0 U: 0 f: 50 
energy         |6199.9 
energyOffset   |84413.2
frequency      |50 
power          |1713 
powerOn        |2015-03-26 14:57:48
voltage        |0

Events Auszug

Event     |Beispielswert
battery*  |ok
energy    |10186.6
power     |283
current   |0
voltage   |0
frequency |50
eState    |E: 10186.6 P: 283 I: 0 U: 0 f: 50
boot      |off

Ein battery-Event wird nicht zyklisch getriggert. Erst wenn die Batterie tatsächlich leer ist, wird eine entsprechende Meldung vom Gerät selber gesendet und ein battery-Event getriggert (battery: low).

Mit einem Userreading lässt sich die Angabe aus energy (zum Beispiel für einen Stromzähler (Wh)) in die auf dem Zähler übliche Angabe kWh umrechnen und zugleich mit dem Aufaddieren des Unterschieds beim Start (das Zählermodul beginnt ja mit 0 Wh, während der Zähler meist schon einige Jahre auf der "Rolle" hat) die Angaben gleichziehen:

attr <DeviceName> userReadings kWh {sprintf("%.1f",ReadingsVal("<DeviceName>","energy","???")/1000+72031.5639)}

Konfiguration

Nach dem Erkennen durch autocreate wird der Zählersensor mit diesen Angaben eingebunden:

define CUL_HM_HM_ES_TX_WM_353594 CUL_HM 353594
attr CUL_HM_HM_ES_TX_WM_353594 IODev CUL_0
attr CUL_HM_HM_ES_TX_WM_353594 actCycle 000:10
attr CUL_HM_HM_ES_TX_WM_353594 actStatus alive
attr CUL_HM_HM_ES_TX_WM_353594 expert 2_full
attr CUL_HM_HM_ES_TX_WM_353594 firmware 1.0
attr CUL_HM_HM_ES_TX_WM_353594 model HM-ES-TX-WM
attr CUL_HM_HM_ES_TX_WM_353594 subType powerSensor
define CUL_HM_HM_ES_TX_WM_353594_IEC_01 CUL_HM 353594
attr CUL_HM_HM_ES_TX_WM_353594_IEC_01 icon measure_power
attr CUL_HM_HM_ES_TX_WM_353594_IEC_01 model HM-ES-TX-WM
attr CUL_HM_HM_ES_TX_WM_353594_IEC_01 peerIDs 
define CUL_HM_HM_ES_TX_WM_353594_IEC_02 CUL_HM 353594
attr CUL_HM_HM_ES_TX_WM_353594_IEC_02 model HM-ES-TX-WM

Die Übertragung der Messwerte erfolgt in Kanal 01 (hier: "CUL_HM_HM_ES_TX_WM_353594_IEC_01"). Für eine Darstellung als SVG-Plot können die Messwerte mittels folgender Anweisung in einer Datei abgespeichert werden.

define FileLog_CUL_HM_HM_ES_TX_WM_353594_IEC_01 FileLog ./log/Stromverbrauch-%Y-%m.log  CUL_HM_HM_ES_TX_WM_353594_IEC_01

Für den Betrieb mit den verschiedenen Zählern muß eines der Readings R-mtrConstXXX auf den jeweiligen verwendeten Zähler konfiguriert werden. Z.B. kann ein Ferraris-Stromzähler 100, 150 oder 200 Umdrehungen je kWh benötigen. Dies geschieht z.B. für 150 Meldungen je Einheit für einen Ferraris-Zähler mit dem Befehl

set CUL_HM_HM_ES_TX_WM_353594 regSet mtrConstIr 150

oder für einen Gaszähler auf der 1. Rolle (d.h. 1 Impuls je 0.1 m^3)

set CUL_HM_HM_ES_TX_WM_353594 regSet mtrConstGas 0.1

In FHEM bis zum Anfang November 2015 war hier ein kleiner Bug enthalten, der diesen Wert nicht akzeptierte. In diesem Fall läßt sich die Anzahl der Impulse direkt am Gerät über das Display einstellen.

Logging/Graph. Darstellung

Beispiel der graph. Darstellung

Der Zähler wird fortlaufend aufaddiert. Mit der delta-Funktion von SVG-Plot können die Verbräuche sehr gut visualisiert werden. Beispiel Stromzähler:

set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title 'Stündlicher Stromverbrauch | aktuell: $data{currval1} ($data{min1} / $data{avg1} / $data{max1}) kWh'
set ytics 
set y2tics 
set grid ytics
set ylabel "kWh/h"
set y2label "kWh/h"
#FileLog 4:CUL_HM_HM_ES_TX_WM_353594.kWh\x3a:0:delta-h
plot "<IN>" using 1:2 axes x1y2 title 'Line 1' ls l0 lw 2 with bars

Wiki ToDo

Seit dem FHEM Update vom 06.03.2016 werden bei Neueinrichtung mit Autocreate 2 Kanäle angelegt. Dies entspricht der Firmware Revision 1.1:

  • _IEC_01

Im Gas-Modus werden hier die Werte geliefert. Im IR-Modus kommen seit R12555 vom 12.11.2016 hier die Zähl-Werte Energiewerte an, die auch im Status von IEC02 gezeigt werden. state enthält dabei den Wert des readings energy. Möchte man hier z.B. die im letzten Zeitfenster gemessene Leistung anzeigen lassen, reading power, so hilft das Attribut stateformat {sprintf("P: %.1f W", ReadingsVal($name,"power",0))}

  • _IEC_02

Firmwareupdate

Das Gerät lässt sich in den Updatemodus versetzen, im dem die Batterien zunächst entfernt, dann beim Einsetzen die Anlerntaste (die rechte mit der Bezeichnung ">") gedrückt bleibt. die Leuchtdiode blinkt dann rot im schnellen Takt. Das FHEM-Kommando zum Senden der Firmware per set <devicename> fwUpdate <Firmwaredatei.eq3> muss vor dem Einlegen der Batterie (bei gleichzeitigem Drücken der Anlerntaste) aufgegeben werden. Erfolgt zum Zeitpunkt des Anstartens im Updatemodus keine Sendung der Firmware wird der Zählersensor normal gebootet. Die Meldung <devicename> fwUpdate: fail:notInBootLoader im Filelog erscheint, wenn das FHEM fwUpdate Kommando zu spät gesendet wurde.

Der Update dauert etwa eine Minute. Während des Updates blinkt die Diode rot in kurzen Intervallen. Nach erfolgreichen Update muss der Sensor auf die Werkseinstellungen zurückgesetzt (">" Taste 4 Sekunden drücken (Display zeigt reS), kurz warten, ">" noch mal 4 Sekunden drücken - Zählersensor rebootet), aus der FHEM Konfiguration entfernt und neu angelernt werden.

Wenn der Reset nicht durchgeführt wird, kommt vom Sensor immer die Fehlermeldung: einmal langes und drei mal kurzes rotes Blinken (Sitz des Auslesekopfes prüfen). Diese Meldung ist in diesem Zusammenhang ziemlich irreführend.

Dieser Vorgang ist im changelog.txt file der Firmware unvollständig beschrieben, da hier ein Update an der CCU vorausgesetzt wird und die CCU die Firmware wohl automatisch sendet.


Links