RFXCOM-Binding Unsupported value

Hi there

I just got a new RFXtrx433XL for I can control my OZRoll Rollershutter. After flashing the new firmware it works perfect from the RFX-Manager (the maintainer of the RFXtrx just added support for this in the last firmware-version).

Now in openhab, the bridge is connecting but whenever there comes a signal, i get an error-message in openhab:

2021-06-15 14:24:51.255 [ERROR] [internal.handler.RFXComBridgeHandler] - Error occurred during packet receiving, data: 091914000023820102A2

org.openhab.binding.rfxcom.internal.exceptions.RFXComUnsupportedValueException: Unsupported value '20' for SubType

	at org.openhab.binding.rfxcom.internal.messages.ByteEnumUtil.fromByte(ByteEnumUtil.java:37) ~[bundleFile:?]

	at org.openhab.binding.rfxcom.internal.messages.RFXComBlinds1Message.encodeMessage(RFXComBlinds1Message.java:119) ~[bundleFile:?]

	at org.openhab.binding.rfxcom.internal.messages.RFXComBlinds1Message.<init>(RFXComBlinds1Message.java:98) ~[bundleFile:?]

	at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]

	at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:?]

	at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]

	at java.lang.reflect.Constructor.newInstance(Constructor.java:490) ~[?:?]

	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:246) [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:70) [bundleFile:?]

Anybody has an idea, what the problem could be? Thanks for your help.

It looks clear this new device is just not yet supported by the binding.
You need someone to add it.

I’ve had a go with this one based on the RFXtrx SDK, you’ll need to load the new addon JAR and give it a test because I don’t own the device to test it.

PR is here: [rfxcom] Add support for additional blinds by Jamstah · Pull Request #10877 · openhab/openhab-addons · GitHub

Jar is here: Dropbox - org.openhab.binding.rfxcom-3.1.0-SNAPSHOT.jar - Simplify your life

Thank you very much for adding this so quickly.

But now, when I add the transceiver as a thing in the ui, then I repeatedly (every minute) get the following error:

2021-06-17 12:40:27.491 [ERROR] [internal.handler.RFXComBridgeHandler] - Error occurred during packet receiving, data: 1401000102532C0080000003012C139B0000000000

org.openhab.binding.rfxcom.internal.exceptions.RFXComUnsupportedValueException: Unsupported value '19' for FirmwareType

	at org.openhab.binding.rfxcom.internal.messages.ByteEnumUtil.fromByte(ByteEnumUtil.java:37) ~[bundleFile:?]

	at org.openhab.binding.rfxcom.internal.messages.RFXComInterfaceMessage.encodeResponseMessage(RFXComInterfaceMessage.java:282) ~[bundleFile:?]

	at org.openhab.binding.rfxcom.internal.messages.RFXComInterfaceMessage.encodeMessage(RFXComInterfaceMessage.java:247) ~[bundleFile:?]

	at org.openhab.binding.rfxcom.internal.messages.RFXComInterfaceMessage.<init>(RFXComInterfaceMessage.java:187) ~[bundleFile:?]

	at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]

	at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:?]

	at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]

	at java.lang.reflect.Constructor.newInstance(Constructor.java:490) ~[?:?]

	at org.openhab.binding.rfxcom.internal.messages.RFXComMessageFactory.createMessage(RFXComMessageFactory.java:141) ~[bundleFile:?]

	at org.openhab.binding.rfxcom.internal.handler.RFXComBridgeHandler$MessageListener.packetReceived(RFXComBridgeHandler.java:246) [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:71) [bundleFile:?]

Even after reboot, it not worked.

With the bundled addon, this not happened.

I need to say, that I needed to flash the ProXL-2-Firmware (version 1044) to the RFXCOM, according to the user guide from rfxcom, for work together with the OZ-Roll.

Might this be the problem?

I just had another look at the error message. The data-string is not always the same. I have two different data-strings, that are in the error-message.

Once it is

1401000102532C0080000003012C139B0000000000

The other one is

1401000102532C0080000003012C139C0000000000

But another one I have not seen. If that helps…

Interesting. The varied number should be the transmit power, odd that its different by one, but not a problem. The byte “13” translates to the firmware type, but that value doesn’t exist in the SDK. Which firmware do you have flashed?

Ah, proxl 2? That’s not in the SDK!

I’ll add it to the code tomorrow :slight_smile:

The byte “12” isn’t in the SDK too, might be the “RFXtrx433XL_ProXL1_SpecialFunkbus_1042.hex”, if you get a chance I’d appreciate you loading up that firmware and letting me know if that’s the firmware version it reports.

OK. I will try this tomorrow. Where I should see this? In the RFXmngr?

So far I got it working with a little bash-script, that sends the command to the /dev/ttyUSB0 with the given paramters from my openhab (ID, Unit, Sequence-Number, Command). The Sequence-Number is counting up through the openhab. Let’s see, how long it works.

Yes, you can find that same raw message in rfxmgnr immediately after connecting.

Actually I don’t know exactly, which byte this would be, but this is the message, when I connect in RFXmngr after load the SpecialFunkbus-Firmware:

RFXtrx433XL  COM4  Serialnr: DO5NZQNI
================================================
18.06.2021 12:28:04:004= Reset receiver/transceiver: 0D 00 00 00 00 00 1C 00 00 00 00 00 00 00 
================================================
18.06.2021 12:28:04:517= Get Status: 0D 00 00 01 02 00 1C 00 00 00 00 00 00 00 
------------------------------------------------
18.06.2021 12:28:04:601= 1401000102532A0080000003012C10860000000000
Packettype        = Interface Message
subtype           = Interface Response
Sequence nbr      = 1
response on cmnd  = Get Status
Transceiver type  = 433.92MHz
Firmware version  = 1042
Firmware Type     = ProXL1
Noise level       = 134
Transmit power    = 10dBm
Hardware version  = 3.1  RFXtrx433XL
Undec             off
Imagintronix      disabled
....
KeeLoq            disabled

------------------------------------------------
18.06.2021 12:28:04:935= 1401070207436F7079726967687420524658434F4D

And here as a comparison with the ProXL-2 Firmware v 1044:

RFXtrx433XL  COM4  Serialnr: DO5NZQNI
================================================
18.06.2021 12:22:29:581= Reset receiver/transceiver: 0D 00 00 00 00 00 1C 00 00 00 00 00 00 00 
================================================
18.06.2021 12:22:30:097= Get Status: 0D 00 00 01 02 00 1C 00 00 00 00 00 00 00 
------------------------------------------------
18.06.2021 12:22:30:180= 1401000102532C0080000003012C13820000000000
Packettype        = Interface Message
subtype           = Interface Response
Sequence nbr      = 1
response on cmnd  = Get Status
Transceiver type  = 433.92MHz
Firmware version  = 1044
Firmware Type     = ProXL2
Noise level       = 130
Transmit power    = 10dBm
Hardware version  = 3.1  RFXtrx433XL
Undec             off
Imagintronix      disabled
...
KeeLoq            disabled

------------------------------------------------
18.06.2021 12:22:30:518= 1401070207436F7079726967687420524658434F4D

I hope, that helps.

Perfect. The funkbus just shows up the same as ProXL1 (10):

1401000102532A0080000003012C10860000000000

ProXL2 is 12:

1401000102532C0080000003012C13820000000000

I’m also making it not crash if its unknown, it will just log a WARN instead.

Have updated the JAR on dropbox.

Give that a go, and if it can control your blinds, I can mark the PR as ready for review. I don’t want to get that merged without some real world testing :slight_smile:

OK. First I added the addon, which gave me a warn-message about the firmware. But I could add the transceiver, I could add a new blind-thing with a new id. Then I needed to pair the “remote” with the id and unit to the OZRoll (through the Rfxmngr - I made it with my bash-script, so I didn’t need to remove the RFXcom from the smarthome) and since then it’s working greate.

Thank you very much. This is awesome. Now I will replace all my (manual) blinds with those OZ-Roll-Blinds.

Just another question: Is there a possibility, to check if another remote control (not controlled through openhab) changes the state of the blind? Because like this, I could catch the control and do something else (like only go down for 4 seconds - because of the plants).

That’s great.

With the other remote, if you can see the messages in rfxmgnr, we can make it work in openhab. That can either be as a proper decoded message, or as a raw. What is the device?

Yes, in rfxmngr, I can see the message. The device is also a OZ-Roll-device. A real E-Trans remote control.