enOcean binding - Exception in informListeners

Hej,

i have problems connecting my enOcean sensors to my server. The following error appears in openhab.log:

>     2019-12-06 09:34:29.364 [ERROR] [ernal.transceiver.EnOceanTransceiver] - Exception in informListeners
>     java.lang.NumberFormatException: For input string: ""
>             at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[?:1.8.0_232]
>             at java.lang.Long.parseLong(Long.java:601) ~[?:1.8.0_232]
>             at org.openhab.binding.enocean.internal.transceiver.EnOceanTransceiver.informListeners(EnOceanTransceiver.java:423) [bundleFile:?]
>             at org.openhab.binding.enocean.internal.transceiver.EnOceanTransceiver.processMessage(EnOceanTransceiver.java:313) [bundleFile:?]
>             at org.openhab.binding.enocean.internal.transceiver.EnOceanTransceiver.receivePackets(EnOceanTransceiver.java:200) [bundleFile:?]
>             at org.openhab.binding.enocean.internal.transceiver.EnOceanTransceiver.access$3(EnOceanTransceiver.java:192) [bundleFile:?]
>             at org.openhab.binding.enocean.internal.transceiver.EnOceanTransceiver$1.run(EnOceanTransceiver.java:163) [bundleFile:?]
>             at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_232]
>             at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_232]
>             at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_232]
>             at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:1.8.0_232]
>             at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_232]
>             at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_232]
>             at java.lang.Thread.run(Thread.java:748) [?:1.8.0_232]

My configuration:
CentOS 7 on VMware ESXi 6.7
Openhab2: Testing Version 2.5.0~M6
Java: zulu-8-8.42.0.23-1
enOcean USB300 Receiver

Thanks!

Regards,
Michael

The following sensor is working:

  • Eltako FAFT60

The following sensor does not work:

  • NodOn STPH-2-1-05

After manual adding the following error still occurs regularly in openhab.log:

2019-12-06 11:03:55.443 [DEBUG] [ernal.transceiver.EnOceanTransceiver] - RADIO_ERP1 with RORG Unknown for  payload 30B7E0FE27B3FB048D058E3CC30000FFFFFFFF5E00 received
2019-12-06 11:03:55.444 [ERROR] [ernal.transceiver.EnOceanTransceiver] - Exception in informListeners
java.lang.NumberFormatException: For input string: ""
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[?:1.8.0_232]
        at java.lang.Long.parseLong(Long.java:601) ~[?:1.8.0_232]
        at org.openhab.binding.enocean.internal.transceiver.EnOceanTransceiver.informListeners(EnOceanTransceiver.java:423) [bundleFile:?]
        at org.openhab.binding.enocean.internal.transceiver.EnOceanTransceiver.processMessage(EnOceanTransceiver.java:313) [bundleFile:?]
        at org.openhab.binding.enocean.internal.transceiver.EnOceanTransceiver.receivePackets(EnOceanTransceiver.java:200) [bundleFile:?]
        at org.openhab.binding.enocean.internal.transceiver.EnOceanTransceiver.access$3(EnOceanTransceiver.java:192) [bundleFile:?]
        at org.openhab.binding.enocean.internal.transceiver.EnOceanTransceiver$1.run(EnOceanTransceiver.java:163) [bundleFile:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_232]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_232]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_232]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:1.8.0_232]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_232]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_232]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_232]

HI @Steppenwolf,

you received an encrypted message, which is not supported yet. I will create a PR to avoid this problem.

Best regards
Daniel

Hi @Steppenwolf,

I just created a new PR to handle this problem.

Best regards
Daniel

Thank you so much. How can I understand that… can’t OpenHab handle the NodOn sensor? According to https://www.openhab.org/addons/bindings/enocean/ it is supported. Do I have to use the snapshot release?

Best regards,
Michael

Hi Michael,

your sensor is supported by the binding. However you should not try to do the teach in encrypted. Look here others had the same problems with NodOn sensors, but they can be setup to send unencrypted messages.

Best regards
Daniel

Daniel

Can I please get a link to the JAR file.

Thank you for all your time spend on this,

Regards

Hi @Daniel101,

PR got merged, should be contained in the next release.

Best regards
Daniel

Hi @Daniel101,

sorry I have not read the github status message correctly. My PR regarding this issue just got approved but not yet merged. I will create a new openocean version this weekend with all open branches merged.

Best regards
Daniel

HI @Daniel101,

I just released a new openocean version 2.5.1.0 which contains the fix. However snapshot version of the official binding contains the fix now too.

Best regards
Daniel

Hello,
I have got a similar error on enOcean binding 3.4.0 with a Rollershutter NodOn SIN-2-RS-01
The error is the following:

2023-01-01 18:57:39.920 [ERROR] [ernal.transceiver.EnOceanTransceiver] - Exception in informListeners
java.lang.IllegalArgumentException: Value must be between 0 and 100
	at org.openhab.core.library.types.PercentType.validateValue(PercentType.java:93) ~[bundleFile:?]
	at org.openhab.core.library.types.PercentType.<init>(PercentType.java:52) ~[bundleFile:?]
	at org.openhab.binding.enocean.internal.eep.D2_05.D2_05_00.getPositionData(D2_05_00.java:88) ~[bundleFile:?]
	at org.openhab.binding.enocean.internal.eep.D2_05.D2_05_00.convertToStateImpl(D2_05_00.java:122) ~[bundleFile:?]
	at org.openhab.binding.enocean.internal.eep.EEP.convertToState(EEP.java:115) ~[bundleFile:?]
	at org.openhab.binding.enocean.internal.handler.EnOceanBaseSensorHandler.lambda$3(EnOceanBaseSensorHandler.java:170) ~[bundleFile:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:?]
	at java.util.ArrayList.forEach(ArrayList.java:1541) ~[?:?]
	at java.util.stream.SortedOps$RefSortingSink.end(SortedOps.java:395) ~[?:?]
	at java.util.stream.Sink$ChainedReference.end(Sink.java:258) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
	at java.util.stream.ReferencePipeline.forEachOrdered(ReferencePipeline.java:502) ~[?:?]
	at org.openhab.binding.enocean.internal.handler.EnOceanBaseSensorHandler.packetReceived(EnOceanBaseSensorHandler.java:160) ~[bundleFile:?]
	at org.openhab.binding.enocean.internal.transceiver.EnOceanTransceiver.lambda$0(EnOceanTransceiver.java:309) ~[bundleFile:?]
	at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]
	at org.openhab.binding.enocean.internal.transceiver.EnOceanTransceiver.informListeners(EnOceanTransceiver.java:309) [bundleFile:?]
	at org.openhab.binding.enocean.internal.transceiver.EnOceanESP3Transceiver.processMessage(EnOceanESP3Transceiver.java:140) [bundleFile:?]
	at org.openhab.binding.enocean.internal.transceiver.EnOceanTransceiver.receivePackets(EnOceanTransceiver.java:262) [bundleFile:?]
	at org.openhab.binding.enocean.internal.transceiver.EnOceanTransceiver$1.run(EnOceanTransceiver.java:197) [bundleFile:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
	at java.lang.Thread.run(Thread.java:829) [?:?]

Any idea on how to solve this error?