Elektronische Haushalts Zähler [eHZ] auslesen

Hallo zusammen

Da ich die letzten Tage Probleme hatte einen Hager EHZ363LA mit SML-Protokoll einzubinden möchte ich euch meine Lösung gerne mitteilen.

  • 1. Problem: Durch schiefes/falsches/ was-auch-immer anbringen der optischen Schnittstelle kamen die Daten verstümmelt an und ich konnte nichts auswerten. Achtet also bei ähnlichen Problemen auf die exakte Ausrichtung des Lesekopfes an der rechten LED des Hager-eHZ.
  • 2. Problem: Die aktuelle Leistung wird anders als beispielsweise dem EMH (den ich ebenfalls auslese) ausgegeben. Ausgegeben wird ein Wert von z.B. 0xFFF4, dieser Wert muss jetzt von 0xFFFF abgezogen werden und ergibt somit eine Leistung von 11W (dez).
    Zusätzlich hat es noch ein „00“ im linken Trennzeichen für den Cutter. Durch einen bekannten Bug wird alles nach einem „00“ in einem Cutter nach einem IP-Symcon Neustart verworfen.
    Einstellungen:
    COM-Port 8N1, 9600baud.
    Linkes Trennzeichen für Cutter: "FF 01 01 62 1B 52 "
    Rechtes Trennzeichen: "01 77 07 "
    durch Cutter/RegisterVariable gestartetes Skript:

    php $wert = strtohex($IPS_VALUE); $wert2 = hexdec($wert); $leistung = 0x0053ffff - $wert2; SetValue (12345 /*eure ObjectID*/ , $leistung); ////// functions \\\\\\\ function strtohex($x) { $s=''; foreach(str_split($x) as $c) $s.=sprintf("%02X",ord($c)); return($s); }

    Aufgrund des „00“-Cutter-Bugs ziehe ich im Code zusätzlich 0x0053 ab. (In der Version 2.7 beta soll der Fehler behoben sein, dann kann als linkes Trennzeichen „FF 01 01 62 1B 52 00 53“ verwendet werden und das „0053“ aus dem Code entfernt werden, das ist eleganter…)
  • Kein Problem, nur zur Info: Auslesen des aktuellen Zählerstandes funktioniert genauso wie beim EMH-eHZ mit leicht geänderten Werten.
    Linkes Trennzeichen für Cutter: "02 08 01 FF 01 01 62 1E 52 FF 54 "
    Rechtes Trennzeichen: "01 77 07 "
    Der ausgelesene Wert geteilt durch 10000 ergibt die kWh. Da ich einen Lieferstromzähler habe steht am Anfang des linken Trennzeichens „02“, bei einem Bezugszähler müsste dort „01“ eingetragen werden. Wie es sich Herstellerübergreifend mit dem letzten Byte „54“ verhält weiß ich nicht, beim EMH steht dort „56“.

Ich hoffe ich kann mit diesen Infos jemandem weiterhelfen. Ich bin ebenfalls immer wieder sehr froh über kompetente Hilfe und Tipps die ich hier im Forum immer wieder finde :loveips:

Hallo Zusammen,

gibt es eigentlich in IPS eine Möglichkeit die Geschwindigkeit vom ComPort nach der ersten Initialisierung von 300 auf 9600 zu erhöhen ?
sowas wie:
Com_SetBaud($ObjektID, 9600);
IPS_ApplyChanges($ObjektID);

damit würden die Daten aus dem Strom-Zähler ein bischen schneller kommen.

Hallo Klaus,

unter I/O Instanzen den COM-Port auswählen und die Konfiguration manuell ändern.
Ob das auch über IPS-Befehle geht weiss ich nicht. Aber diese Einstellungen macht man doch nur einmalig.

Gruß, Peter

Hallo Peter,

ja manuell ists klar, aber bei meinem Zähler (AS1440) muß/kann man die Geschwindigkeit nach dem ersten Initialisieren mit /?! die Baudrate hochsetzen, sonst kommen die Daten nur nur mit 300baud.
Deswegen sollte das innerhalb von 1,5sec. im Script hochgesetzt werden.

Hallo Klaus,

diese Vorgehensweise kann ich nicht verstehen. Da sollte mal jemand antworten, der sich besser auskennt.
Es gibt z.B. den Befehl COMPort_SetDTR, aber einen entsprechenden Befehl für die Boudrate kann ich nicht finden.

Gruß, Peter

Hallo Peter,

hier stehts beschrieben:
http://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/elster_as1440
unter Kommunikation

deswegen wäre ein Befehl:


Com_SetBaud($ObjektID, 9600); 
IPS_ApplyChanges($ObjektID);

wünschenswert.
Habe aber auch noch nichts passendes gefunden.

COMPort_SetBaudRate(ID, Baudrate);

Danke Rainer,

damit werde ich mal versuchen den ComPort umzustellen.

Hallo Klaus,

da Du ja auch die V2.7 benutzt, kannst Du auch gleich auf die neuen Befehle gehen.

Für die Baudrate, wäre dieser dann der richtige.

IPS_SetProperty($InstanceID, 'BaudRate', $BaudRate);

Hat mir jemand vielleich ein kleines HowTo, wie ich den Stromzähler ISKRA MT681 mir dem „USB-IR-Schreib-Lesekopf“ von Volkszähler ins IPS bringe.

Wäre echt cool !

Danke

Moin moin,
ich habe wie hier beschrieben wurde einen Client socket erstellt und dort die Daten von meinem com-1 Modul eingegeben. Dieser verbindet sich und listet Daten im Debug Modus. Dann habe ich eine Registervariable erstellt und diese mit dem Client socket verknüpft. Daten kommen auch da an. Die Registervariable übergibt die Daten dann an das hier vorgestellt Script. Soweit alles gut.

Leider sehen meine Debug Werte nicht so aus wie bei euch.
Ich habe einen Digitalen Stromzähler eHZ-HW8E2A5L0EQ2P und eben ein com-1 Modul mit Lesekopf.
Mache ich irgendwas falsch?

Hier sind meine Debug werte:

SML(1B1B1B1B010101017607001403D3E390620062007263010176010107001402F3A1300904039FC8DE010163FD36007607001403D3E391620062007263070177010904039FC8DE017262016502F364957977078181C78203FF0101010104454D480177070100000009FF010101010904039FC8DE******0177070100010800FF63018201621E52FF5600026E04470177070100020800FF63018201621E52FF56000000006B0177070100010801FF0101621E52FF5600026E04470177070100020801FF0101621E52FF56000000006B0177070100010802FF0101621E52FF56000000000001770701000F0700FF0101621B52FF55000007B10177078181C78205FF01010101830290AFB29408ED11A8D1DB6041E5E93C0B1F6F833BBCFD42C7F68703721241BD16D6651353E6EB68C83A42F00FDDC1711501010163636C007607001403D3E3946200620072630201710163340E000000001B1B1B1B1A03BD46)

//Aktuell hatte ich etwa in diesem Moment folgende Werte. Die Zählernummer kommt ganze 3x im Debugtext vor. Habe sie mit Sternchen überschrieben:

KWh 4076.452
akt. 180 kw/h
zähler ******

schöne Grüße,
Stefan

Ok, ich habe wohl den Cutter vergessen :wink:
Was muss ich den genau beim Cutter eintragen?

Hallo Stefan,
das Auslesen eines SML-Zählers ist hier im Forum schon mehrfach diskutiert und beschrieben worden. Es gibt auch irgendwo ein How-to als pdf.
Leider habe ich die passenden links nicht griffbereit, aber die Suche nach „SML-Zähler“ gibt dir einige Treffer.
Gruß, Peter

Hallo Stefan,

hier der der Link. http://www.ip-symcon.de/forum/threads/18936-eHZ-EMH-SML-Protokoll-auswerten?highlight=emh+ehz

Bitte ein Debug vom Comport machen und anhängen.

Hey Rainer, schön mal wieder etwas von Dir zu lesen. :):wink:

Hallo Thomas,

ja, unser Großprojekt ist fast durch. Ich hoffe, ich finde jetzt wieder öfter mal den Weg nach hier.:wink:
Jetzt sind erstmal 5 Wochen Urlaub angesagt. :cool::smiley:

Das ist gut zu hören, schönen Urlaub!;):loveips:

OT:
Ist bei uns recht gut geworden.

Schönen Urlaub

Servus,

ich versuche mich gerade verzweifelt an einem ABB Zähler, mit dem Test Tool konnte ich schon erfolgreich
Daten aus der Kiste ziehen. :slight_smile:
Nun wage ich mich an die Integration in IPS, leider komme ich noch nicht so ganz mit dem Cutter klar, kann mir da jemand auf die Sprünge helfen ?

Mit diesem Script, kannst Du diesen Zähler nicht auswerten.

Bei dir stehen doch im Dump die Realwerte schon drinnen.
Dafür hatte ich vor Jahren mal ein Script geschrieben.
Such mal im Forum nach Haushaltzähler, eventuell ist es ja noch vorhanden.

Hier mal ein Link. Elektronische Haushalts Zähler [eHZ] auslesen
https://r.tapatalk.com/shareLink?share_fid=7250&share_tid=11505&url=https%3A%2F%2Fwww.symcon.de%2Fforum%2Fshowthread.php%3Ft%3D11505&share_type=t

Eventuell sind Anpassungen nötig.

Gesendet von iPad mit Tapatalk