Hallo,
j die habe ich geladen, aber wenn ich diese ausführe sagt er mir, dass er den Parameter c und l nicht kennt :-(
Dann habe ich es ohne probiert und er hängt dann wie oben bei:
2021-03-28 20:29:48,676 - __main__ - DEBUG - Time to send first request to smartmeter: 747.68 µs @ 225
Ich kann aber auch die Herstellerdatei nicht laden mit get_manufacturer_ids.py.
Es wundert mich, dass er beim weiteren lesen am Port das liest: b'\x06050\r\n'
Das sieht mir aus also ob er dies mit einer anderen Baudrate liest. Dieser "Text" kommt so in der normalen Ausgabe nicht vor. Deswegen würde mich interessieren was dlms_serial macht.
Ach war das in Pascal früher so schön, als man alles im Einzelschritt debuggen konnte :-)
Das fuchst mich jetzt so lange bis alles verstellt ist :-)
Ankündigung
Einklappen
Keine Ankündigung bisher.
Welches Plugin für EMH (eHZ EW8E2A): SML/SMLx/DLMS/Easymeter?
Einklappen
X
-
Hast Du die dlms.py vom gist geladen? Was heißt Du hängst an den Parameter c und l ?
Und das Kürzel EMH in der Identification Message wird über die Excel Tabelle ermittelt. Du hattest in Post #22 gefragt und gesagt, das sich das ändern müsse. Schön, das Du das jetzt weißt. Das hat hier speziell nur kosmetischen Charakter.
Ich kann mich da an Deinen Zähler nur rantasten weil ich so ein Ding hier nicht hängen habe.Zuletzt geändert von bmx; 29.03.2021, 09:21.
Einen Kommentar schreiben:
-
Hallo,
vielen Dank für die Hilfe. Irgendwie hänge ich:
Und beim dlms hänge ich mit den Parametern c und l..Code:sudo python3 get_manufacturer_ids.py Read manufacturer IDs from URL: 'https://www.dlms.com/srv/lib/Export_Flagids.php' Starting new HTTPS connection (1): [URL="http://www.dlms.com:443"]www.dlms.com:443[/URL] [URL]https://www.dlms.com:443[/URL] "GET /srv/lib/Export_Flagids.php HTTP/1.1" 200 None sheetnames ["Flag Id's"] sheet <Worksheet "Flag Id's"> rows [1 ..1263] columns [1 ..4] /usr/lib/python3/dist-packages/openpyxl/worksheet/worksheet.py:303: UserWarning: Using a coordinate with ws.cell is deprecated. Use ws[coordinate] instead warn("Using a coordinate with ws.cell is deprecated. Use ws[coordinate] instead") Error 'int' object has no attribute 'upper' occurred
Aber wenn ich mir die EXCEL Tabelle ansehe steht zwar ein Hersteller drin, aber was sagt mir das?Code:sudo python3 dlms2.py /dev/ttyUSB0 -v -t 10 2021-03-28 20:29:48,669 - __main__ - INFO - This is DLMS Plugin running in standalone mode @ 469 2021-03-28 20:29:48,670 - __main__ - INFO - ============================================== @ 470 2021-03-28 20:29:48,670 - __main__ - DEBUG - Config='{'serialport': '/dev/ttyUSB0', 'device': '', 'querycode': '?', 'speed': 300, 'timeout': 10.0, 'onlylisten': False, 'use_checksum': True}' @ 158 2021-03-28 20:29:48,674 - __main__ - DEBUG - Time to open serial port /dev/ttyUSB0: 3.86 ms @ 208 2021-03-28 20:29:48,675 - __main__ - DEBUG - Writing request message b'/?!\r\n' to serial port '/dev/ttyUSB0' @ 217 2021-03-28 20:29:48,676 - __main__ - DEBUG - Time to send first request to smartmeter: 747.68 µs @ 225FLAG ID Manufacturer Country World Region EMH EMH metering GmbH & Co. KG (formerly EMH Elektrizitatszahler GmbH & CO KG) Zuletzt geändert von bmx; 02.04.2021, 08:26.
Einen Kommentar schreiben:
-
Postmichel Du kannst mal versuchen die dlms.py und die get_manufacturer_ids.py aus diesem gist im dlms plugin Verzeichnis zu ersetzen.
Dann poste mal was python3 dlms.py /dev/ttyUSB0 -c -v -l -t 10 -s 9600
ergibt.
Um zu wissen, was der manufacturer Code aussagt, mußt Du die Liste der Hersteller erst runterladen mit python3 get_manufacturer_ids.pyZuletzt geändert von bmx; 29.03.2021, 09:18.
Einen Kommentar schreiben:
-
Soweit so schlecht:
Zerstückelt man die Nachricht von Sam, so scheint ein x02 anzukommen. Was macht das dlms_serial ? Da hänge ich gerade.Code:This is DLMS Plugin running in standalone mode ============================================== Time to open serial port /dev/ttyUSB0: 3.71 ms Writing request message b'/?!\r\n' to serial port '/dev/ttyUSB0' Time to send first request to smartmeter: 695.71 µs Time to receive an answer: 276.47 ms Request Message was not equal to response, treating as identification message Time to get first identification message from smartmeter: 668.76 µs Identification Message is b'/EMH5----eHZ-E0018E\r\n' The manufacturer for EMH is unknown (out of 0 given manufacturers) Baudrate id is '5' thus Protocol Mode is C and max Baudrate available is 9600 Bd Using protocol mode C, send acknowledge b'\x06050\r\n' and tell smartmeter to switch to 9600 Baud Reading OBIS data from smartmeter Nachricht von Sam [B]b'\x02!\r\n'[/B] Time for reading OBIS data: 815.97 ms Whole communication with smartmeter took 1.10 s checksum calculation Sorry response did not contain enough data for OBIS decode the whole query took 1.10 s, suggested cycle thus is at least 11.10 s No results from query, maybe a problem with the serial port '/dev/ttyUSB0' given ==============================================
Zuletzt geändert von bmx; 02.04.2021, 08:26.
Einen Kommentar schreiben:
-
Der hintere Port ist auch nicht für Benutzer gedacht, und braucht teilweise ein Passwort. Zum Ausbauen müsstest du die Verplombung lösen, das wäre nicht so gut. Aus dem Grund ist der Port ja auch hintenZitat von Postmichel Beitrag anzeigenDer Zähler ist von 2007 und hat laut meinem Datenblatt eine Schnittstelle hinten. Ich möchte jetzt aber nicht alles ausbauen wollen.
Einen Kommentar schreiben:
-
Mal so gestartet, weil er immer maud 300 starten wollte, trotz aller werteänderungen: sudo python3 dlms.py -s 9600 /dev/ttyUSB0
Bekomme ich ab und zu folgendes:
Die Nachricht von Sam ist von mir, damit ich weiß wo ich im Code bin.Code:This is DLMS Plugin running in standalone mode ============================================== Time to open serial port /dev/ttyUSB0: 1.90 ms Writing request message b'/?!\r\n' to serial port '/dev/ttyUSB0' Time to send first request to smartmeter: 768.90 µs Nachricht von Sam b'/EMH5----eHZ-E0018E\r\n' Time to receive an answer: 276.15 ms Request Message was not equal to response, treating as identification message Time to get first identification message from smartmeter: 685.93 µs Identification Message is b'/EMH5----eHZ-E0018E\r\n' The manufacturer for EMH is unknown (out of 0 given manufacturers) Baudrate id is '5' thus Protocol Mode is C and max Baudrate available is 9600 Bd Using protocol mode C, send acknowledge b'\x06050\r\n' and tell smartmeter to switch to 9600 Baud Reading OBIS data from smartmeter
Manufacturer EMH unknown? Das muss sich ändern ;-)
Und es muss auch eine Zeitangabe dazu irgendwie.Zuletzt geändert von bmx; 02.04.2021, 08:27.
Einen Kommentar schreiben:
-
Ja, das mit der Welcome Message ist so vorgesehen. Der USB Kopf gibt ja nur weiter, was die IR im Zähler von sich gibt.
Das Plugin müßte da einfach nur lauschen (sich dumm stellen) und die Items befüllen. Dafür ist es aktuell aber nicht gestrickt. Mit einem zusätzlichen Parameter könnte man das Plugin darüber informieren, das es nur zuhören muß und auch die Protokollabsprachen ignoriert.
Mache ich mir am Wochenende mal einen Gedanken zu wie ich das umsetzen kann.
Einen Kommentar schreiben:
-
Hallo,
es ist ein Hichi IR USB und ja er brabbelt einfach vor sich hin. Alle zwei/drei Sekunden die Sequenz. Laut Internet ist dieser Lesekopf aber schon öfter im Zusammenhang mit Abfragen aufgetaucht.
Spielt das eine Rolle für das Plugin? Angenommen man sendet eine Anfrage, steht ja ein Antwort zur Verfügung. Der Puffer läuft halt voll und zeitlich stimmt es nicht überein.
Der Zähler ist von 2007 und hat laut meinem Datenblatt eine Schnittstelle hinten. Ich möchte jetzt aber nicht alles ausbauen wollen.
Also ich habe mir das Plugin angesehen. Er wartet auf eine "Welcome" Message:
Das kann ich mir im Plugin einfach zusammenbasteln, da es ja immer folgendes ist:Code:This is DLMS Plugin running in standalone mode ============================================== Time to open serial port /dev/ttyUSB0: 1.94 ms Writing request message b'/?!\r\n' to serial port '/dev/ttyUSB0' Time to send first request to smartmeter: 962.97 µs Time to receive an answer: 2.72 ms Request Message was not equal to response, treating as identification message Time to get first identification message from smartmeter: 524.76 µs Identification Message is b'55(0000708333)\r\n' identification message 'b'55(0000708333)\r\n'' does not start with '/',abort query No results from query, maybe a problem with the serial port '/dev/ttyUSB0' given ==============================================
Mal sehen...Code:/EMH5----eHZ-E0018E
Zuletzt geändert von bmx; 02.04.2021, 08:27.
Einen Kommentar schreiben:
-
OT: da die Versorger nach meiner Erfahrung bei eHZ (sind ja keine Smartmeter) die Schnittstelle nicht nutzen, dürfte ihnen völlig egal sein, was da passiert oder auch nicht.
Manche haben die Programmierschnittstelle auf der Rückseite, die muss funktionieren.
Einen Kommentar schreiben:
-
An Deiner Stelle würde ich mal mit dem Hersteller Kontakt aufnehmen und nach einer Spezifikation fragen. Vielleicht haben die auch wieder so eine Sonderlocke. Es könnte durchaus auch sein, das die Schnittstelle von sich aus einfach drauflos plappert und durcheinanderkommt, wenn man gemäß Spezifikation für DLMS erstmal ein Hallo, wer bist du? dahin schreibt.
Es gibt da schon abenteuerliche Implementationen und ich frage mich immer wer bei den Versorgern nicht genau hinschaut was die sich da unterjubeln lassen...
Einen Kommentar schreiben:
-
Ja, das dacht ich mir auch und habe gestern einfach nochmal DLMS probiert. Warum es nicht geht ist mir auch ein Rätsel. Ich habe als User Smarthome mit Minicom alles auslesen können. Also liegt es nicht an den Rechten. Ich habe das Gefühl Smarthome greift nicht auf die Schnittstelle zu.
Ich starte sehr oft neu, das ist nicht das Problem.
Ich probiere es heute Abend nochmal aus.
Einen Kommentar schreiben:
-
Wenn ich die EInträge bei easymeter sehe, solltest du das eher nicht mehr benutzen.
DLMS hatte dir doch Bernd oben schon empfohlen, ging das nicht?
Probier es nochmal systematisch mit DLMS, bei Änderungen an der Plugin-Konfig oder Items immer shng neu starten, und immer schön die Logs auf Fehler prüfen.
- Likes 1
Einen Kommentar schreiben:
-
Ich stehe vor einem Rätsel und komme nicht drauf. Wie sage ich es ihm?
Das easymeter plugin ist auch veraltet. Ich habe mich bei dlms mal umgesehen, Die Schnittstelle wird laut code richtig geöffnet:
Mal drüber schlafen....Code:dlms_serial = serial.Serial(SerialPort,[INDENT=3]InitialBaudrate, bytesize=serial.SEVENBITS, parity=serial.PARITY_EVEN, stopbits=serial.STOPBITS_ONE, timeout=timeout)[/INDENT]
Zuletzt geändert von bmx; 22.03.2021, 08:33.
Einen Kommentar schreiben:
-
Das mag ja sein. Das Plugin weiß aber nicht, dass es easymeter heißt...but not found in plugin code
Einen Kommentar schreiben:


Einen Kommentar schreiben: