Match DALI Group Levels

Discussion in 'C-Bus Wired Hardware' started by Ks04, May 19, 2020.

  1. Ks04

    Ks04

    Joined:
    Dec 28, 2019
    Messages:
    27
    Likes Received:
    3
    Hi All,

    So in my setup I'm using DALI for all the Lights, interfaced with a Dali Gateway.

    What I want to achieve is when I change the level of a Dali Group (which is mapped to a c-bus group), the individual dali channel level follows that group level. E.G. If I increase the Dali Group "All Lights", the Individual lights which are part of that group, should follow. (That way i don't have to turn a light "on" to turn it off).

    I have a PAC which i can use to build some logic - What I'm conscious of is flooding the DALI network with confusing messages and it being even more painful. I'm guessing the best way is to put a 4second delay on the 'Once' logic so that the individual channels follow only once the current even is completed. Though this seems a little crude.

    Or is there a way i can update the level- without actually sending the level to the DALI gateway?

    Let me know if anyone has had any clever ways to deal with this. Noting that C-Bus scenes to control multiple DALI lights somewhat sucked.
     
    Ks04, May 19, 2020
    #1
    1. Advertisements

  2. Ks04

    DGF

    Joined:
    Apr 28, 2020
    Messages:
    6
    Likes Received:
    2
    Did you set the dali gateway way to use the lighting application or are you using the dali application?
    I do what you mention without any logic using the lighting application (If I understand you correctly).
     
    DGF, May 22, 2020
    #2
    1. Advertisements

  3. Ks04

    Ks04

    Joined:
    Dec 28, 2019
    Messages:
    27
    Likes Received:
    3
    I'm using the lighting application with the gateway.
    Effectively I'm trying to sync multiple group levels.. let me know your secret.
     
    Ks04, May 23, 2020
    #3
  4. Ks04

    Wonkey

    Joined:
    Aug 3, 2004
    Messages:
    223
    Likes Received:
    16
    Location:
    Adelaide
    You can do what you explain with out logic
    Have you programmed you DALI ECGs to be part of a group.
    Each DALI ECGs has
    A Unique short address
    16 DALI groups it can be part of
    16 scene levels it can go to
    the C- Bus Group addresses can be mapped to these.
    Results is that if you map a DALI group to a C-Bus group All the DALI lights in that group respond together.
    So if your stuff aint working and reading what you say I presume that you have not programmed your DALI ECGs groups or mapped them to a C- Bus group
    It may be that you have only mapped the Short Addresses hence controlling one light with one C-Bus Group Address
    Colin

    :
     
    Wonkey, May 23, 2020
    #4
  5. Ks04

    DGF

    Joined:
    Apr 28, 2020
    Messages:
    6
    Likes Received:
    2
    Colin has answered exactly what I was suggesting. Thanks Colin.
     
    DGF, May 23, 2020
    #5
  6. Ks04

    Ks04

    Joined:
    Dec 28, 2019
    Messages:
    27
    Likes Received:
    3
    Ah- So I have it working this way already. What I'm trying to achieve is:
    C-Bus Group 1 controls DALI Group 1
    Dali Group 1 has 4 lights - Assigned to C-Bus Groups 2, 3, 4 and 5.

    If I bring up C-Bus Group 1, the lights assigned to c-bus groups 2,3,4 and 5 all come on, however the level of those individual groups all remains at 0%. I want to make it so if C-Bus Group 1 = 100%, Groups 2,3,4 & 5 also = 100%

    Hopefully that makes more sense...
     
    Ks04, May 23, 2020
    #6
  7. Ks04

    DGF

    Joined:
    Apr 28, 2020
    Messages:
    6
    Likes Received:
    2
    As you can see in the attached picture, the kitchen dali lights A.36,A.37,A38,A33 are all part of the same dali group #9 and mapped in the dali gateway to a single c-bus group address
     

    Attached Files:

    DGF, May 23, 2020
    #7
  8. Ks04

    Wonkey

    Joined:
    Aug 3, 2004
    Messages:
    223
    Likes Received:
    16
    Location:
    Adelaide
    Wonkey, May 23, 2020
    #8
  9. Ks04

    Ks04

    Joined:
    Dec 28, 2019
    Messages:
    27
    Likes Received:
    3
    Ks04, May 23, 2020
    #9
  10. Ks04

    Wonkey

    Joined:
    Aug 3, 2004
    Messages:
    223
    Likes Received:
    16
    Location:
    Adelaide
    Sounds like a good plan, share your logic or ask for help, between us all we may come up with a good solution for you.
     
    Wonkey, May 25, 2020
    #10
  11. Ks04

    Ks04

    Joined:
    Dec 28, 2019
    Messages:
    27
    Likes Received:
    3
    So my attempt at programming this logic was short lived...

    What's the best way to detect "On Level Change" - at the moment I'm thinking along the lines of:
    Code:
    Once
    (GetLightingLevel("Dali Broadcast") > 0%) then
    Will this trigger every time it is changed above 0%?

    My next stump was how do I set the group level to match another group level? Effectively I want to be able to say SetLightingLevel("LX Group - Lounge" = "Dali Broadcast")

    Pointers greatly appreciated!
     
    Ks04, Jun 7, 2020
    #11
  12. Ks04

    Ashley

    Joined:
    Dec 1, 2005
    Messages:
    1,158
    Likes Received:
    119
    Location:
    Adelaide, Australia
    No. It needs to go back to 0% before it can trigger again. Try then HasChanged function.

    Use TrackGroup
     
    Ashley, Jun 7, 2020
    #12
  13. Ks04

    Ks04

    Joined:
    Dec 28, 2019
    Messages:
    27
    Likes Received:
    3
    Ok - That made things super easy... It didn't seem to like having a Delay so I scrapped that concept - seems to work as expected. When the broadcast level changes, all the groups follow... then all the groups can be changed independent of that broadcast level.

    Code:
    {Match Dali Levels on Broadcast Change}
    if HasChanged(GetLightingLevel("Dali Broadcast")) then
    begin
    TrackGroup(254, 56, "Dali Broadcast", "LX Group - Lounge");
    TrackGroup(254, 56, "Dali Broadcast", "LX Group - Entrace");
    TrackGroup(254, 56, "Dali Broadcast", "LX Group - Kitchen All");
    TrackGroup(254, 56, "Dali Broadcast", "LX Group - Study");
    TrackGroup(254, 56, "Dali Broadcast", "LX Group - Entrance");
    end;
    
    {Ensure Broadcast Level is 0 when all LX Groups are off}
    
    once (GetLightingState("LX Group - Entrance") = OFF) and
         (GetLightingState("LX Group - Kitchen All") = OFF) and
         (GetLightingState("LX Group - Kitchen Bench") = OFF) and
         (GetLightingState("LX Group - Kitchen Hall") = OFF) and
         (GetLightingState("LX Group - Kitchen Room") = OFF) and
         (GetLightingState("LX Group - Lounge") = OFF) and
         (GetLightingState("LX Group - Study") = OFF) then
    begin
      SetLightingState("Dali Broadcast", OFF);
    end;
    
     
    Ks04, Jun 7, 2020
    #13
  14. Ks04

    Ashley

    Joined:
    Dec 1, 2005
    Messages:
    1,158
    Likes Received:
    119
    Location:
    Adelaide, Australia
    To test if a number of groups are off, create a scene with their values set to 0. Then just use the sceneIsSet function.

    i.e. once sceneIsSet("Your scene") then ...
     
    Ashley, Jun 7, 2020
    #14
    1. Advertisements

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.