Hello,
I have two smartmeters and I failed to properly integrate either one with the smartmeter binding or the IEC binding.
The first one is a EMH ITZ which according to the manual is a mode C compatible with 300, 1 200, 2 400 or 4 800 baud. Smartmeter-readout works a little bit in that it can read the meter:
./smartmeter-readout -d /dev/ttyUSB0
DEBUG: Opening /dev/ttyUSB0
DEBUG: Sending sign-on
DEBUG: Reading identification
DEBUG: Read on serial port: `/?!..'
DEBUG: Identification received: `/?!..'
DEBUG: Sending sign-on
DEBUG: Reading identification
DEBUG: Read on serial port: `/?!..'
DEBUG: Identification received: `/?!..'
DEBUG: Sending sign-on
DEBUG: Reading identification
DEBUG: Read on serial port: `/?!../EMH4\@--ITZ-G003VE..'
DEBUG: Identification received: `/?!..'
DEBUG: Sending sign-on
DEBUG: Reading identification
DEBUG: Identification received: `/EMH4\@--ITZ-G003VE..'
DEBUG: Upgrading to 4800 bps.
DEBUG: Receiving telegram.
DEBUG: Read on serial port: `/?!...040..'
DEBUG: Received `/?!..'.
DEBUG: Received `.040..'.
DEBUG: Read on serial port: `.F.F(00000000)..0.0.0(08033086)..0.0.1(08033086)..0.0.2(08033086)..0.1.0(03)..0.1.2*03(190601000000)..0.1.2*02(190501000000)..0.1.2*01(190408110211)..0.1.2*00(000000000000)..0.1.2*99(000000000000)..0.1.2*98(000000000000)..0.1.2*97(000000000000)..0.1.2*96('
DEBUG: Received `.F.F(00000000)..'.
DEBUG: Received `0.0.0(08033086)..'.
DEBUG: Received `0.0.1(08033086)..'.
DEBUG: Received `0.0.2(08033086)..'.
DEBUG: Received `0.1.0(03)..'.
But in continous mode even that failed after the 4th reading.
DEBUG: Sending sign-on
DEBUG: Reading identification
DEBUG: Read on serial port: `/?!..'
DEBUG: Identification received: `/?!..'
DEBUG: Sending sign-on
DEBUG: Reading identification
DEBUG: Read on serial port: `/?!..'
DEBUG: Identification received: `/?!..'
DEBUG: Sending sign-on
DEBUG: Reading identification
DEBUG: Read on serial port: `/?!..'
DEBUG: Identification received: `/?!..'
DEBUG: Sending sign-on
DEBUG: Reading identification
DEBUG: Read on serial port: `/AI. .--ITZ-G003VE..'
DEBUG: Identification received: `/AI. .--ITZ-G003VE..'
DEBUG: Sending sign-on
DEBUG: Reading identification
DEBUG: Read on serial port: `/?!..'
DEBUG: Identification received: `/?!..'
DEBUG: Sending sign-on
DEBUG: Reading identification
DEBUG: Read on serial port: `/?!..'
DEBUG: Identification received: `/?!..'
Unable to get values, No identification message received from meter..
The other meter is a Logarex LK13B and it appears to be sending automatically, and I am able to read it with the serial binding and some rules at 9600baud. This works very well, but even that I can’t get to work with the smartmeter binding.
For both I use theWeidmann Elektronik Stromzähler, Smart Meter IR reader. I am running OH 2.4 on a raspberry pi B+. For either one I get the following message:
Failed to read: The source did not signal an event for 30 seconds and has been terminated.. Closing connection and trying again in 2 seconds...; smartmeter:meter:power
java.util.concurrent.TimeoutException: The source did not signal an event for 30 seconds and has been terminated.
at io.reactivex.internal.operators.flowable.FlowableTimeoutTimed$TimeoutSubscriber.onTimeout(FlowableTimeoutTimed.java:139) [266:org.openhab.binding.smartmeter:2.4.0]
at io.reactivex.internal.operators.flowable.FlowableTimeoutTimed$TimeoutTask.run(FlowableTimeoutTimed.java:170) [266:org.openhab.binding.smartmeter:2.4.0]
at io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$BooleanRunnable.run(ExecutorScheduler.java:260) [266:org.openhab.binding.smartmeter:2.4.0]
at io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker.run(ExecutorScheduler.java:225) [266:org.openhab.binding.smartmeter:2.4.0]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
Any tips for debugging this?
I tried all kind of variations (mode, baudrateChangeDelay, with and without initMessage etc) for the thing:
//smartmeter:meter:power [port="/dev/ttyUSB1", baudrateChangeDelay=250, refresh=60, mode="SML"]
//smartmeter:meter:powerHeatPump [port="/dev/ttyUSB0", baudrateChangeDelay=250, refresh=10, mode="ABC", baudRate=300, initMessage="2F3F210D0A"]