eHZ EMH SML Protokoll auswerten (veraltet kein Support mehr!)

hmm keiner ne Idee?

Häng doch mal einen vernünftigen Dump von der Regvar an. Das was Du hier hast kann so nix werden.

Stimmen deine Einstellungen des Comports. Im Cutter die richtigen Daten eingetragen usw…

Das was ich da von der RegVar bekomme ist genau das was ich angehangt hatte.

Mein Cutter:
Left: 1B 1B 1B 1B 01 01 01 01 76
Right: 1B 1B 1B 1B 1A 01
Parrent Instance: Serial Port 5 (9600, 8, 1, None)

Mein Sktipt, welches an der RegVar dran haengt springt ca. all Sekunde an. Ist das richtig?

Vielleicht habe ich ja einen groesseren Bock drin.

Deine Cuttereinstellungen, entsprechen schon mal nicht denen auf der ersten Seite.
Das Script auch nicht.

wie soll man helfen, wenn Du irgendetwas wild zusammen klickst. :confused:

Edit:so sollte der Dump der Regvar aussehen.

dump.txt (31.5 KB)

So, ich hab nochmals den Cutter und die RegVar geloescht und neu erstellt.
Jetzt sieht auch die RegVar Dump wie die von dir aus.

Leider bekomm ich aber noch keine vernuenftige werte raus.
Sorry fuer die Konfusion und danke fuer deine Hilfe!

	if ($_IPS['SENDER'] == "RegisterVariable")
	{

      $zaehlerstand = "";
    	// Zählerstand (Wirkarbeit Bezug (+) Za¨hlerstand Total) Obiskennung:1-0.1.8.0*255 Hex:77 07 01 00 01 08 00 7F
      if(strpos($_IPS['VALUE'], chr(0x77).chr(0x07).chr(0x01).chr(0x00).chr(0x01).chr(0x08).chr(0x00).chr(0x7F)) !== false)
    	{
			$zaehlerstand = explode(chr(0x77).chr(0x07).chr(0x01).chr(0x00).chr(0x01).chr(0x08).chr(0x00).chr(0x7F), $_IPS['VALUE']);
       	SetValue(48077 /*[01_Programme\04_VOLKSZÄHLER\EMH - Wirkarbeit Bezug total]*/ , hexdec(Str2Hex(substr($zaehlerstand[1], 9, 6)))/10000);
    	}
    	$zaehlerstand = "";
    	// Zählerstand (Wirkarbeit Bezug Tarif 1) objName 1-0:1.8.1*255 Hex:77 07 01 00 01 08 01 ff
      if(strpos($_IPS['VALUE'], chr(0x77).chr(0x07).chr(0x01).chr(0x00).chr(0x01).chr(0x08).chr(0x01).chr(0x7F)) !== false)
    	{
		 	$zaehlerstand = explode(chr(0x77).chr(0x07).chr(0x01).chr(0x00).chr(0x01).chr(0x08).chr(0x01).chr(0x7F), $_IPS['VALUE']);
       	SetValue(40642 /*[01_Programme\04_VOLKSZÄHLER\EMH - Wirkarbeit Bezug Tarif 1]*/ , hexdec(Str2Hex(substr($zaehlerstand[1], 7, 8)))/10000);
    	}
    	$zaehlerstand = "";
    	// Zählerstand (Wirkarbeit Bezug (+) Za¨hlerstand Tarif 2) objName 1-0:1.8.2*255 Hex:7 07 01 00 01 08 02 ff
      if(strpos($_IPS['VALUE'], chr(0x77).chr(0x07).chr(0x01).chr(0x00).chr(0x01).chr(0x08).chr(0x02).chr(0x7F)) !== false)
    	{
		 	$zaehlerstand = explode(chr(0x77).chr(0x07).chr(0x01).chr(0x00).chr(0x01).chr(0x08).chr(0x02).chr(0x7F), $_IPS['VALUE']);
       	SetValue(55937 /*[01_Programme\04_VOLKSZÄHLER\EMH - Wirkarbeit Bezug Tarif 2]*/ , hexdec(Str2Hex(substr($zaehlerstand[1], 7, 5)))/10000);
    	}

	}

	function Str2Hex($daten)
{
    $hex = "";
     for($i=0; $i<strlen($daten); $i++) {
   	$hex .= sprintf("%02X ", ord($daten[$i]));
   	}
     return $hex;
}

dump_2.txt (14.7 KB)

Capture_7.JPG

Wie sind denn deine aktuellen Stände.

Eventuell stimmen hier die Teiler noch nicht. Vergleich mal.

Hallo Rainer,

zum Zeitpunkt des Dumps sollte es entwender: 858kWH (1.8.0) oder WP 754kWH (1.8.1), 1151 kWH (1.8.2)

Sorry, an diese Werte komme ich nicht ran.
Mach noch mal einen aktuellen Dump und schreib auch die aktuellen Werte auf:

01 00 01 08 01 Bezug 1
01 00 01 08 02 Bezug 2
01 00 02 08 01 Lieferung 1
01 00 02 08 02 Lieferung 2
01 00 10 07 00 Wirkleistung
01 00 01 08 00 Zählerstand Bezug total
01 00 02 08 00 Zählerstand Lieferung total

Hallo,

so nochmals die neusten Werte:
1.8.1: 754 KWH
1.8.2: 1168 KWH

und das aktuelle Dump im Anhang.

2014-02-16__dump01.txt (15.8 KB)

Sorry, ich bin hier raus. Entweder stimmt mit deinem Lesekopf etwas nicht oder etwas anderes stimmt nicht.
Da Du die geforderten Daten nicht lieferst.

Die Daten von gestern liefern komplett andere Daten wie die letzten.

Hier mal die Auswertung für Bezug 1&2

// Bezug Tarif 1 (Wirk-Energie Tarif 1 Bezug) Obiskennung:1-0.1.8.1*255 Hex:01 00 01 08 01 FF	   if(strpos($_IPS['VALUE'], chr(0x01).chr(0x00).chr(0x01).chr(0x08).chr(0x01).chr(0x7F)) !== false)		{			$bezugTarif1 = explode(chr(0x01).chr(0x00).chr(0x01).chr(0x08).chr(0x01).chr(0x7F), $_IPS['VALUE']);			SetValue(47791 /*[eHZ\Test SML\Bezug 1]*/, hexdec(Str2Hex(substr($bezugTarif1[1], 7, 5)))/10000);		}
// Bezug Tarif 2 ((Wirk-Energie Tarif 2 Bezug) Obiskennung:1-0.1.8.2*255 Hex:01 00 01 08 02 FF				if(strpos($_IPS['VALUE'], chr(0x01).chr(0x00).chr(0x01).chr(0x08).chr(0x02).chr(0x7F)) !== false)		{			$bezugTarif2 = explode(chr(0x01).chr(0x00).chr(0x01).chr(0x08).chr(0x02).chr(0x7F), $_IPS['VALUE']);			SetValue(52790 /*[eHZ\Test SML\Bezug 2]*/, hexdec(Str2Hex(substr($bezugTarif2[1], 7, 5)))/10000);		}

Im Dump findest du: 73 0E 11 => 7540241 kW = 754kW…
das habe ich nun gefunden. Zaehler 1

Aber Zaehler 2 finde ich nicht. Oder mein Zaehler zeigt was falsches an.

Das passt ja auch mit der Auswertung, nur such das gestern mal. Da steht was von 2.6

aber die 1168 KWH finde ich nicht.

Wie schon geschrieben, hatte ich heute morgen mal nochmals den Cutter und die Var Reg neu gemacht. Der Debug von gestern sah nicht so aus wie die von dir. Daher habe ich den nochmals neue angelegt.

aber die 1168 KWH finde ich nicht.

Die wirst Du auch nicht finden, dort stehen 329.63 kWh

Den Wert von 329 bekomm ich auch raus…mein Zähler zeigt aber folgendes an (siehe Bilder im Anhang)

Die Zählerstände stimmen wohl. Der Zählerstand ist 1922.54. Warum bei Bezug 2 falsche Daten kommen…kA.

Lag an den COM Port Einstellungen im Betriebssystem. Dort war 7Bit, Even, 1 bit eingestellt. Damit hat er genau bei dem Zähler die letzte Stelle falsch ausgegeben.

Jetzt passen die Werte…danke nochmals für deine Geduld und Hilfe!

Hallo,

gibt es eine Möglichkeit die Auflösung zu verringern? Ich bekomme das Log zugespammt und durch das Datenbanklogging befürchte ich, dass die Datenbank in kurzer Zeit sehr voll wird:

Gruß
Daniel

Hallo,

Ich versuche auch seit 2 Tagen unseren EHM eHZ in IPS einzubinden. Ich habe mir dazu den Voltkraft RS 232 adapter gekauft und bekomme in hterm auch Daten angezeigt nur leider brechen die Telegramm ab bevor es interesant wird.

Hat jemand eine Idee was ich noch an einstellungen verändern kann damit Ich das ganze Telegramm sehen kann?

Hier mal ein hterm log:

SML_2014-03-27_09-27-15.txt (5.86 KB)

Wie ist dein Serial Port eingestellt? Es muss folgendes eingestellt sein:

Baud: 9600
Databits: 8
Stopbits: 1
Parity: None