Facility Control

 View Only
Expand all | Collapse all

Custom hardware panel using Elgato Stream Deck

  • 1.  Custom hardware panel using Elgato Stream Deck

    Posted 10-11-2017 18:10

    I recently set up an Elgato Stream Deck as a USB keyboard with custom buttons so now I can put a simple set of buttons in front of an operator but still have the power of Dashboard to do my tasks.

    I've set up my panel to publish to web, each button that needs it gets a trigger ID, and then I just call that button via URL in the form of:

    http://[dashboardAddress]:5800/ajax/[triggerID]

    It works really well. Just thought I'd share if anyone else is out there looking for a similar solution!

    Joseph



  • 2.  RE: Custom hardware panel using Elgato Stream Deck

    Posted 10-12-2017 02:17
    Awesome little hardware panel, just a pity it won't intgrate with XPression for playout of graphics on air...hopefully something that is made possible soon!
    #DashBoard


  • 3.  RE: Custom hardware panel using Elgato Stream Deck

    Posted 10-12-2017 04:08
    Because you can:
    -integrate this with DashBoard
    -DashBoard can control XPression.

    You should be able to integrate panels like this to control XPression. (depending upon exactly what you want it to do).

    Don't forget that through DashBoard Ross talk commands to XPression you can also trigger pretty much any XPression script that way as well.

    T.
    #DashBoard


  • 4.  RE: Custom hardware panel using Elgato Stream Deck

    Posted 10-28-2017 17:07
    Is there a straightforward way to integrate this with Dashboard? Could you give me a high level path to do this? I need a simple hardware panel to switch Carbonite Mini-Me's


    Because you can:
    -integrate this with DashBoard
    -DashBoard can control XPression.

    You should be able to integrate panels like this to control XPression. (depending upon exactly what you want it to do).

    Don't forget that through DashBoard Ross talk commands to XPression you can also trigger pretty much any XPression script that way as well.

    T.


    #DashBoard


  • 5.  RE: Custom hardware panel using Elgato Stream Deck

    Posted 10-28-2017 19:08
    I'm using my stream deck to control mini-me's. The method I used was to write custom controls on the Carbonite that do what I want and then I added dashboard buttons to call those CC's. Then the stream deck triggers those dashboard buttons. You could do it more directly than using CC's by having a dashboard button just do a rosstalk call to the Carbonite but I needed the CC's anyway.
    #DashBoard


  • 6.  RE: Custom hardware panel using Elgato Stream Deck

    Posted 10-28-2017 20:48
    Hi Roblipop,

    I would probably do this in 2 steps.

    Step 1: Create a custom panel that gives you all of the functions you need.

    Step 2: Tie those buttons/functions into your hard panel.


    For Step 1, creating your custom panel.
    I personally would use Visual Logic for this.
    Typically you would be making a set of buttons that all do one thing each, change a crosspoint, start an auto trans etc..

    To do this for Carbonite:
    Add the Carbonite in the Visual logic editor.
    To do this, in edit mode for tasks on a button in the upper left is a small green '+' button in the 'Devices & Parameters' section. Click on that and select 'Add Carbonite.


    (use the 'Create parameter' feature for the IP address and Port when you do this, that will allow you to keep the same panel and easily change the IP address of the DashBoard computer you are sending messages to).
    You will now have a Carbonite in the 'Devices & Parameters' tree.

    If you expand that node, you will find the 'API section' expanding that you will find the API commands you can drag onto your tasks, most are self explanatory.
    The 'set crosspoint' one requires you to type in the correct text for vid source and vid dest. If you click on the '?' in the upper right of the visual logic block it tells you the syntax to use.

    For step 2, linking this to a hard control panel.

    2a: Add 'GPI Triggers' to buttons in your panel.
    Typically you would put GPI triggers on a button in your panel. This means that whenever DashBoard receives a GPI trigger any Button that has the same trigger value will run it's scripts.

    To do this, on a button, in edit mode, on the 'Button Attributes' tab, put a value in 'Trigger ID' this is the GPI value to look for.

    2b: Create keyboard hotkeys that send the same GPIs.
    In the main DashBoard menu system under Window\Preferences\Keyboard Shortcuts select 'New Command'
    You are going to make a new command for every GPI that you want to trigger from a keyboard shortcut, select 'Fire GPI Trigger'.
    You will need to type Something into the Shortcut section, some key combo you will never use anywhere else, 'CTRL+ALT+M' or something like that. Hit the next button, In GPI Trigger, select the value you put onto the button. (You can leave the State empty).


    2c: You should be able to test this from your keyboard now, to verify that the keyboard shortcut is firing your buttons script and changing items on your Carbonite.

    2d: Your hard control panel needs to be configured so that when you press one of its buttons it generates that same keyboard shortcut from step 2B.

    You should now be done.

    So, recap of what is going on here.

    Hard control panel Button pushed -> Creates a keyboard button press on your computer ->
    DashBoard receives that keyboard press and generates a GPI Trigger ->
    The button on your control panel receives that GPI Trigger and runs its script ->
    That script sends a command to your Carbonite to do whatever you want.
    (It sounds more complex than it really is…).

    Let me know if you have any issues.

    All my best.

    Troy

    PS. When you are using your hard control panel, you need to make sure your Custom Panel is open in DashBoard...


    #DashBoard


  • 7.  RE: Custom hardware panel using Elgato Stream Deck

    Posted 10-28-2017 22:22
    Troy,

    Do the keyboard shortcuts work if the Dashboard panel is not in focus? (Like maybe it's open but I've tabbed over to another application.)
    #DashBoard


  • 8.  RE: Custom hardware panel using Elgato Stream Deck

    Posted 10-29-2017 19:43
    I'm pretty sure DashBoard would need to be in focus. (So that the keyboard shortcuts get sent to it).

    Your other option on a hard control panel would be to be able to send the same Rosstalk commands from it directly that the custom panel sends (Which are fairly simple TCP/IP strings).

    T.
    #DashBoard


  • 9.  RE: Custom hardware panel using Elgato Stream Deck

    Posted 10-29-2017 21:20
    The method I am using works very well unless you guys are planning on removing that feature from future releases of Dashboard (described above). My method also doesn't require Dashboard to be installed on the client machine that the hardware panel is connected to, and the hardware panel (Stream Deck) can natively send URL requests in the background.

    So, in theory, you could have one or several panels open on a single instance of Dashboard and have several clients making requests to that computer. I plan to add more hardware panels as we have two control rooms that share a lot of resources, so I have a master panel with all of my functions open on one of the servers.
    #DashBoard


  • 10.  RE: Custom hardware panel using Elgato Stream Deck

    Posted 12-14-2017 15:39
    Hello josephadams I don't understand the beginning of your post.

    "‹Where and how do you use

    http://[dashboardAddress]:5800/ajax/[triggerID]

    #DashBoard


  • 11.  RE: Custom hardware panel using Elgato Stream Deck

    Posted 12-14-2017 15:47
    If you've set up your dashboard panel using the method I described, then when you are setting up the Elgato Stream Deck, you can use that URL as an action item of a button on the stream deck.

    So, for example, let's say my particular Dashboard panel is running on a computer with an IP address of [I]192.168.1.5[/I], I set my port to be [I]5800[/I], and the GPI Trigger ID is set to be [I]1[/I], I would use this URL: [I]http://192.168.1.5:5800/ajax/1[/I] and that would trigger that button in Dashboard.

    Does that help?
    #DashBoard


  • 12.  RE: Custom hardware panel using Elgato Stream Deck

    Posted 05-02-2018 00:56
    If it's helpful to anyone, I wrote a NodeJS application recently to control a Stream Deck. It natively supports RossTalk, OSC, can send commands to Dashboard, custom URL requests, VideoHub routing, etc.

    It supports custom button structure using JSON files that you provide, and each button can support multiple actions. It also runs a small TCP listener server which you can send messages to from Dashboard to toggle a button to a different state.

    I am making it freely available here: https://github.com/josephdadams/StreamDeckProductionController

    You can read more about it on my blog here: https://techministry.blog/2018/05/02/elgato-stream-deck-as-production-controller/

    Enjoy!
    #DashBoard


  • 13.  RE: Custom hardware panel using Elgato Stream Deck

    Posted 05-02-2018 19:26
    Great job Joseph ! :)

    It's nice to read in your blog why and how you made this up.
    I like the Virtual Deck idea.

    Thank you very much for sharing this project with us .



    #DashBoard


  • 14.  RE: Custom hardware panel using Elgato Stream Deck

    Posted 05-04-2018 14:40
    You're welcome! I'm already working on the next version which will support network control of my software running on multiple computers. They will broadcast via Bonjour/mdns and announce themselves to the other machines, with the option to set up master/slave control to lock out other panels, change button states, trigger actions, send notifications, etc. If anyone uses it and gives feedback, it is certainly welcome.
    #DashBoard


  • 15.  RE: Custom hardware panel using Elgato Stream Deck

    Posted 09-29-2021 04:25
    <button buttontype="push" gpi="button" colspan="1" fill="both" height="120" left="443" name="读取" rowspan="1" top="85" weightx="1.0" weighty="1.0" width="136">

    http://[127.0.0.1]:5800/ajax/[button]
    http://[192.168.6.7]:5800/ajax/[button]

    I tried to set this trigger id for button and not working.



    ------------------------------
    Haoran YE
    ------------------------------



  • 16.  RE: Custom hardware panel using Elgato Stream Deck

    Posted 09-29-2021 13:51
    Hi Haoran,

    Lets go with basics first just to see if it solves your issue or not.
    In order to create GPI trigger , we may need to follow following steps first
    1. We need to enable GPI trigger(Go to Windows < Preferences < Ross Talk GPI listener)
    2.  Create GPI trigger shortcut to trigger it. (I have created GPI short cut -firebutton(shortcut-Ctrl+/) only for active editor or context
    3. Then at last in your panel add that GPI trigger ( please find the panel source code below) , Here I have created a button then added firebutton which is my GPI trigger name into trigger id as shown below
    4. Then I have added a debug task to show whether button is actually pressed or not

    <abs contexttype="opengear" id="_top" keepalive="false" style="">
    <button buttontype="push" gpi="firebutton" height="110" id="aa" left="180" name="aa" top="192" width="163">
    <task tasktype="ogscript">ogscript.debug("fired");
    </task>
    </button>
    </abs>

    Let me know if this helps or not

    Thanks

    ------------------------------
    Anand Soraganvi
    Ross Video
    ------------------------------