RFXCom binding not supporting value 2 to 9 for LIGHTING5, LIVOLO_APPLIANCE

Hello Community,

I am trying to use a “Livolo Rmt 04” remote control to add it to my OpenHab 2.5 installation.

The “Livolo Rmt 04” has 3 distinct IDs. This can be chosen manually from the remote control - each ID is added to OpenHab as a separate Remote Control. Thus we are focusing on 1 of those 3 IDs (8706.0 for our example).

Within each ID the remote can send a Command going from 1 to 9 (depending on which button is pressed on the remote.

Here is an example (this is using RFXCom manager under Windows):

Example when number 1 is pressed:

04/01/2020 03:58:57:518= 0A140AC500220200010070
Packettype    = Lighting5
subtype       = Livolo 1 to 10
Sequence nbr  = 197
ID            = 2202 decimal:8706
Command       = Toggle 1
Signal level  = 7  -64dBm

Example when number 2 is pressed:

05/01/2020 10:43:56:720= 0A140A5100220200020070
Packettype    = Lighting5
subtype       = Livolo 1 to 10
Sequence nbr  = 81
ID            = 2202 decimal:8706
Command       = Toggle 2
Signal level  = 7  -64dBm

Note the “Toggle 2” in the Command line (as 2 was pressed) this is of course true for all values between 1 and 9.

Under OpenHab 2.5 (RFXCom Binding 2.5) the following Error will show when “2” is pressed:

10:51:38.981 [TRACE] [internal.connector.RFXComStreamReader] - Message length is 10 bytes
10:51:38.984 [TRACE] [internal.connector.RFXComStreamReader] - Waiting remaining 10 bytes from the message
10:51:38.989 [TRACE] [internal.connector.RFXComStreamReader] - Received 1 bytes from the message
10:51:38.993 [TRACE] [internal.connector.RFXComStreamReader] - Waiting remaining 9 bytes from the message
10:51:38.999 [TRACE] [internal.connector.RFXComStreamReader] - Received 1 bytes from the message
10:51:39.003 [TRACE] [internal.connector.RFXComStreamReader] - Waiting remaining 8 bytes from the message
10:51:39.007 [TRACE] [internal.connector.RFXComStreamReader] - Received 1 bytes from the message
10:51:39.011 [TRACE] [internal.connector.RFXComStreamReader] - Waiting remaining 7 bytes from the message
10:51:39.015 [TRACE] [internal.connector.RFXComStreamReader] - Received 1 bytes from the message
10:51:39.019 [TRACE] [internal.connector.RFXComStreamReader] - Waiting remaining 6 bytes from the message
10:51:39.023 [TRACE] [internal.connector.RFXComStreamReader] - Received 1 bytes from the message
10:51:39.027 [TRACE] [internal.connector.RFXComStreamReader] - Waiting remaining 5 bytes from the message
10:51:39.031 [TRACE] [internal.connector.RFXComStreamReader] - Received 1 bytes from the message
10:51:39.036 [TRACE] [internal.connector.RFXComStreamReader] - Waiting remaining 4 bytes from the message
10:51:39.041 [TRACE] [internal.connector.RFXComStreamReader] - Received 1 bytes from the message
10:51:39.044 [TRACE] [internal.connector.RFXComStreamReader] - Waiting remaining 3 bytes from the message
10:51:39.048 [TRACE] [internal.connector.RFXComStreamReader] - Received 1 bytes from the message
10:51:39.051 [TRACE] [internal.connector.RFXComStreamReader] - Waiting remaining 2 bytes from the message
10:51:39.055 [TRACE] [internal.connector.RFXComStreamReader] - Received 1 bytes from the message
10:51:39.058 [TRACE] [internal.connector.RFXComStreamReader] - Waiting remaining 1 bytes from the message
10:51:39.062 [TRACE] [internal.connector.RFXComStreamReader] - Received 1 bytes from the message
10:51:39.066 [ERROR] [.internal.handler.RFXComBridgeHandler] - Error occurred during packet receiving, data: 0A140A0B00220200050070
org.openhab.binding.rfxcom.internal.exceptions.RFXComUnsupportedValueException: Unsupported value '5' with subtype LIVOLO_APPLIANCE for Commands
        at org.openhab.binding.rfxcom.internal.messages.ByteEnumUtil.fromByte(ByteEnumUtil.java:64) ~[bundleFile:?]
        at org.openhab.binding.rfxcom.internal.messages.RFXComLighting5Message.encodeMessage(RFXComLighting5Message.java:171) ~[bundleFile:?]
        at org.openhab.binding.rfxcom.internal.messages.RFXComLighting5Message.<init>(RFXComLighting5Message.java:145) ~[bundleFile:?]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_222]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_222]
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_222]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_222]
        at org.openhab.binding.rfxcom.internal.messages.RFXComMessageFactory.createMessage(RFXComMessageFactory.java:140) ~[bundleFile:?]
        at org.openhab.binding.rfxcom.internal.handler.RFXComBridgeHandler$MessageListener.packetReceived(RFXComBridgeHandler.java:236) [bundleFile:?]
        at org.openhab.binding.rfxcom.internal.connector.RFXComBaseConnector.sendMsgToListeners(RFXComBaseConnector.java:49) [bundleFile:?]
        at org.openhab.binding.rfxcom.internal.connector.RFXComStreamReader.run(RFXComStreamReader.java:69) [bundleFile:?]

Here is a working example when 1 is pressed:

10:51:22.740 [DEBUG] [.internal.handler.RFXComBridgeHandler] - Checking RFXCOM transceiver connection, thing status = ONLINE
10:51:34.756 [TRACE] [internal.connector.RFXComStreamReader] - Message length is 10 bytes
10:51:34.760 [TRACE] [internal.connector.RFXComStreamReader] - Waiting remaining 10 bytes from the message
10:51:34.766 [TRACE] [internal.connector.RFXComStreamReader] - Received 1 bytes from the message
10:51:34.770 [TRACE] [internal.connector.RFXComStreamReader] - Waiting remaining 9 bytes from the message
10:51:34.774 [TRACE] [internal.connector.RFXComStreamReader] - Received 1 bytes from the message
10:51:34.778 [TRACE] [internal.connector.RFXComStreamReader] - Waiting remaining 8 bytes from the message
10:51:34.783 [TRACE] [internal.connector.RFXComStreamReader] - Received 1 bytes from the message
10:51:34.787 [TRACE] [internal.connector.RFXComStreamReader] - Waiting remaining 7 bytes from the message
10:51:34.791 [TRACE] [internal.connector.RFXComStreamReader] - Received 1 bytes from the message
10:51:34.795 [TRACE] [internal.connector.RFXComStreamReader] - Waiting remaining 6 bytes from the message
10:51:34.799 [TRACE] [internal.connector.RFXComStreamReader] - Received 1 bytes from the message
10:51:34.803 [TRACE] [internal.connector.RFXComStreamReader] - Waiting remaining 5 bytes from the message
10:51:34.808 [TRACE] [internal.connector.RFXComStreamReader] - Received 1 bytes from the message
10:51:34.812 [TRACE] [internal.connector.RFXComStreamReader] - Waiting remaining 4 bytes from the message
10:51:34.816 [TRACE] [internal.connector.RFXComStreamReader] - Received 1 bytes from the message
10:51:34.820 [TRACE] [internal.connector.RFXComStreamReader] - Waiting remaining 3 bytes from the message
10:51:34.825 [TRACE] [internal.connector.RFXComStreamReader] - Received 1 bytes from the message
10:51:34.829 [TRACE] [internal.connector.RFXComStreamReader] - Waiting remaining 2 bytes from the message
10:51:34.833 [TRACE] [internal.connector.RFXComStreamReader] - Received 1 bytes from the message
10:51:34.837 [TRACE] [internal.connector.RFXComStreamReader] - Waiting remaining 1 bytes from the message
10:51:34.841 [TRACE] [internal.connector.RFXComStreamReader] - Received 1 bytes from the message
10:51:34.845 [DEBUG] [.internal.handler.RFXComBridgeHandler] - Message received: Raw data = 0A140A0A00220200010070, Packet type = LIGHTING5, Seq number = 10, Sub type = LIVOLO_APPLIANCE, Device Id = 8706.0, Command = ON, Dim level = 0, Signal level = 7
10:51:34.850 [TRACE] [iscovery.RFXComDeviceDiscoveryService] - Received: bridge: rfxcom:bridge:877c12fe message: Raw data = 0A140A0A00220200010070, Packet type = LIGHTING5, Seq number = 10, Sub type = LIVOLO_APPLIANCE, Device Id = 8706.0, Command = ON, Dim level = 0, Signal level = 7
10:51:34.855 [TRACE] [iscovery.RFXComDeviceDiscoveryService] - Adding new RFXCOM rfxcom:lighting5:877c12fe:8706_0 with id '8706.0' to smarthome inbox

Any help with this error is much appreciated.
Thanks a lot!

Livolo appliance devices aren’t fully/correctly supported. You could introduce patch to lighting5 message handling to fix it or at least create an issue to github about it.

Thank for the quick reply @pauli_anttila.
This has been raised at github here.