SML Reader - how to integrate

I have now tested it with an other Zwave Controller “Aeotec Aeon Labs USB Stick” and got the same error.

After adding MeterReader thing, it changed the “Port Configuration” for “Z-Wave Serial Controller” and no Z-Wave device is work anymore.

Also set dev-link “/dev/lesekopf0” was no option, same error.

Any idea?

I had some success. I setup a Meter device (in paperUI) on the port that i am using for my other binding. I used the baud rate settings that it requires. Now it started working.
Looked good for a couple of minutes. But since booth bindings are using the same port now they sometimes conflict. Thats now good for my heating unit since it randomly shuts down because of this.

I installed the MeterReader binding. But how can I change the configuration? On paper ui there is just an info field. In the inbox there are no new things.
With other solutions I can read the values from the IR on COM4. There are also no errors in the log file.

@mic.jaeger, @Marcello87: I think the problem is because of the system property “gnu.io.rxtx.SerialPorts”. The meterreader binding sets this property, but your bindings does not. If it is set, nrjavaserial will only evaluate ports that are set here but will not search for others.
I’ve created a new version which does not set this property. Can you please try it?

@msteigenberger: Thanks for your fix. I’ve try it today and it works from the beginning without problems.

Also after an restart of openhab, zwave and meter binding are still working perfect.

Now i can fix my power consumption :wink: thanks a lot

Marcello

Hello. Thats great news. Many Thanks to msteigenberger.
However I found another way for my setup that works great for me.

I did uninstal the meterreader binding. I am using libsml now:

Its not as user Friendly as the PaperUI binding setup. But gets the job done.

Thanks for testing!
@Payback: discovery is not supported, therefore you can’t see anything in Inbox. In the Things tab you can add a new thing and select the meter reader binding. Then you can configure it.

@msteigenberger: It took three restarts until OH offered me the menu to add manually a meter thing. But now it works fine! Thank you for your effort, the addon is great!

Question to all users: My meter doesn’t provide all values (actual, last 24h, last week, etc) at the same time, so I decided to go for the actual consumption. I store the value with the overall consumption in a roundrobin persitence. How can I extract the values to calculate my own 24h consumption?

@msteigenberger I have 3 EHZ with SML mode. One is working the other two didn’t connect.
I use them over network with ser2net (on raspberry pi) and socat.
The version is 2.3.0.201802060729

If I cat /dev/ttyS* the buffers of the two not working EHZ is full.
It looks like the initialization won’t work and closes the serial device:

2018-03-05 15:47:28.737 [WARN ] [erreader.internal.MeterReaderHandler] - OBIS null is not available in EHZ_MAIN!
2018-03-05 15:59:31.714 [ERROR] [ader.internal.sml.SmlSerialConnector] - Failed to close serial output stream

With vzlogger on raspberry they are working.

I tried 8n1 and 8e1, with same result.

Where is the source code of this binding?

meterreader:meter:EHZ_PV   "EHZ_PV"   [ port="/dev/ttyS11", refresh=1, mode="SML" ] {
    Channels:
        Type NumberChannel : 1-0#2-8-0 [
            conversionRatio=1000
        ]
}

meterreader:meter:EHZ_MAIN "EHZ_MAIN" [ port="/dev/ttyS12", refresh=1, mode="SML" ] {
    Channels:
        Type NumberChannel : 1-0#1-8-0 [
            conversionRatio=1000
        ]
        Type NumberChannel : 1-0#2-8-0 [
            conversionRatio=1000
        ]
}

meterreader:meter:EHZ_WP   "EHZ_WP"   [ port="/dev/ttyS13", refresh=1, mode="SML" ] {
    Channels:
        Type NumberChannel : 1-0#1-8-0 [
            conversionRatio=1000
        ]
        Type NumberChannel : 1-0#16-7-0 [
        ]
}

Part of vzlogger.conf

    {
      "enabled": true,
      "allowskip": false,
      "interval": -1,
      "aggtime": -1,
      "aggfixedinterval": false,
      "channels": [
        {
          "api": "influxdb",
          "uuid": "b0176b0b-ae91-4c63-acb5-4d3b4f4f62a0",
          "identifier": "1-0:2.8.0",
          "host": "http://openhab2.myhome.private:8086",
          "database": "vzlogger",
          "measurement_name": "EHZ1_2.8.0",
          "username": "vzlogger",
          "password": "vzlogger",
          "max_batch_inserts": 4500,
          "max_buffer_size": 450000,
          "timeout": 30,
          "aggmode": "none"
        },
        {
          "api": "influxdb",
          "uuid": "b0176b0b-ae91-4c63-acb5-4d3b4f4f62a3",
          "identifier": "1-0:15.7.0",
          "host": "http://openhab2.myhome.private:8086",
          "database": "vzlogger",
          "measurement_name": "EHZ1_15.7.0",
          "username": "vzlogger",
          "password": "vzlogger",
          "max_batch_inserts": 4500,
          "max_buffer_size": 450000,
          "timeout": 30,
          "aggmode": "none"
        }
      ],
      "protocol": "sml",
      "device": "/dev/ehz/ehz1",
      "pullseq": "",
      "baudrate": 9600,
      "parity": "8n1",
      "use_local_time": true
    },
    {
      "enabled": true,
      "allowskip": false,
      "interval": -1,
      "aggtime": -1,
      "aggfixedinterval": false,
      "channels": [
        {
          "api": "influxdb",
          "uuid": "a4f13855-0575-4e42-9ada-a6f3158f9720",
          "identifier": "1-0:1.8.0",
          "host": "http://openhab2.myhome.private:8086",
          "database": "vzlogger",
          "measurement_name": "EHZ2_1.8.0",
          "username": "vzlogger",
          "password": "vzlogger",
          "max_batch_inserts": 4500,
          "max_buffer_size": 450000,
          "timeout": 30,
          "aggmode": "none"
        },
        {
          "api": "influxdb",
          "uuid": "a4f13855-0575-4e42-9ada-a6f3158f9721",
          "identifier": "1-0:2.8.0",
          "host": "http://openhab2.myhome.private:8086",
          "database": "vzlogger",
          "measurement_name": "EHZ2_2.8.0",
          "username": "vzlogger",
          "password": "vzlogger",
          "max_batch_inserts": 4500,
          "max_buffer_size": 450000,
          "timeout": 30,
          "aggmode": "none"
        },
        {
          "api": "influxdb",
          "uuid": "a4f13855-0575-4e42-9ada-a6f3158f9726",
          "identifier": "1-0:15.7.0",
          "host": "http://openhab2.myhome.private:8086",
          "database": "vzlogger",
          "measurement_name": "EHZ2_15.7.0",
          "username": "vzlogger",
          "password": "vzlogger",
          "max_batch_inserts": 4500,
          "max_buffer_size": 450000,
          "timeout": 30,
          "aggmode": "none"
        }
      ],
      "protocol": "sml",
      "device": "/dev/ehz/ehz2",
      "pullseq": "",
      "baudrate": 9600,
      "parity": "8n1",
      "use_local_time": true
    },
    {
      "enabled": true,
      "allowskip": false,
      "interval": -1,
      "aggtime": -1,
      "aggfixedinterval": false,
      "channels": [
        {
          "api": "influxdb",
          "uuid": "bf200325-1d6d-427f-9f59-521238997b90",
          "identifier": "1-0:1.8.0",
          "host": "http://openhab2.myhome.private:8086",
          "database": "vzlogger",
          "measurement_name": "EHZ3_1.8.0",
          "username": "vzlogger",
          "password": "vzlogger",
          "max_batch_inserts": 4500,
          "max_buffer_size": 450000,
          "timeout": 30,
          "aggmode": "none"
        },
        {
          "api": "influxdb",
          "uuid": "bf200325-1d6d-427f-9f59-521238997b93",
          "identifier": "1-0:16.7.0",
          "host": "http://openhab2.myhome.private:8086",
          "database": "vzlogger",
          "measurement_name": "EHZ3_16.7.0",
          "username": "vzlogger",
          "password": "vzlogger",
          "max_batch_inserts": 4500,
          "max_buffer_size": 450000,
          "timeout": 30,
          "aggmode": "none"
        }
      ],
      "protocol": "sml",
      "device": "/dev/ehz/ehz3",
      "pullseq": "",
      "baudrate": 9600,
      "parity": "8n1",
      "use_local_time": true
    },
raspi# cat ser2net.conf
3003:raw:60:/dev/ehz/ehz1:9600 8DATABITS NONE 1STOPBIT
3002:raw:60:/dev/ehz/ehz2:9600 8DATABITS NONE 1STOPBIT
3001:raw:60:/dev/ehz/ehz3:9600 8DATABITS NONE 1STOPBIT
openhab#cat /etc/systemd/system/tty2tcp@.service
[Unit]
Description=socat tty to tcp bridge on %I
After=network.target

[Service]
EnvironmentFile=/etc/tty2tcp/%i
ExecStart=/usr/bin/socat  pty,link=/dev/%i,raw,mode=660,user=openhab,group=openhab  tcp:${TTYHOST},forever

Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target
openhab# cat /etc/tty2tcp/ttyS11 
TTYHOST=192.168.180.131:3001
openhab# cat /etc/tty2tcp/ttyS12
TTYHOST=192.168.180.131:3002
openhab# cat /etc/tty2tcp/ttyS13
TTYHOST=192.168.180.131:3003

After restart of openhab

2018-03-05 15:47:28.712 [WARN ] [.core.thing.binding.BaseThingHandler] - BaseThingHandler.initialize() will be removed soon, ThingStatus can be set manually via updateStatus(ThingStatus.ONLINE)
2018-03-05 15:47:28.733 [WARN ] [.core.thing.binding.BaseThingHandler] - BaseThingHandler.initialize() will be removed soon, ThingStatus can be set manually via updateStatus(ThingStatus.ONLINE)
2018-03-05 15:47:28.737 [WARN ] [erreader.internal.MeterReaderHandler] - OBIS null is not available in EHZ_MAIN!
2018-03-05 15:47:28.737 [WARN ] [erreader.internal.MeterReaderHandler] - OBIS null is not available in EHZ_MAIN!
2018-03-05 15:47:28.768 [WARN ] [.core.thing.binding.BaseThingHandler] - BaseThingHandler.initialize() will be removed soon, ThingStatus can be set manually via updateStatus(ThingStatus.ONLINE)
2018-03-05 15:47:28.770 [WARN ] [erreader.internal.MeterReaderHandler] - OBIS null is not available in EHZ_WP!
2018-03-05 15:47:28.770 [WARN ] [erreader.internal.MeterReaderHandler] - OBIS null is not available in EHZ_WP!
2018-03-05 15:47:28.774 [INFO ] [ing.meterreader.internal.MeterDevice] - Read out following values: Device: meterreader:meter:EHZ_PV
Obis: 1-0:1.8.1 MeterValue [obis=1-0:1.8.1, value=4.25386007E7, unit=WATT_HOUR]
Obis: 1-0:16.7.0 MeterValue [obis=1-0:16.7.0, value=1202.0, unit=WATT]
Obis: 1-0:1.8.2 MeterValue [obis=1-0:1.8.2, value=1000.0, unit=WATT_HOUR]
Obis: 129-129:199.130.5 MeterValue [obis=129-129:199.130.5, value=&����k_^X��m�?��&]kZA�t�q^G
�       ��r�vu�T^_3��^A��0, unit=EMPTY]
Obis: 129-129:199.130.3 MeterValue [obis=129-129:199.130.3, value=HAG, unit=EMPTY]
Obis: 1-0:0.0.9 MeterValue [obis=1-0:0.0.9, value=^FHAG^A^GT��y, unit=EMPTY]
Obis: 1-0:1.8.0 MeterValue [obis=1-0:1.8.0, value=4.25396007E7, unit=WATT_HOUR]

After saving of file

2018-03-05 15:59:31.674 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'meterreader.things'
2018-03-05 15:59:31.691 [ERROR] [ader.internal.sml.SmlSerialConnector] - Failed to close serial output stream
java.io.IOException: null
	at gnu.io.RXTXPort$SerialOutputStream.flush(RXTXPort.java:1225) [25:com.neuronrobotics.nrjavaserial:3.12.0.OH]
	at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:141) [?:?]
	at java.io.DataOutputStream.flush(DataOutputStream.java:123) [?:?]
	at java.io.FilterOutputStream.close(FilterOutputStream.java:158) [?:?]
	at org.openhab.binding.meterreader.internal.sml.SmlSerialConnector.closeConnection(SmlSerialConnector.java:143) [282:org.openhab.binding.meterreader:2.3.0.201802060729]
	at org.openhab.binding.meterreader.internal.MeterDevice$1.cancel(MeterDevice.java:149) [282:org.openhab.binding.meterreader:2.3.0.201802060729]
	at org.openhab.binding.meterreader.internal.MeterReaderHandler.cancelRead(MeterReaderHandler.java:102) [282:org.openhab.binding.meterreader:2.3.0.201802060729]
	at org.openhab.binding.meterreader.internal.MeterReaderHandler.dispose(MeterReaderHandler.java:97) [282:org.openhab.binding.meterreader:2.3.0.201802060729]
	at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.thingUpdated(BaseThingHandler.java:226) [116:org.eclipse.smarthome.core.thing:0.10.0.b1]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
	at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [109:org.eclipse.smarthome.core:0.10.0.b1]
	at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:53) [109:org.eclipse.smarthome.core:0.10.0.b1]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
	at java.lang.Thread.run(Thread.java:748) [?:?]
	Suppressed: java.io.IOException
		at gnu.io.RXTXPort$SerialOutputStream.flush(RXTXPort.java:1225) [25:com.neuronrobotics.nrjavaserial:3.12.0.OH]
		at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:141) [?:?]
		at java.io.FilterOutputStream.close(FilterOutputStream.java:158) [?:?]
		at java.io.FilterOutputStream.close(FilterOutputStream.java:159) [?:?]
		at org.openhab.binding.meterreader.internal.sml.SmlSerialConnector.closeConnection(SmlSerialConnector.java:143) [282:org.openhab.binding.meterreader:2.3.0.201802060729]
		at org.openhab.binding.meterreader.internal.MeterDevice$1.cancel(MeterDevice.java:149) [282:org.openhab.binding.meterreader:2.3.0.201802060729]
		at org.openhab.binding.meterreader.internal.MeterReaderHandler.cancelRead(MeterReaderHandler.java:102) [282:org.openhab.binding.meterreader:2.3.0.201802060729]
		at org.openhab.binding.meterreader.internal.MeterReaderHandler.dispose(MeterReaderHandler.java:97) [282:org.openhab.binding.meterreader:2.3.0.201802060729]
		at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.thingUpdated(BaseThingHandler.java:226) [116:org.eclipse.smarthome.core.thing:0.10.0.b1]
		at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
		at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
		at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
		at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
		at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [109:org.eclipse.smarthome.core:0.10.0.b1]
		at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:53) [109:org.eclipse.smarthome.core:0.10.0.b1]
		at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
		at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
		at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
		at java.lang.Thread.run(Thread.java:748) [?:?]
2018-03-05 15:59:31.697 [WARN ] [.core.thing.binding.BaseThingHandler] - BaseThingHandler.initialize() will be removed soon, ThingStatus can be set manually via updateStatus(ThingStatus.ONLINE)
2018-03-05 15:59:31.697 [ERROR] [ader.internal.sml.SmlSerialConnector] - Failed to close serial output stream
java.io.IOException: null

<snip>

2018-03-05 15:59:31.702 [ERROR] [ader.internal.sml.SmlSerialConnector] - Failed to close serial output stream
java.io.IOException: null

<snip>

2018-03-05 15:59:31.703 [WARN ] [.core.thing.binding.BaseThingHandler] - BaseThingHandler.initialize() will be removed soon, ThingStatus can be set manually via updateStatus(ThingStatus.ONLINE)
2018-03-05 15:59:31.703 [ERROR] [ader.internal.sml.SmlSerialConnector] - Failed to close serial output stream
java.io.IOException: null

<snip>

2018-03-05 15:59:31.713 [ERROR] [ader.internal.sml.SmlSerialConnector] - Failed to close serial output stream
java.io.IOException: null

<snip>

2018-03-05 15:59:31.714 [WARN ] [.core.thing.binding.BaseThingHandler] - BaseThingHandler.initialize() will be removed soon, ThingStatus can be set manually via updateStatus(ThingStatus.ONLINE)
2018-03-05 15:59:31.714 [ERROR] [ader.internal.sml.SmlSerialConnector] - Failed to close serial output stream
java.io.IOException: null

<snip>

2018-03-05 15:59:33.564 [INFO ] [ing.meterreader.internal.MeterDevice] - Read out following values: Device: meterreader:meter:EHZ_PV
Obis: 1-0:1.8.1 MeterValue [obis=1-0:1.8.1, value=4.25388465E7, unit=WATT_HOUR]
Obis: 1-0:16.7.0 MeterValue [obis=1-0:16.7.0, value=1204.0, unit=WATT]
Obis: 1-0:1.8.2 MeterValue [obis=1-0:1.8.2, value=1000.0, unit=WATT_HOUR]
Obis: 129-129:199.130.5 MeterValue [obis=129-129:199.130.5, value=&����k_��m�?��&]kZA�t�q
�	��r�vu�T3����0, unit=EMPTY]
Obis: 129-129:199.130.3 MeterValue [obis=129-129:199.130.3, value=HAG, unit=EMPTY]
Obis: 1-0:0.0.9 MeterValue [obis=1-0:0.0.9, value=HAGT��y, unit=EMPTY]
Obis: 1-0:1.8.0 MeterValue [obis=1-0:1.8.0, value=4.25398465E7, unit=WATT_HOUR]

@msteigenberger I have a dump of these two EHZ:

root@lxpi-meter:~# cat /dev/ehz/ehz1 | xxd
00000000: 1b1b 1b1b 0101 0101 7607 0025 046d b242  ........v..%.m.B
00000010: 6200 6200 7263 0101 7601 0107 0025 0ab0  b.b.rc..v....%..
00000020: 160b 0645 4d48 0104 c56a dccb 0101 631d  ...EMH...j....c.
00000030: 0700 2504 6db2 4362 0062 0072 6307 0177  ..%.m.Cb.b.rc..w
00000040: 0b06 454d 4801 04c5 6adc cb07 0100 620a  ..EMH...j.....b.
00000050: ffff 6201 650a b075 3d77 7707 8181 c782  ..b.e..u=ww.....
00000060: ff01 0101 0104 454d 4801 7707 0100 0000  ......EMH.w.....
00000070: 09ff 0101 0101 0b06 454d 4801 04c5 6adc  ........EMH...j.
00000080: cb01 7707 0100 0208 00ff 6401 00a2 0162  ..w.......d....b
00000090: 52ff 5600 1639 6e36 0177 0701 0002 0801  R.V..9n6.w......
000000a0: ff01 0162 1e52 ff56 0016 396e 3601 7707  ...b.R.V..9n6.w.
000000b0: 0002 0802 ff01 0162 1e52 ff56 0000 0000  .......b.R.V....
000000c0: 7707 0100 0f07 00ff 0101 621b 52ff 6500  w.........b.R.e.
000000d0: 0561 0177 0781 81c7 8205 ff01 7262 0165  .a.w........rb.e
000000e0: 0ab0 753d 0101 8302 f4a3 d2d4 da53 4b18  ..u=.........SK.
000000f0: 3158 9dcb ed2f 60c9 3fdf 904b 3d34 dd32  1X.../`.?..K=4.2
00000100: a348 e3ae 7967 fd74 fc1d b5a7 a1a4 0ec0  .H..yg.t........
00000110: 131f c101 0101 6344 3200 7607 0025 046d  ......cD2.v..%.m
00000120: b262 0062 0072 6302 0171 0163 6482 0000  .b.b.rc..q.cd...
00000130: 001b 1b1b 1b1a 03cf 021b 1b1b 1b01 0101  ................
00000140: 0176 0700 2504 6db2 4862 0062 0072 6301  .v..%.m.Hb.b.rc.
00000150: 0176 0101 0700 250a b0e6 180b 0645 4d48  .v....%......EMH
00000160: 0104 c56a dccb 0101 63f4 cd00 7607 0025  ...j....c...v..%
00000170: 046d b249 6200 6200 7263 0701 7701 0b06  .m.Ib.b.rc..w...
00000180: 454d 4801 04c5 6adc cb07 0100 620a ffff  EMH...j.....b...
00000190: 7262 0165 0ab0 753f 7777 0781 81c7 8203  rb.e..u?ww......
000001a0: ff01 0101 0104 454d 4801 7707 0100 0000  ......EMH.w.....
000001b0: 09ff 0101 0101 0b06 454d 4801 04c5 6adc  ........EMH...j.
000001c0: cb01 7707 0100 0208 00ff 6401 00a2 0162  ..w.......d....b
000001d0: 1e52 ff56 0016 396e 3701 7707 0100 0208  .R.V..9n7.w.....
000001e0: ff01 0162 1e52 ff56 0016 396e 3701 7707  ...b.R.V..9n7.w.
000001f0: 0100 0208 02ff 0101 621e 52ff 5600 0000  ........b.R.V...
00000200: 0000 0177 0701 000f 0700 ff01 0162 1b52  ...w.........b.R
00000210: 0000 0557 0177 0781 81c7 8205 ff01 7262  ...W.w........rb
00000220: 0165 0ab0 753f 0101 8302 f4a3 d2d4 da53  .e..u?.........S
00000230: 4b18 1fbc a031 589d cbed 2f60 c93f df90  K....1X.../`.?..
00000240: 4b3d 34dd 3201 a348 e3ae 7967 fd74 fc1d  K=4.2..H..yg.t..
00000250: a7a1 a40e c095 131f c101 0101 6374 1f00  ............ct..
00000260: 7607 0025 046d b24c 6200 6200 7263 0201  v..%.m.Lb.b.rc..
00000270: 7101 63ec 9500 0000 001b 1b1b 1b1a 034a  q.c............J
^C

root@lxpi-meter:~# cat /dev/ehz/ehz2 | xxd
00000000: 1b1b 1b1b 0101 0101 7607 0040 03c7 8f00  ........v..@....
00000010: 6200 6200 7263 0101 7601 0107 0040 0ab0  b.b.rc..v....@..
00000020: 8500 0b06 454d 4801 04c5 68e3 8501 0163  ....EMH...h....c
00000030: 973f 0076 0700 4003 c78f 0162 0062 0072  .?.v..@....b.b.r
00000040: 6307 0177 010b 0645 4d48 0104 c568 e385  c..w...EMH...h..
00000050: 0701 0062 0aff ff72 6201 650a b091 c27a  ...b...rb.e....z
00000060: 7707 8181 c782 03ff 0101 0101 0445 4d48  w............EMH
00000070: 0177 0701 0000 0009 ff01 0101 010b 0645  .w.............E
00000080: 4d48 0104 c568 e385 0177 0701 0001 0800  MH...h...w......
00000090: ff64 0101 8201 621e 52ff 5600 0cca 8d91  .d....b.R.V.....
000000a0: 0177 0701 0002 0800 ff64 0101 8201 621e  .w.......d....b.
000000b0: 52ff 5600 1047 251a 0177 0701 0001 0801  R.V..G%..w......
000000c0: ff01 0162 1e52 ff56 000c ca7d dd01 7707  ...b.R.V...}..w.
000000d0: 0100 0208 01ff 0101 621e 52ff 5600 1047  ........b.R.V..G
000000e0: 251a 0177 0701 0001 0802 ff01 0162 1e52  %..w.........b.R
000000f0: ff56 0000 000f b401 7707 0100 0208 02ff  .V......w.......
00000100: 0101 621e 52ff 5600 0000 0000 0177 0701  ..b.R.V......w..
00000110: 000f 0700 ff01 0162 1b52 ff65 0000 1417  .......b.R.e....
00000120: 0177 0781 81c7 8205 ff01 7262 0165 0ab0  .w........rb.e..
00000130: 91c2 0101 8302 7348 99ad 78ea 4133 523c  ......sH..x.A3R<
00000140: 0a26 c6fb 2460 ec4d 9aaf 46a8 8985 9e51  .&..$`.M..F....Q
00000150: 6615 b0ec 2400 0519 f00c 271c cf4e dedd  f...$.....'..N..
00000160: 3db1 57d7 02fa 0101 0163 180e 0076 0700  =.W......c...v..
00000170: 4003 c78f 0462 0062 0072 6302 0171 0163  @....b.b.rc..q.c
00000180: abc3 0000 1b1b 1b1b 1a01 96cf 1b1b 1b1b  ................
00000190: 0101 0101 7607 0040 03c7 8f06 6200 6200  ....v..@....b.b.
000001a0: 7263 0101 7601 0107 0040 0ab0 8502 0b06  rc..v....@......
000001b0: 454d 4801 04c5 68e3 8501 0163 1ef9 0076  EMH...h....c...v
000001c0: 0700 4003 c78f 0762 0062 0072 6307 0177  ..@....b.b.rc..w
000001d0: 010b 0645 4d48 0104 c568 e385 0701 0062  ...EMH...h.....b
000001e0: 0aff ff72 6201 650a b091 c47a 7707 8181  ...rb.e....zw...
000001f0: c782 03ff 0101 0101 0445 4d48 0177 0701  .........EMH.w..
00000200: 0000 0009 ff01 0101 010b 0645 4d48 0104  ...........EMH..
00000210: c5e3 8501 7707 0100 0108 00ff 6401 0182  ....w.......d...
00000220: 0162 1e52 ff56 000c ca8d 9401 7707 0100  .b.R.V......w...
00000230: 0208 00ff 6401 0182 0162 1e52 ff56 0010  ....d....b.R.V..
00000240: 4725 1a01 7707 0100 0108 01ff 0101 621e  G%..w.........b.
00000250: 52ff 5600 0cca 7de0 0177 0701 0002 0801  R.V...}..w......
00000260: ff01 0162 1e52 ff56 0010 4725 1a01 7707  ...b.R.V..G%..w.
00000270: 0100 0108 02ff 0101 621e 52ff 5600 0000  ........b.R.V...
00000280: 0fb4 0177 0701 0002 0802 ff01 0162 1e52  ...w.........b.R
00000290: ff56 0000 0000 0001 7707 0100 0f07 00ff  .V......w.......
000002a0: 0101 621b 52ff 6500 0014 0401 7707 8181  ..b.R.e.....w...
000002b0: c782 05ff 0172 6201 650a b091 c401 0183  .....rb.e.......
000002c0: 0273 4899 ad78 ea41 3352 3c0a 26c6 fb24  .sH..x.A3R<.&..$
000002d0: 60ec 4d9a af46 a889 859e 5166 15b0 ec24  `.M..F....Qf...$
000002e0: 0005 19f0 0c27 1ccf 4ede dd3d b157 d702  .....'..N..=.W..
000002f0: fa01 0101 63f3 3d00 7607 0040 03c7 8f0a  ....c.=.v..@....
00000300: 6200 6200 7263 0201 7101 6376 8a00 001b  b.b.rc..q.cv....

Currently i have usb ir readers from udo (volkszaehler) directly connected to my esxi host, where openhab is running on a virtual machine.

Now i want to move my server to another room. So i need a small controller, which can send the sml-data to my server.

Can i do this with an esp8266 or something similar? Raspberry pi would be oversized for just this one case.

Can i use my usb ir readers with an usb-to-serial rs232 connector and use the usb ir readers with a esp8266 or do i have to cut the usb plugs and use the wires directly? It would be better for future use, if i can use the usb-plugs and don´t have to cut them off.

@ggzengel: Can you please restart with TRACE logging enabled? The SML file should then be printed.
Are all 3 meters exactly the same model?

BTW: You don’t need socat. You can directly connect via RFC2217 protocol from this binding to your ser2net. Simply use a URL in following form in your port configuration: rfc2217://ip:port (e.g. rfc2217://192.168.178.22:3003)

@halloween: Anything that can run ser2net would be sufficient for your usecase. The esp8266 can not run a USB stack I think (but I don’t know that hardware). This would be exactly build for your usecase:
https://wiki.volkszaehler.org/hardware/controllers/yport

@msteigenberger Thanks for your response and the very good suggest about rfc2217. Perhaps somebody can put rfc2217 into the modbus binding, too.
Where have you put the source code of meterreader?

I got 3 different EHZ. 2x EMH and 1x Hager.
The EMH won’t work.

I can’t set log to TRACE:

openhab> list | grep Meter                                                                                                                                                                              
282 │ Active   │  80 │ 2.3.0.201802060729     │ MeterReader Binding
openhab> log:set TRACE 282
openhab> log:get 282
WARN

That’s all I can see If I configure one EMH:

13:00:47.815 [INFO ] [del.core.internal.ModelRepositoryImpl] - Loading model 'meterreader.things'
13:00:47.821 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'meterreader:meter:EHZ_WP' changed from UNINITIALIZED to INITIALIZING
13:00:47.821 [WARN ] [e.core.thing.binding.BaseThingHandler] - BaseThingHandler.initialize() will be removed soon, ThingStatus can be set manually via updateStatus(ThingStatus.ONLINE)
13:00:47.821 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'meterreader:meter:EHZ_WP' changed from INITIALIZING to ONLINE
13:00:47.823 [INFO ] [del.core.internal.ModelRepositoryImpl] - Refreshing model 'meterreader.things'
13:00:47.827 [WARN ] [e.core.thing.binding.BaseThingHandler] - BaseThingHandler.initialize() will be removed soon, ThingStatus can be set manually via updateStatus(ThingStatus.ONLINE)
13:00:47.827 [ERROR] [eader.internal.sml.SmlSerialConnector] - Error at SerialConnector.getMeterValuesInternal: Stream closed
13:00:47.828 [ERROR] [eader.internal.sml.SmlSerialConnector] - Failed to close serial output stream
java.lang.IllegalArgumentException: Self-suppression not permitted
	at java.lang.Throwable.addSuppressed(Throwable.java:1043) [?:?]
	at java.io.FilterOutputStream.close(FilterOutputStream.java:159) [?:?]
	at org.openhab.binding.meterreader.internal.sml.SmlSerialConnector.closeConnection(SmlSerialConnector.java:143) [282:org.openhab.binding.meterreader:2.3.0.201802060729]
	at org.openhab.binding.meterreader.internal.MeterDevice$1.cancel(MeterDevice.java:149) [282:org.openhab.binding.meterreader:2.3.0.201802060729]
	at org.openhab.binding.meterreader.internal.MeterReaderHandler.cancelRead(MeterReaderHandler.java:102) [282:org.openhab.binding.meterreader:2.3.0.201802060729]
	at org.openhab.binding.meterreader.internal.MeterReaderHandler.updateOBISValue(MeterReaderHandler.java:121) [282:org.openhab.binding.meterreader:2.3.0.201802060729]
	at org.openhab.binding.meterreader.internal.MeterReaderHandler.initialize(MeterReaderHandler.java:88) [282:org.openhab.binding.meterreader:2.3.0.201802060729]
	at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.thingUpdated(BaseThingHandler.java:228) [116:org.eclipse.smarthome.core.thing:0.10.0.b1]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
	at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [109:org.eclipse.smarthome.core:0.10.0.b1]
	at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:53) [109:org.eclipse.smarthome.core:0.10.0.b1]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
	at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: java.lang.NullPointerException
13:00:47.828 [ERROR] [eader.internal.sml.SmlSerialConnector] - Failed to close serial output stream
java.lang.IllegalArgumentException: Self-suppression not permitted
	at java.lang.Throwable.addSuppressed(Throwable.java:1043) ~[?:?]
	at java.io.FilterOutputStream.close(FilterOutputStream.java:159) ~[?:?]
	at org.openhab.binding.meterreader.internal.sml.SmlSerialConnector.closeConnection(SmlSerialConnector.java:143) ~[?:?]
	at org.openhab.binding.meterreader.connectors.ConnectorBase.getMeterValues(ConnectorBase.java:60) ~[?:?]
	at org.openhab.binding.meterreader.internal.MeterDevice.lambda$1(MeterDevice.java:137) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
	at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: java.lang.NullPointerException
13:00:47.832 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'meterreader:meter:EHZ_WP' has been updated.
13:00:47.836 [ERROR] [terreader.internal.MeterValueListener] - 
java.io.IOException: Stream closed
	at java.io.BufferedInputStream.getInIfOpen(BufferedInputStream.java:159) ~[?:?]
	at java.io.BufferedInputStream.available(BufferedInputStream.java:410) ~[?:?]
	at java.io.FilterInputStream.available(FilterInputStream.java:168) ~[?:?]
	at org.openmuc.jsml.transport.MessageExtractor.fillBufferWithTimeout(MessageExtractor.java:161) ~[?:?]
	at org.openmuc.jsml.transport.MessageExtractor.waitForStartSequence(MessageExtractor.java:49) ~[?:?]
	at org.openmuc.jsml.transport.MessageExtractor.getSmlMessage(MessageExtractor.java:41) ~[?:?]
	at org.openmuc.jsml.transport.Transport.getSMLFile(Transport.java:101) ~[?:?]
	at org.openhab.binding.meterreader.internal.sml.SmlSerialConnector.getMeterValuesInternal(SmlSerialConnector.java:86) ~[?:?]
	at org.openhab.binding.meterreader.internal.sml.SmlSerialConnector.getMeterValuesInternal(SmlSerialConnector.java:1) ~[?:?]
	at org.openhab.binding.meterreader.connectors.ConnectorBase.getMeterValues(ConnectorBase.java:55) ~[?:?]
	at org.openhab.binding.meterreader.internal.MeterDevice.lambda$1(MeterDevice.java:137) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
	at java.lang.Thread.run(Thread.java:748) [?:?]
13:00:47.845 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'meterreader:meter:EHZ_WP' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Stream closed
13:00:49.338 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'meterreader:meter:EHZ_WP' has been updated.
13:00:49.339 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'meterreader:meter:EHZ_WP' changed from OFFLINE (COMMUNICATION_ERROR): Stream closed to ONLINE
13:00:49.339 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'meterreader:meter:EHZ_WP' has been updated.
13:00:49.340 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'meterreader:meter:EHZ_WP' has been updated.
13:00:49.340 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'meterreader:meter:EHZ_WP' has been updated.
13:00:49.341 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'meterreader:meter:EHZ_WP' has been updated.

If I change from EMH to Hager I got this:

13:20:52.579 [ERROR] [eader.internal.sml.SmlSerialConnector] - Failed to close serial output stream
java.lang.IllegalArgumentException: Self-suppression not permitted
	at java.lang.Throwable.addSuppressed(Throwable.java:1043) [?:?]
	at java.io.FilterOutputStream.close(FilterOutputStream.java:159) [?:?]
	at org.openhab.binding.meterreader.internal.sml.SmlSerialConnector.closeConnection(SmlSerialConnector.java:143) [282:org.openhab.binding.meterreader:2.3.0.201802060729]
	at org.openhab.binding.meterreader.internal.MeterDevice$1.cancel(MeterDevice.java:149) [282:org.openhab.binding.meterreader:2.3.0.201802060729]
	at org.openhab.binding.meterreader.internal.MeterReaderHandler.cancelRead(MeterReaderHandler.java:102) [282:org.openhab.binding.meterreader:2.3.0.201802060729]
	at org.openhab.binding.meterreader.internal.MeterReaderHandler.dispose(MeterReaderHandler.java:97) [282:org.openhab.binding.meterreader:2.3.0.201802060729]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
	at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [109:org.eclipse.smarthome.core:0.10.0.b1]
	at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:53) [109:org.eclipse.smarthome.core:0.10.0.b1]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
	at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: java.lang.NullPointerException
13:20:52.579 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'meterreader:meter:EHZ_WP' changed from ONLINE to UNINITIALIZED
13:20:52.583 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'meterreader:meter:EHZ_WP' changed from ONLINE to UNINITIALIZED (HANDLER_MISSING_ERROR)
13:20:52.586 [INFO ] [del.core.internal.ModelRepositoryImpl] - Loading model 'meterreader.things'
13:20:52.592 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'meterreader:meter:EHZ_PV' changed from UNINITIALIZED to INITIALIZING
13:20:52.592 [WARN ] [e.core.thing.binding.BaseThingHandler] - BaseThingHandler.initialize() will be removed soon, ThingStatus can be set manually via updateStatus(ThingStatus.ONLINE)
13:20:52.592 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'meterreader:meter:EHZ_PV' changed from INITIALIZING to ONLINE
13:20:52.594 [INFO ] [del.core.internal.ModelRepositoryImpl] - Refreshing model 'meterreader.things'
13:20:52.597 [ERROR] [eader.internal.sml.SmlSerialConnector] - Error at SerialConnector.getMeterValuesInternal: Stream closed
13:20:52.598 [ERROR] [terreader.internal.MeterValueListener] - 
java.io.IOException: Stream closed
	at java.io.BufferedInputStream.getInIfOpen(BufferedInputStream.java:159) ~[?:?]
	at java.io.BufferedInputStream.available(BufferedInputStream.java:410) ~[?:?]
	at java.io.FilterInputStream.available(FilterInputStream.java:168) ~[?:?]
	at org.openmuc.jsml.transport.MessageExtractor.fillBufferWithTimeout(MessageExtractor.java:161) ~[?:?]
	at org.openmuc.jsml.transport.MessageExtractor.waitForStartSequence(MessageExtractor.java:49) ~[?:?]
	at org.openmuc.jsml.transport.MessageExtractor.getSmlMessage(MessageExtractor.java:41) ~[?:?]
	at org.openmuc.jsml.transport.Transport.getSMLFile(Transport.java:101) ~[?:?]
	at org.openhab.binding.meterreader.internal.sml.SmlSerialConnector.getMeterValuesInternal(SmlSerialConnector.java:86) ~[?:?]
	at org.openhab.binding.meterreader.internal.sml.SmlSerialConnector.getMeterValuesInternal(SmlSerialConnector.java:1) ~[?:?]
	at org.openhab.binding.meterreader.connectors.ConnectorBase.getMeterValues(ConnectorBase.java:55) ~[?:?]
	at org.openhab.binding.meterreader.internal.MeterDevice.lambda$1(MeterDevice.java:137) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
	at java.lang.Thread.run(Thread.java:748) [?:?]
13:20:52.601 [ERROR] [eader.internal.sml.SmlSerialConnector] - Failed to close serial output stream
java.lang.IllegalArgumentException: Self-suppression not permitted
	at java.lang.Throwable.addSuppressed(Throwable.java:1043) [?:?]
	at java.io.FilterOutputStream.close(FilterOutputStream.java:159) [?:?]
	at org.openhab.binding.meterreader.internal.sml.SmlSerialConnector.closeConnection(SmlSerialConnector.java:143) [282:org.openhab.binding.meterreader:2.3.0.201802060729]
	at org.openhab.binding.meterreader.internal.MeterDevice$1.cancel(MeterDevice.java:149) [282:org.openhab.binding.meterreader:2.3.0.201802060729]
	at org.openhab.binding.meterreader.internal.MeterReaderHandler.cancelRead(MeterReaderHandler.java:102) [282:org.openhab.binding.meterreader:2.3.0.201802060729]
	at org.openhab.binding.meterreader.internal.MeterReaderHandler.dispose(MeterReaderHandler.java:97) [282:org.openhab.binding.meterreader:2.3.0.201802060729]
	at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.thingUpdated(BaseThingHandler.java:226) [116:org.eclipse.smarthome.core.thing:0.10.0.b1]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
	at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [109:org.eclipse.smarthome.core:0.10.0.b1]
	at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:53) [109:org.eclipse.smarthome.core:0.10.0.b1]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
	at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: java.lang.NullPointerException
13:20:52.606 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'meterreader:meter:EHZ_PV' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Stream closed
13:20:52.609 [WARN ] [e.core.thing.binding.BaseThingHandler] - BaseThingHandler.initialize() will be removed soon, ThingStatus can be set manually via updateStatus(ThingStatus.ONLINE)
13:20:52.610 [ERROR] [eader.internal.sml.SmlSerialConnector] - Failed to close serial output stream
java.lang.IllegalArgumentException: Self-suppression not permitted
	at java.lang.Throwable.addSuppressed(Throwable.java:1043) [?:?]
	at java.io.FilterOutputStream.close(FilterOutputStream.java:159) [?:?]
	at org.openhab.binding.meterreader.internal.sml.SmlSerialConnector.closeConnection(SmlSerialConnector.java:143) [282:org.openhab.binding.meterreader:2.3.0.201802060729]
	at org.openhab.binding.meterreader.internal.MeterDevice$1.cancel(MeterDevice.java:149) [282:org.openhab.binding.meterreader:2.3.0.201802060729]
	at org.openhab.binding.meterreader.internal.MeterReaderHandler.cancelRead(MeterReaderHandler.java:102) [282:org.openhab.binding.meterreader:2.3.0.201802060729]
	at org.openhab.binding.meterreader.internal.MeterReaderHandler.updateOBISValue(MeterReaderHandler.java:121) [282:org.openhab.binding.meterreader:2.3.0.201802060729]
	at org.openhab.binding.meterreader.internal.MeterReaderHandler.initialize(MeterReaderHandler.java:88) [282:org.openhab.binding.meterreader:2.3.0.201802060729]
	at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.thingUpdated(BaseThingHandler.java:228) [116:org.eclipse.smarthome.core.thing:0.10.0.b1]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
	at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [109:org.eclipse.smarthome.core:0.10.0.b1]
	at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:53) [109:org.eclipse.smarthome.core:0.10.0.b1]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
	at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: java.lang.NullPointerException
13:20:52.614 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'meterreader:meter:EHZ_PV' has been updated.
13:20:53.492 [INFO ] [smarthome.event.ItemCommandEvent     ] - Item 'Move_EG_Buero' received command ON
13:20:53.819 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'meterreader:meter:EHZ_PV' has been updated.
13:20:53.819 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'meterreader:meter:EHZ_PV' has been updated.
13:20:53.820 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'meterreader:meter:EHZ_PV' has been updated.
13:20:53.820 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'meterreader:meter:EHZ_PV' has been updated.
13:20:53.821 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'meterreader:meter:EHZ_PV' has been updated.
13:20:53.822 [INFO ] [ding.meterreader.internal.MeterDevice] - Read out following values: Device: meterreader:meter:EHZ_PV
Obis: 1-0:1.8.1 MeterValue [obis=1-0:1.8.1, value=4.27781256E7, unit=WATT_HOUR]
Obis: 1-0:16.7.0 MeterValue [obis=1-0:16.7.0, value=1218.0, unit=WATT]
Obis: 1-0:1.8.2 MeterValue [obis=1-0:1.8.2, value=1000.0, unit=WATT_HOUR]
Obis: 129-129:199.130.5 MeterValue [obis=129-129:199.130.5, value=&����k_��m�?��&]kZA�t�q
�	��r�vu�T3����0, unit=EMPTY]
Obis: 129-129:199.130.3 MeterValue [obis=129-129:199.130.3, value=HAG, unit=EMPTY]
Obis: 1-0:0.0.9 MeterValue [obis=1-0:0.0.9, value=HAGT��y, unit=EMPTY]
Obis: 1-0:1.8.0 MeterValue [obis=1-0:1.8.0, value=4.27791256E7, unit=WATT_HOUR]

13:20:53.822 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'meterreader:meter:EHZ_PV' has been updated.
13:20:53.823 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'meterreader:meter:EHZ_PV' has been updated.

I think there some little issues:

2018-03-11 13:00:47.821 [WARN ] [.core.thing.binding.BaseThingHandler] - BaseThingHandler.initialize() will be removed soon, ThingStatus can be set manually via updateStatus(ThingStatus.ONLINE)

and on deleting the config:

2018-03-11 13:00:47.828 [ERROR] [ader.internal.sml.SmlSerialConnector] - Failed to close serial output stream

@msteigenberger Now I got it with TRACE. If have to use the name of the binding.

I’m mssing 1.8.0 and 16.7.0.

13:31:13.876 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'meterreader:meter:EHZ_WP' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Stream closed
13:31:13.876 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'meterreader:meter:EHZ_WP' has been updated.
13:31:15.581 [TRACE] [terreader.internal.sml.SmlMeterReader] - Read out following SML file: 

13:31:15.581 [TRACE] [terreader.internal.sml.SmlMeterReader] - Got OpenResponse
13:31:15.581 [TRACE] [terreader.internal.sml.SmlMeterReader] - SML_PublicOpenRes{
  codepage:   not set
  clientId:   not set
  reqFileId:  00 25 0A B8 2A D8
  serverId:   06 45 4D 48 01 04 C5 6A DC CB
  refTime:    Unknown tag: 0 value: unknown
  smlVersion: 0
}

13:31:15.581 [TRACE] [terreader.internal.sml.SmlMeterReader] - Got GetListResponse
13:31:15.582 [WARN ] [org.openmuc.jsml.EObis               ] - Unknown OBIS Code: 01 00 00 00 09 FF
13:31:15.582 [WARN ] [org.openmuc.jsml.EObis               ] - Unknown OBIS Code: 01 00 02 08 00 FF
13:31:15.582 [WARN ] [org.openmuc.jsml.EObis               ] - Unknown OBIS Code: 01 00 02 08 02 FF
13:31:15.582 [TRACE] [terreader.internal.sml.SmlMeterReader] - SML_GetListRes{
 serverId:        06 45 4D 48 01 04 C5 6A DC CB
 clientId:        not set
 listName:        01 00 62 0A FF FF
 actSensorTime:   SECINDEX value: 179844195
 valList:         SML_List{
     entry:           SML_ListEntry{
         objName:         DEVICE_INFO_MANUFACTOR    81 81 C7 82 03 FF
         status:          SML_Status{
             choice:          not set 
         }
         valTime:         Unknown tag: 0 value: unknown
         unit:            EMPTY
         scaler:          0
         value:           45 4D 48
         valueSignature:  not set
     }

     entry:           SML_ListEntry{
         objName:         UNKNOWN    01 00 00 00 09 FF
         status:          SML_Status{
             choice:          not set 
         }
         valTime:         Unknown tag: 0 value: unknown
         unit:            EMPTY
         scaler:          0
         value:           06 45 4D 48 01 04 C5 6A DC CB
         valueSignature:  not set
     }

     entry:           SML_ListEntry{
         objName:         UNKNOWN    01 00 02 08 00 FF
         status:          SML_Status{
             choice:          65698
         }
         valTime:         Unknown tag: 0 value: unknown
         unit:            WATT_HOUR
         scaler:          -1
         value:           373480631
         valueSignature:  not set
     }

     entry:           SML_ListEntry{
         objName:         LOADPROFILE_E_EXPORT_TARIFF_1    01 00 02 08 01 FF
         status:          SML_Status{
             choice:          not set 
         }
         valTime:         Unknown tag: 0 value: unknown
         unit:            WATT_HOUR
         scaler:          -1
         value:           373480631
         valueSignature:  not set
     }

     entry:           SML_ListEntry{
         objName:         UNKNOWN    01 00 02 08 02 FF
         status:          SML_Status{
             choice:          not set 
         }
         valTime:         Unknown tag: 0 value: unknown
         unit:            WATT_HOUR
         scaler:          -1
         value:           0
         valueSignature:  not set
     }

     entry:           SML_ListEntry{
         objName:         P    01 00 0F 07 00 FF
         status:          SML_Status{
             choice:          not set 
         }
         valTime:         Unknown tag: 0 value: unknown
         unit:            WATT
         scaler:          -1
         value:           14975
         valueSignature:  not set
     }

     entry:           SML_ListEntry{
         objName:         DEVICE_INFO_PUBLIC_KEY    81 81 C7 82 05 FF
         status:          SML_Status{
             choice:          not set 
         }
         valTime:         SECINDEX value: 179844195
         unit:            EMPTY
         scaler:          0
         value:           F4 A3 D2 D4 DA 53 4B 18 1F BC A0 31 58 9D CB ED 2F 60 C9 3F DF 90 4B 3D 34 DD 32 01 A3 48 E3 AE 79 67 FD 74 FC 1D B5 A7 A1 A4 0E C0 95 13 1F C1
         valueSignature:  not set
     }

 }

 listSignature:   not set
 actGatewayTime:  Unknown tag: 0 value: unknown
}

13:31:15.582 [TRACE] [terreader.internal.sml.SmlMeterReader] - Got CloseResponse
13:31:15.582 [TRACE] [terreader.internal.sml.SmlMeterReader] - SML_PublicCloseRes{
  globalSignature:   not set
}

13:31:15.583 [DEBUG] [terreader.internal.MeterValueListener] - Adding channel: 129-129#199-130-3 with item type: String
13:31:15.584 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'meterreader:meter:EHZ_WP' has been updated.
13:31:15.584 [DEBUG] [terreader.internal.MeterValueListener] - Adding channel: 1-0#0-0-9 with item type: String
13:31:15.584 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'meterreader:meter:EHZ_WP' changed from OFFLINE (COMMUNICATION_ERROR): Stream closed to ONLINE
13:31:15.584 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'meterreader:meter:EHZ_WP' has been updated.
13:31:15.584 [DEBUG] [terreader.internal.MeterValueListener] - Adding channel: 1-0#2-8-0 with item type: Number
13:31:15.585 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'meterreader:meter:EHZ_WP' has been updated.
13:31:15.585 [DEBUG] [terreader.internal.MeterValueListener] - Adding channel: 1-0#2-8-1 with item type: Number
13:31:15.585 [DEBUG] [terreader.internal.MeterValueListener] - Adding channel: 1-0#2-8-2 with item type: Number
13:31:15.585 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'meterreader:meter:EHZ_WP' has been updated.
13:31:15.590 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'meterreader:meter:EHZ_WP' has been updated.

The trace was done with the Hager, right? Can you give me one for the EMH?
The exception comes only when cancelling a reading (because you’re updating the file).
The sources you can find in the following PR: https://github.com/openhab/openhab2-addons/pull/2167

@msteigenberger No, it was one EHM.

With my Hager I got finally:

2018-03-11 13:38:37.619 [DEBUG] [erreader.internal.MeterValueListener] - Adding channel: 129-129#199-130-3 with item type: String
2018-03-11 13:38:37.620 [DEBUG] [erreader.internal.MeterValueListener] - Adding channel: 1-0#0-0-9 with item type: String
2018-03-11 13:38:37.622 [DEBUG] [erreader.internal.MeterValueListener] - Adding channel: 1-0#1-8-0 with item type: Number
2018-03-11 13:38:37.623 [DEBUG] [erreader.internal.MeterValueListener] - Adding channel: 1-0#1-8-1 with item type: Number
2018-03-11 13:38:37.624 [DEBUG] [erreader.internal.MeterValueListener] - Adding channel: 1-0#1-8-2 with item type: Number
2018-03-11 13:38:37.625 [DEBUG] [erreader.internal.MeterValueListener] - Adding channel: 1-0#16-7-0 with item type: Number
2018-03-11 13:38:37.627 [DEBUG] [erreader.internal.MeterValueListener] - Adding channel: 129-129#199-130-5 with item type: String
2018-03-11 13:38:37.628 [INFO ] [ing.meterreader.internal.MeterDevice] - Read out following values: Device: meterreader:meter:EHZ_PV
Obis: 1-0:1.8.1 MeterValue [obis=1-0:1.8.1, value=4.27784966E7, unit=WATT_HOUR]
Obis: 1-0:16.7.0 MeterValue [obis=1-0:16.7.0, value=1204.0, unit=WATT]
Obis: 1-0:1.8.2 MeterValue [obis=1-0:1.8.2, value=1000.0, unit=WATT_HOUR]
Obis: 129-129:199.130.5 MeterValue [obis=129-129:199.130.5, value=&����k_^X��m�?��&]kZA�t�q^G
�       ��r�vu�T^_3��^A��0, unit=EMPTY]
Obis: 129-129:199.130.3 MeterValue [obis=129-129:199.130.3, value=HAG, unit=EMPTY]
Obis: 1-0:0.0.9 MeterValue [obis=1-0:0.0.9, value=^FHAG^A^GT��y, unit=EMPTY]
Obis: 1-0:1.8.0 MeterValue [obis=1-0:1.8.0, value=4.27794966E7, unit=WATT_HOUR]

With EHM I’m missing some channels and it didn’t poll the serial port.
This line is missing, too:

Read out following values: Device: meterreader:meter:EHZ_WP

I’ve created a new version with better error handling. I have not yet found the root cause of your problem, but maybe it will appear now.
Can you please try it? Thanks!

@msteigenberger Now I get an error:

2018-03-11 18:54:26.123 [ERROR] [erreader.internal.MeterValueListener] - 
java.lang.ClassCastException: org.openmuc.jsml.structures.Unsigned32 cannot be cast to org.openmuc.jsml.structures.Integer32
        at org.openhab.binding.meterreader.internal.sml.SmlValueExtractor.getValue(SmlValueExtractor.java:128) ~[?:?]
        at org.openhab.binding.meterreader.internal.sml.SmlValueExtractor.getSmlValue(SmlValueExtractor.java:52) ~[?:?]
        at org.openhab.binding.meterreader.internal.sml.SmlMeterReader.populateValueCache(SmlMeterReader.java:115) ~[?:?]
        at org.openhab.binding.meterreader.internal.sml.SmlMeterReader.populateValueCache(SmlMeterReader.java:1) ~[?:?]
        at org.openhab.binding.meterreader.internal.MeterDevice.lambda$0(MeterDevice.java:126) ~[?:?]
        at org.openhab.binding.meterreader.connectors.ConnectorBase.lambda$0(ConnectorBase.java:77) ~[?:?]
        at java.util.ArrayList.forEach(ArrayList.java:1257) ~[?:?]
        at org.openhab.binding.meterreader.connectors.ConnectorBase.notifyListeners(ConnectorBase.java:77) ~[?:?]
        at org.openhab.binding.meterreader.connectors.ConnectorBase.getMeterValues(ConnectorBase.java:57) ~[?:?]
        at org.openhab.binding.meterreader.internal.MeterDevice.lambda$1(MeterDevice.java:136) ~[?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
        at java.lang.Thread.run(Thread.java:748) [?:?]

Great!
I’ve created a new version. Hope this is fixed now.
Please try it out.