27.09.2017, 10:15 (This post was last modified: 27.09.2017, 10:19 by domotiqa.)
Hello,
I need to handle a 6 bytes value from KNX CIAT heating actuator (3 setpoint in one variable confort/eco/standby).
Then to put it to Bacnet for comptible Bacnet device.
I want to use Spacelynk for that (Schneider project), but this datatype missed !
then put decoded 6 byte value to 3 different 2 bytes value (in new varaible) and to check export for bacnet.
However, how can I do from bacnet, then reencode to 6 bytes....
-----------
FRANCE SMARTHOME & SMARTBUILDING INTEGRATION
SE ECO EXPERT
27.09.2017, 18:02 (This post was last modified: 27.09.2017, 20:53 by Erwin van der Zwart.)
Hi,
Create a 255 byte object (1/1/1 in this sample) and link it to the address of your 6 byte value that you use in the ETS and attached this script to it:
This will write the (BACnet side) changed value back to your 6 byte object. Because i added event.src you can use the same 255 byte object for incomming and outgoing telegrams and avoid triggering a loop.
Ok thank you a lot, your product still has surprise ;-))
First solution (only put the variable without process on Spacelynk)
So if I understand well I could also use the 255 byte object for my 6 bytes knx object from CIAT. Then I just put it as export (for bacnet), the high level supervision could use this variable (and process it self to separate byte) ! What I don't know is when sending on knx bus, we send 256 bytes object, is it not a problem on KNX device Ciat which is waiting for a 6 bytes value ?
Second solution:
use your script then divide in 3 variable exported in bacnet
I don't understand your trick:
This will write the (BACnet side) changed value back to your 6 byte object. Because i added event.src you can use the same 255 byte object for incomming and outgoing telegrams and avoid triggering a loop.
-----------
FRANCE SMARTHOME & SMARTBUILDING INTEGRATION
SE ECO EXPERT
28.09.2017, 10:50 (This post was last modified: 28.09.2017, 10:51 by Erwin van der Zwart.)
Hi,
1) No i checked this in the ETS monitor and the value is a 6 byte value like $0C $D2 $0C $D3 $0D $C2 and not like $00 $00 .. $0C $D2 $0C $D3 $0D $C2 so all unused bytes in the 255 bytes are not send at all, making it a valid value (in 222.100 format) for your 6 byte object.
2) Because you send the value from KNX to the 6 byte it will only repond to split it to 3 bytes when it's from KNX and not when comming from local source (not from spaceLYnk), when you update the 255 byte object by the write from BACnet action it normaly would split the values again and create a loop, now it doesn't (:
28.09.2017, 11:20 (This post was last modified: 28.09.2017, 11:20 by domotiqa.)
great,
I prefer to use the Spacelynk only as bridge without processing (for maintenance issue), and let Schneider process variable on AS automate server (used in CVC).
I have the second solution with your script as backup if it fail !!
Thank you again !
-----------
FRANCE SMARTHOME & SMARTBUILDING INTEGRATION
SE ECO EXPERT
28.09.2017, 17:55 (This post was last modified: 28.09.2017, 17:56 by Erwin van der Zwart.)
Hi,
I don't think you can do it without my script, there is no way to set the string object (or any other higher then 4 byte object) directly to the AS-P by BACnet as it only supports analog and binary values.
This means you need to use the split to the 2 byte float objects in the spaceLYnk to get them in the Automation Server...
29.09.2017, 06:16 (This post was last modified: 29.09.2017, 06:32 by Erwin van der Zwart.)
Hi,
I think we can do it with a single tag for each thermostat and a smart object structure, or with a triple tag on the object like ‘SPLIT, T1, 6B’ and ‘SPLIT, T1, SP1’ so SPLIT is event, T1 defines thermostat and 6B, SP1, SP2, SP3 defines object , i think we also can merge the 2 scripts to one that way, i will check this later (:
Then you just map different tags to 2-byte and 6-byte objects and use Erwin's conversion script. It can be simplified a bit by using event.datahex instead of using getvalue/strtohex conversion.
Looks like the import from ESF file of the 6 byte doesn't process.
Do you have idea to import all of them to 256 bytes ?
Should I create another project, put known datatype object tempory to the group adress , thenimport or do you have a trick
-----------
FRANCE SMARTHOME & SMARTBUILDING INTEGRATION
SE ECO EXPERT