Alternative source selection on Halo – BLI combination

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #1411
    Carolpa
    BRONZE Member
    • Topics Started 3
    • Total Posts 32

    Alternative for choosing sources on a Halo by using one Button and the Wheel_turned.
    Select device by turning the wheel anti-clockwise
    Select the source by turning the wheel clockwise

    Press twice the button to select/confirm the selection.

    Two macros are needed; one for the event “Wheel_turned” the other for “Button_pressed” for the same Halo button.
    The matrices in both Macros must exactly the same.

    • Macro 1.

    Event: Wheel_turned for a Halo Button (with “your_Halo_button_IDnumber”)

    function(event, engine)
    local Ea=event.area()
    local Ez=event.zone()

    –Resource selectButton as String
    local selectButton_query = engine.query(Ea..”/”..Ez..”/VARIABLE/selectButton”)
    local sButton = selectButton_query[1].get_string(“VALUE”)

    –Resource SourceNo as Integer
    local source_query=engine.query(Ea..”/”..Ez..”/VARIABLE/SourceNo”)
    local sourceNr = source_query[1].get_number(“VALUE”)
    if sourceNr==nil then
    sourceNr=1
    end
    local device_query=engine.query(“Upstairs/Study/VARIABLE/DeviceNo”)
    local deviceNr = device_query[1].get_number(“VALUE”)
    if deviceNr==nil then
    deviceNr=1
    end
    if deviceNr==0 then
    deviceNr=1
    end

    local haloName=“you”r_Halo_name_as_string
    local haloID=“your_Halo_button_IDnumber_as_string”

    local direction
    local device
    local deviceName
    local deviceMax=5 –set to number of devices programmed

    local source
    local sourceMax=14 –set to number of sources programmed
    local sourceName
    local sourceID
    local info
    local bs9000cd

    local a={i=sourceMax, j=4}
    local b={x=deviceMax, y=4}

    –{“Halo source name”, source, origin, x} below are examples change to your system
    a[0]={“exit”,”exit”,””,0}
    a[1]={“A6 Music”,”MUSIC”, “255aaaaa”,0}
    a[2]={“A6 TuneIN”,”TUNEIN”, “255aaaaa”,0}
    a[3]={“BS3000 cd”,”CD”, “240bbbbb”,0}
    a[4]={“Beogram 4000″,”LINE IN”, “240bbbbb”,0}
    a[5]={“BS7000 cd”,”CD”, “272ccccc”}
    a[6]={“BS7000 ph”,”NET RADIO”, “272ccccc”,0}
    a[7]={“BeoCenter2cd”,”CD”, “231ddddd”,0}
    a[8]={“BS9000-cd1″,”CD”, “238eeeee”,1}
    a[9]={“BS9000-cd2″,”CD”, “238eeeee”,2}
    a[10]={“BS9000-cd3″,”CD”, “238eeeee”,3}
    a[11]={“BS9000-cd4″,”CD”, “238eeeee”,4}
    a[12]={“BS9000-cd5″,”CD”, “238eeeee”,5}
    a[13]={“BS9000-cd6″,”CD”, “238eeeee”,6}
    a[14]={“BS5 Encore”,”LINE IN”, “238eeeee”,0}
    — x = cd nummer in case of BS9000 (BLC must be set as ASlave);

    –{“Device Name”, Name on Halo, Area, Zone} note: device areas and device zones are as defined in the BLI
    b[1]={“BeoPlay A6”, “BeoPlay A6”,”your_device_Area”, ”your_device_Zone”}
    b[2]={“BeoSound 35”, “BeoSound 35″,”your_device_Area”,”your_device_Zone”}
    b[3]={“BS Essence – Bath”, “BS Essence Bath”,”your_device_Area”,”your_device_Zone”}
    b[4]={“BS Essence – Bed”, “BS Essence Bed”,”your_device_Area”,”your_device_Zone”}
    b[5]={“BeoSound Shape”, “BS Shape”,”your_device_Area”,”your_device_Zone”}

     

    if event.parameters()[“OFFSET”] then
    if tonumber(event.parameters()[“OFFSET”])>=1 then
    direction= true
    else
    direction=false
    end

    if direction then
    sourceNr = sourceNr + 1
    if sourceNr==sourceMax+1 then
    sourceNr=0
    end
    if sourceNr==0 then
    sourceName=a[sourceNr][1]
    engine.fire(Ea..”/”..Ez..”/VARIABLE/selectButton/SET?VALUE=exitS”)
    else
    engine.fire(Ea..”/”..Ez..”/VARIABLE/selectButton/SET?VALUE=startS”)
    sourceName=a[sourceNr][1]
    source=a[sourceNr][2]
    sourceID=a[sourceNr][3]
    end
    info=b[deviceNr][2]
    engine.fire(Ea..”/”..Ez..”/VARIABLE/SourceNo/SET?VALUE=”..tostring(sourceNr))

    engine.fire(Ea..”/”..Ez..”/Halo remote/”..haloName..”/SET_TITLE?BUTTON=”..haloID..”&TITLE=”..tostring(sourceName))
    engine.fire(Ea..”/”..Ez..”/Halo remote/”..haloName..”/SET_SUBTITLE?BUTTON=”..haloID..”&SUBTITLE=”..tostring(info))
    engine.fire(Ea..”/”..Ez..”/Halo remote/”..haloName..”/SET_WHEEL_VALUE?BUTTON=”..haloID..”&VALUE=”..tostring(math.floor(sourceNr*100/sourceMax)))
    else
    deviceNr = deviceNr + 1
    if deviceNr==deviceMax+1 then
    deviceNr=1
    end
    device=b[deviceNr][1]
    deviceName=b[deviceNr][2]
    info=a[sourceNr][1]
    engine.fire(Ea..”/”..Ez..”/VARIABLE/DeviceNo/SET?VALUE=”..tostring(deviceNr))
    engine.fire(Ea..”/”..Ez..”/Halo remote/”..haloName..”/SET_TITLE?BUTTON=”..haloID..”&TITLE=”..tostring(deviceName))
    engine.fire(Ea..”/”..Ez..”/Halo remote/”..haloName..”/SET_SUBTITLE?BUTTON=”..haloID..”&SUBTITLE=”..tostring(info))
    engine.fire(Ea..”/”..Ez..”/Halo remote/”..haloName..”/SET_WHEEL_VALUE?BUTTON=”..haloID..”&VALUE=”..tostring(math.floor(deviceNr*100/deviceMax)))
    end
    end
    end

    • Macro 2

    Event: Button_pressed for the same Halo Button

    function(event, engine)
    local Ea=event.area()
    local Ez=event.zone()

    –Resource selectButton as String
    local selectButton_query = engine.query(Ea..”/”..Ez..”/VARIABLE/selectButton”)
    local sButton = selectButton_query[1].get_string(“VALUE”)

    –Resource SourceNo as Integer
    local sourcenr_query=engine.query(Ea..”/”..Ez..”/VARIABLE/SourceNo”)
    local sourceNr = sourcenr_query[1].get_number(“VALUE”)
    if sourceNr==nil then
    sourceNr=1
    end

    local devicenr_query=engine.query(“Upstairs/Study/VARIABLE/DeviceNo”)
    local deviceNr = devicenr_query[1].get_number(“VALUE”)
    if deviceNr==nil then
    deviceNr=1
    end
    if deviceNr==0 then
    deviceNr=1
    end

    local device
    local deviceName
    local Da
    local Dz
    local source
    local sourceMax=14 –set to number of sources programmed
    local deviceMax=5. –set to number of devices programmed

    local sourceName
    local info
    local bs9000cd
    local a={i=sourceMax, j=4}
    local b={x=deviceMax, y=4}

    local haloName=“you”r_Halo_name_as_string
    local haloID=“your_Halo_button_IDnumber_as_string”
    local tst

    –{“Halo source name”, source, origin, x} below are examples change to your system
    a[0]={“exit”,”exit”,””,0}
    a[1]={“A6 Music”,”MUSIC”, “255aaaaa”,0}
    a[2]={“A6 TuneIN”,”TUNEIN”, “255aaaaa”,0}
    a[3]={“BS3000 cd”,”CD”, “240bbbbb”,0}
    a[4]={“Beogram 4000″,”LINE IN”, “240bbbbb”,0}
    a[5]={“BS7000 cd”,”CD”, “272ccccc”}
    a[6]={“BS7000 ph”,”NET RADIO”, “272ccccc”,0}
    a[7]={“BeoCenter2cd”,”CD”, “231ddddd”,0}
    a[8]={“BS9000-cd1″,”CD”, “238eeeee”,1}
    a[9]={“BS9000-cd2″,”CD”, “238eeeee”,2}
    a[10]={“BS9000-cd3″,”CD”, “238eeeee”,3}
    a[11]={“BS9000-cd4″,”CD”, “238eeeee”,4}
    a[12]={“BS9000-cd5″,”CD”, “238eeeee”,5}
    a[13]={“BS9000-cd6″,”CD”, “238eeeee”,6}
    a[14]={“BS5 Encore”,”LINE IN”, “238eeeee”,0}
    — x = cd nummer in case of BS9000 (BLC must be set as ASlave);

    –{“Device Name”, Name on Halo, Area, Zone} note: device areas and device zones are as defined in the BLI
    b[1]={“BeoPlay A6”, “BeoPlay A6”,”your_device_Area”, ”your_device_Zone”}
    b[2]={“BeoSound 35”, “BeoSound 35″,”your_device_Area”,”your_device_Zone”}
    b[3]={“BS Essence – Bath”, “BS Essence Bath”,”your_device_Area”,”your_device_Zone”}
    b[4]={“BS Essence – Bed”, “BS Essence Bed”,”your_device_Area”,”your_device_Zone”}
    b[5]={“BeoSound Shape”, “BS Shape”,”your_device_Area”,”your_device_Zone”}

    if sButton==”exitS” then
    goto exit
    else
    if sButton==”playS” then
    Da=b[deviceNr][3]
    Dz=b[deviceNr][4]
    device=b[deviceNr][1]
    deviceName=b[deviceNr][2]
    sourceID=a[sourceNr][3]
    source=a[sourceNr][2]
    nr=a[sourceNr][4]
    bs9000cd=sourceID..source — ID Cd of BS9000
    tst=Da..”/”..Dz..”/AV renderer/”..device..”/Select source?Connector=&Origin=”..sourceID..”&Source Type=”..source
    engine.fire(Ea..”/”..Ez..”/Halo remote/”..haloName..”/SET_TITLE?BUTTON=”..haloID..”&TITLE=”..tostring(deviceName))
    engine.fire(Ea..”/”..Ez..”/Halo remote/”..haloName..”/SET_SUBTITLE?BUTTON=”..haloID..”&SUBTITLE=”..tostring(source))
    engine.fire(tst)
    – the “origin” of the BS9000 BLC must be set in line below correctly (note BLC programmed as ASlave)
    if bs9000cd==”238eeeeeCD” then
    engine.fire(“*/*/AV renderer/BS9000 BLC/Send digit?Digit=”..tostring(nr))
    end
    sButton=”exitS”
    else
    deviceName=b[deviceNr][2]
    sourceName=a[sourceNr][1]
    engine.fire(Ea..”/”..Ez..”/VARIABLE/selectButton/SET?VALUE=playS”)
    engine.fire(Ea..”/”..Ez..”/Halo remote/”..haloName..”/SET_TITLE?BUTTON=”..haloID..”&TITLE=”..tostring(deviceName))
    engine.fire(Ea..”/”..Ez..”/Halo remote/”..haloName..”/SET_SUBTITLE?BUTTON=”..haloID..”&SUBTITLE=”..tostring(sourceName))
    end
    end

    ::exit::
    if sButton==”exitS” then
    sourceName=”B&o Sources”
    engine.fire(Ea..”/”..Ez..”/Halo remote/”..haloName..”/SET_TITLE?BUTTON=”..haloID..”&TITLE=”..tostring(sourceName))
    info=”Turn to Select”
    engine.fire(Ea..”/”..Ez..”/Halo remote/”..haloName..”/SET_SUBTITLE?BUTTON=”..haloID..”&SUBTITLE=”..tostring(info))
    engine.fire(Ea..”/”..Ez..”/VARIABLE/selectButton/SET?VALUE=startS”)
    end
    end

    • This topic was modified 3 months, 1 week ago by Carolpa.
    #1605
    Carolpa
    BRONZE Member
    • Topics Started 3
    • Total Posts 32

    for the interested………
    I got similar Macros for Link/Join devices and for setting devices to Standby.

    Let it know and I will make them accessible.

    #1607
    AnalogPlanet
    BRONZE Member
    • Topics Started 0
    • Total Posts 2

    Amazing stuff Carolpa! Damn I had to postpone BLI acquisition for couple of months, so envious about all cool things you can do with the Halo now. 🙂 Mine still in cupboard waiting for the installation. :/

    #1656
    Beogogo
    BRONZE Member
    • Topics Started 2
    • Total Posts 9

    Trying to find more info on macros. I had no idea it was programmable. Would someone please direct me to more info on this?

    #1660
    Carolpa
    BRONZE Member
    • Topics Started 3
    • Total Posts 32

    you need:

    1. Beoliving blackbox + sw upgrade to Pro (see website of Khimo)
    2. Halo (of course)

    this will open doors to extended home automation

Viewing 5 posts - 1 through 5 (of 5 total)
  • You must be logged in to reply to this topic.