eHZ Stromzähler von EHM metering auslesen

OP #7750736
Lesenswert?

Hallo, ich habe seit 2012 schon zwei eHZ Zähler für meine Photovoltaikanlage in Betrieb. Jetzt habe ich von Westnetz einen eHZ Zähler für Wärmepumpenstrom bekommen.

1
Hersteller: EMH metering GmbH & Co. KG
2
Typ       : eHZB, Elektronischer Basiszähler

Ich lese die Zähler mittels IR-Lesekopf und RS232 Verbindung aus. Die Verarbeitung erfolgt mit VB.NET.

Ich will den Wert für den verbrauchten Strom auslesen. In der Gebrauchsanleitung stehen auch einige OBIS-T-Kenzahlen.

Die Kennzahl ist die "01 00 01 08 00 FF", Zählwerk positive Wirkenergie tariflos. In der Datei LogDatei.png habe ich die Log-Auszüge von drei Werten wiedergegeben.

Die Zählerstände betrugen 108 kWh, 114 kWh und 117 kWh. Man sieht in der Sequenz zum Schluß 8 Stellen. Die 8. Stelle zeigt den Zählerstand an, Stelle 1 bis 7 sind 00.

Man sollte vermuten das beim Überlauf dann in der 7. Stelle weiter geschrieben wird. Wenn dem so sein sollte, dann wäre meine Frage schon gelöst.

Jedenfalls läuft das Auslesen in bei den eHZ aus dem Jahr 2012 etwas anders aus.

bStartsequenz = New Byte() {&H1B, &H1B, &H1B, &H1B, &H1, &H1, &H1, &H1} bEndsequenz = New Byte() {&H1B, &H1B, &H1B, &H1B, &H1A} b_1_8_0 = New Byte() {&H77, &H7, &H1, &H0, &H1, &H8} b_2_8_0 = New Byte() {&H77, &H7, &H1, &H0, &H2, &H8}

Die wichtigsten Sequenzen sind gleich geblieben. Die Suche nach den Zählerstand läuft über eine 6 stellige OBIS-T-Kenzahl. An der 8. Stelle befindet sich ein Wert der offensichtlich als Zeiger für den Beginn der Zählerwerte im String dient. Dort kommen wohl die Hex-Werte für Dezmal 98, 99 und 100 vor.

Ich finde an dieser Stelle bei mir Hex 64, das wären Dez 100. Bei dem neuen Zähler fängt die Sequenz an der 26. Stelle an. Es folgen zur Zeit 7 x 00 und an der achten Stelle ein Hex Wert für den Zählerstand.

1
'1.8.0
2
i = BytesSuchen(bData, b_1_8_0, 0)
3

4
If i = -1 Then
5
    If blnAllesProtokollieren Then
6
        cText = "1.8.0 nicht gefunden"
7
        WrProtokoll(cText)
8
    End If
9
Else
10
    If Convert.ToInt64(bData(i + 8)) = 98 Then
11
        i = i + 17
12
    ElseIf Convert.ToInt64(bData(i + 8)) = 99 Then
13
        i = i + 18
14
    ElseIf Convert.ToInt64(bData(i + 8)) = 100 Then
15
        i = i + 19
16
    Else
17
        cText = "Lesefehler bei 1.8.0."
18
        WrProtokoll(cText)
19
        blnRet = False
20
        Exit Do
21
    End If
22
    Zählerstand = Convert.ToInt64(bData(i))
23
    Zählerstand = Zählerstand * 256 + Convert.ToInt64(bData(i + 1))
24
    Zählerstand = Zählerstand * 256 + Convert.ToInt64(bData(i + 2))
25
    Zählerstand = Zählerstand * 256 + Convert.ToInt64(bData(i + 3))
26
    d180Ausgelesen = Zählerstand / 10000
27
End If

Ich muß zum Code sagen, diesen Kern hatte ich irgendwo her und er funktionierte. Im neuen Zähler liegt zur Zeit der kleinste Wert an 8. Stelle. Bei den alten Zählern ist es offensichtlich andersherum.

Für mich sieht es so aus das jeder Hersteller seine eigenen Vorstellungen umsetzt und nur die OBIS-T-Kennzahlen genormt sind. Aber selbst die Kennzahl für den Hersteller hat sich geändert. Ich mußte tatsächlich die OBIS-T-Kennzahl aus der Gebrauchsanleitung des Herstellers entnehmen um die entsprechende Stelle zu finden. Der alte Code wurde nicht gefunden.

Liege ich mit der Vermutung richtig, daß beim neuen Zähler der kleinste Wert an 8. Stelle liegt und liegen bleibt? mfg Klaus

Angehängte Dateien:
OP #7754383
Lesenswert?

Hallo, mein Zähler steht jetzt auf 205 kWh. Ich bin mir aber sicher, der erste Überlauf landet auf Byte 7. Das heißt, Byte 8 bleibt das Low - Byte und Richtung Byte 1 werden die Stellen höhenwertiger.

In der Gebrauchsanleitung des Zählers steht folgendes:

1
Diese unidirektionale Infrarot-Datenschnittstelle sendet jede Sekunde automatisch entweder einen reduzierten oder vollständigen Datensatz.
2

3
Der reduzierte Datensatz enthält keinen Wert für die Momentanwirkleistung, die Zählwerksstände werden ohne Nachkomma-Stellen in vollen kWh ausgegeben.
4

5
Über das Menü InF wird der Datensatz festgelegt (nach korrekter PIN-Eingabe).
6

7
InF on = Vollständiger Datensatz
8
InF OFF = Reduzierter Datensatz

Ich habe es heute geschafft dem Zähler seine PIN einzugeben. Im Zählerfenster wird jetzt wie zuvor der Zählerstand ohne Dezimalstellen angezeigt und in der zweiten Zeile die Leistung in Watt. Das ist ja schon einmal ein Erfolg.

Im Datenstrom für den Bezug müßte man jetzt im Leerlauf der Wärmepumpe ständig 9, 10 oder 11 Watt finden können, bzw. die Dezimalstellen dazu. Der Zähler liefert jede Sekunde ein Datenpaket.

1
Bezug 1.0.8                                                                                                                   CD = 205 kWh
2

3
77-07-01-00-01-08-00-FF-
4

5
64-1C-81-04-72-62-01-65-00-6B-33-2A-62-1E-52-03-69-00-00-00-00-00-00-00-CD-01-
6
                                                                        CD = 205
7

8
Einspeisung 2.0.8
9

10
77-07-01-00-02-08-00-FF-
11

12
01-72-62-01-65-00-6B-33-2A-62-1E-52-03-69-00-00-00-00-00-00-00-00-01-01-01-63-63-48-00-76-05-01-41-52-A1-62-00-62-00-72-63-02-01-71-01-63-0E-65-00-00-00

Ich hoffe, mir kann hier jemand helfen. Zu diesem Zähler gibt es noch nicht viel konkretes auf dieser Ebene. Die OBIS-T-Kennzahlen sind halbwegs dokumentiert, zum Format der Datenablage findet man nichts. Meine eHZ Zähler aus dem Jahr 2012 waren leichter zu lesen und lieferten auch ohne PIN Dezimalstellen.

mfg Klaus

OP #7754471
Lesenswert?

Hallo, ich denke es liegt am Zähler. Der Zähler ist mit der PIN freigeschaltet worden und man sieht unter dem Zählerstand auch jetzt die aktuelle Leistung. Der Zähler liefert trotzdem noch den reduzierten Datensatz.

Ich habe die OBIS-T-Kennzahl für die Leistung gefunden.

77-07-01-00-0F-07-00-FF = Leistung total, OBIS 1-0:15.7.0*255

Sie ist im Datenpaket nicht vorhanden. So ist es eben. Aber ...

Der Zähler hat auch noch eine sogenannte Prüf-LED.

1
Prüf-LED
2

3
Die Prüf-LED dient ausschließlich der Ausgabe von energieproportionalen Wirkenergieimpulsen zur metrologischen Prüfung. Die Anzeige erfolgt im IR (Infrarot)-Bereich.
4

5
Die Impulskonstante beträgt 10 000 Imp./kWh mit einer Impulslänge von 2 ms.
6

7
Misst der Zähler keinen oder einen Strom unterhalb seiner Anlaufschwelle, befindet er sich im Stillstand. In diesem Fall sendet die Prüf-LED einen Dauerimpuls.

Einen Impulszähler habe ich noch im März dieses Jahres sogar für 4 Kanäle und mit einem WEMOS-D1-Mini erstellt und zum Laufen gebracht. Eine Platine ist noch da. Da dürfte ein weiterer Impulszähler kein Problem sein.

Eins ärgert mich doch, 2012 war es kein Problem aus einem eHZ Zähler brauchbare Daten zu erhalten. Eine Pin gab es damals auch aber man erhielt den Zählerstand mit Dezimalzahl auch ohne PIN.🤐 Die Eingabe der PIN mit Taschenlampe war eine echte Zumutung. Zum Glück war eine der vorhandenen Taschenlampen dafür geeignet. Nach ca. 20 Anläufen hat es auch funktioniert. Der Datenschutz klappt wirklich gut!😠 Westnetz, das hast Du gut gemacht.

Also laßt euch diesen Zähler nicht installieren. Ausser ihr wollt nur Ganzahlen sehen.

Hersteller: EMH metering GmbH & Co. KG Typ : eHZB, Elektronischer Basiszähler

mfg Klaus

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren