UNPKG

@parallaxcontrol/node-red-control

Version:

A comprehensive package of Node-RED nodes designed to seamlessly integrate with the Parallax Control Engine, offering enhanced control capabilities for AV Automation.

246 lines (233 loc) 15.2 kB
<!-- Copyright (c) 2025 Parallax AV Design Inc. All rights reserved. This software is licensed, not sold. You may not copy, modify, merge, publish, distribute, sublicense, or sell copies of this file or substantial portions of it except as expressly permitted by the LICENSE file included with this package. Use is restricted to building manifests for the Parallax Control Node-RED nodes. See LICENSE for details. --> <script type="text/javascript"> RED.nodes.registerType('av-pro-ac-cx42', { category: 'parallax', color: '#C0C0C0', defaults: { name: { value: "" }, makeSelection: { value: "helpCommand", required: true}, options: [ "H", "STA", "SETRBT", "SETRST", "SETADDRxx", "GETADDR", "GETSTA", "GETINxSIGSTA", "SETOUTxVSINy", "SETOUT1VIDEOy", "SETEXABTVOUTx", "SETSWITCHMODEx", "SETOUTxEXAENDIS", "SETOUTxEXAUDLEVy", "SETOUT1EXAMICENDIS", "SETOUTxSTREAMONOFF", "SETOUTxHDMISTREAMMODEy", "SETOUT1TPPOEy", "SETOUTxHAMUTEONOFF", "SETOUT1TPSGMENDIS", "SETOUT2HPSGMENDIS", "GETOUTxVS", "GETOUT1VIDEO", "GETEXABTVOUT", "GETSWITCHMODE", "GETOUTxEXA", "GETOUTxEXAUDLEV", "GETOUT1EXAMIC", "GETOUTxEDIDDATA", "GETOUTxSTREAM", "GETOUTxHDMISTREAMMODE", "GETOUT1TPPOE", "GETOUTxHAMUTE", "GETOUT1TPSGM", "GETOUT2HPSGM", "SETINxEDIDy", "SETINxEDIDCYOUTy", "SETINxEDIDUyDATAz", "SETIN1TPPOEy", "GETINxEDID", "GETINxEDIDyDATA", "GETIN1TPPOE", "SETHDxAUTOENDIS", "GETHDxAUTO", "SETRIPxxxxxxxxxxxx", "SETHIPxxxxxxxxxxxx", "SETNMKxxxxxxxxxxxx", "SETTIPzzzz", "SETDHCPy", "GETRIP", "GETHIP", "GETNMK", "GETTIP", "GETDHCP", "GETMAC", "SETRSHRFIxOx", "SETRSPTHOUTxLENyBRz", "SETRSPTHINxLENyBRz", "GETRSHRF", "SETIRSYSxxyy", "SETIROUTxINyCODEzz", "GETIRSYS", "GETIROUTxINyCODE" ] }, inputs: 1, outputs: 1, llmNotes: ` Purpose: - Controls an AVPro Edge AC-CX42 matrix switcher by generating full command strings for the device. Inputs: - Expects msg.payload object with the following possible fields: - x (number): generic x parameter. - y (number): generic y parameter. - z (number): generic z parameter. - ip (string): IP address in standard format (xxx.xxx.xxx.xxx). - zzzz (number): TCP/IP port. - xx (string): hex string value. - yy (string): hex string value. - zz (string): hex string value. - Required fields depend on the selected command (see dropdown). Outputs: - One output: ["Output"]. - Emits msg.payload as a full string command formatted according to the selected command and provided inputs. Usage Rules: - Always provide the parameters required by the chosen command (from the Make Selection dropdown). - Do not include undefined or extra fields in msg.payload. - If a command does not require variables, any input signal will trigger the command. - Wire this node before sending commands to the AVPro Edge device’s connection/session node. `, outputLabels: ["Output"], icon: "font-awesome/fa-terminal", label: function() { return this.name || "av-pro-ac-cx42"; }, labelStyle: function() { return this.name ? "node_label_italic" : ""; }, }); </script> <script type="text/html" data-template-name="av-pro-ac-cx42"> <!-- Name --> <div class="form-row"> <label for="node-input-name"><i class="icon-tag"></i> Name</label> <input type="text" id="node-input-name" placeholder="Name"> </div> <!-- Dropdown --> <div class="form-row"> <label for="node-input-makeSelection"><i class="icon-tag"></i>Make Selection</label> <select id="node-input-makeSelection"> <optgroup label="Global System Commands"> <option value="H">H : Help</option> <option value="STA">STA : Show Global System Status</option> <option value="SETRBT">SET RBT : Reboot Device</option> <option value="SETRST">SET RST : Reset to Factory Defaults</option> <option value="SETADDRxx">SET ADDR xx : Set System Address to xx {xx=[00~99](00=Single)}</option> <option value="GETADDR">GET ADDR : Get System Address</option> <option value="GETSTA">GET STA : Get System System Status</option> <option value="GETINxSIGSTA">GET INx SIG STA : Get Input x Signal Status {x=[0~4](0=ALL)}</option> </optgroup> <optgroup label="Output Setup Commands"> <option value="SETOUTxVSINy"> Set Output x To Input y{x=[0~2](0=ALL), y=[1~4]}</option> <option value="SETOUT1VIDEOy"> Set Output1 VIDEO Mode {y=[2,5](2=4K->2K,5=ICT Mode)}</option> <option value="SETEXABTVOUTx"> Set Ex-Audio Output bind to Outputx{x=[1~2]}</option> <option value="SETSWITCHMODEx"> Set Switch Mode To Single Switch or Double Switch{x=[0~1]}</option> <option value="SETOUTxEXAENDIS"> Set Ex-Audio Output Enable/Disable{x=[0~1](0=ALL)}</option> <option value="SETOUTxEXAUDLEVy"> Set Output x Ex-Audio(Balanced) Volume Levely{x=[0~1](0=ALL),y=[0~100]}</option> <option value="SETOUT1EXAMICENDIS"> Set EX-Audio Route to Microphone Input Enable/Disable</option> <option value="SETOUTxSTREAMONOFF"> Set Output x Stream ON/OFF{x=[0~2](0=ALL)}</option> <option value="SETOUTxHDMISTREAMMODEy"> Set Output x HDMI Stream Mode y{x=[2],y=[1,2](1-Force 5V Low,2-Force 5V High)}</option> <option value="SETOUT1TPPOEy"> Set Output1 POE Mode{y=[0~1](0=Auto,1=Force)}</option> <option value="SETOUTxHAMUTEONOFF"> Set HDMI Output x Audio Mute ON/OFF{x=[0~2](0=ALL)}</option> <option value="SETOUT1TPSGMENDIS"> Set HDBT Output Signal Generator Enable/Disable</option> <option value="SETOUT2HPSGMENDIS"> Set HDMI Output Signal Generator Enable/Disable</option> <option value="GETOUTxVS"> Get Output x Video Route{x=[0~2](0=ALL)}</option> <option value="GETOUT1VIDEO">Get Output1 Video Mode</option> <option value="GETEXABTVOUT"> Get Ex-Audio Output bind to Which Output</option> <option value="GETSWITCHMODE">Get Switch Mode</option> <option value="GETOUTxEXA"> Get Ex-Audio Output Enable/Disable Status{x=[0~1](0=ALL)}</option> <option value="GETOUTxEXAUDLEV"> Get Output x Ex-Audio(Balanced) Volume Level{x=[0~1](0=ALL)}</option> <option value="GETOUT1EXAMIC"> Get EX-Audio Route to Microphone Input Enable/Disable Status</option> <option value="GETOUTxEDIDDATA"> Get Output x EDID DATA{x=[1~2]}</option> <option value="GETOUTxSTREAM"> Get Output x Stream ON/OFF Status{x=[0~2](0=ALL)}</option> <option value="GETOUTxHDMISTREAMMODE"> Get Output x HDMI Stream Mode Status{x=[2]}</option> <option value="GETOUT1TPPOE">Get Output1 POE Mode</option> <option value="GETOUTxHAMUTE"> Get HDMI Output x Audio Mute Status{x=[0~2](0=ALL)}</option> <option value="GETOUT1TPSGM"> Get HDBT Output Signal Generator Enable/Disable Status</option> <option value="GETOUT2HPSGM"> Get HDMI Output Signal Generator Enable/Disable Status</option> </optgroup> <optgroup label="Input Setup Commands"> <option value="SETINxEDIDy"> Set Input x EDID{x=[0~4](0=ALL), y=[0~32]}</option> <option value="SETINxEDIDCYOUTy"> Copy Output y EDID To Input x(USER1 BUF){x=[0~4](0=ALL), y=[1~2]}</option> <option value="SETINxEDIDUyDATAz"> Write EDID To User y Buffer of Input x{x=[0~4](0=ALL), y=[1~3],z=[EDID Data]}</option> <option value="SETIN1TPPOEy"> Set IN1 POE Mode{y=[0~1](0=Auto,1=Force)}</option> <option value="GETINxEDID"> Get Input x EDID Index{x=[0~4](0=ALL)}</option> <option value="GETINxEDIDyDATA"> Get Input x EDID y Data{x=[1~4],y=[0~32]}</option> <option value="GETIN1TPPOE">Get IN1 POE Mode</option> </optgroup> <optgroup label="Auto Mode Commands"> <option value="SETHDxAUTOENDIS"> Set HDMI1/HDMI2 Output Enter Auto Mode Control Enable/Disable</option> <option value="GETHDxAUTO"> Get HDMI1/HDMI2 Output Auto Mode Control Status</option> </optgroup> <optgroup label="Network Setup Commands"> <option value="SETRIPxxxxxxxxxxxx">Set Route IP Address to xxx.xxx.xxx.xxx</option> <option value="SETHIPxxxxxxxxxxxx">Set Host IP Address to xxx.xxx.xxx.xxx</option> <option value="SETNMKxxxxxxxxxxxx">Set Net Mask to xxx.xxx.xxx.xxx</option> <option value="SETTIPzzzz">Set TCP/IP Port to zzzz</option> <option value="SETDHCPy"> Set DHCP {y=[0~1](0=Dis,1=Enable)}</option> <option value="GETRIP">Get Route IP Address</option> <option value="GETHIP">Get Host IP Address</option> <option value="GETNMK">Get Net Mask</option> <option value="GETTIP">Get TCP/IP Port</option> <option value="GETDHCP">Get DHCP Status</option> <option value="GETMAC">Get MAC Address</option> </optgroup> <optgroup label="RS232 Route Setup Commands"> <option value="SETRSHRFIxOx"> Set HDBT RS232 RX From Input or Output Port x{x=[1](I=Input,O=Output)}</option> <option value="SETRSPTHOUTxLENyBRz"> Set RS232 Pass Through to Ouput x</option> <option value="SETRSPTHINxLENyBRz"> Set RS232 Pass Through to Input x</option> <option value="GETRSHRF">Get HDBT RS232 RX From Port State</option> </optgroup> <optgroup label="IR Code Setup Commands"> <option value="SETIRSYSxxyy"> Set IR Custom Code{xx=[00-FFH],yy=[00-FFH]}</option> <option value="SETIROUTxINyCODEzz"> Set IR Data Code{x=[1~2],y=[1~4],zz=[00-FFH]}</option> <option value="GETIRSYS">Get IR Custom Code</option> <option value="GETIROUTxINyCODE"> Get IR Data Code</option> </optgroup> </select> </div> <small id="inputHelpBlock" class="form-text text-muted"> <div> <h1>AV Pro Edge</h1> <h2>ConferX</h2> <h3>AC-CX42-AUHD: 4K 4x2 Matrix Switcher</h3> <p>CMD v3.00</p> <p><strong>User Instructions</strong></p> <p>This node accepts input in the form of a <code>msg.payload</code> object that contains the following properties: </p> <p><strong>Expected Input Format:</strong></p> <ul> <li><code>msg.payload.x</code> - a number representing the <code>x</code> value.</li> <li><code>msg.payload.y</code> - a number representing the <code>y</code> value.</li> <li><code>msg.payload.z</code> - a number representing the <code>z</code> value.</li> <li><code>msg.payload.ip</code> - a string representing the <code>IP Address</code> value in standard format: <code>xxx.xxx.xxx.xxx</code></li> <li><code>msg.payload.zzzz</code> - a number representing the <code>Port</code> value.</li> <li><code>msg.payload.xx</code> - a string representing the hex <code>xx</code> value.</li> <li><code>msg.payload.yy</code> - a string representing the hex <code>yy</code> value.</li> <li><code>msg.payload.zz</code> - a string representing the hex <code>zz</code> value.</li> </ul> <p><strong>Output:</strong></p> <ul> <li>The node outputs a full string command based on the input values.</li> </ul> <p><strong>How to Use:</strong></p> <ol> <li>Pass the input to the node with the desired values.</li> <li>The node will process these values and generate a full string command for the selected command.</li> <li>If the Command does not include variables, any input signal will trigger the command to run.</li> </ol> <section> <img src="https://avproedge.com/cdn/shop/products/AC-CX42-AUHDangle2square.webp?v=1682002547" alt="ConferX 4K 4x2 Matrix Switcher Front" style="max-width: 400px; height: auto;"> <img src="https://avproedge.com/cdn/shop/products/AC-CX42-AUHDbacksquare.webp?v=1682002547" alt="ConferX 4K 4x2 Matrix Switcher Rear" style="max-width: 400px; height: auto;"> </section> </div> </small> </script> <script type="text/html" data-help-name="av-pro-ac-cx42"> <p>Hardware Node: connects and controls an AVPro Edge AC-CX42 matrix video switcher. This node provides the required command channel and connection management for downstream control nodes that will control the AVPro unit. It manages the IP connection and general session status for the AVPro switch</p> <h1>AV Pro Edge</h1> <h2>ConferX</h2> <h3>AC-CX42-AUHD: 4K 4x2 Matrix Switcher</h3> <p>CMD v3.00</p> <p><strong>User Instructions</strong></p> <p>This node accepts input in the form of a <code>msg.payload</code> object that contains the following properties: </p> <p><strong>Expected Input Format:</strong></p> <ul> <li><code>msg.payload.x</code> - a number representing the <code>x</code> value.</li> <li><code>msg.payload.y</code> - a number representing the <code>y</code> value.</li> <li><code>msg.payload.z</code> - a number representing the <code>z</code> value.</li> <li><code>msg.payload.ip</code> - a string representing the <code>IP Address</code> value in standard format: <code>xxx.xxx.xxx.xxx</code></li> <li><code>msg.payload.zzzz</code> - a number representing the <code>Port</code> value.</li> <li><code>msg.payload.xx</code> - a string representing the hex <code>xx</code> value.</li> <li><code>msg.payload.yy</code> - a string representing the hex <code>yy</code> value.</li> <li><code>msg.payload.zz</code> - a string representing the hex <code>zz</code> value.</li> </ul> <p><strong>Output:</strong></p> <ul> <li>The node outputs a full string command based on the input values.</li> </ul> <p><strong>How to Use:</strong></p> <ol> <li>Pass the input to the node with the desired values.</li> <li>The node will process these values and generate a full string command for the selected command.</li> <li>If the Command does not include variables, any input signal will trigger the command to run.</li> </script>