NEWS
Stromzähler SGM-DD-4A92T auslesen
-
Hallo zusammen,
ich hatte lange Zeit den vzlogger erfolgreich auf einem Raspi 4 am Laufen und habe mich nun dafür entschieden das Ganze mit iobroker weiter zu loggen. Meine Challenge ist aktuell, dass mir das mit dem iobroker SML Adapter nicht gelingen will. Der iobroker läuft auf demselben Raspi 4 an einem frisch aufgesetzten 64Bit raspberrypiOS am selben USB port. Das "alte" vzlogger image dient mir als Referenz ob mein Zähler und mein IR-Lesekopf tatsächlich funktionieren. (tut er!) allerdings habe ich es noch nicht verstanden, wie ich das mit dem "Smartmeter" Adapter im iobroker genauso hin konfiguriert bekomme.
Im iobroker log finde ich allerdings keine hilfreichen Informationen über den Adapter>log „silly“> 2023-02-02 01:54:34.845 - info: host.iobroker "system.adapter.smartmeter.0" disabled 2023-02-02 01:54:34.846 - info: host.iobroker stopInstance system.adapter.smartmeter.0 (force=false, process=true) 2023-02-02 01:54:34.894 - info: smartmeter.0 (40244) Got terminate signal TERMINATE_YOURSELF 2023-02-02 01:54:34.903 - info: smartmeter.0 (40244) terminating 2023-02-02 01:54:34.907 - info: smartmeter.0 (40244) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason 2023-02-02 01:54:34.955 - info: host.iobroker stopInstance system.adapter.smartmeter.0 send kill signal 2023-02-02 01:54:35.477 - info: host.iobroker instance system.adapter.smartmeter.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION) 2023-02-02 01:54:36.630 - info: host.iobroker "system.adapter.smartmeter.0" enabled 2023-02-02 01:54:36.693 - info: host.iobroker instance system.adapter.smartmeter.0 started with pid 40284 2023-02-02 01:54:39.493 - info: smartmeter.0 (40284) starting. Version 3.3.4 in /opt/iobroker/node_modules/iobroker.smartmeter, node: v16.19.0, js-controller: 4.0.24 2023-02-02 01:55:00.068 - info: host.iobroker instance system.adapter.dwd.0 started with pid 40299 2023-02-02 01:55:02.367 - info: dwd.0 (40299) starting. Version 2.8.3 in /opt/iobroker/node_modules/iobroker.dwd, node: v16.19.0, js-controller: 4.0.24 2023-02-02 01:55:10.763 - info: dwd.0 (40299) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason 2023-02-02 01:55:11.302 - info: host.iobroker instance system.adapter.dwd.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION) 2023-02-02 01:56:39.848 - info: smartmeter.0 (40284) Error: No or too long answer from Serial Device after last request. 2023-02-02 01:56:39.851 - warn: smartmeter.0 (40284) No or too long answer from Serial Device after last request. 2023-02-02 01:58:50.131 - info: smartmeter.0 (40284) Error: No or too long answer from Serial Device after last request. 2023-02-02 01:58:50.132 - warn: smartmeter.0 (40284) No or too long answer from Serial Device after last request. 2023-02-02 01:59:08.161 - info: admin.0 (38088) ==> Connected system.user.admin from ::ffff:192.168.2.135 2023-02-02 01:59:08.766 - info: smartmeter.0 (40284) List of port: [{"path":"/dev/ttyUSB1","manufacturer":"EnOcean GmbH","serialNumber":"FTWTI0SJ","pnpId":"usb-EnOcean_GmbH_EnOcean_USB_300_DA_FTWTI0SJ-if00-port0","vendorId":"0403","productId":"6001"},{"path":"/dev/ttyACM0","manufacturer":"Texas Instruments","serialNumber":"__0X00124B001CDCB99E","pnpId":"usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B001CDCB99E-if00","vendorId":"0451","productId":"16a8"},{"path":"/dev/ttyUSB0","manufacturer":"FTDI","serialNumber":"DN03UITZ","pnpId":"usb-FTDI_FT230X_Basic_UART_DN03UITZ-if00-port0","vendorId":"0403","productId":"6015"},{"path":"/dev/ttyAMA0"}] 2023-02-02 01:59:15.788 - info: host.iobroker stopInstance system.adapter.smartmeter.0 (force=false, process=true) 2023-02-02 01:59:15.798 - info: smartmeter.0 (40284) Got terminate signal TERMINATE_YOURSELF 2023-02-02 01:59:15.805 - info: smartmeter.0 (40284) terminating 2023-02-02 01:59:15.809 - info: smartmeter.0 (40284) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason >eof>>>
eingestellter Adapter: /dev/serial/by-id/usb-FTDI_FT230X_Basic_UART_DN03UITZ-if00-port0
D0 setup Werte aus der funktionierenden "vzlogger.conf">vzlogger.conf>>> "protocol": "d0", "device": "/dev/ttyUSB0", "dump_file": "/var/log/d0.txt", "parity": "7e1", "baudrate": 300, "pullseq": "2f3f210d0a", // SGM-DD = Send: /?!<CR><LF> "ackseq": "063035300d0a",// DGM-DD = Send: <ACK>050<CR><LF> kann entweder feste hex-Sequenz sein (z.B. 063035300d0a für mode C mit 9600bd oder 063030300d0a = 300bd) "baudrate_read": 9600, >eof
Im iobroker/SmartMeter Adapter habe ich die Werte auch so übernommen, allerdings funktioniert es nicht. (rotes X bei "Verbunden mit Gerät oder Dienst" Die USB/TTL-RS232 Schnittstelle funktioniert in der iobroker Installation was ich im CLI mit screen/minicom kontrolliert hatte. (weißes Blatt Papier mit 1cm Abstand liefert mir ein Echo zurück)
Die Fehlermeldung die im iobroker log zu sehen ist, deuten ja auf ein Problem mit der seriellen Kommunikation hin. habt Ihr noch eine Idee?Datenblatt zum Zähler (Auslesen der D0 Schnittstelle, alles Idiotensicher beschrieben...) efr SGM-DD-4A92T
Smartmeter setup![0_1675301793503_smartmeter-setup.jpg](Uploading 100%)
Danke Mathias
MOD EDIT: LOG IN CODE TAGS </> GESETZT
-
@dokorfish wichtig: es kann immer nur einer auf das serielle Device zugreifen. Also am besten alles stoppen und automatisches neu starten deaktivieren.
Dann im Smartmeter Adapter alles auf default und nur SML auswählen.
Dann im sicher zu gehen das der Port frei ist den Pi neu starten. Dann Smartmeter starten.
-
es ist ein D0 OBIS Zähler und er unterstütz kein SML Protokoll auf dem Kunden IR Port/Feld.
Das mit dem Serial Port ist mir allerdings nicht ganz klar, welchen Status der "port" annimmt, wenn der iobroker/Smartmeter Adaper darauf zugreifen will. Mir scheint, dass er den gar nicht findet/benutzt und iobroker sofort eine Fehlermeldung liefert.
Ich habe zumindest noch keine Möglichkeit gesehen, wenigstens die initiale "/?!" Nachicht zu sehen (IR-Detektor mit IR empfindlicher Kamera bzw. mit Oszi und FotoDiode) die der Smartmeter adapter anfanges einmal senden müsste. Wenn ich das auf der CLI via screen/minicom "von Hand" mache funktioniert das.... Grundsätzlich funktionieren aber die anderen USB/Serial devices am Raspi mit dem iobroker (ZigBee & EnOcean). Ist es ein Problem im Smartmeter Adapter in kombination mit dem ? Die Hardware und der Zähler als Fehlerursache kann aber defenitiv ausgeschlossen werden, mein vz image tut ja, wie es soll.Wie kann ich die serielle Verbindung aus iobroker heraus kontrolieren bzw. mehr debug Informationen ziehen was mit dem "interface" /dev/ttyUSB0 ggf. nicht stimmt.
-
Das deutete auf SML
@dokorfish sagte in Stromzähler SGM-DD-4A92T auslesen:
SML Adapter
Ich zitiere mal kurz den Entwickler des Adapters:
@apollon77 sagte in Adapter "smartmeter":
Bitte anfangen mit den Standardeinstellungen der Instanz!
Beim "D0 Protokoll" ist an sich im Protokoll jeglicher Baudrate Changeover und kram definiert und passiert ganz automatisch! Hier bei der Baudrate den Anfang einstellen. Der ist bei D0 üblicherwerise 300 baud. Und auch "/?" als Signon Nachricht ist standard, also wenn Ihr das anderen kram eingebt macht Ihr es halt einfach eher schlimmer als besser!Also, am besten Instanz löschen. Nur D0 auswählen und eventuell die Start Baudrate von 300. Loggen auf Debug stellen und das ergebnis hier zeigen.
-
@wendy2702
Hatte es zwar auch schon genau so ausprobiert, hatte aber "Scheinbar" nicht funktioniert, Scheinbar deshalb weil ich vermutlich nicht lange genug abgewartet hatte, in der Tat hat er nach circa einer Minute tatsächlich eine Verbindung aushandel können, ich war einfach nur zu ungeduldig. Ist gelöst! Danke! -
@dokorfish Kannst du dann bitte noch deinen ersten Beitrag editieren und ein [Gelöst] vor die Überschrift setzen
-
@wendy2702
so richtig ist es nun doch noch nicht gelöst, wie ich im iobroker Log und an der Daten Aktuallisierungsrate erkennen kann, besteht zwar nun eine Verbindung zwischen Zähler und dem Smartmeter Adapter, aber irgendwie kann er die OBIS Daten vom Zähler nicht immer richtig dekodieren. nur etwa aller 60-120 Minuten kann er mal einen Datensatz erfolgreich dekodieren...
Dabei ist es egal welchen "Datenabfrageintervall" ich einstelle, (leer = default = 300sec. oder 0 für immer/permanent oder 60 sec.) oder den "D0: Ersatz OBIS-Medium" von "0: Abstrakt" oder auf "1: Strom" einstelle.
Mir scheint etwas in der Baudratenanpassung scheint nicht synchron zu sein.Log der D0 Schnittstelle bei "Datenabfrageintervall" = 0
2023-02-05 03:08:29.636 - info: smartmeter.0 (5256) starting. Version 3.3.4 in /opt/iobroker/node_modules/iobroker.smartmeter, node: v16.19.0, js-controller: 4.0.24 2023-02-05 03:08:57.929 - info: smartmeter.0 (5256) Error: Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:F.F.0.255 2023-02-05 03:08:57.932 - warn: smartmeter.0 (5256) Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:F.F.0.255 2023-02-05 03:08:57.938 - info: smartmeter.0 (5256) Error: Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:F.F.2.255 2023-02-05 03:08:57.938 - warn: smartmeter.0 (5256) Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:F.F.2.255 2023-02-05 03:08:57.940 - info: smartmeter.0 (5256) Error: Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.0.0.255 2023-02-05 03:08:57.940 - warn: smartmeter.0 (5256) Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.0.0.255 2023-02-05 03:08:57.941 - info: smartmeter.0 (5256) Error: Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.0.2.255 2023-02-05 03:08:57.942 - warn: smartmeter.0 (5256) Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.0.2.255 2023-02-05 03:08:57.943 - info: smartmeter.0 (5256) Error: Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.0.3.255 2023-02-05 03:08:57.944 - warn: smartmeter.0 (5256) Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.0.3.255 2023-02-05 03:08:57.945 - info: smartmeter.0 (5256) Error: Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.9.1.255 2023-02-05 03:08:57.946 - warn: smartmeter.0 (5256) Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.9.1.255 2023-02-05 03:08:57.947 - info: smartmeter.0 (5256) Error: Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.9.2.255 2023-02-05 03:08:57.947 - warn: smartmeter.0 (5256) Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.9.2.255 2023-02-05 03:08:57.948 - info: smartmeter.0 (5256) Error: Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.2.0.255 2023-02-05 03:08:57.949 - warn: smartmeter.0 (5256) Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.2.0.255 2023-02-05 03:09:00.679 - info: smartmeter.0 (5256) Received 191 values, 191 updated 2023-02-05 03:09:26.269 - info: smartmeter.0 (5256) Error: Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:F.F.0.255 2023-02-05 03:09:26.269 - warn: smartmeter.0 (5256) Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:F.F.0.255 2023-02-05 03:09:26.271 - info: smartmeter.0 (5256) Error: Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:F.F.2.255 2023-02-05 03:09:26.272 - warn: smartmeter.0 (5256) Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:F.F.2.255 2023-02-05 03:09:26.272 - info: smartmeter.0 (5256) Error: Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.0.0.255 2023-02-05 03:09:26.273 - warn: smartmeter.0 (5256) Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.0.0.255 2023-02-05 03:09:26.273 - info: smartmeter.0 (5256) Error: Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.0.2.255 2023-02-05 03:09:26.273 - warn: smartmeter.0 (5256) Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.0.2.255
-
@dokorfish Stelle das Loggen mal auf Debug und zeige dann das Log nach start und wenn der Fehler auftritt
-
@wendy2702
hier mal das log nach dem "restart"...
Woran erkenne ich den, welche 2 Werte sich geändert haben und "updated" sind?2023-02-05 14:08:42.054 - info: smartmeter.0 (3371) List of port: [{"path":"/dev/ttyUSB0","manufacturer":"EnOcean GmbH","serialNumber":"FTWTI0SJ","pnpId":"usb-EnOcean_GmbH_EnOcean_USB_300_DA_FTWTI0SJ-if00-port0","vendorId":"0403","productId":"6001"},{"path":"/dev/ttyACM0","manufacturer":"Texas Instruments","serialNumber":"__0X00124B001CDCB99E","pnpId":"usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B001CDCB99E-if00","vendorId":"0451","productId":"16a8"},{"path":"/dev/ttyUSB1","manufacturer":"FTDI","serialNumber":"DN03UITZ","pnpId":"usb-FTDI_FT230X_Basic_UART_DN03UITZ-if00-port0","vendorId":"0403","productId":"6015"},{"path":"/dev/ttyAMA0"}] 2023-02-05 14:08:44.587 - info: smartmeter.0 (3371) Received 191 values, 191 updated 2023-02-05 14:08:49.038 - info: admin.0 (2056) <== Disconnect system.user.admin from ::ffff:192.168.2.135 2023-02-05 14:09:09.801 - info: smartmeter.0 (3371) Error: Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:F.F.0.255 2023-02-05 14:09:09.801 - warn: smartmeter.0 (3371) Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:F.F.0.255 2023-02-05 14:09:09.803 - info: smartmeter.0 (3371) Error: Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:F.F.2.255 2023-02-05 14:09:09.803 - warn: smartmeter.0 (3371) Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:F.F.2.255 2023-02-05 14:09:09.804 - info: smartmeter.0 (3371) Error: Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.0.0.255 2023-02-05 14:09:09.804 - warn: smartmeter.0 (3371) Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.0.0.255 2023-02-05 14:09:09.804 - info: smartmeter.0 (3371) Error: Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.0.2.255 2023-02-05 14:09:09.805 - warn: smartmeter.0 (3371) Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.0.2.255 2023-02-05 14:09:09.805 - info: smartmeter.0 (3371) Error: Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.0.3.255 2023-02-05 14:09:09.806 - warn: smartmeter.0 (3371) Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.0.3.255 2023-02-05 14:09:09.806 - info: smartmeter.0 (3371) Error: Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.9.1.255 2023-02-05 14:09:09.807 - warn: smartmeter.0 (3371) Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.9.1.255 2023-02-05 14:09:09.807 - info: smartmeter.0 (3371) Error: Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.9.2.255 2023-02-05 14:09:09.807 - warn: smartmeter.0 (3371) Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.9.2.255 2023-02-05 14:09:09.808 - info: smartmeter.0 (3371) Error: Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.2.0.255 2023-02-05 14:09:09.808 - warn: smartmeter.0 (3371) Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:0.2.0.255 2023-02-05 14:09:09.929 - info: smartmeter.0 (3371) Received 191 values, 2 updated 2023-02-05 14:09:38.056 - info: smartmeter.0 (3371) Error: Error while parsing D0 content: ignore complete part Error: Invalid Obis String 1-0:F.F.0.255
-
@dokorfish Leider hast du das loggen noch nicht auf Debug gestellt. Das geht in der Instanz.