Forum: Mechanik, Gehäuse, Werkzeug Gossen Metrawatt Z216C (IR-USB-Adapter) an Raspberry/Linux?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Gerald O. (garry)


Lesenswert?

Hallo,

ich würde gerne von einem Metrawatt Energie-Messgerät die Messwerte mit 
einem Raspberry über den IR-USB-Adapter Gossen Metrawatt Z216C 
aufnehmen.

Für Windows gibt es einen Treiber, der einen virtuellen COM-Port 
installiert. Damit kann man problemlos mit einem Terminalprogramm die 
Messdaten anzeigen / aufzeichnen.
Aber wie sieht das ganze unter Linux aus? Hat Metrawatt da was 
proprietäres oder steckt da letztlich nur eine RS232-USB-Wandler hinter 
der IR-Schnittstelle so dass es mit Linux Bordmittel funktioniert?
Plan B wäre sonst unter Windows ein "virtuelles Null-Modem" um das 
Protokoll wieder über einen USB-RS232-Adapter an den Raspberry 
auszugeben. Unschön, aber fürs Labor erstmal eine Lösung.
Ach ja, Hintergrund ist dass der Raspberry als Datensammler läuft der 
von verschiedenen Messgeräten die Daten in eine gemeinsame 
CSV-Datei/Influx-DB schreibt. Daher ist Loggen auf dem Windows-PC keine 
Option.

Gruß
Garry

von Reinhard S. (rezz)


Lesenswert?

Gerald O. schrieb:
> Aber wie sieht das ganze unter Linux aus?

Hast du einen Linux-Rechner? Dann einfach mal anstöpseln und schauen, 
welche Meldungen er bringt.

> Hat Metrawatt da was
> proprietäres oder steckt da letztlich nur eine RS232-USB-Wandler hinter
> der IR-Schnittstelle so dass es mit Linux Bordmittel funktioniert?

Das können wir dir aus der Ferne natürlich auch nicht sagen... Evtl. 
kannst du das Ding ja öffnen und schauen.

von Harald K. (kirnbichler)


Lesenswert?

Der komplett idiotische Installer "driver-control" von Gossen enthält 
unter anderem den altbekannten FTDI-Treiber.

Zusätzlich sind da aber noch andere Treiber enthalten, zwei 
CDC-Varianten (ACM und PTMF, was auch immer das ist), beide von 
"Torilogic", wer auch immer das sein mag, und eine Inf-Datei für einen 
BT-Serial-Treiber, der hier offensichtlich nicht relevant ist.

Die Inf-Dateien der beiden CDC-Treiber enthalten Kommentare, die auf 
einen Einsatz mit diversen Geräten namens "Metriso" oder "Profitest", 
das dürfte also was anderes sein als der USB-IR-Adapter.

Insofern stehen die Chancen nicht schlecht, daß das Ding einfach nur 
einen der üblichen FTDI-Bausteine enthält. Und dann geht es unter Linux 
auf jeden Fall.

von Hmmm (hmmm)


Lesenswert?

Gerald O. schrieb:
> Für Windows gibt es einen Treiber, der einen virtuellen COM-Port
> installiert.

Welche USB-VID/PID? Findest Du im Gerätemanager (Hardware-IDs).

von Gerald O. (garry)


Lesenswert?

Harald K. schrieb:
> Insofern stehen die Chancen nicht schlecht, daß das Ding einfach nur
> einen der üblichen FTDI-Bausteine enthält. Und dann geht es unter Linux
> auf jeden Fall.

Über einen seriellen Monitor auf tty hören wie mit den Fluke-Geräten hat 
nicht geklappt.
Die Information aus lsusb -v sahen kundenspezifisch aus (blöderweise 
nicht herauskopiert, liefer ich nach), nicht nach Standard FTDI für 
serielle Schnittstelle.

von Dieter S. (ds1)


Lesenswert?

Dass da wohl ein FTDI Chip eingebaut ist steht doch alles in der INF 
Datei des FTDI Treiber (Der Adapter heißt USB X-TRA):

1
"USB-Metrahit X-TRA"=FtdiBus.NTamd64,USB\VID_1CD7&PID_0217

Und unter Linux steht in "ftdi_sio_ids.h"

1
/*
2
 * GMC devices
3
 */
4
#define GMC_VID        0x1cd7
5
#define GMC_Z216C_PID  0x0217 /* GMC Z216C Adapter IR-USB */

0x1cd7 ist die USB-VID von GMC-I Gossen-Metrawatt GmbH

In der INF Datei steht auch noch das (vermutlich eine ältere Version der 
Hardware):

1
"USB-Metrahit 2x"=FtdiBus.NTamd64,USB\VID_1CD7&PID_0216

: Bearbeitet durch User
von Gerald O. (garry)


Lesenswert?

lsusb -v auf dem Raspberry gibt folgendes zu dem Adapter aus.
  idVendor           0x1cd7
  idProduct          0x0217
stimmen somit mit Deinen Angaben überein.
FTDI ist dabei nicht explizit aufgetaucht, was aber nichts heissen muss 
(Name von Kunde überschrieben o.ä.)
Nicht klar ist mir wie ich entsprechend zu Windows über den virtuellen 
Comport den Datenstrom bekomme.
1
Bus 001 Device 016: ID 1cd7:0217 GMC Z216C Adapter IR-USB
2
Couldn't open device, some information will be missing
3
Device Descriptor:
4
  bLength                18
5
  bDescriptorType         1
6
  bcdUSB               2.00
7
  bDeviceClass            0 
8
  bDeviceSubClass         0 
9
  bDeviceProtocol         0 
10
  bMaxPacketSize0         8
11
  idVendor           0x1cd7 
12
  idProduct          0x0217 
13
  bcdDevice            6.00
14
  iManufacturer           1 GMC
15
  iProduct                2 Z216C Adapter IR-USB
16
  iSerial                 3 GM71PW6V
17
  bNumConfigurations      1
18
  Configuration Descriptor:
19
    bLength                 9
20
    bDescriptorType         2
21
    wTotalLength       0x0020
22
    bNumInterfaces          1
23
    bConfigurationValue     1
24
    iConfiguration          0 
25
    bmAttributes         0x80
26
      (Bus Powered)
27
    MaxPower              100mA
28
    Interface Descriptor:
29
      bLength                 9
30
      bDescriptorType         4
31
      bInterfaceNumber        0
32
      bAlternateSetting       0
33
      bNumEndpoints           2
34
      bInterfaceClass       255 Vendor Specific Class
35
      bInterfaceSubClass    255 Vendor Specific Subclass
36
      bInterfaceProtocol    255 Vendor Specific Protocol
37
      iInterface              2 
38
      Endpoint Descriptor:
39
        bLength                 7
40
        bDescriptorType         5
41
        bEndpointAddress     0x81  EP 1 IN
42
        bmAttributes            2
43
          Transfer Type            Bulk
44
          Synch Type               None
45
          Usage Type               Data
46
        wMaxPacketSize     0x0040  1x 64 bytes
47
        bInterval               0
48
      Endpoint Descriptor:
49
        bLength                 7
50
        bDescriptorType         5
51
        bEndpointAddress     0x02  EP 2 OUT
52
        bmAttributes            2
53
          Transfer Type            Bulk
54
          Synch Type               None
55
          Usage Type               Data
56
        wMaxPacketSize     0x0040  1x 64 bytes
57
        bInterval               0

von Dieter S. (ds1)


Lesenswert?

Gerald O. schrieb:
>
> Nicht klar ist mir wie ich entsprechend zu Windows über den virtuellen
> Comport den Datenstrom bekomme.

Einen aktuellen Kernel verwenden. Den Support für den Adapter gibt es 
seit Anfang des Jahres:

https://lore.kernel.org/all/20240211144245.2469439-1-daniel@chaospixel.com/T/

Alternativ die USB VID/PID des FT232R ändern.

von Hmmm (hmmm)


Lesenswert?


von Gerald O. (garry)


Lesenswert?

Dieter S. schrieb:
> Gerald O. schrieb:
>>
>> Nicht klar ist mir wie ich entsprechend zu Windows über den virtuellen
>> Comport den Datenstrom bekomme.
>
> Einen aktuellen Kernel verwenden. Den Support für den Adapter gibt es
> seit Anfang des Jahres:
>
> https://lore.kernel.org/all/20240211144245.2469439-1-daniel@chaospixel.com/T/

Gute Info, Danke :-)

> Alternativ die USB VID/PID des FT232R ändern.
Der Adapter steht mir leider nicht exklusiv zur Verfügung, den darf ich 
nicht einfach "umprogrammieren".

von Gerald O. (garry)


Lesenswert?

Hmmm schrieb:
> Oder ftdi_sio die VID/PID mitteilen:
>
> 
https://ftdichip.com/faq/how-do-i-add-a-custom-pid-to-the-ftdi_sio-linux-com-port-driver/

Danke :-)
der Hinweis hat zum Erfolg geführt, mit dem Raspberry habe ich jetzt 
direkt Zugriff auf die Ausgabe des Metrahit Energy.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.