27.11.2015, 20:09
Finally I got it working. Thanks for the excellent help. I had to change the b0 to 9. (Found this when I understood how the dimmer behaved when setting it to raw bytes, split)
If anyone ever need to control a FUD61NPN-230V actuator here are my notes:
If anyone ever need to control a FUD61NPN-230V actuator here are my notes:
- First of all turn on confirmation signal on the actuator: top rotary switch to CLR, LED flashes, during 10 seconds turn bottom rotary switch all the way to the left 3 times, LED light is on for 2 seconds.
- Follow guide that admin posts above (in example below my 4-byte unsigned integer object had address 1/1/5):
Quote:First, you have to create one object with 4-byte unsigned integer data type and another with 1-byte scaled. 4-byte object should be mapped to KNX > EnOcean object with 4-byte RAW profile.
- Add the following script to the 1-byte scaled object (just for initial teach command):
Code:b3 = 0xE0
b2 = 0x47
b1 = 0xFF
b0 = 0x00
a3 = bit.lshift(b3, 24)
a2 = bit.lshift(b2, 16)
a1 = bit.lshift(b1, 8)
res = bit.bor(a3,a2,a1,b0)
grp.update('1/1/5', res, dt.uint32)
- Put the actuator into learning mode: turn bottom rotary to EC1, upper rotary to LRN
- Set an object value for 1-byte scaled object (0-100) to teach in. (The actuator should stop flashing)
- Turn back actuator to desired functionality
- Add the following script to 1-byte scaled object (to be able to control the actuator)
Code:-- dimming
b3 = 0x02
-- dimmer value [0..100]
b2 = event.getvalue()
-- ramp time in seconds
b1 = 1
-- data telegram, absolute value, store final
b0 = 9
a3 = bit.lshift(b3, 24)
a2 = bit.lshift(b2, 16)
a1 = bit.lshift(b1, 8)
res = bit.bor(a3,a2,a1,b0)
grp.update('1/1/5', res, dt.uint32)
- The dimmer can now be controlled through the 1-byte scaled object
- In EnOcean >> KNX tab find the actuator (that should send confirmation signals if step 1 above was followed)
- Set profile as "RAW 4-bytes, split"
- Map Data Byte 2 to an object.
- Create a new object as "5.001 scale" (in my example 1/1/6)
- Add the following script to the Data Byte 2 object created in point 3:
Code:value = event.getvalue()
res = (value/100)*255
grp.write('1/1/6', res, dt.uint8)