Please see below TXT with EnOcean profiles which we currently support in LogicMachine.
More profiles can be added by request.
05-01-01 = Rocker Switch, 1 Rocker
05-01-02 = Rocker Switch, 1 Rocker (inverted)
05-01-03 = Rocker Switch, 1 Rocker (separate)
05-02-01 = Rocker Switch, 2 Rocker
05-02-02 = Rocker Switch, 2 Rocker (inverted)
05-03-01 = Rocker Switch, 4 Buttons
05-04-01 = Key Card Activated Switch
05-10-00 = Window Handle
06-00-01 = Single Input Contact
07-02-01 = Temperature Sensor (-40C..0C)
07-02-02 = Temperature Sensor (-30C..10C)
07-02-03 = Temperature Sensor (-20C..20C)
07-02-04 = Temperature Sensor (-10C..30C)
07-02-05 = Temperature Sensor (0C..40C)
07-02-06 = Temperature Sensor (10C..50C)
07-02-07 = Temperature Sensor (20C..60C)
07-02-08 = Temperature Sensor (30C..70C)
07-02-09 = Temperature Sensor (40C..80C)
07-02-10 = Temperature Sensor (-60C..20C)
07-02-11 = Temperature Sensor (-50C..30C)
07-02-12 = Temperature Sensor (-40C..40C)
07-02-13 = Temperature Sensor (-30C..50C)
07-02-14 = Temperature Sensor (-20C..60C)
07-02-15 = Temperature Sensor (-10C..70C)
07-02-16 = Temperature Sensor (0C..80C)
07-02-17 = Temperature Sensor (10C..90C)
07-02-18 = Temperature Sensor (20C..100C)
07-02-19 = Temperature Sensor (30C..110C)
07-04-01 = Temperature & Humidity Sensor (0C..40C, 0%..100%)
07-04-02 = Temperature & Humidity Sensor (-20C..60C, 0%..100%, Battery)
07-06-01 = Light Sensor (300lx..60000lx)
07-06-02 = Light Sensor (0lx..1024lx)
07-06-03 = Light Sensor (0lx..100lx, 300lx..30000lx)
07-07-01 = Occupancy Sensor
07-08-01 = Light Sensor 0lx to 510lx, Temperature 0°C to +51°C and Occupancy
07-08-02 = Light Sensor 0lx to 1020lx, Temperature 0°C to +51°C and Occupancy
07-08-03 = Light Sensor 0lx to 1530lx, Temperature -30°C to +50°C and Occupancy
07-09-04 = Humidity, CO2, Temperature Sensor
07-10-01 = Temperature Sensor; Set Point, Fan Speed and Occupancy Control
07-10-02 = Temperature Sensor; Set Point, Fan Speed and Day/Night Control
07-10-03 = Temperature Sensor; Set Point Control
07-10-04 = Temperature Sensor; Set Point and Fan Speed Control
07-10-05 = Temperature Sensor; Set Point and Occupancy Control
07-10-06 = Temperature Sensor; Set Point and Day/Night Control
07-10-07 = Temperature Sensor; Set Point and Fan Speed Control
07-10-08 = Temperature Sensor; Fan Speed Control
07-10-09 = Temperature Sensor; Fan Speed and Day/Night Control
07-10-10 = Temperature and Humidity Sensor; Set Point and Occupancy Control
07-10-11 = Temperature and Humidity Sensor; Set Point and Day/Night Control
07-10-12 = Temperature and Humidity Sensor; Set Point Control
07-10-13 = Temperature and Humidity Sensor; Occupancy Control
07-10-14 = Temperature and Humidity Sensor; Day/Night Control
07-30-01 = Single Input Contact, Battery Monitor
07-30-02 = Single Input Contact
I have not been able to find the EnOcean Profile it is using, but I have been able to control it with fhem using eep A5-38-08.
Do you think it will be possible to add that profile? or should I use one of the profile you have listed?
For PTM switches you should use one of the Rocker Switch profiles. You can also use this profile to control relay/dimmer from LM. Note that simple buttons and relays do not have learn mode. In relay module you should press learn button and send normal button state by changing button object value.
Thanks for the help. After testing out a bit I think I understand much more now .
I have been able to turn the lights on and off using some of the Rocker Switch profiles. But I am struggling a bit with the dimming.
I have also set the actuator I linked to above to send confirmation signals back. It is listed under the "EnOcean >> KNX" tab but none of the profiles seems to give me any good values for the current dim level. If I set the profile to "RAW 4-bytes" I get different values for on and off and when I dim the actuator. But these values are not very good when trying to add a switch with dim level in Mosaic.
Do you know the profile number for your dimmer? RAW 4-byte is meant for implementing profiles that are not provided by default and requires some extra programming. In your case raw value will probably contain not only dimming level but some other info as well. If you can find the specification I can help with parsing.
At page T-12 under section "FUD14, FUD14-800W, FUD61NP, FUD61NPN, FUD71,
FSG14/1-10V, FSG71/1-10V, FRGBW71L, FSUD-230V" in this document, they say the follwing :
"Direct transfer of dimming value from 0 to 100%, similar to
FUNC=38, Command 2 (like EEP A5-38-08)." and then they list a lot of technical info on how the data is represented.
Not sure how to use this though, so if you could help me with that I would be very pleased.
Try setting profile to "RAW 4-bytes, split" and using "Data Byte 2" object. It should contain current dimming value. It this works then I'll provide an example for writing new dimming value.
(23.11.2015, 12:36)admin Wrote: Try setting profile to "RAW 4-bytes, split" and using "Data Byte 2" object. It should contain current dimming value. It this works then I'll provide an example for writing new dimming value.
It seems to give me a value yes.
Off: 0
lowest dimming: 22
highest dimming: 100
26.11.2015, 20:44 (This post was last modified: 26.11.2015, 21:32 by jorgenbl.)
(26.11.2015, 07:13)admin Wrote: Try this with RAW 4-byte profile (first, not the split one), though I'm not sure about contents of byte 0, try setting it to 0x0A if it does not work.
Code:
1234567891011121314151617
-- dimmingb3 = 0x02-- dimmer value [0..100]b2 = event.getvalue()
-- ramp time in secondsb1 = 1-- data telegram, absolute value, store finalb0 = 0x0Ares = bit.bor(
bit.lshift(b3, 24),
bit.lshift(b2, 16),
bit.lshift(b1, 8),
b0
)
grp.write('1/1/1', res, dt.uint32)
Added this as event-based script to the object but I get this error: event-Event for 1/1/3 26.11.2015 21:40:29
Line 11: attempt to index global ' bit' (a nil value)
Am I doing something wrong?
Writing it like this seem to make the error go away:
Code:
12345678910111213141516
-- dimmingb3 = 0x02-- dimmer value [0..100]b2 = event.getvalue()
-- ramp time in secondsb1 = 1-- data telegram, absolute value, store finalb0 = 0x0Aa3 = bit.lshift(b3, 24)
a2 = bit.lshift(b2, 16)
a1 = bit.lshift(b1, 8)
res = bit.bor(a3,a2,a1,b0)
grp.write('1/1/5', res, dt.uint32)
Then it is just to make this work with the dimmer. Will get back with the result.
Thanks for the help so far!
You are probably using Chrome which has issues with copy/pasting non-breaking space characters which are different from usual spaces. New FW version will have a fix for that.
I am struggling to understand how I can instruct the dimmer with this code.
I can create a rocker switch in "KNX >> EnOcean" tab. Teach in the dimmer/actuator by setting it in learning mode either by pressing the teach in button/ or normal button state by changing button object value. Under Device Mapping for the rocker switch one or more buttons with 1. bit can be created.
How do I then send this RAW 4-byte profile?
Sorry for all the questions, I am sure we are close to getting somewhere here, I just need some basic help.
I can read the dimming values from the dimmer/actuator which is great, what I miss is to be able to control the dimmer with on/off and dimming values.
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. Previous script should be mapped to 1-byte object and resulting grp.update (replace grp.write with it) should update 4-byte object with new value.
Use this code to send learn telegram to 4-byte object.
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:
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):
19.12.2015, 13:37 (This post was last modified: 29.12.2015, 13:53 by admin.)
(27.11.2015, 20:09)jorgenbl Wrote: 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:
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):
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):
b3 = 0xE0b2 = 0x47b1 = 0xFFb0 = 0x00a3 = 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)
-- dimmingb3 = 0x02-- dimmer value [0..100]b2 = event.getvalue()-- ramp time in secondsb1 = 1-- data telegram, absolute value, store finalb0 = 9a3 = 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
If you need to read the values from the actuator as a 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:
value = event.getvalue()res = (value/100)*255grp.write('1/1/6', res, dt.uint8)
Hello jorgenbl,
I tried your above mentioned step but unfortunately it didn't work for me for dimming case.
i was able to only Turn On/Off the light in FUD61NPN-230V
Also for information i tested the received signals from LM3 in Enocean Dolphin
Please refer below attached image.
Data telegram received for Dimming from LM3 seems perfect and are actually as required by Eltako , but still i dont know how it dosent dims the light for me.
Please let me know where am i wrong .
Please refer image attached 1,2,3 for scripting done in LM3
and image 4 for Dolphin view received telegram from LM3
Also note i have taught in under EC1 position.
Have you tried the scripting for Eltako FSB61NP-230V curtain actuator ??
Waiting for your positive reply.
Thanks.
(09.11.2015, 11:03)edgars Wrote: Please see below TXT with EnOcean profiles which we currently support in LogicMachine.
More profiles can be added by request.
05-01-01 = Rocker Switch, 1 Rocker
05-01-02 = Rocker Switch, 1 Rocker (inverted)
05-01-03 = Rocker Switch, 1 Rocker (separate)
05-02-01 = Rocker Switch, 2 Rocker
05-02-02 = Rocker Switch, 2 Rocker (inverted)
05-03-01 = Rocker Switch, 4 Buttons
05-04-01 = Key Card Activated Switch
05-10-00 = Window Handle
06-00-01 = Single Input Contact
07-02-01 = Temperature Sensor (-40C..0C)
07-02-02 = Temperature Sensor (-30C..10C)
07-02-03 = Temperature Sensor (-20C..20C)
07-02-04 = Temperature Sensor (-10C..30C)
07-02-05 = Temperature Sensor (0C..40C)
07-02-06 = Temperature Sensor (10C..50C)
07-02-07 = Temperature Sensor (20C..60C)
07-02-08 = Temperature Sensor (30C..70C)
07-02-09 = Temperature Sensor (40C..80C)
07-02-10 = Temperature Sensor (-60C..20C)
07-02-11 = Temperature Sensor (-50C..30C)
07-02-12 = Temperature Sensor (-40C..40C)
07-02-13 = Temperature Sensor (-30C..50C)
07-02-14 = Temperature Sensor (-20C..60C)
07-02-15 = Temperature Sensor (-10C..70C)
07-02-16 = Temperature Sensor (0C..80C)
07-02-17 = Temperature Sensor (10C..90C)
07-02-18 = Temperature Sensor (20C..100C)
07-02-19 = Temperature Sensor (30C..110C)
07-04-01 = Temperature & Humidity Sensor (0C..40C, 0%..100%)
07-04-02 = Temperature & Humidity Sensor (-20C..60C, 0%..100%, Battery)
07-06-01 = Light Sensor (300lx..60000lx)
07-06-02 = Light Sensor (0lx..1024lx)
07-06-03 = Light Sensor (0lx..100lx, 300lx..30000lx)
07-07-01 = Occupancy Sensor
07-08-01 = Light Sensor 0lx to 510lx, Temperature 0°C to +51°C and Occupancy
07-08-02 = Light Sensor 0lx to 1020lx, Temperature 0°C to +51°C and Occupancy
07-08-03 = Light Sensor 0lx to 1530lx, Temperature -30°C to +50°C and Occupancy
07-09-04 = Humidity, CO2, Temperature Sensor
07-10-01 = Temperature Sensor; Set Point, Fan Speed and Occupancy Control
07-10-02 = Temperature Sensor; Set Point, Fan Speed and Day/Night Control
07-10-03 = Temperature Sensor; Set Point Control
07-10-04 = Temperature Sensor; Set Point and Fan Speed Control
07-10-05 = Temperature Sensor; Set Point and Occupancy Control
07-10-06 = Temperature Sensor; Set Point and Day/Night Control
07-10-07 = Temperature Sensor; Set Point and Fan Speed Control
07-10-08 = Temperature Sensor; Fan Speed Control
07-10-09 = Temperature Sensor; Fan Speed and Day/Night Control
07-10-10 = Temperature and Humidity Sensor; Set Point and Occupancy Control
07-10-11 = Temperature and Humidity Sensor; Set Point and Day/Night Control
07-10-12 = Temperature and Humidity Sensor; Set Point Control
07-10-13 = Temperature and Humidity Sensor; Occupancy Control
07-10-14 = Temperature and Humidity Sensor; Day/Night Control
07-30-01 = Single Input Contact, Battery Monitor
07-30-02 = Single Input Contact
On screenshot 1, I find it strange that you have value 38? When I set my dimmingvalue to 0% the value for 1/1/5 is "35324169", and for instance 27% "33554697". (100% gives "35324169") I never had this low number 38.
What happens if you set the group address 1/1/5 to any of those values manually? (just to verify that your light/dimmer/actuator accepts different values)
I control 13 actuators as we speak using the procedure above. (So it should work, I was not just lucky )