Zitat von HHS
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
eHZ auslesen
Einklappen
X
-
naja, ich möchte kein extra Gerät anschaffen, ich möchte meinen schon vorhandenen Mini-Server (der die Visu und die Logik hält, sowie ein paar interne Wikis zur Dokumentation meines Hauses bereit stellt) nutzen und diesen mit einem passenden IR Lese-Schreibkopf erweitern... da gibt es ja viele unterschiedliche Köpfe, es muss am ende ja passen.
Leider antwortet bisher mein Stromversorger nicht, um mir die PIN raus zu rücken...
Kommentar
-
Zitat von HHS Beitrag anzeigenLeider antwortet bisher mein Stromversorger nicht, um mir die PIN raus zu rücken...Tschö Marcus
----------------------------------------------------------------------
Was man anfängt sollte man auch zu Ende bri
Kommentar
-
Ich hab hier einen
ISKRA Drenstromzähler
eHZ-EDL Type MT 681-D4A51-K0p
und mangels Kompatibilitätsliste keine Ahnung ob das Teil bei mir gehen würde... Hab die Jungs auch angeschrieben.
Handbuch hab ich auch soweit Studiert, in der APP gibt es ja einen Zählertyp welchen man einstellen soll, (Klasse A-D Typ 1-9) was man hier korrekt einstellt ist mir leider auch nicht so ganz klaro.... Uff..
Tomas
Kommentar
-
Zitat von TomasM Beitrag anzeigenIskra MT 681-D4A51-K0p
ich hab den gleichen Iskra Zähler und der funktioniert mit Lingg&Janke BCU-EZ-EHZ-RJ10-OPT1-DREG- FW.
Gruß
RistoWinston Churchill hat mal gesagt: "Ein kluger Mann macht nicht alle Fehler selbst. Er gibt auch anderen eine Chance.“
Kommentar
-
Zitat von xrk Beitrag anzeigen
Hi Tomas,
ich hab den gleichen Iskra Zähler und der funktioniert mit Lingg&Janke BCU-EZ-EHZ-RJ10-OPT1-DREG- FW.
Gruß
Risto
kWh kriege ich, Wh sind leider nur ganze 1000er Schritte, also kann ich auch bei kWh bleiben. Aber die Leistung P+ und P- sollen laut Lingg und Janke Anleitung drin sein, leider bekomme ich immer nur 0W.Dieser Beitrag enthält keine Spuren von Sarkasmus... ich bin einfach so?!
Kommentar
-
Ich hab mal vor einiger Zeit mit Terminal den Datenstrom angeschaut, was der IR-Lesekopf mit Iskra mir liefert und diesen SML Datei, wie man es nennt, nach Inhalt aufgedröselt. IR-Lesekopf lieferte Daten mit 9600 baud 8N1 und ich habe die SML Dataien mit konstantem 324 Byte Länge in ca. 1,2 Sekundentakt erhalten.
Unten Erklärung eines Beispiel SML-Datei (Zählerstand beim Messen 3424 kWh), wo ich die Identifikationsmerkmale geschwärzt habe (Seriennummer und Public Key).
SML-Datei inkludiert SML-Header, einer oder mehrere SML-Nachrichten und einem SML-Footer. Hier paar Links um weiter in die Thema einzulesen:
http://www.stefan-weigert.de/php_loader/sml.php
https://www.msxfaq.de/sonst/bastelbu..._protokoll.htm
OBIS Kennzahlen: https://wiki.volkszaehler.org/software/obis
Code:1B 1B 1B 1B #Escape-Sequenz 01 01 01 01 #Leitet Übertragung der Version 1 als Datenstrom ein 76 #7=Liste, 6=Anzahl der Einträge (Erste SML Nachricht in diesem Telegram) 05 05 D3 17 53 #transactionId: 05 D3 17 53 (zählt hoch mit jeder SML Nachricht) 62 00 #groupNo (0x62=uint8): 0 62 00 #abortOnError (uint8): 0 72 #Neue Liste mit 2 Einträgen (messageBody) 63 01 01 #"OpenResponse" 0x00000101 SML_PublicOpen.Res 76 #Neue Liste mit 6 Einträgen 01 #codepage, ohne Wert 01 #clientID, ohne Wert 05 01 F1 07 C7 #regFileId 0B xx xx xx xx xx xx xx xx xx xx #serverId (wie gedruckt auf Zählergehäuse) 01 #refTime, ohne Wert 01 #smlVersion, ohne Wert 63 11 09 #(uint16) CRC Prüfsumme der ersten Nachricht 00 #Ende der ersten Nachricht "endOfSmlMsg" 76 #2. SML Nachricht, Neue Liste, 6 Einträge 05 05 D3 17 54 #transactionID 62 00 #groupNo (uint8): 0 62 00 #abortOnError (uint8): 0 72 #messageBody: Liste mit 2 Einträgen 63 07 01 #"GetListResponse" 0x00000701 SML_GetList.Res 77 #Liste mit 7 Einträgen 01 #clientId, ohne Wert 0B xx xx xx xx xx xx xx xx xx xx #serverId (wie gedruckt auf Zählergehäuse) 07 01 00 62 0A FF FF #Listname: 1.0.98.10.255.255 ? 72 #Liste mit 2 Einträgen "actSensorTime" 62 01 #choice (uint8): value 0x01=secIndex 65 03 2C 73 27 #secIndex (uint32): (Uptime oder Gerätezeit? in Sekunden) 53244711 Sek. -> grob 616 Tage 77 #Neue Liste, 7 Einträge "valList" 77 #Neue Liste, 7 Einträge 07 81 81 C7 82 03 FF #objName: OBIS 129-129.199.130.3*255 "Herstelleridentifikation " 01 #status, ohne Wert 01 #valTime, ohne Wert 01 #unit, ohne Wert 01 #scaler: ohne Wert 04 49 53 4B #value (49 53 4B) ASCII: ISK 01 #valueSignature: ohne Wert 77 07 01 00 00 00 09 FF #objName: OBIS 1-0.0.0.9*255 "Geräteeinzelidentifikation" 01 #status, ohne Wert 01 #valTime, ohne Wert 01 #unit, ohne Wert 01 #scaler: ohne Wert 0B xx xx xx xx xx xx xx xx xx xx #value Seriennummer=serverID (wie gedruckt auf Zählergehäuse) 01 #valueSignature: ohne Wert 77 07 01 00 01 08 00 FF #objName: OBIS 1-0.1.8.0*255 "Zählerstand Bezug" 65 00 00 01 82 #status (uint32): ? 01 #valTime, ohne Wert 62 1E #unit (uint8), 1E = Wh 52 FF #scaler (int8): FF=-1(dezimal) -> 10^-1 = 0.1 59 00 00 00 00 02 0A 86 6B #value (int64): 3.424.420,3 Wh mit Scaler 01 #valueSignature: ohne Wert 77 07 01 00 01 08 01 FF #objName: OBIS 1-0.1.8.1*255 "Zählerstand Bezug Tarif 1" 01 #status, ohne Wert 01 #valTime, ohne Wert 62 1E #unit (uint8), 1E = Wh 52 FF #scaler (int8): FF=-1(dezimal) -> 10^-1 = 0.1 59 00 00 00 00 02 0A 86 6B #value (int64): 3.424.420,3 Wh mit Scaler 01 #valueSignature: ohne Wert 77 07 01 00 01 08 02 FF #objName: OBIS 1-0.1.8.2*255 "Zählerstand Bezug Tarif 2" 01 #status, ohne Wert 01 #valTime, ohne Wert 62 1E #unit (uint8), 1E = Wh 52 FF #scaler (int8): FF=-1(dezimal) -> 10^-1 = 0.1 59 00 00 00 00 00 00 00 00 #value (int64): 0,0 Wh mit Scaler 01 #valueSignature: ohne Wert 77 07 01 00 10 07 00 FF #objName: OBIS 1-0.16.7.0*255 "Wirkleistung momentan" 01 #status, ohne Wert 01 #valTime, ohne Wert 62 1B #unit (uint8), 1B = W 52 00 #scaler (int8): 0 -> 10^0 = 1 55 00 00 01 23 #value (int32): 291 W 01 #valueSignature: ohne Wert 77 07 81 81 C7 82 05 FF #objName: OBIS 129-129.199.130.5*255 "Public Key" 01 #status, ohne Wert 01 #valTime, ohne Wert 01 #unit, ohne Wert 01 #scaler, ohne Wert 83 02 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx #value. Notiz: falls Typ MSB set, dann Länge besonderes: 0x03 -> High nibble + next byte low nibble 0x02 -> b110010=50 Bytes 01 #valueSignature: ohne Wert 01 #listSignature, ohne Wert 01 #actGatewayTime, ohne Wert 63 39 E2 #(uint16) CRC Prüfsumme der zweiten Nachricht 00 #Ende der zweiten Nachricht "endOfSmlMsg" 76 #3. SML Nachricht, Neue Liste, 6 Einträge 05 05 D3 17 55 #transactionID 62 00 #groupNo (uint8): 0 62 00 #abortOnError (uint8): 0 72 #messageBody: Liste mit 2 Einträgen 63 02 01 #"CloseResponse" 0x00000201 SML_PublicClose.Res 71 #Liste mit einem Eintrag 01 #globalSignature, ohne Wert 63 58 44 #(uint16) CRC Prüfsumme der dritten Nachricht 00 #Ende der dritten Nachricht "endOfSmlMsg" 1B 1B 1B 1B #Escape-Sequenz 1A 00 D5 65 #Ende der Nachricht. Anzahl der Füllbytes 0x00, CCITT-CRC16 (2 Bytes) des gesamten Telegrammes 0xD565
Code:SML_Message::=SEQUENCE{ transactionId Octet String, groupNo Unsigned8, abortOnError Unsigned8, messageBody SML_MessageBody, crc16 Unsigned16, endOfSmlMsg EndOfSmlMsg }
Zuletzt geändert von xrk; 19.07.2023, 14:04.Winston Churchill hat mal gesagt: "Ein kluger Mann macht nicht alle Fehler selbst. Er gibt auch anderen eine Chance.“
Kommentar
-
Bei dir steht eindeutig "Wirkleistung momentan" und du hast einen Wert größer als 0. Na mal sehen ob ich an den noch herankomme, das würde mir nämlich reichen, wenn ich kWh + W habe.Dieser Beitrag enthält keine Spuren von Sarkasmus... ich bin einfach so?!
Kommentar
-
Rückmeldung von mir, ich bin dank Quarantäne endlich dazu gekommen die richtige PIN zu erhalten. Diese eingegeben im Zähler und seit dem erhalte ich auch P+ und P- in W zurück. Leider kann man nur zyklisch senden, aber besser als gar nichts.Dieser Beitrag enthält keine Spuren von Sarkasmus... ich bin einfach so?!
Kommentar
-
Bei ebay gibt es z.B. auch diese "Platine ttl ir lesekopf lese-schreib-Kopf EHZ Volkszähler Hichi Smartmeter" für unter €10.- ohne Gehäuse, welches sich leicht mit einem 3D Drucker drucken läßt.
Ich habe diesen Lesekopf an einem "USR-TCP232-E2" Serial2Lan Adapter und somit die ganzen Werte des eHz im Lan zur Verfügung.
Zusätzlich habe ich aber noch das Enertex Smartmeter 85A im Einsatz welches ich zur Steuerung meines ESS (Nullausregelung) genutzt hatte.
Ich hatte mich in der Vergangenheit immer gewundert, warum meine Akkus über Nacht vorzeitig entleert wurden, jetzt im direkten Vergleich sieht man doch, wie ungenau das Enertex Smartmeter gerade im kleinen Leistungsbereich ist und dadurch unnötig Leistung ins Netz geschickt hatte.
Alles unter 500W ist mehr als unbrauchbar und für die Grundlastmessung so gar nicht geeignet und auch nicht für nachfolgende Steuerungen geeignet.
Ab ca. 500W folgt es wieder dem eHz. Das ist vermutlich der Bauart geschuldet, wie hier der Strom der 3 Phasen gemessen wird.
Das Enertex wird bei uns nur noch automatisch herangezogen, wenn der eHz IR Kopf mal keine Daten senden sollte.
enertex.jpg
Enertex2.jpg
Kommentar
-
Ich habe mich nun auch endlich an meinen Zähler gemacht.
Mit dem ehz001 der hinter dem Zähler verbaut ist über eine USBtoRS232 Schnittstelle mit FTDI Chip. Ich habe den USBtoRS232 intern so "modifiziert", dass mir die 5V vom USB direkt am D-SUB Pin 9 anliegt. PIN9 lag auf GND, das weg geschnitten und ein kleines Drähtchen von USB PIN direkt an PIN9 D-SUB.
Ein Kabel entsprechend angefertigt...Reicht dem ehz001 offensichtlich, damit er Daten liefert, ohne "Versorgung" kamen keine Daten. Rx und Tx natürlich vertauscht anschließen.USB-Adapter ehz001 PIN 2 Rx PIN 3 Tx PIN 5 GND PIN 9 + Spannung
Zähler: Iskra MT 681-D4A51-K0p
Er schmeißt mir die Daten direkt raus. cat /dev/ttyUSB0 hat nur "Blödsinn" geliefert, aber strukturierte Daten...
xxd < /dev/ttyUSB0 sah dann zumindest irgendwie nach Daten aus.
Mit dem Baustein SMLReader v1.3 (Top Entwicklung!). Auf der Konsole bin ich fast verzweifelt, weil es nie so aus sah, wie in den Anleitungen im Netz. Naja, es kommen dann auch die gewünschten Daten... ohne PIN, ist ein Zähler der arvacon.
Post#22 sieht ziemlich nach meinen Daten aus, nur schön ausgewertet und ASCII. Meine Ausgaben waren eher Binär... aber in der Nähe sah man Änderungen in den Binärdaten... bin also zu blöd gewesen, die Daten als ASCII auf die Konsole zu bekommen.
Bei mir kommen 1.8.0, 1.8.1 & 1.8.2 (Zählerstand) sowie 16.7.0 (Wirkleistung) an, dazu diverse Daten vom Zähler, Seriennummer und Co.
Blöde Frage, in welchem Zyklus sollte man die Daten ins Datenarchiv schreiben?Zuletzt geändert von HHS; 16.06.2022, 08:14.
Kommentar
-
Hier Beispielhaft eine weitere SML-Datei, ausgelesen von Zähler der Fa. EMH, aufgestellt vom gleichen Stadtwerken als SML-Datei in #22 von Iskra Zähler:
Code:1B 1B 1B 1B #Escape-Sequenz 01 01 01 01 #Leitet Übertragung der Version 1 als Datenstrom ein 76 #7=Liste, 6=Anzahl der Einträge (Erste SML Nachricht in diesem Telegram) 07 00 10 02 E6 F9 8F #transactionId: 00 10 02 E6 F9 8F (zählt hoch mit jeder SML Nachricht) 62 00 #groupNo (0x62=uint8): 0 62 00 #abortOnError (uint8): 0 72 #Neue Liste mit 2 Einträgen (messageBody) 63 01 01 #"OpenResponse" 0x00000101 SML_PublicOpen.Res 76 #Neue Liste mit 6 Einträgen 01 #codepage, ohne Wert 01 #clientID, ohne Wert 07 00 10 10 54 A8 85 #regFileId 0B XX XX XX XX XX XX XX XX XX XX #serverId (wie gedruckt auf Zählergehäuse) 01 #refTime, ohne Wert 01 #smlVersion, ohne Wert 63 DE 75 #(uint16) CRC Prüfsumme der ersten Nachricht 00 #Ende der ersten Nachricht "endOfSmlMsg" 76 #2. SML Nachricht, Neue Liste, 6 Einträge 07 00 10 02 E6 F9 90 #transactionID 62 00 #groupNo (uint8): 0 62 00 #abortOnError (uint8): 0 72 #messageBody: Liste mit 2 Einträgen 63 07 01 #"GetListResponse" 0x00000701 SML_GetList.Res 77 #Liste mit 7 Einträgen 01 #clientId, ohne Wert 0B XX XX XX XX XX XX XX XX XX XX #serverId (wie gedruckt auf Zählergehäuse) 07 01 00 62 0A FF FF #Listname: 1.0.98.10.255.255 ? 72 #Liste mit 2 Einträgen "actSensorTime" 62 01 #choice (uint8): value 0x01=secIndex 65 10 54 AD 52 #secIndex (uint32): (Uptime in Sekunden) 0x1054AD52 = 273984850 Sek. = ca. 3171 Tage = ca. 8 Jahre 77 #Neue Liste, 7 Einträge "valList" 77 #Neue Liste, 7 Einträge 07 81 81 C7 82 03 FF #objName: OBIS 129-129.199.130.3*255 "Herstelleridentifikation" 01 #status, ohne Wert 01 #valTime, ohne Wert 01 #unit, ohne Wert 01 #scaler: ohne Wert 04 45 4D 48 #value (45 4D 48) ASCII: "EMH" 01 #valueSignature: ohne Wert 77 #Neue Liste, 7 Einträge 07 01 00 00 00 09 FF #objName: OBIS 1-0.0.0.9*255 "Geräteeinzelidentifikation" 01 #status, ohne Wert 01 #valTime, ohne Wert 01 #unit, ohne Wert 01 #scaler: ohne Wert 0B XX XX XX XX XX XX XX XX XX XX #value Seriennummer=serverID (wie gedruckt auf Zählergehäuse) 01 #valueSignature: ohne Wert 77 #Neue Liste, 7 Einträge 07 01 00 01 08 00 FF #objName: OBIS 1-0.1.8.0*255 "Zählerstand Bezug" 64 00 01 82 #status (uint32): ? 01 #valTime, ohne Wert 62 1E #unit (uint8), 1E = Wh 52 FF #scaler (int8): FF=-1(dezimal) -> 10^-1 = 0.1 56 00 05 96 02 3E #value (int40): 0x596023E = 9.371.705,4 Wh mit Scaler 01 #valueSignature: ohne Wert 77 #Neue Liste, 7 Einträge 07 01 00 01 08 01 FF #objName: OBIS 1-0.1.8.1*255 "Zählerstand Bezug Tarif 1" 01 #status, ohne Wert 01 #valTime, ohne Wert 62 1E #unit (uint8), 1E = Wh 52 FF #scaler (int8): FF=-1(dezimal) -> 10^-1 = 0.1 56 00 05 96 02 3E #value (int40): 0x596023E = 9.371.705,4 Wh mit Scaler 01 #valueSignature: ohne Wert 77 #Neue Liste, 7 Einträge 07 01 00 01 08 02 FF #objName: OBIS 1-0.1.8.2*255 "Zählerstand Bezug Tarif 2" 01 #status, ohne Wert 01 #valTime, ohne Wert 62 1E #unit (uint8), 1E = Wh 52 FF #scaler (int8): FF=-1(dezimal) -> 10^-1 = 0.1 56 00 00 00 00 00 #value (int40): 0,0 Wh mit Scaler 01 #valueSignature: ohne Wert 77 #Neue Liste, 7 Einträge 07 01 00 10 07 00 FF #objName: OBIS 1-0.16.7.0*255 "Wirkleistung momentan" 01 #status, ohne Wert 01 #valTime, ohne Wert 62 1B #unit (uint8), 1B = W 52 FF #scaler (int8): FF=-1 -> 10^-1 = 0.1 55 00 00 08 9F #value (int32): 0x89F = 2207 -> 220.7 W 01 #valueSignature: ohne Wert 77 #Neue Liste, 7 Einträge 07 81 81 C7 82 05 FF #objName: OBIS 129-129.199.130.5*255 "Public Key" 01 #status, ohne Wert 72 #Neue Liste, 2 Einträge "valTime" 62 01 #secIndex 65 10 54 AD 52 # (uint32_t) 0x1054AD52 = 273984850 Sek. = ca. 3171 Tage (gleich als Uptime) 01 #unit, ohne Wert 01 #scaler, ohne Wert 83 02 XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX #value. Notiz: falls Typ MSB set, dann Länge besonderes: 0x03 -> High nibble + next byte low nibble 0x02 -> b110010=50 Bytes 01 #valueSignature: ohne Wert 01 #listSignature, ohne Wert 01 #actGatewayTime, ohne Wert 63 13 4B #(uint16) CRC Prüfsumme der zweiten Nachricht 00 #Ende der zweiten Nachricht "endOfSmlMsg" 76 #3. SML Nachricht, Neue Liste, 6 Einträge 07 00 10 02 E6 F9 93 #transactionID 62 00 #groupNo (uint8): 0 62 00 #abortOnError (uint8): 0 72 #messageBody: Liste mit 2 Einträgen 63 02 01 #"CloseResponse" 0x00000201 SML_PublicClose.Res 71 #Liste mit einem Eintrag 01 #globalSignature, ohne Wert 63 67 19 #(uint16) CRC Prüfsumme der dritten Nachricht 00 #Ende der dritten Nachricht "endOfSmlMsg" 00 00 00 #Füllbytes um eine durch 4 teilbare Dateilänge zu erhalten 1B 1B 1B 1B #Escape-Sequenz 1A 03 BD 2A #Ende der Nachricht. Anzahl der Füllbytes 0x03, CCITT-CRC16 (2 Bytes) des gesamten Telegrammes 0xBD2A
Mir ist noch aufgefallen dass transactionID beim EMH einen Sprung von 3 zwischen zweiten und dritten SML Nachricht macht. Meine Erwartung wäre hier +1 Inkremente gewesen.
Hat jemand ein Doku oder eine Erklärung zu den Listenname 01 00 62 0A FF FF / 1 0 98 10 255 255 beim SML_GetList.Res? Wird sowohl bei Iskra als auch EMH so ausgesendet. Es sieht wie OBIS-Kennzahl aus, ist aber wahrscheinlich nicht, da ich bis jetzt Messgröße 98 in keinem Dokument definiert sah.Zuletzt geändert von xrk; 19.07.2023, 14:08.Winston Churchill hat mal gesagt: "Ein kluger Mann macht nicht alle Fehler selbst. Er gibt auch anderen eine Chance.“
Kommentar
Kommentar