****Hope I"m not double posting, not seeing my latest post and thus re-posting... ****
Hello Dan,
I may be repeating information to give context to others. From reading previous comments, I think alot of this you already know, but trying to give good context in my response for others who may benefit.
Terminals 8 and 9 are the High and Low (respectively) Terminals for the VISTA20P Zone1. According to VISTA documentation, Zone 1 REQUIRES a 2000 OHM EOLR to provide constant resistance.
Basically, we want to wire this so there are 3 parallel/possible paths for electricity to flow between Terminals 8 and 9 on the VISTA. Which path is taken, depends on which paths are open/closed and which of the closed paths have the least resistance. (Electrical current flows down the path of least resistance)
So, our 3 paths are defined and wired as follows:
PATH 1: VISTA 20P Port 8 <--wired--> 2000 OHM EOL Resistor <--wired--> VISTA 20P Port 9
NOTE: This path seems a bit weird in that you are simply wiring the two terminals together WITH 2000 OHM resistor inline.
PATH 2: VISTA 20P Port 8 <--wired--> Relay1 NO (NO1) Normally Open, not Normally Closed as Nate demonstrated with a different panel/zone.
VISTA 20P Port 9 <--wired--> Relay1 COM (COM1)
PATH 3: VISTA 20P Port 8 <--wired--> Relay2 NO (NO2) Normally Open, not Normally Closed as Nate demonstrated with a different panel/zone.
VISTA 20P Port 9 <--wired--> Relay2 COM (COM2)
When both Relays are Open (normal), electricity cannot flow through the relays and thus will flow will travel through resistor, as no other pathways exist.
When Relay1 closes, then electricity flows through relay1 where there is minimal resistance and does NOT flow through EOL Resistor. The VISTA20P board detects the voltage change. This is a momentary switch and after the 750ms the relay returns back to Normally open, forcing current to flow again through the EOLR and thus returning voltage back to the original reading. The delay in Hubitat for Relay1 is set to 750ms, which satisfies the "AWAY" arm/disarm for VISTA.
When Relay2 closes, then electricity flows through relay2 where there is minimal resistance and does NOT flow through EOL Resistor. The VISTA20P board detects the voltage change. This is a momentary switch and after the 2000ms the relay returns back to Normally open, forcing current to flow again through the EOLR and thus returning voltage back to the original reading. The delay in Hubitat for Relay2 is set to 2000ms, which satisfies the "STAY" arm/disarm for VISTA.
As you mentioned earlier, it's a bummer we have to use two physical relays for this purpose, as they are doing exactly the same physical function. The only difference is the software configuration in Hubitat setting a different delay time (750ms vs 2000ms). This is really a change needed from Hubitat to abstract logical device configuration from physical device.
My VISTA wiring for terminals 8 and 9 are pretty crowded, since there are now 3 wires in each terminal. Be careful to make sure all 3 are making good contact with the terminal. My first attempt one wire was NOT making good connection and VISTA declared the Zone as FAULTED. I had to correct the connection and then reset the Zone (either via power cycling VISTA board or by deleting the Zone1 configuration in VISTA and re-adding it. Without resetting the zone the VISTA appears to remember the previous faulted status and not re-initialize the zone.
Of course you can use only one Relay if needed, and you'll just have to set your relay delay in Hubitat to 750ms (AWAY) or 2000ms (STAY) and live with only one option.
Dont forget to reprogram Zone1 to Type 77 for KeySwitch in VISTA!!!
I can try to scribble up some diagrams later and post if it helps. Please let us know how it turns out.