Configure dooya roller shuter items

Hello,

after spending a full day getting my new roller shutter running in openhab i loke to share some experience here.

I’m using the RFXCOM binding with openhab 1.8.3 runtime, the binding used is already from the 1.9 stream. Goal is getting the standard dooya tubular motors integrated what is supported by the RFXCOM binding. I’m using only one, for a markise, per default controled by the DC90 remote control delivered with the tube motor.

Connecting the binding with serial port etc. should work as described in the standard wiki. Because already using a serial device for enOcean, I had to add the additional serial port for the RFXCOM binding into the Java settings, which becoming active after restart. (example -Dgnu.io.rxtx.SerialPorts=/dev/ttyAMA0: /dev/ttyUSB0)
The RFXCOM device pairing was done with the RFXmangr as described in the user guide from RFCCOM on a windows system.

My selected ID was: 01 01 01 1
Unit code: 3
The crucial point is now how the item in the openhab should look like. The most important hints I got from these thread: https://github.com/openhab/openhab1-addons/issues/4151, where i found the was a issue in the past versions and a decimal number is used for the binding!

How you calculate the decimal number is decribed here now:
Shown in RFCmngr as:
ID1 = 01
ID2 = 01
ID3 = 01
The first 3 bytes need to be converted from hex values to decimal for the binding, you can easy make use of: http://www.binaryhexconverter.com/hex-to-decimal-converter
Hex: 010101 --> 65793 (what represent the decimal ID in the item configuration)
The ID number 4 is a half byte ID and need to be managed in combination with the unit code (which is a half byte id as well)!
ID4 = 01 + Unit Code = 03
What represent:
binary 0001 0011 = decimal 19 (you can make use of http://www.vlsm-calc.net/decbinhex.php for your reference)

The working example for dooya tube motor, we have now here. My item definition now for the mentioned IDs is:

Rollershutter MarkiseTerrasse “Markise Terrasse " (gRollladen){rfxcom=”>65793.19:BLINDS1.DC106:Shutter" }

You can check if you transmitting wrong signal in you debug log, the binary code should look like:
Example:
Data: 09 19 06 0D 01 01 01 13 00 00
09 = default
19 = blinds1
06 = T6 subtype
00 = sequence code (continuous increasing value)
00 = ID1
10 = ID2
10 = ID3
11 = Unit Code
01 = Command Code
00 = Signal Level
Now you can check and see in the openhab debug log (when debugging was enabled) entrys like
2017-06-05 19:11:36.807 [DEBUG] [.rfxcom.internal.RFXComBinding] - Received command: MarkiseTerrasse STOP
2017-06-05 19:11:36.809 [DEBUG] [.rfxcom.internal.RFXComBinding] - Received command (item=‘MarkiseTerrasse’, state=‘STOP’, class=‘class org.openhab.core.library.types.StopMoveType’)
2017-06-05 19:11:36.811 [DEBUG] [.rfxcom.internal.RFXComBinding] - Transmitting data: 09190614010101130200
2017-06-05 19:11:37.371 [DEBUG] [.b.r.internal.RFXComConnection] - Data received:
2017-06-05 19:11:37.374 [DEBUG] [.rfxcom.internal.RFXComBinding] - Command succesfully transmitted, ‘ACK’ received