[vz-users] Auslesen eines ISKRA MT175

tuxlog webmaster at tuxlog.de
Di Mai 16 19:10:33 CEST 2023


Hallo Miteinander,

ich bekomme beim Versuch meinen Zähler auszulesen keine vernünftigen 
Daten heraus und hoffe auf eure Hilfe.

Zähler: ISKRA MT175-D1A51-V22-K0t (mit PIN frei geschaltet), Lesekopf: 
Hichi USB an Raspberry Pi Model B Plus Rev 1.2 mit Raspbian Bullseye 
(up-to-date).

Echo-Test mit weißem Papier klappt ohne Probleme.

Die Sendediode des MT175 sendet auch alle 1-3 Sekunden etwas (geprüft 
mit Handy-Kamera).

Installation des vzlogger hat auch geklappt.

Ich habe mir folgendes config-file zusammen gebaut (Parameter gemäß wiki 
Seite für den MT175):

{
"retry" : 3,
"verbosity" : 15,
"log" : "/var/log/vzlogger.log",

"local" : {
          "enabled" : true,
          "port" : 8081,
          "index" : false,
          "timeout" : 30,
          "buffer" : 600
},

"meters" : [{
          "protocol" : "sml",
          "enabled" : true,
          "device" : "/dev/ttyUSB0",
          "parity" : "8N1",
          "baudrate" : 9600,
          "aggtime" : -1,
          "aggfixedinterval" : false,
        }]
}

Im Logfile sieht das dann so aus:

[May 16 18:50:04][main] vzlogger v0.8.1 based on 
tags/v0.8.1-0-g0671359029 from Sun, 23 Apr 2023 15:16:41 +0200 started.
[May 16 18:50:04][mtr0] Creating new meter with protocol sml.
[May 16 18:50:04][mtr0] Meter configured, enabled.
[May 16 18:50:04]       New meter initialized (protocol=sml)
[May 16 18:50:04]       Have 1 meters.
[May 16 18:50:04][main] log level is 15
[May 16 18:50:04][main] local=1
[May 16 18:50:04]       Daemonize process...
[May 16 18:50:04]       Opened logfile /var/log/vzlogger.log
[May 16 18:50:04][push] No pushDataServer defined.
[May 16 18:50:04][]     ===> Start meters
[May 16 18:50:04][mtr0] Meter connection established
[May 16 18:50:04][mtr0] Meter thread started
[May 16 18:50:04][mtr0] Meter is opened. Starting channels.
[May 16 18:50:04][http] Starting local interface HTTPd on port 8081
[May 16 18:50:04][]     Startup done.
[May 16 18:50:04][mtr0] Number of readers: 32
[May 16 18:50:04][mtr0] Config.local: 1

Dann passiert nichts mehr.

Also versuche ich erst mal direkt auf der Schnittstelle zu lesen und zu 
schauen was da ankommt.

Dazu verwende ich ein kleines Python-Programm:

#!/usr/bin/python
import serial

BAUDRATE = 9600

print("opening port")
co = 0
out = ''
# Serial Port 9600 Baud, 8N1
port = serial.Serial(port='/dev/ttyUSB0', baudrate=BAUDRATE, 
bytesize=serial.EIGHTBITS, parity=serial.PARITY_NONE, 
stopbits=serial.STOPBITS_ONE, timeout=1)
# Serial Port 9600 7E1
#port = serial.Serial(port='/dev/ttyUSB0', baudrate=BAUDRATE, 
bytesize=serial.SEVENBITS, parity=serial.PARITY_EVEN, 
stopbits=serial.STOPBITS_ONE, timeout=1)

while True:
    input = port.read()
    out = out + " " + input.hex()
    co += 1

    if (co > 25):
       print(out)
       co = 0
       out = ''

Es gibt keinen wesentlichen Unterschied bei der Ausgabe, egal ob ich mit 
7E1 oder 8N1 lese.

  1b 12 12 12 00 00 00 00 64 00 00 18 80 00 40 00 40 00 60 42 00 00 64 
00 00 00
  02 00 18 24 02 00 00 00 02 02 00 00 4e e0 00 00 00 42 90 20 00 64 00 
00 18 80
  00 40 00 40 00 60 42 06 00 66 00 02 00 00 00 02 02 00 00 4e e0 00 06 
00 00 40
  00 fe fe 60 40 00 40 00 20 42 80 70 66 06 00 00 86 00 02 fe 00 00 00 
00 00 00
  02 02 00 66 06 00 00 00 00 00 fe 00 00 00 00 02 00 00 00 02 02 00 00 
4e e0 00
  00 66 06 00 00 00 00 00 fe 40 00 00 00 00 00 40 1c 00 fe 10 00 00 00 
00 06 38
  38 10 00 66 06 00 00 00 00 00 fe 00 00 40 1c 00 fe 10 00 00 00 00 06 
38 38 10
  00 66 06 00 00 00 00 00 fe 00 00 40 1c 00 fe 10 00 00 00 00 00 00 00 
00 00 66
  06 00 00 00 06 00 fe 00 00 40 12 00 00 00 00 00 00 00 00 66 06 00 00 
00 06 00
  fe 00 00 40 12 00 00 00 00 00 00 00 00 66 06 00 00 30 06 00 fe 00 00 
40 12 00
  00 00 00 00 00 00 00 66 06 00 00 08 06 00 fe 00 00 40 12 00 00 00 00 
00 00 c8
  00 66 06 00 00 86 00 00 fe 00 00 00 00 02 00 c2 30 08 30 00 00 80 8e 
60 c2 c0
  0c 30 02 c8 08 42 08 0e 06 0c 42 c0 24 04 00 04 22 86 00 00 00 10 c0 
12 e6 02
  30 80 08 3e 00 72 00 40 02 00 66 00 00 00 42 c0 00 00 64 00 00 18 80 
00 40 00
  40 00 60 42 00 00 60 00 42 02 90 00 12 12 12 12 10 00 f2 fe 1b 12 12 
12 00 00
  00 00 64 00 00 18 80 02 40 00 40 00 60 42 00 00 64 00 00 00 02 00 18 
26 02 00
  00 00 02 02 00 00 4e e0 00 00 00 42 06 02 00 64 00 00 18 80 00 40 00 
40 00 60
  42 06 00 66 00 02 00 00 00 02 02 00 00 4e e0 00 06 00 00 40 00 fe fe 
60 40 00
  40 00 20 42 80 70 66 06 00 00 86 00 02 fe 00 00 00 00 00 00 02 02 00 
66 06 00
  00 00 00 00 fe 00 00 00 00 02 00 00 00 02 02 00 00 4e e0 00 00 66 06 
00 00 00
  00 00 fe 40 00 00 00 00 00 40 1c 00 fe 10 00 00 00 00 06 38 38 12 00 
66 06 00
  00 00 00 00 fe 00 00 40 1c 00 fe 10 00 00 00 00 06 38 38 12 00 66 06 
00 00 00
  00 00 fe 00 00 40 1c 00 fe 10 00 00 00 00 00 00 00 00 00 66 06 00 00 
00 06 00
  fe 00 00 40 12 00 00 00 00 00 00 02 00 66 06 00 00 00 06 00 fe 00 00 
40 12 00
  00 00 00 00 00 00 00 66 06 00 00 30 06 00 fe 00 00 40 12 00 00 00 00 
00 00 02
  00 66 06 00 00 08 06 00 fe 00 00 40 12 00 00 00 00 00 00 cc 00 66 06 
00 00 86
  00 00 fe 00 00 00 00 02 00 c2 30 08 30 00 00 80 8e 60 c2 c0 0c 30 02 
c8 08 42
  08 0e 06 0c 42 c0 24 04 00 04 22 86 00 00 00 10 c0 12 e6 02 30 80 08 
3e 00 72
  00 40 02 00 66 00 00 00 42 06 00 00 64 00 00 18 80 00 40 00 40 00 60 
42 00 00
  60 00 42 80 70 00 12 12 12 12 10 00 c0 20

Okay, jetzt ist klar, wieso der vzlogger kein SML findet, der SML-Header 
1b1b1b1b01010101 kommt nicht vor. Allerdings so etwas Ähnliches (1b 12 
12 12 00 00 00 00). Dann habe ich einige Umpositionierungen des 
Lesekopfs ausprobiert. Ich dachte, vielleicht sitzt der irgendwie schief 
drauf, leider ohne Erfolg es kommen immer ähnliche Daten wie oben.

Fällt euch dazu etwas ein? Ich vermute irgendetwas an der seriellen 
Kommunikation ist falsch eingestellt. Aber was?

Vielen Dank, tuxlog




Mehr Informationen über die Mailingliste volkszaehler-users