neue ISKRA EDL eHZ Zähler einbinden

Hallo zusammen,

so neue eHZ aus dem Prod. Jahr 2011 erhalten. Zwei gleiche Zähler einer als Eintarif und einer as Doppeltarif.
Hersteller ISKRA eHZ EDL21 MT681

Jetzt klemmts ganz am Anfang. Anbei mal ein Hterm Screenshot mit beiden im Umlauf befindlichen Com Port Einstellungen. Bei keinem kommt was sinnvolles. Was meint Ihr, was sollte ich noch ausprobieren?

Grüße, Stromer

Hallo,

ich habe den selben Vorfall.
Wurde das Problem bereits gelöst?

Danke und Grüße,
Lio

Würde mich auch Interessieren. Ich komme auch nicht wirklich weiter.

Hallo,

versucht´s mal mit
9600 8 1 None
newline every … Characters 48
Das was rauskommt ist aber kein klartext sondern SML

Gruß und viel Spaß

Hi,

Danke für die antwort. Mein Problem lag aber woanders wie ich festgestellt habe (Unkenntnisse in der HEX Auswertung :slight_smile: )

Hab den Zähler jetzt in IPS am laufen, falls jemand fragen hat einfach melden.

Anbei das Script:

<?
SetValueFloat(40352 /*[Keller\Stromzähler\Zählerstand kWh (total)]*/ ,(hexdec(substr(bin2hex($IPS_VALUE), 288, -336)))/10000); //Zählerstand in kWh
SetValueFloat(26936 /*[Keller\Stromzähler\Aktueller Verbrauch in W]*/ ,(hexdec(substr(bin2hex($IPS_VALUE), 432, -200)))/1);     //Aktueller Verbrauch in W
SetValueFloat(26104 /*[Keller\Stromzähler\Wirkenergie Tarif 1 in Wh (total)]*/ ,(hexdec(substr(bin2hex($IPS_VALUE), 336, -288)))/10000); //Wirkenergie Tarif 1
SetValueFloat(25843 /*[Keller\Stromzähler\Wirkenergie Tarif 2 in Wh (total)]*/ ,(hexdec(substr(bin2hex($IPS_VALUE), 384, -240)))/10000); //WIrkenergie Tarif 2
?>

Das ganze läuft mit der Registervariable und den unten angehängten Cutter Einstellungen

Gruß
BunnyMC

1 „Gefällt mir“

Hallo,

als mein erstes IP-Symcon Projekt möchte ich gern den Stromverbrauch auslesen.

Also bin ich wie folgt vorgegangen:

Der Impulsgeber wurde erkannt und mit dem korrekten Treiber installiert (Win 7).
Jetzt habe ich die IPS-Konsole gestartet und dort den Stromzähler als „I/O Insanz (COM3)“ angelegt (Einstellungen: 9600, 8, 1, keine).
Als nächstes habe ich eine Splitter Instanz (Cutter COM3) angelegt. Dort dann „Benutze feste Schritte: 320 und Sync-Zeichen: 1B 1B 1B 1B 01 01 01 01“ eingestellt. Als übergeordnete Insanz wurde der Serial Port (Stromzähler) ausgewählt.
Als letzten Schritt habe ich eine „Register Variable“ angelegt:

  • übergeordnetes Element: Cutter COM3
  • Ziel-ID: Script siehe oben
  • im Script selbst habe ich die Objekt-IDs der Variablen angepasst - ich habe 3 eigene FLOAT-Variablen angelegt.

Der Port wurde geöffnet aber ich sehe nirgendwo Daten ankommen, irgendwas stimmt nicht, aber ich weiß nicht was ich falsch gemacht habe :frowning: ?

Ich habe jetzt einmal das Tool hterm getestet, dort kommen Daten an (siehe folgendes logfile): output_2013-03-29_19-09-25.txt (11.8 KB)
Wie bekomme ich jetzt die „Cutterlänge“ heraus ?

Viele Grüße,
Tim

Hi Timm,

Dein Output sieht schonmal gut aus (synch Zeichen stimmt).

Hab leider gerade keinen PC zur Hand, werde mir das morgen mal genauer angucken, aber die Länge sollte mit 320 auch stimmen. Was zeigt denn die IPS Meldung Konsole?

Grüße
BunnyMC

Das ist verrückt!!:confused:

Es kamen keine Daten an - kein Debug, keine Meldungen. Also habe ich den Server inklusive IP-Symcon neugestartet, plötzlich kommen alle 2s neue Wertean- alles aktuell und perfekt! Ich verstehe es nicht :confused:

Jetzt wollte ich an den Com-Port (Stromzähler) 2 Ereignisse hinzufügen:

alle 10min den Port öffnen:

<?
COMPort_SetDTR(48810 /*Instance ID*/  , true);
?>

Und sobald sich meine Variable „kWh“ ändert wird der Port wieder geschlossen.

Das ignoriert das System aber vollständig, er protokolliert weiterhin alle 2s die Werte… irgendwie bekomme ich den Port mit dem Befehl nicht mehr zu :frowning:

MfG Tim

Da kann ich dir leider nicht mehr weiterhelfen weil bei mir das Ding immer auf ist.

Hab meinen Server auf nem Atom 330 und nebenbei noch recht viel anderes laufen und bis jetzt war das noch kein Problem.

Falls du die Daten mitloggst kann ich dir den dB analyzer von raketenschnecke empfehlen, dort kannst du Speicherzeiten für Logs einstellen. Z.b. kWh Verbrauch nur für 7 Tage.

Dieser Befehl, ist auch nicht zum öffnen oder schliessen gedacht sondern DTR zusetzen.

Zum öffnen oder schliessen wäre dieser Befehl richtig, entsprechend mit true/false.

IPS_SetProperty($InstanceID, 'Open', false);

zum übernehmen, muss zum Schluß noch ein

IPS_ApplyChanges($InstanceID);

erfolgen.

Vielen vielen vielen Dank, genau so wollte ich es umsetzen - es funktioniert wunderbar.
Ich kannte den Befehl nicht, dankeschön :slight_smile:

Viele Grüße,
Tim

Hallo Leute!

Ich habe mir für meinen neuen ISKRA MT681-D4A51-K0p Zweitarifzähler jetzt auch einen IR-Optokopf zugelegt und soweit auch hinbekommen, dass die Zählerstände in IPS erscheinen.

Im Gegensatz zu dem was ich hier im Forum so gefunden habe, musste ich die Cutterlänge allerdings auf 324 einstellen und mein Output sieht auch etwas anders aus:

Dank des Forums habe ich herausgefunden, dass in den Zeilen 130, 160 und 190 die Zählerstände zu finden sind, das Script dazu sieht jetzt folgendermaßen aus:

<?
SetValueFloat(12863 /*[Stromzähler\Gesamt]*/ ,(hexdec(substr(bin2hex($IPS_VALUE), 300, -332)))/10000); //Zählerstand Gesamt in kWh
SetValueFloat(19231 /*[Stromzähler\Tarif HT]*/ ,(hexdec(substr(bin2hex($IPS_VALUE), 348, -284)))/10000); //Zählerstand HT in kWh
SetValueFloat(55508 /*[Stromzähler\Tarif NT]*/ ,(hexdec(substr(bin2hex($IPS_VALUE), 396, -236)))/10000); //Zählerstand NT in kWh
?>

Ich hoffe die Zeichenanzahl ist korrekt, in IPS schaut´s auf jedenfall gut aus.

Kann mir vielleicht jetzt noch jemand verraten, was sich noch alles in dem Output verbirgt?
Super wäre, wenn sich in irgendeiner Zeile auch noch die Wirkleistung auslesen ließe.

Den Output habe ich in der Anlage mal beigefügt.

Lieben Dank

Timo

dump.txt (648 Bytes)

Hallo,

ich komme auch nicht weiter mit den Zählerwerten aus dem eHZ Zweirichtungsähler.

Meine Daten werden via Bluetooth an den PC an eine virtuelle com Schnittstelle übertragen.
Bis dahin alles gut. Dann habe ich einen Cutter angelegt und dieser scheint das Problem zu sein.
An der Registervariabelen komm erst gar nichts an.
In beil. Datei auf Seite 24 ist die Datenschnittstelle beschrieben, ich kann aber leider nichts damit anfangen.
Die in den Foren beschriebenen Cuttereinstellungen 1B 1B 1B 1B 01 01 01 01 und diverse andere habe ich probiert,
passieren tut sich aber nichts.

Ich lade später noch die Dump.txt Datei vom Cutter hoch.

Bis dann

Vielleicht hat jemand den gleichen Zähler.

dump.txt (131 KB)

Häng mal den Dump als HEX und TXT an.

Original Dump vom Zähler

dump_Original.txt (29.8 KB)

Hallo,
ich habe noch ein wenig probiert, und nun bekomme ich Daten aus dem Cutter
Siehe beil. Datei. Allerding kommt bei der Register Variabele immer noch nichts an.

Ich komme nicht weiter, hat noch jemand eine Idee?

Gruss
Thorsten

dump_vom Cutter_als_hex.txt (83 KB)

dump_vom Cutter_Original.txt (86 KB)

Hi Mcnelly!

Mit Deinem Hex Dump kann ich ehrlich gesagt nicht viel anfangen, kannst Du vielleicht mal zwei Dumps an zwei aufeinanderfolgenden Tagen (wegen der veränderten Werte) mit HTerm machen?

Hier mal ein Screenshot von meinen HTerm Einstellungen:

Du brauchst dann nur einmal kurz auf DTR klicken und kannst DTR nach einem empfangenen Datensatz gleich wieder schließen. Anschließend den Dump über Save output (der Pfeil rechts daneben) als HEX speichern und hier hochladen. Die Dump Dateien lasen sich dann z.B. mit UltraEdit vergleichen und wir müssten der Sache auf den Grund kommen.

Gruß

Timo

Supi, ich habe es nun mit der Cutterlänge von 324 auch hinbekommen.
Die beiden Tarife (180 und 280) bei mir Strombezug und Stromverkauf der PV-Anlage werden sauber ausgelesen.
Wie ich gelesen habe, kann man bei dem ISKRA aber auch noch den aktuellen Stromverbrauch usw. auslesen.

Kann hier vielleich einer helfen ?

Gruß Jörg

SO, nun hab ich alle für mich relevanten Daten gefunden.
Cutter auf 800 gesetzt und Script:

<?
SetValueFloat(20881 /[Stromzähler1\Strombezug aktuell]/ ,(hexdec(substr(bin2hex($IPS_VALUE), 348, -436)))/10000); //Strombezug vom EVU
SetValueFloat(41738 /[Stromzähler1\Stromverkauf aktuell]/ ,(hexdec(substr(bin2hex($IPS_VALUE), 452, -332)))/10000); //Stromverkauf vom EVU
SetValueFloat(36546 /[Stromzähler1\aktueller Stromverbrauch L1]/ ,(hexdec(substr(bin2hex($IPS_VALUE), 641, -151)))/1000000); //aktueller Stromverbrauch L1
SetValueFloat(18265 /[Stromzähler1\aktueller Stromverbrauch L2]/ ,(hexdec(substr(bin2hex($IPS_VALUE), 681, -111)))/1000000); //aktueller Stromverbrauch L2
SetValueFloat(22284 /[Stromzähler1\aktueller Stromverbrauch L3]/ ,(hexdec(substr(bin2hex($IPS_VALUE), 721, -71)))/1000000); //aktueller Stromverbrauch L3
SetValueFloat(45891 /[Stromzähler1\ges. Stromverbrauch L1/L2/L3]/ ,(hexdec(substr(bin2hex($IPS_VALUE), 601, -191)))/1000000); //aktueller Stromverbrauch ges. (L1/L2/L3)
?>