Alternative source selection on Halo – BLI combination

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

      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

      #1605
      Carolpa
      BRONZE Member
        • Topics Started 6
        • Total Posts 247

        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 5
            • Total Posts 22

            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 6
              • Total Posts 247

              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.