HomeMatic Stromsensor HM-EM-TX-WM

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Benutzeravatar
Cyrelian
Beiträge: 601
Registriert: 24. Sep 2015 17:55
Answers: 4

HomeMatic Stromsensor HM-EM-TX-WM

Beitrag von Cyrelian »

Hallo zusammen,

seit ein paar Tagen habe ich ein neues Spielzeug. Den Homematic Stromsensor HM-EM-TX-WM mit Ferraris Zaehler ES-Fer. Die installation war relativ simple. Ich habe das Geräte fertig zusammengebaut bei myhomematic.de bestellt.

Hier mal meine Config:

ITEMS

Code: Alles auswählen

Group	gOGStrom_Zaehler						"Stromzähler Obergeschoss"	(gKeller)
Number	OGStrom_Energy_Counter					""
Number	OGStrom_Zaehler							"Zählerstand [%.2f Wh]"							<energy>		(gOGStrom_Zaehler) {channel="homematic:HG-HM-ES-TX-WM:D15834B4-DC13-20C5-4917-23DEC3941DE8:XXXXXXXXX:1#ENERGY_COUNTER"}
Number	OGStrom_Aktueller_Verbrauch_W			"Aktuelle Leistungsaufnahme in W [%.2f W]"		<energy>  		(gOGStrom_Zaehler) {channel="homematic:HG-HM-ES-TX-WM:D15834B4-DC13-20C5-4917-23DEC3941DE8:XXXXXXXXX:1#POWER"}	
Number	OGstrom_Aktueller_Verbrauch_Kw			"Aktuelle Leistungsaufnahme in KWh [%.2f KWh]"	<energy>		(gOGStrom_Zaehler)
Number	OGStrom_Letzter_Tagesverbrauch			"Letzter Tagesverbrauch [%.2f KWh]"				<energy>		(gOGStrom_Zaehler)
Number	OGStrom_Aktueller_Tagesverbrauch		"Aktueller Tagesverbrauch [%.2f KWh]"			<energy>		(gOGStrom_Zaehler)
Number	OGStrom_Jahresverbrauch					"Aktueller Jahresverbrauch [%.2f KWh]"			<energy>		(gOGStrom_Zaehler)
Number	OGStrom_Zaehler_Gesamt					"Gesamt Zählerstand HT/NT [%.2f KWh]"			<energy>
Number	OGStrom_Verbrauch_Seit_Letzter_Ablesung	"Verbrauch seit letzter Ablesung [%.2f KWh]"	<energy>
Number	OGStrom_Verbrauch_Laufendes_Kalenderjahr"Verbrauch im laufendem Kalenderjahr [%.2f KWh]"<energy>
Number	OGStrom_Verbrauch_Laufender_Monat		"Verbrauch aktueller Monat [%.2f KWh]"			<energy>
Number	OGStrom_Verbrauch_Laufend_Woche			"Verbrauch aktuelle Woche [%.2f KWh]"			<energy>



Number	OGStrom_ZaehlerRSSI	"Feldstärke am Device [%d dbm]"	(gOGStrom_Zaehler,gSysRSSI)
	{channel="homematic:HG-HM-ES-TX-WM:D15834B4-DC13-20C5-4917-23DEC3941DE8:XXXXXXXXXX:0#RSSI_DEVICE"}

Switch OGStrom_ZaehlerBattery	"Stromzähler (OG) [MAP(battery.map):%s]"	<batterie>	(gOGStrom_Zaehler,gSysBattery)
	{channel="homematic:HG-HM-ES-TX-WM:D15834B4-DC13-20C5-4917-23DEC3941DE8:XXXXXXXXXX:0#LOWBAT"}	
Derzeit benutze ich noch nicht alle Items....vielleicht fliegen auch noch ein paar raus, je nachdem was ich eigentlich später mal auswerten möchte.

RULE

Code: Alles auswählen

var Number letzteAblesungWert = 561069

rule "Letzter täglicher Stromverbrauch"
when
   		Time cron "0 59 23 * * ?"
then
	var Number letzterTagesverbrauch = (OGStrom_Zaehler.state as DecimalType) - (OGStrom_Zaehler.historicState(now.withTimeAtStartOfDay).state as DecimalType)
	if(OGStrom_Letzter_Tagesverbrauch.state != letzterTagesverbrauch)
	{
		OGStrom_Letzter_Tagesverbrauch.postUpdate(letzterTagesverbrauch)
	}
end


rule "Stromverbrauch"
when
	Item OGStrom_Zaehler received update
then
	var Number Aktuell_Zaehler = OGStrom_Zaehler.state as DecimalType

	// Jahresverbrauch
	OGStrom_Verbrauch_Laufendes_Kalenderjahr.postUpdate(OGStrom_Zaehler_Gesamt.deltaSince(now.minusYears(1)))
	
	// Monatsverbrauch
	OGStrom_Verbrauch_Laufender_Monat.postUpdate(OGStrom_Zaehler_Gesamt.deltaSince(now.minusMonths(1)))
	
	// Wochenverbrauch
	OGStrom_Verbrauch_Laufend_Woche.postUpdate(OGStrom_Zaehler_Gesamt.deltaSince(now.minusWeeks(1)))
	
	// Tagesverbrauch
	OGStrom_Aktueller_Tagesverbrauch.postUpdate(Aktuell_Zaehler - OGStrom_Zaehler.historicState(now.withTimeAtStartOfDay).state as DecimalType)	
	
	// Verbrauch seit letzer Ablesung
	OGStrom_Verbrauch_Seit_Letzter_Ablesung.postUpdate (OGStrom_Zaehler_Gesamt.state as DecimalType - letzteAblesungWert)
	
	// aktueller Tagesverbrauch in KWh
	OGstrom_Aktueller_Verbrauch_Kw.postUpdate (OGStrom_Aktueller_Verbrauch_W.state as DecimalType / 1000)
	//logInfo("StromRules:", "States:" + OGstrom_Aktueller_Verbrauch_Kw.state)
	
	//Gesamtzählerstand (HT/NT)
	var Number gesamtZaehlerstand = (Aktuell_Zaehler /1000) + letzteAblesungWert
	OGStrom_Zaehler_Gesamt.postUpdate (gesamtZaehlerstand)
	
	//Zählerüberlauf
	//OGStrom_Energy_Counter.postUpdate = OGStrom_Zaehler.state as DecimalType
	//if ((OGStrom_Zaehler.state as DecimalType + 0.001) < OGStrom_Energy_Counter.state as DecimalType) {
	//	OGStrom_Energy_Counter.postUpdate (OGStrom_Zaehler.state as DecimalType + 838.8607)
	//} 
end
Bisher funktioniert es soweit erstaunlich gut. Allerdings hänge ich noch an einer Stelle, dem Zählerüberlauf.
Aufgrund der technischen Eigenschaften des HM-EM-TX-WM (intern wird nur ein 23 Bit-Zähler verwendet) läuft dessen Datenpunkt bei Erreichen
von 838860,7 Wh über und beginnt wieder bei 0. Dies führt dazu, dass nach diesem Überlauf falsche negative Werte in den einzelnen Zählern angezeigt werden(https://www.elv.de/topic/zaehler-setzt- ... auf-0.html)
Es gibt diverse Ansätze für die CCU, aber nicht wirklich brauchbares für openHAB. Vielleicht hat ja einer von Euch ne Idee wie man das lösen könnte.

CYA
Cyrelian

Benutzeravatar
Cyrelian
Beiträge: 601
Registriert: 24. Sep 2015 17:55
Answers: 4

Re: HomeMatic Stromsensor HM-EM-TX-WM

Beitrag von Cyrelian »

UPDATE:

Code: Alles auswählen

Rule 'Stromverbrauch': org.eclipse.smarthome.core.library.types.DecimalType

Code: Alles auswählen

[ERROR] [.script.engine.ScriptExecutionThread] - Rule 'Stromverbrauch': An error occured during the script execution: The name '<"XFeatureCallImplCustom">.state' cannot be resolved to an item or type
Auf Grund dieser Fehler beim Aufruf der Rule...komischerweise hat es ein paar mal geklappt, hab ich die Rule umgebaut:

Code: Alles auswählen

rule "Stromverbrauch"
when
	Item OGStrom_Zaehler received update
then
	var Number aktuellerZaehler = OGStrom_Zaehler.state as DecimalType

	//Gesamtzählerstand (HT/NT)
	var Number gesamtZaehlerstand = (aktuellerZaehler /1000) + letzteAblesungWert
	OGStrom_Zaehler_Gesamt.postUpdate(gesamtZaehlerstand)

	// Verbrauch seit letzer Ablesung
	var Number verbrauchLetzterAblesungDiff = (OGStrom_Zaehler_Gesamt.state as DecimalType - letzteAblesungWert)
	OGStrom_Verbrauch_Seit_Letzter_Ablesung.postUpdate(verbrauchLetzterAblesungDiff)

	// aktueller Verbrauch in KWh
	OGstrom_Aktueller_Verbrauch_Kw.postUpdate(OGStrom_Aktueller_Verbrauch_W.state as DecimalType / 1000)
end

Benutzeravatar
seppy
Beiträge: 738
Registriert: 24. Sep 2015 20:25
Answers: 4
Wohnort: Bonn

Re: HomeMatic Stromsensor HM-EM-TX-WM

Beitrag von seppy »

Hi Cyrelian,

ich kann Dir nicht mehr folgen. Funktioniert denn jetzt alles?
Dein Regel könnte man noch vereinfachen:

Code: Alles auswählen

rule "Stromverbrauch"
when
	Item OGStrom_Zaehler received update
then

	//Gesamtzählerstand (HT/NT)
	OGStrom_Zaehler_Gesamt.postUpdate((OGStrom_Zaehler.state as Number /1000) + letzteAblesungWert)

	// Verbrauch seit letzer Ablesung
	OGStrom_Verbrauch_Seit_Letzter_Ablesung.postUpdate(OGStrom_Zaehler_Gesamt.state as Number - letzteAblesungWert)

	// aktueller Verbrauch in KWh
	OGstrom_Aktueller_Verbrauch_Kw.postUpdate(OGStrom_Aktueller_Verbrauch_W.state as Number / 1000)
end
Aber wo kommt "letzteAblesungWert" her?

Grüße,
Seppy
Homematic und HomematicIP über Raspberrymatic (RaspPi 4 4GB) mit 2x HMLAN. Steuerung und Visualisierung durch OpenHAB2 auf RaspPi in Hutschienengehäuse im Sicherungskasten. Rund 100 Aktoren/Sensoren

- Abgesichert durch APC USV
- Bewässerungssteuerung mit Hunter Magnetventilen (HM-LC-Sw4-DR)
- Beleuchtungssteuerung Innen und Aussen (HM-LC-Sw4-DR + HM-LC-SW1-FM + HMW-IO-12-SW7-DR)
- Rolladensteuerung mit Beschattungsautomatik über Temperaturdifferenzsensor (HM-LC-Bl1PBU-FM)
- Wetter und Unwetterinformationen von wunderground
- Benachrichtigung der Bewohner via Pushover
- Multimediawand und Dreambox Steuerung (HM-LC-SW1-FM)
- Heizungssteuerung mit Komfort und Energiesparfunktionen (HM-CC-RT-DN + HM-Sec-SC-2 + HMIP-eTRV-2)
- Werkstatt Kompressorsteuerung (HMW-IO-12-SW7-DR)
- Weihnachtsbeleuchtung außen
- Präsenzerkennung über Geolocation (iCloud Binding), iBeacon und WLAN (Unifi Binding)
- Philips HUE & Tasmota Devices (Tuya) Einbindung

Benutzeravatar
Cyrelian
Beiträge: 601
Registriert: 24. Sep 2015 17:55
Answers: 4

Re: HomeMatic Stromsensor HM-EM-TX-WM

Beitrag von Cyrelian »

Hi Seppy,

den gebe ich in wie folgt vor:
var Number letzteAblesungWert = 561069
Meine letzte Rule läuft jetzt..ich werde es aber mal mit deiner testen. Wobei der unterschied ja "nur" "state as Number" ist.

CU
Cyrelian

Benutzeravatar
Cyrelian
Beiträge: 601
Registriert: 24. Sep 2015 17:55
Answers: 4

Re: HomeMatic Stromsensor HM-EM-TX-WM

Beitrag von Cyrelian »

Hi Seppy,

aktuell hänge ich hier :( . Beim Wechseln der Batterien oder beim Zählerstand von 838.8607, springt der Zähler wieder auf 0. Somit stimmen die Anzeigen nicht mehr. Das möchte ich gerne abfangen.

Code: Alles auswählen

	//Zählerüberlauf
	OGStrom_Energy_Counter.postUpdate = OGStrom_Zaehler.state as Number
		if ((OGStrom_Zaehler.state as Number + 0.001) < OGStrom_Energy_Counter.state as Number) {
		OGStrom_Energy_Counter.postUpdate (OGStrom_Zaehler.state as Number + 838.8607)	} 
Ich hab was dazu gefunden...aber nur für die CCU, aber ggf. kann das für openHAB anpassen.

http://hausautomation.stern-av.de/homem ... -em-tx-wm/

ggf. so?

Code: Alles auswählen

	//Zählerüberlauf
	if ((OGStrom_Zaehler.state as Number + 0.001) < OGStrom_Energy_Counter.state as Number) {
		OGStrom_Energy_Counter_Ref.postUpdate (OGStrom_Energy_Counter_Ref.state as Number + 838.8607)
	} 
		OGStrom_Energy_Counter.postUpdate (OGStrom_Zaehler.state as Number)
Hast Du ne Idee?

CU
Cyrelian

schalt
Beiträge: 1
Registriert: 20. Mai 2018 19:07
Answers: 0

Re: HomeMatic Stromsensor HM-EM-TX-WM

Beitrag von schalt »

Hi Cyrelain,

ich bin auf deine Posts aufmerksam geworden, da ich auch openhab2 und den HM-EM-TX-WM im Einsatz habe. Leider liefert mir der HM-EM-TX-WM seltsame Werte zurueck mit denen ich nicht wirklich was anfangen kann. Hattet Ihre aehnliche Probleme?

Hier mal ein kleiner Ausschnitt aus meinem Eventlog:

2018-05-20 18:50:49.646 [vent.ItemStateChangedEvent] - OGStrom_Aktueller_Verbrauch_W changed from 0.00 to 36000.00
2018-05-20 18:53:00.476 [vent.ItemStateChangedEvent] - OGStrom_Zaehler changed from 42119.700012 to 43280.400024

Als aktuellen Verbrauch bekomme ich immer 36KW gemeldet was aber nicht wirklich sein kann :D

Gab es bei euch auch am Anfang solche Probleme?
Der verbaute Stromzaehlner meldet RL = 10 000 Imp/KWh, daher wurde der HM-EM-TX-WM von mir auch 10K konfiguriert.

Benutzeravatar
Cyrelian
Beiträge: 601
Registriert: 24. Sep 2015 17:55
Answers: 4

Re: HomeMatic Stromsensor HM-EM-TX-WM

Beitrag von Cyrelian »

Hi schalt,

OK, 36KW is ein bisschen viel :mrgreen: . Hast Du mal geschaut, ob du irgendwo in einer rule aus versehen den Wert immer auf 36KW setzt?.
Poste mal bitte deine Config. Dann kann man besser schauen.

CU
Cyrelian

Antworten