No internet connection
  1. Home
  2. How to

Macro "Show on Streamdeck": is there a way to do this name based (instead of hardware based)?

By Matthias Pasedag @Matthias_Pasedag
    2021-12-10 10:55:33.317Z

    While using my decks in more than one account I just explored the identification via serial number in the code of the Macro "Show on Streamdeck".

    Is there any way to select the decks based on the given name from SF Stream Deck setup?
    My hope was to just call every accounts Stream Deck "Deck 1" and then I could use every pre configured "Show on Streamdeck" macro in every account.

    For background: the reason for my approach is that we have different customer dependent main decks triggered by the PT session names. Some functions change for the different templates others stay the same. So I was looking for a smart way to keep maintenance simple for all three accounts. But maybe I went down the wrong route...
    Right now I put the linked decks directly on buttons, which works fine but I need to take care of each button labeling in every deck manually and can't combine the command with other commands.

    @chrscheuer

    Solved in post #2, click to view
    • 2 replies
    1. Hi Matthias,

      Thanks for posting here.

      You're right, SoundFlow's visual features to select Stream Decks depend on the serial numbers of the hardware units. It's designed this way so that renaming a device won't mess up all your bindings.

      In your case, you could achieve what you need with a little bit of code.
      You'd need to run a script to show a Deck instead of calling the decks directly, but that's a workaround that's often used for advanced deck showing scenarios, so this is all best practices.

      sf.decks.get('INSERTDECKIDHERE').open({
          device: sf.devices.streamDeck.getDeviceByName('Stream Deck 1'),
      });
      

      Where it says INSERTDECKIDHERE you need to insert the deck's command ID. The easiest way to do this is to select your Deck in the command list, then hit Cmd+C, then open your script, place the cursor where you need to insert the ID and hit Cmd+V.

      You'll end up with something like this:

      sf.decks.get('package:ckmns8hct0006c010srx9uu1y').open({
          device: sf.devices.streamDeck.getDeviceByName('Stream Deck 1'),
      });
      
      ReplySolution
      1. Matthias Pasedag @Matthias_Pasedag
          2021-12-10 11:59:04.166Z

          Hi Christian,

          great! I'll try that. Thanks for the fast reply! :)