[Modul] SML-Counter zur Integration der Infrarotschnittstelle von Haushaltszählern

Zunächst danke für dieses tolle Projekt!

Ich habe mich gerade durch die 300 Posts gewühlt, es bleiben für mich aber noch Fragen übrig:

  1. es sollen in meinem Fall drei Stromzähler ausgelesen und per Raspberry und ser2net an IPS gesendet werden. Klappt das also mit mehr als einem Zähler gleichzeitig?
  2. Welche Erfahrungen habt Ihr mit dem ELV-Messkopf? -davon war an einer Stelle die Rede, aber auch von (anfänglichen?) Problemen…
  3. Wenn ich das richtig verstanden habe, schickt ser2net die Daten, die bei meinen Zählern sekündlich ausgegeben werden, sofort an IPS weiter. In IPS kann man dann einstellen, in welchem Intervall die Daten „durchgelassen“ bzw. verarbeitet werden.
    Gibt es irgend eine Möglichkeit, das Versenden der Daten bereits im Raspberry, auf dem ser2net läuft, zu begrenzen (schickt nur jeden x-ten Datensatz weiter…)?
    Viele Grüße,
    der Palhuber

Ja, du brauchst jeweils drei I/Os und Geräteinstanzen. Das ist kein Problem.

Zum Rest kann ich nichts sagen.

nein, ser2net ist lediglich eine Umleitung einer seriellen Schnittstelle ins LAN. Das ist aber von den Datenmengen her kein Problem.
Grüße
Jürgen

Sooo, es klappt mittleiweile bei mir.
Folgende Tipps für diejenigen, die die gleichen Fragen hatten:

  1. Die IR-Köpfe von ELV USB-IEC funktionieren problemlos
  2. in der neuen Version von ser2net auf dem RasPi gibt es das Problem, dass ser2net nach einem Neustart des Pi nicht automatisch startet. Es dauerte eine Weile, bis ich heraus gefunden habe, warum das zunächst nicht lief.
    Man muss ein Start-Skript anlegen mit „sudo systemctl restart ser2net.service“.
    Klappt bei mir nun seit vielen Wochen problemlos…
    Vielen Dank für Eure Hilfe!
1 „Gefällt mir“

Hallo Leute,

ich habe bei meinem Bekannten eine Symbox mit RS485 Schnittstelle. Dort ist jetzt ein German Metering OP-400 DO Auslesekopf an dem ISKRA MT691 eHZ Zähler aufgesetzt. Der D0 ist mit 12VDC versorgt, die beiden anderen Adern hängen am 485 Port der Symbox.
Nun habe ich das Modul SML Counter Modul geladen und eine SML_Electricity Instanz erstellt. Einen I/O Port habe ich angelegt und bekomme mit 9600bd 8/N/1 im Sekundentakt Daten über die Schnittstelle. Im Cutter kommt kein Debug an, ebenso kann ich dort keine weiteren Einstellungen vornehmen, somit denke ich das grundsätzlich die Struktur der Daten über den Port nicht passt. Der Zähler liefert definitiv ein SML Protokoll, ich konnte diesen mit einem USB D0 Auslesekopf und entsprechender Software SML basieren auslesen.
Im Debug der I/O Schnittstelle kommen folgende die Daten im Anhang an. Dies passiert sofort sobald ich den Kopf aufsetze. Ich sende keine Eröffnungssequenz oder dergleichen. Er scheint im 1s Push Betrieb zu sein. Ich dachte immer der Zähler schickt erst Daten über die D0, wenn explizit eine Anforderung kommt. Ich kann an den empfangenen Daten auch keine Eröffnungssequenz des SML Protokolls im Stil von 1B 1B 1B 1B 01 01 01 01 erkennen.

Irgendwie bin ich etwas mit meinem Latein am Ende…

hier noch der Link zu dem verwendet D0 Auslesekopf welcher an der Symbox per RS485 angeschlossen ist: https://www.german-metering.de/auslesekopf-op-400

VG Heiko

dump.txt (15,0 KB)

Hallo Heiko,

grundsätzlich sollte der ISKRA MT691 funktionieren.

Die meisten Zähler laufen im Push-Betrieb. Das ist also korrekt.

Dein Lesekopf passt voraussichtlich nicht mit der Schnittstelle zusammen. Wenn ich die Spezifikation lese, dann erwartet der Lesekopf RS485-half duplex, die Symbox hat aber RS485 Modbus RTU. Ich gehe mal davon aus, dass das nicht kompatibel ist.

Grüße
Jürgen

Hallo Jürgen,

vielen Dank für Deine Hilfe, ich war schon am verzweifeln. Da das so offensichtlich leider nicht kompatibel ist muss ich schaun wie ich das D0 Signal in die Symbox bekomme. Dann werde ich mich mal mit Alternativen beschäftigen, Tasmota etc…
VG Heiko

Die Symbox hat einen RS485 Anschluss. Dieser wird als Modbus RTU beworben. Im Grunde spricht aber nichts dagegen, die RS485 Schnittstelle muss halt entsprechend in Symcon nicht als ModbusRTU sondern als COM-Port eingerichtet sein.

Hat der Lesekopf denn eine Spannungsversorgung an + und GND? Ist der GND auch mit der Symbox verbunden?

Hallo, es hat mittlerweile funktioniert. Ich lese mit dem D0 RS485 Auslesekopf erfolgreich das SML Protokoll auf der RS485 Schnittstelle der Symbox aus. Lief erst korrekt, nachdem ich für den Auslesekopf die identische Spannungsversorgung wie für die Symbox (12VDC) verwendet habe und zudem 120Ohm Abschlusswiderstand an den Bus angeklemmt hatte. Eine Ground Anschluss hat meine ältere Symbox am RS485 nicht.

Grüße

2 „Gefällt mir“

Hallo zusammen,
ich bin gerade dabei mich in IPS einzuarbeiten und mein bestehendes System (MyHomeControl mit ioBroker) nach IPS zu migrieren.

Aktuell hänge Ich am auslesen des Stromzählers.
Es handelt sich um ein ITRON Stromzähler welchen Ich bisher über eine IR Lesekopf und ein Powershell Script auslese. Bin daher also ziemlich sicher dass das System insich funktioniert.

Aktuell sieht es so aus, dass an der COM Schnittstelle Daten ankommen.
Allerdings weder im Cutter noch in der SML Instanz. Die Verknüpfung von COM → Cutter → SML scheint zu stimmen. Wenn Ich den COM Stoppen gibt es in den beiden anderen eine Fehlermeldung.

Debug.txt der COM Schnittstelle füge Ich einmal an.
dump.txt (66,6 KB)

Vielleicht kann mir jemand weiterhelfen bei der Konfiguration des ganzen?

Viele Grüße
Torsten

Moin Moin,

ich habe meinen Zähler per IR-Lesekopf / USB an einen Raspi angeschlossen. Dort mit Ser2Net ins WLAN und per IO ins IPS. Dann Cutter und SML. Funktionierte auf Anhieb.

Gruß Michael

1 „Gefällt mir“

Hallo Torsten,
im dump sind keine Nutzdaten enthalten. Ggf. passt bei dir noch etwas mit den Einstellungen nicht.
Grüße
Jürgen

1 „Gefällt mir“

Hallo Jürgen,

in meinem Powershell Script habe Ich zur Initialisierung folgendes hinterlegt:

[Byte] $start1 = 0x2F,0x3F,0x21,0x0d,0x0a
[Byte] $start2 = 0x06,0x30,0x30,0x30,0x0d,0x0a

Ich vermute also dass Ich eine Start Sequence auslösen muss damit der Zähler Antworten.
Kannst du mir sagen ob das in IPS so möglich ist?
Hier das gesamt PS Script mit dem der Abruf funktioniert:

while ($True){

Write-Host „Open Port“
$port= new-Object System.IO.Ports.SerialPort COM5,300,Even,7,one
$port.open()
#Write-Host „Port opened“

[Byte] $start1 = 0x2F,0x3F,0x21,0x0d,0x0a
[Byte] $start2 = 0x06,0x30,0x30,0x30,0x0d,0x0a

$port.Write($start1, 0, $start1.Count)
Write-Host „Communication started“
#Write-Host „Sleeping 1 second“
#start-sleep 1
#Write-Host „Read communication“
$ReadInterval = 50
$length = „0“
[INT]$i = „0“
$obj = New-Object PSObject
while ($i -ne „12“)
{
#Start-Sleep -Milliseconds $ReadInterval
$data = $port.readline()
$Name,[String]$Value,$X3 = $data.Split(„()“+„*“)
Add-Member -InputObject $obj -MemberType NoteProperty -Name $Name -Value $Value
$length = $data.Length
#Write-Host $length
Write-Output ($data)
$i++
}
Write-Host „Transmission finished“
$port.close()
Write-Host „Port closed“

EDIT:
Den Schalter „Sende Eröffnungsfrequenz“ im SML hab ich Aktiv.

Welchen ITRON-Zähler hast du denn? Wenn ich das richtig verstehe, dann benötigen nur die alten ITRON eine Einführungssequenz. Die laufen dann aber auch auf 300bd. Die Zähler mit 9600bd sind PUSH-Zähler und benötigen keine Einführungssequenz. Probiere mal, die Einführungssequenz abzuschalten.
Grüße
Jürgen

1 „Gefällt mir“

Korrekt, ich hatte bisher 300 Baud, 7 Bits, und Parity Even.
Ich hab ein EM214
EM 214 Benutzerhandbuch - v 1 9_DE_30_August

Wenn Ich die Eröffnung Sequenz im EML Ausschalte sehe Ich im Debug des COM Ports keine Einträge mehr.

ok, das sollte lösbar sein. Gucke ich mir heute Abend an und mache eine Beta

1 „Gefällt mir“

V1.14 Neu: Individuelle Eröffnungssequenz

Einige Stromzähler benötigen eine individuelle Eröffnungssequenz, senden also nur auf Anfrage. Welche Anfrage zu senden ist, muss beim Hersteller des Stromzählers erfragt werden. Alternativ findet man diese aber auch für viele Zähler im Volkszähler-WIKI.
Die Anfrage ist als HEX-String in das neue Formularfeld einzutragen und der Button zum Aktivieren auf „An“ zu stellen.

Die Version ist wie immer zunächst als Beta verfügbar.

Grüße
Jürgen

1 „Gefällt mir“

da hatte sich auf die Schnelle noch ein kleiner Fehler eingeschlichen. Der ist jetzt behoben.
Grüße
Jürgen

Vielen lieben Dank Jürgen für die anpassung.
Das scheint schon mal der richtige Schritt zu sein. Mit dem Eröffnungsstring

2F3F210D0A063030300D0A

Bekomem Ich den Zähler zum Antworten. Für mein dafürhalten scheine die Daten auch zu passen. Der Cutter Empfängt etwas, allerdings wird im SML nichts angezeigt und keine Variable gelesen.

Hier mal der Serial und Cutter Dump, vielleicht kannst du darin etwas erkennen das weiter hilft.
SerialDUMP.txt (11,5 KB)
CutterDUMP.txt (1,2 MB)

ich hätte bei der Eröffnungssequenz drauf kommen können… :roll_eyes:
Du hast gar keinen SML-Counter. Das ist ein Obis-Counter. Wechsel bitte mal das Modul. Dann funktioniert es auch.

Grüße
Jürgen

1 „Gefällt mir“