EnOcean: Nexelec Insafe+ Origin fires an "Exeption in informListeners" if Temperature and/or Humidity is updated

Hello Community,

i want to use a “Nexelec Insafe+ Origin” Multi Function Smoke Dectector, which is supported by OH. EEP is D2-14-30. Installation was no problem. By the way I’m using OH3 M3 (Win10).

After receiving this update message:

[TRACE] [ernal.transceiver.EnOceanTransceiver] - Received Sync Byte
[TRACE] [ernal.transceiver.EnOceanTransceiver] - >> Received header, data length 12 optional length 7 packet type 1
[DEBUG] [ernal.transceiver.EnOceanTransceiver] - RADIO_ERP1 with RORG VLD for 81002EB9 payload D20000F102F68081002EB98000FFFFFFFF2D00 received
[DEBUG] [rnal.handler.EnOceanBaseThingHandler] - ESP Packet payload D20000F102F68081002EB980 for 81002EB9 received
[ERROR] [ernal.transceiver.EnOceanTransceiver] - Exception in informListeners

the binding fires an exeption in informListeners:

java.lang.ArrayIndexOutOfBoundsException: Index 33554431 out of bounds for length 4
at org.openhab.binding.enocean.internal.eep.D2_14.D2_14_30.convertToStateImpl(D2_14_30.java:96) ~[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:168) ~[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:158) ~[bundleFile:?]
at org.openhab.binding.enocean.internal.transceiver.EnOceanTransceiver.lambda$0(EnOceanTransceiver.java:307) ~[bundleFile:?]
at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]
at org.openhab.binding.enocean.internal.transceiver.EnOceanTransceiver.informListeners(EnOceanTransceiver.java:307) [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:261) [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:834) [?:?]

After that temperature and humidity values are a little bit confusing:

[INFO ] [openhab.event.ItemStateChangedEvent ] - Item ‘EnoceanMultiFunctionSmokeDetector1_Humidity’ changed from 105.0 to 100.0
[INFO ] [openhab.event.ItemStateChangedEvent ] - Item ‘EnoceanMultiFunctionSmokeDetector1_Temperature’ changed from 50.0 °C to 49.4 °C

I think there is a misinterpretation in the payload values. Is there a fix possible/available? Any other ideas? Any help is appreciated.

Thanks in advance.
Detlef

This topic was automatically closed 41 days after the last reply. New replies are no longer allowed.