bitfocus / companion-module-fora-hvs

MIT License
1 stars 5 forks source link

Compatibility with other HVS switchers. #1

Closed Fader-Monkey closed 4 years ago

Fader-Monkey commented 4 years ago

I started doing some testing with two switchers. So far all is working on my HVS 100. I have a different software version than what you tested with and I will leave screenshots of version info. I had to restart my switcher before it connected the first time but after that I have had no issues to report on the HVS 100. I will keep testing.

I have not been able to get this module to work at all with my HVS 2000. I know this module is built for a HVS 100, but the original module request was for all of the HVS switchers. I suspect that the web-socket approach would have to be rewritten for the 2000 series switcher. At least I know the web GUI for the 2000 is very different from the 100.

here are the software/firmware versions of the switchers I am testing on.

HVS 100

HVS 100 Version

HVS 2000

Screen Shot 2020-03-02 at 1 36 39 PM Screen Shot 2020-03-02 at 1 36 21 PM
MichaelAllen commented 4 years ago

Thanks for helping to test the module. Glad to hear the 100 is working for you.

For the 2000, let's try to get a network log to see if the protocol is at least similar, or if it will need an entirely different module. Here is the process if you are using Chrome:

  1. Go to the switcher's web interface and open the Bus/Trans page, or whatever the equivalent page is on the 2000.
  2. Open the web inspector's (ctrl+shift+I) network tab and refresh the page.
  3. Change a few things to get some data. (pgm source, cut transition, keyer, etc.)
  4. Right-click on any line in the inspector and select "Save all as HAR with content".
  5. Upload that file here so I can take a look at how the web interface is talking to the switcher.
Fader-Monkey commented 4 years ago

Here is the info I got on the HVS 2000 web page. all of the info is from the web panel page let me know if you want info from the event recall pages and such. also there is a password page before you get to the web panel.

Screen Shot 2020-03-02 at 6 41 30 PM

10.31.18.32.har.zip

MichaelAllen commented 4 years ago

The good news is that it looks like basically the same protocol as the 100. I was able to pull the same javascript files from your archive that I based most of the code for the 100 on, so it may just be a matter of mapping those commands in the plugin.

I didn't see any authentication recorded in the network log, so I'm thinking the password is only for the web interface, and not for the underlying control socket connection.

Were you able to get the plugin to connect to the 2000 (green OK status in companion) just no commands worked, or would it not connect (red error status)?

Fader-Monkey commented 4 years ago

here is the error I get when I use any of the commands.

Screen Shot 2020-03-05 at 4 26 41 PM

I get a red Error message after using the buttons, but it stays white until I press a button.

Screen Shot 2020-03-05 at 4 27 23 PM
MichaelAllen commented 4 years ago

With the most recent version of the module (v1.0.3) I added some better logging if something goes wrong. If you are running from source, you can update bycd into the module's folder, and running git pull, followed by git checkout master. That should get you the latest version.

2 things to note:

Fader-Monkey commented 4 years ago

do you need me to continue testing this for HVS 2000? Is there anything in that update that would make it work? I added the module into my weekly use but then the whole Covid-19 happened and my weekly workflow did not happen.

MichaelAllen commented 4 years ago

I don't think any of the changes I've made will have fixed the 2000 not connecting, but I did add better logging for errors now so I should hopefully be able to pinpoint the problem if you can try to connect then post the debug logging from the terminal. (see my above comment for an easy way to dump the log to a file)

Fader-Monkey commented 4 years ago

so I had to reinstall everything because my laptop died. but I just ran some commands to my HVS 2000 and here is the log file. companion.log.zip

MichaelAllen commented 4 years ago

Based on that log file, it looks like you aren't getting a connection error anymore. Just nothing happens when you press the buttons. Is that correct?

If so, can you try a few commands in the custom command action to make sure the communication is good? SET.M1BG_XPT_PST:1 should PREVIEW source 1 on ME1, SET.M1BG_TRANSITION:CUT should preform a cut transition on ME1, and SET.M1K1_TRANSITION:AUTO I think should toggle ME1 Key1.

Fader-Monkey commented 4 years ago

Im actually thinking it has more to do with my VPN connection. other modules that did not have problems before are now having issues. let me try retesting with a local machine.

Fader-Monkey commented 4 years ago

Edit: didn't read the comment right. all custom commands are working as expected.

ok so the SET.M1BG_XPT_PST:1. &. SET.M1BG_TRANSITION:CUT, &. SET.M1K1_TRANSITION:AUTO commands work when using the custom command feature. here is the log.

companion HVS 2000 V2.log.zip

Thanks! sorry this took forever. My workflow looks so different now.

MichaelAllen commented 4 years ago

Awesome, so the communication with the switcher is good now. That was the hard part, now I just need to implement a "Select your model" option in the instance screen so the module knows what version of the commands to send.

Fader-Monkey commented 4 years ago

anything else you need from me on this? any more capture on network logs for other commands? thanks again for making this possible.

Fader-Monkey commented 4 years ago

here are the js files off the web page for the HVS 2000. Hopefully this can help to create the websocket commands and figure out feedback for this module. HVS 2000 js.zip

also here are some know working commands tested on my HVS 2000

SET.FLX1_TRANSITION:AUTO (flex key 1 auto)

SET.M1BG_XPT_PST:1 (me1 preview input 1)

SET.M1BG_XPT_PGM:1 (me1 program input 1)

SET.MEL1BG_XPT_PST:1 (MElite1 preview input 1)

SET.MEL1BG_XPT_PGM:1 (MElite1 program 1)

SET.M1BG_TRANSITION:CUT (ME1 cut BKG Operation)

SET.M1K1_TRANSITION:AUTO (ME1 Key 1 auto trans operation)

Frazerchurch commented 4 years ago

I have an HVS-2000, how do I get companion to work with it? I don't even see For.A listed on the manufacturers in the admin panel

MichaelAllen commented 4 years ago

@Fader-Monkey thanks for posting those files. I have been away for a bit, but I'll starting working on HVS 2000 support this week. I can't give a solid ETA because it will basically be a complete rewrite of the module since the 100 and 2000 don't share any of the same commands.

Thanks for your help with this so far. I'll ping you when I have something ready to test.

MichaelAllen commented 4 years ago

@Frazerchurch The ForA module is only available in Companion v2. If you are on v1.4 you will want to upgrade as v2 contains several bug fixes and a lot of new modules. Although v2 is technically still in beta, we have been running it for several months with no issues.

Also, note that this module currently only works with the HVS 100 and 110. I have recently started working on support for the 2000, but don't have an ETA for finishing it.

Fader-Monkey commented 4 years ago

@MichaelAllen no problem dude, thanks for working on this I know you have to do this on your own time. im just glad to help, thats why all this stuff is open source. we are all just trying to make each-others lives easier. I already use the custom commands in our workflow and it has made my volunteers so happy.

MichaelAllen commented 4 years ago

@Fader-Monkey I am close to having something ready to test. I just need some more information on the available inputs. Can you capture a network log of the settings page where you name the inputs? (Same process we used here to get the network log)

Also, if you have the manual for the HVS2000 in a format you could upload, that would be awesome. My google-fu is failing me for some reason; I can't find a copy online.

Fader-Monkey commented 4 years ago

I don't think there is a page for that on the 2000. I know the page you are talking about on the 100.

if you use the custom command: GET.SIGNALS_INFO

it will return long and short names for all inputs. here is the log of what it returns.

companion GET.SIGNALS_INFO.log.zip

here are the other info commands from what i can tell.

Screen Shot 2020-07-04 at 5 40 00 PM

also there seems to be a response for each time a XPT is set, maybe this could be used for tally. it looks like this:

Screen Shot 2020-07-04 at 5 36 48 PM
MichaelAllen commented 4 years ago

@Fader-Monkey I have something ready to test when you have a chance. It is over on this branch because I didn't want to merge it into master until I am sure that it actually works.

Here is how to get your dev environment to use this fork: 1) cd to your companion clone 1) yarn update 1) cd lib/module/fora-hvs 1) git remote add michaelallen https://github.com/MichaelAllen/companion-module-fora-hvs.git 1) get fetch michaelallen 1) git checkout michaelallen/feature-ma-hvs2000 1) cd ../../.. 1) yarn run dev

If you would prefer me to build a .app file instead, let me know and I can send that over.

Fader-Monkey commented 4 years ago

some quick testing seems to show that it is working as it should. I will do some more testing once Im in the same room as the switcher, and upload logs. quickly tested: PVW/PGM set XPT Me 1/MeLite1 also tested reconnect command and transition commands for me1/MeLite1

I still need to test: switching auxes/reboot/recall event.

nice to haves would be dropdowns for keys and flex keys with commands: SET.FLX1_TRANSITION:AUTO SET.FLX1_TRANSITION:CUT SET.M1K1_TRANSITION:AUTO SET.M1K1_TRANSITION:CUT

for keys 1-4 on me1/ 1-4 on me2 / 1-4 flexkeys

MichaelAllen commented 4 years ago

I added key & flex-key transition actions for the 100 and the 2000. You should be able to pull the changes with a git pull --rebase in the companion/lib/module/fora-hvs folder.

MichaelAllen commented 4 years ago

I didn't see any control commands for events in the 2000's source files. There are commands for store/recall/delete scene, though. I'm thinking is probably the same thing just with a different name.

Try this custom command to see if it works to recall event/scene 5: CMD.02010205. If so, I can add it to the protocol file. If that doesn't work, can you capture what the switcher is sending when you click to recall an event/scene in the web GUI?

Fader-Monkey commented 4 years ago

key and flex keys are working great! I will have to look at the events on the 7th. honestly don't know what events the tech director has programed and don't just want to start recalling events without knowing what I'm looking for.

Fader-Monkey commented 4 years ago

ok here are network logs of event recalls. there are different types of events. global and local. the part after "event id"= is the recall scope. using the "GET.EVENT" will return the stored recall scope

here are the logs for global events. 10.30.0.42 events global.har.zip

here are logs for local events (specifically ME2) 10.30.0.42 events local me2.har.zip

example code looks like: send GET.ME2_EVENT_FLAG:4 (select event) receive. SET.ME2_EVENT_FLAG:4=0000 0FFF 0000 0000 0000 0000 0000 0000 0000 0C00 0000 0000 0000 0000 00F0 0000 0000

send SET.ME2_RECALL:4=0 0000 0FFF 0000 0000 0000 0000 0000 0000 0000 0C00 0000 0000 0000 0000 00F0 0000 0000 (recall event) Receive SET.ME2_EVENT_LASTRECALL_NO:4

or for global: send GET.EVENT_FLAG:5 receive SET.EVENT_FLAG:5=0FFF 0FFF 0000 0000 0000 0000 0000 0000 0000 0F00 0000 0000 0000 0000 00FF 0000 0000

send SET.RECALL:5=0 0FFF 0FFF 0000 0000 0000 0000 0000 0000 0000 0F00 0000 0000 0000 0000 00FF 0000 0000 receive SET.EVENT_LASTRECALL_NO:5

Fader-Monkey commented 4 years ago

just tested AUX and Reboot.

aux works great no problems there.

reboot- disconnects and reconnects to websocket but does not reboot MU. I cant find the option to reboot the MU from the web page on the HVS 2000. maybe they left it out. it is on the GUI windows program that comes with the 2000 just not the web page.

Fader-Monkey commented 4 years ago

can the Aux sources be added to the available sources on the set ME and Set MeLite drop downs? (sources=72-107) ie allow the ME2 PGM to be taken as a source in ME1 or take ME2 PGM as a source into MeLite.

MichaelAllen commented 4 years ago

can the Aux sources be added to the available sources on the set ME and Set MeLite drop downs? (sources=72-107) ie allow the ME2 PGM to be taken as a source in ME1 or take ME2 PGM as a source into MeLite.

Sure thing, that will be an easy change.

Are there any AUX-only sources, or would it just be the same source list for all of those actions?

Fader-Monkey commented 4 years ago

its the same source list. although it does look like the list goes all the way to 178 on closer look. that might be a long list. just depends on what people need access to. 72-107 are ME outs 108-123 are clean outs 124-127 are effects 130-137 are color corrections (cant think of why that would need to be a source) 141-156 are auxs. (redundant) 157-165 are MeLites (ones that are not assigned don't even show up)i ie in my setup there is no 160,161,162 169-174 are still store keys 175-178 are multiview outs.

main ones I can actually think of being useful are Me outs (72-107) and MeLite (157-165)

MichaelAllen commented 4 years ago

Support for the HVS 2000 is now available in the latest Companion v2.0 beta builds.

Thank you for your help getting this working. I'm going to go ahead and close this thread since the original issue is solved. I split your notes about event recall off into a new thread since that is not implemented yet.