Multiple fan zones from one Saturn 5 button DLT

Discussion in 'C-Bus Toolkit and C-Gate Software' started by Damaxx, Feb 13, 2012.

  1. Damaxx

    Damaxx

    Joined:
    May 12, 2008
    Messages:
    226
    Likes Received:
    47
    I have been trying to program two seperate fan controllers a couple of bedrooms onto 2 buttons on a Saturn 5 gang DLT but the trigger group always reverts to the last key programmed? :confused:

    They are both set to Master and have indpendant trigger groups and action selectors but I cannot get it to work.

    Is it possible or should I be using another method?
     
    Damaxx, Feb 13, 2012
    #1
  2. Damaxx

    Newman

    Joined:
    Aug 3, 2004
    Messages:
    2,203
    Likes Received:
    0
    Location:
    Adelaide, South Australia
    The DLT, when it's buttons are configured as Fan Speed Cycle buttons, can only control a single Trigger Group. This is a limitation of the unit. It doesn't matter whether the unit is setting Scenes or controlling Fans, the unit can only control and receive labels for a single Trigger Group.

    Toolkit will prevent you from saving a configuration where 2 Master Fan Controllers use the same Trigger Group but different Action Selectors. This is because all the indicator status and DLT labels would stomp all over each other if they were allowed to be configured this way.

    If you simply must control more than 1 Sweep Fan Relay unit from a single DLT you have a few options, with varying degrees of implementation difficulty and practical performance:
    • Configure the button controlling the second fan as a dimmer and assign it to the lighting group for the fan. As you press and hold the button the level of the group will go up and down. This will cross the thresholds associated with the different speeds in the Fan Relay, setting the various speeds. Labels won't update. Indicator status will be correct. Implementation effort is low.
    • Configure the DLT to use a Secondary Application of Trigger Control. Assign the button that you wish to use for the second Fan Relay to the Secondary Application. Set the Trigger Group to match the second Fan Relay. Configure the button as a Recall. Set a Recall level so that it matches the Action Selector value. Labels will not update (and require pre-labelling using some other group first). Indicator status will be incorrect. Implementation effort is low.
    • Configure multiple buttons on the DLT to set the individual speeds. You may only need off, low and medium and this can be done by specifying the buttons as Ramp Off, Recall 1 (1%) and Recall 2 (34%) respectively. Labels don't need to be updated. Indicator status will be correct. Implementation effort is low.
    • Write logic for a logic-capable device that receives a trigger (defined by you) from the DLT and converts it to the Trigger Group and Action Selector of the second Sweep Fan relay. With a little time and perseverance getting the logic right, both the label can be updated and the indicator status shown as correct. Implementation effort is high.

    There's other threads here, here and here that explain more about the Sweep Fan Relay unit's operation.
     
    Newman, Feb 13, 2012
    #2
  3. Damaxx

    Damaxx

    Joined:
    May 12, 2008
    Messages:
    226
    Likes Received:
    47
    Thanks for the full explination Newman. Very much appreciated.

    I had read a couple of those threads but was still in the dark.
    Will give the logic programming a go so I can get label change and full indication of status.
     
    Damaxx, Feb 13, 2012
    #3
  4. Damaxx

    Newman

    Joined:
    Aug 3, 2004
    Messages:
    2,203
    Likes Received:
    0
    Location:
    Adelaide, South Australia
    Here's the way I did it using the logic solution. In addition to the logic below this example also requires the following configuration:

    • An additional purely logical group address needs to be created called "Living Room Fan Logical".
    • The key input unit configured to be a Recall of 1% on the "Living Room Fan Logical" group address.
    • For better aesthetics I disable the Key Function Indicator on the DLT to hide the slider.
    • The Sweep Fan Relay is configured to use the "Living Room Fan" lighting group, the trigger group (on application $CA) is called "Living Room Fan" and the action selector for that trigger group is called "Cycle Living Room Fan".
    The only down side of this approach is it takes a second or two to have the label and indicator update, as there are several 'links in the chain' and it takes a couple passes by the logic engine to complete the sequence of events.

    Code:
    {
    DLT's only support 1 Trigger Group. This is a problem because I want to have
    2 Ceiling Fans per DLT for some DLT's. So, the key on the DLT recalls 1%
    on a logical group. This logic module then maps that to the Trigger Group for
    each fan resulting in the speed advance. When the respective Fan Controller puts
    the level for the Fan group out on the bus, this logic module copies that across
    to the logical group for that fan so that the indicator and slider on the DLT
    shows the correct state and position respectively.
    }
    
    {
    Using if statement, not once statement, to avoid the possibility of being locked out 
    when multiple 1% commands are received within a single logic engine cycle.
    }
    if (GetLightingLevel("Living Room Fan Logical") = 1%) then
    begin
      //arbitrary level so that this expression is execulted only once
      // - non-zero so that the key indicator remains lit
      // - non-1% so that this function is executed only once
      SetLightingLevel("Living Room Fan Logical", 2%,0); 
      SetTriggerLevel("Living Room Fan", "Cycle Living Room Fan");
    end;
    
    once (GetLightingLevel("Living Room Fan") = 0%) then
    begin
    //Label Logical Group appropriately & copy the fan speed across to the logical group
      SetStringIBSystemIO("Label Group Text", 254, "Lighting", "Living Room Fan Logical", 0, 'Lvg Fan 0');
      SetLightingLevel("Living Room Fan Logical", 0%,0);
    end;
    
    once (GetLightingLevel("Living Room Fan") = 34%) then
    begin
    //Label Logical Group appropriately & copy the fan speed across to the logical group
      SetStringIBSystemIO("Label Group Text", 254, "Lighting", "Living Room Fan Logical", 0, 'Lvg Fan 1');
      SetLightingLevel("Living Room Fan Logical", 34%,0);
    end;
    
    once (GetLightingLevel("Living Room Fan") = 67%) then
    begin
    //Label Logical Group appropriately & copy the fan speed across to the logical group
      SetStringIBSystemIO("Label Group Text", 254, "Lighting", "Living Room Fan Logical", 0, 'Lvg Fan 2');
      SetLightingLevel("Living Room Fan Logical", 67%,0);
    end;
    
    once (GetLightingLevel("Living Room Fan") = 100%) then
    begin
    //Label Logical Group appropriately & copy the fan speed across to the logical group
      SetStringIBSystemIO("Label Group Text", 254, "Lighting", "Living Room Fan Logical", 0, 'Lvg Fan 3');
      SetLightingLevel("Living Room Fan Logical", 100%,0);
    end;
     
    Newman, Feb 14, 2012
    #4
  5. Damaxx

    Damaxx

    Joined:
    May 12, 2008
    Messages:
    226
    Likes Received:
    47
    WOW!!! :eek::eek::eek:

    Thank you again for taking the time to up this for me Newman! Very much appreciated. I will add this to my Homegate logic right away.

    Is that three beers I owe you now?? :D
     
    Damaxx, Feb 15, 2012
    #5
  6. Damaxx

    Newman

    Joined:
    Aug 3, 2004
    Messages:
    2,203
    Likes Received:
    0
    Location:
    Adelaide, South Australia
    Thanks for the kudos. I still marvel at the neat and clever things that can be done with C-Bus with a little time and creativity.

    One minor improvement to the above is that I used the same tag name for the Trigger Group on the Trigger Control Application and the Lighting Group on the Lighting Application. Unique names would reduce the risk of confusion... but I figure you're smart enough to figure that one out.
     
    Last edited by a moderator: Feb 15, 2012
    Newman, Feb 15, 2012
    #6
  7. Damaxx

    Kurt

    Joined:
    Feb 2, 2008
    Messages:
    21
    Likes Received:
    0
    Location:
    Darwin NT
    Newman - once again thankyou for posting up info like this :)

    Took me a while to work through the groups in toolkit and trying to keep piced happy, but i eventually got there.

    I was going to ask what i was meant to set the button on the DLT to - but going back through the fan button arrangement on the CTC had that fixed.

    Only thing i have to question at my end is, i am sure i disabled the display indicator slider bar ( so that the labels should show?) but it seems to be on there (anywho), on this when i press the button to get low speed - i get no change of the indicator status - it stays at off, untill medium is selected and then it changes - this also happens on all but 1 of the indicator status icons on the CTC too ( i have tried to copy and paste the working icon and change the others but this does not change the fact the low indicator does not work...for me ) From my semi lack of info - any ideas ?? ;)

    The best thing is the other DLT which also controls the same groups as in the logic setup reflects all changes and the fan speed setup on that one works as per normal :D
     
    Kurt, Feb 27, 2012
    #7
  8. Damaxx

    Newman

    Joined:
    Aug 3, 2004
    Messages:
    2,203
    Likes Received:
    0
    Location:
    Adelaide, South Australia
    If you are using the code I posted earlier then you need to configure the button on the switch to use a Recall of 1% and to use the 'Living Room Fan Logical' lighting application group address.

    This cannot be disabled in the database view. You need to open the real unit UI, navigate to the Key Functions tab and set the KFI for that particular key to be 'Blank'.

    I have seen it where the Sweep Fan Relay was not configured with precisely the correct level for the low/med threshold value. If the value that is transmitted back onto the network by the Sweep Fan Relay isn't the default one then the logic that processes the second half of the sequence that pushes the state change out onto C-Bus, i.e. the label and the level of the logical group, won't see the level it's looking for and the level and label won't update.

    The issue arises because Toolkit is required to display a percentage value for the group for good human readability whereas the C-Bus hardware works on a hexadecimal value. Percentages are 0 - 100% and C-Bus values are 0-255 (0x00 - 0xFF). In this specific instance, this means that when Toolkit loads the low/med switching threshold from the Sweep Fan Relay it will display levels of 85, 86 and 87 (out of 255) all as 34%. Now the precise hexadecimal value for 34% is 86/255 and this is what the logic engine is expecting. If the unit has a value of either 85 or 87 stored for the switching threshold it will look like it's correct when you look at the switching thresholds in Toolkit but it will in fact be incorrect.

    Fixing this issue is, fortunately, easy.
    - The foolproof option is to re-set the configuration of your Sweep Fan Relay unit back to factory defaults. Then re-enter your configuration settings for the unit.
    - The other option is to change the Low/Med threshold to put it back to the nominal value. Open the Sweep Fan Relay UI in Toolkit, go to the Fan Speeds & Labels tab, click the Edit Thresholds button and move the Low/Med threshold slider to some value other than 34%, e.g. 33%. Click OK and save the configuration to the unit. Then re-open the UI, change the slider position back to 34% and save it back to the unit. This will put the Low/Med threshold back to the nominal value for 34%.

    If that doesn't fix the issue then it means that you haven't implemented the solution above correctly.
     
    Last edited by a moderator: Feb 28, 2012
    Newman, Feb 28, 2012
    #8
  9. Damaxx

    Kurt

    Joined:
    Feb 2, 2008
    Messages:
    21
    Likes Received:
    0
    Location:
    Darwin NT
    First of all i should say i do really appreciate all the time and help that is offered on this site, without all the effort put in by people like you newman, i would be fracked.

    Where i work i have no one to teach me or to ask these types of questions, the people that could ask up here in the industry are our 'competition' ( as they put it) and not really forth comming in help.
    And as simple as logic sounds to most of you, and i can for the most part follow the coding through once its done - it does my head in trying to get things to work.


    Had done that but needed to set the button to preset 1 under function to get it to work ( that is what i meant by looked back at the ctc display and used the same function as the fan button in my current project).


    I managed, or thought i did this the first time, but all i get now is the whole KFI setup greyed out with 'setup only available on Physical Units' ( and this is while i am attched through toolkit with both networks running and scanned.)
    I will re-try to do this tomorrow morning and see if i am doing something wrong.

    Ill have a look at this - it is possible that i had played in a relay or 2, either way i will double check


    Once again thankyou for your time and knowledge.
     
    Kurt, Feb 28, 2012
    #9
  10. Damaxx

    Kurt

    Joined:
    Feb 2, 2008
    Messages:
    21
    Likes Received:
    0
    Location:
    Darwin NT
    Turns out i was using the top half of the window in toolkit ( the database as you said) and not the bottom window for the actual network - never realised this made a difference till today.

    Tried a few things like changing the values on the status page in teh CTC and this made no difference till i changed to custom value and min 84 and max 86 - then the low icon started to work on the CTC.
    After factory re-setting the fan realy, and setting it up again i changed the status in the ctc back to preset, and it still did not work. So as per your last sugestion i changed the default value from 34% - 28% saved it, and then changed it back to 34% again - this fixed the problem on all 9 fan groups. Still fairly sure i did not attempt to change all 9 groups off 34%, maybe 1 or 2, but either way thats fixed.

    Last issue of the labels not updating through the logic was fixed by realising that the 254 reflected the network it is on, and as i have 2 joined by a bridge changed it to 253 and now all works perfectly.

    Cheers for your help.;)
     
    Kurt, Feb 29, 2012
    #10
  11. Damaxx

    Newman

    Joined:
    Aug 3, 2004
    Messages:
    2,203
    Likes Received:
    0
    Location:
    Adelaide, South Australia
    I suspect that they were mis-programmed in the factory and that the threshold programmed into the units was out by a value of 1. Fortunately the fix is easy and you'll know for next time.
     
    Newman, Mar 1, 2012
    #11
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.