Biamp Direct Control Example using Muse Automator
Technical Support Guide
Table of Contents
Brand:
- AMX
Models:
- MUSE
Overview:
The example flow below contains the required handshake to open the Telnet session from Muse to the Biamp device, subscriptions to multiple instance IDs, level control, mute toggles, and a source selector example. There is also feedback parsing from the Biamp that can be used to send feedback to a touch panel as well as a group of mutually exclusive button feedback.
Example Code:
Import the code snippet below into Muse Automator to see the example flow.
[
{
"id": "c2964f25c9429034",
"type": "subflow",
"name": "biampParser",
"info": "",
"category": "",
"in": [
{
"x": 220,
"y": 240,
"wires": [
{
"id": "ce0dd42e2e26b316"
}
]
}
],
"out": [
{
"x": 1090,
"y": 120,
"wires": [
{
"id": "5205fb58e11c1dd1",
"port": 0
}
]
},
{
"x": 1100,
"y": 240,
"wires": [
{
"id": "da27f5533eaaa651",
"port": 0
}
]
},
{
"x": 1100,
"y": 360,
"wires": [
{
"id": "226fda016f663796",
"port": 0
}
]
}
],
"env": [],
"meta": {},
"color": "#DDAA99",
"outputLabels": [
"Returns String",
"Returns Boolean",
"Returns Number"
]
},
{
"id": "ce0dd42e2e26b316",
"type": "function",
"z": "c2964f25c9429034",
"name": "Remove Value from Biamp Response",
"func": "var msg2 = { payload: null };\nvar msg3 = { payload: null };\nlet myStr = msg.payload;\nvar boolVal\n\nmyStr = myStr.toString().substring(myStr.lastIndexOf(\":\")+1);\nmyStr = myStr.replace(\"+OK\", \"\");\nmyStr = myStr.replaceAll(\"\\n\", \"\");\nmyStr = myStr.replaceAll(\"\\r\", \"\");\n\nmsg.payload = myStr\n\nif (myStr === \"true\") {\n boolVal = true; \n msg2.payload = boolVal;\n}else if (myStr === \"false\") {\n boolVal = false;\n msg2.payload = boolVal;\n}else {\n let numStr = Number(myStr);\n msg3.payload = numStr;\n}\n\nreturn [msg,msg2,msg3];",
"outputs": 3,
"timeout": "",
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 450,
"y": 240,
"wires": [
[
"5205fb58e11c1dd1"
],
[
"da27f5533eaaa651"
],
[
"226fda016f663796"
]
],
"outputLabels": [
"String",
"Boolean",
"Number"
]
},
{
"id": "da27f5533eaaa651",
"type": "switch",
"z": "c2964f25c9429034",
"name": "Removing Null",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "nnull"
}
],
"checkall": "true",
"repair": false,
"outputs": 1,
"x": 830,
"y": 240,
"wires": [
[]
]
},
{
"id": "226fda016f663796",
"type": "switch",
"z": "c2964f25c9429034",
"name": "Removing Null",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "nnull"
}
],
"checkall": "true",
"repair": false,
"outputs": 1,
"x": 830,
"y": 360,
"wires": [
[]
]
},
{
"id": "5205fb58e11c1dd1",
"type": "switch",
"z": "c2964f25c9429034",
"name": "Removing Null",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "nnull"
}
],
"checkall": "true",
"repair": false,
"outputs": 1,
"x": 830,
"y": 120,
"wires": [
[]
]
},
{
"id": "5fb61457a46fa579",
"type": "subflow",
"name": "bufferToString",
"info": "",
"category": "",
"in": [
{
"x": 100,
"y": 100,
"wires": [
{
"id": "76e00b48639fe9c1"
}
]
}
],
"out": [
{
"x": 540,
"y": 100,
"wires": [
{
"id": "76e00b48639fe9c1",
"port": 0
}
]
}
],
"env": [],
"meta": {},
"color": "#DDAA99"
},
{
"id": "76e00b48639fe9c1",
"type": "function",
"z": "5fb61457a46fa579",
"name": "bufferToString",
"func": "msg.payload = msg.payload.toString();\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 290,
"y": 100,
"wires": [
[]
]
},
{
"id": "1cf05b9a1d3db98f",
"type": "subflow",
"name": "+CR/LF",
"info": "",
"category": "",
"in": [
{
"x": 140,
"y": 260,
"wires": [
{
"id": "4fe1c28241fe0490"
}
]
}
],
"out": [
{
"x": 710,
"y": 180,
"wires": [
{
"id": "4fe1c28241fe0490",
"port": 0
}
]
},
{
"x": 700,
"y": 260,
"wires": [
{
"id": "4fe1c28241fe0490",
"port": 1
}
]
},
{
"x": 710,
"y": 340,
"wires": [
{
"id": "4fe1c28241fe0490",
"port": 2
}
]
}
],
"env": [],
"meta": {},
"color": "#DDAA99",
"outputLabels": [
"+CR",
"+LF",
"+CR/LF"
]
},
{
"id": "4fe1c28241fe0490",
"type": "function",
"z": "1cf05b9a1d3db98f",
"name": "function 1",
"func": "var msg2 = { payload: null };\nvar msg3 = { payload: null };\nmsg.payload = msg.payload + \"\\r\"\nmsg2.payload = msg.payload + \"\\n\"\nmsg3.payload = msg.payload + \"\\r\"+\"\\n\"\nreturn [msg,msg2,msg3];",
"outputs": 3,
"timeout": "",
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 380,
"y": 260,
"wires": [
[],
[],
[]
]
},
{
"id": "da6e05d5352f2b39",
"type": "tab",
"label": "Biamp Direct Control",
"disabled": false,
"info": "",
"env": []
},
{
"id": "c61e789dd3eee62e",
"type": "group",
"z": "da6e05d5352f2b39",
"name": "Initialize Telnet with Hanshake",
"style": {
"label": true
},
"nodes": [
"e692e1672f173f26",
"ff2315bfb163b1ef",
"9b90569418ace2a3",
"8fedf4c8dbd04d10",
"c8d8ea4ae6f9392a"
],
"x": 1474,
"y": 99,
"w": 672,
"h": 142
},
{
"id": "2c52c0b620b15555",
"type": "group",
"z": "da6e05d5352f2b39",
"name": "Open connection and subscribe",
"style": {
"label": true
},
"nodes": [
"1371f64fd806119d",
"a881c43fa4c27527",
"a63bf17af4660c67",
"ca9c5199bf916fd5",
"83cfc8510584119e",
"eced53772bb137e4",
"22d58c78d80545ea",
"4a3cf56120cea773",
"ee78ed43596ec417"
],
"x": 74,
"y": 99,
"w": 872,
"h": 448
},
{
"id": "7488e2ac3e49447e",
"type": "group",
"z": "da6e05d5352f2b39",
"name": "Source Selector 1 Feedback and Mutually Exclusive",
"style": {
"label": true
},
"nodes": [
"e6ee9f514971c1b6",
"8c6658359f1cdda7"
],
"x": 1468,
"y": 733,
"w": 1604,
"h": 414
},
{
"id": "1d89ee7fdb0e9895",
"type": "group",
"z": "da6e05d5352f2b39",
"name": "Level 1 Control",
"style": {
"label": true
},
"nodes": [
"1765e825cb43aa6e",
"fd8f40d2afba93d7",
"179dae952d85ffe0",
"82e0422f84713028",
"8ec89703630b52dc",
"ae8d3d9af5c74434",
"ef3a31c611afeef4",
"4171a240a7b30541",
"2d1e366145820a16",
"dda4112755aced35",
"7697da89098fcff0",
"3e66c2169d70929d",
"3d3251aa11edda34"
],
"x": 74,
"y": 639,
"w": 872,
"h": 342
},
{
"id": "93c2af947f970495",
"type": "group",
"z": "da6e05d5352f2b39",
"name": "Level 2 Control",
"style": {
"label": true
},
"nodes": [
"5b9f0496b30ba27f",
"6c7dcb9cc9b1d964",
"35edc996111753e5",
"e7098d38a0101939",
"6f63432a8bfeb2d4",
"6008e46796111362",
"b1bc0625d97390f1",
"d9282dcc2f0b7c9d",
"0442e13d867f9095",
"9457d3b01ed4965c",
"73d518c479cf9b64",
"818e7207b5a7eb8e"
],
"x": 74,
"y": 1039,
"w": 872,
"h": 302
},
{
"id": "751351e02c9111b9",
"type": "group",
"z": "da6e05d5352f2b39",
"name": "Source Selector Buttons",
"style": {
"label": true
},
"nodes": [
"f985908198ed8f07",
"a02c2ed35d3f705b",
"68e4f73ad3509384",
"47100989cd027f32",
"92a7c970bcfcd383",
"c19f4512f60c543a",
"68a03808c56d21a1",
"1fc531d48315f35c",
"a7e7d3d51ec7d7d9",
"b4229bc62c696279",
"6a4690d5d9779dc9",
"d60a2c48d48a4249"
],
"x": 74,
"y": 1379,
"w": 872,
"h": 362
},
{
"id": "c688d3eb587b998f",
"type": "group",
"z": "da6e05d5352f2b39",
"name": "Level Feedback Parsing and Updating TP",
"style": {
"label": true
},
"nodes": [
"62fcc6409a5cd164",
"0c1b9e75a62f1745"
],
"x": 1468,
"y": 273,
"w": 764,
"h": 421.5
},
{
"id": "62fcc6409a5cd164",
"type": "group",
"z": "da6e05d5352f2b39",
"g": "c688d3eb587b998f",
"name": "Level 2 Feedback",
"style": {
"label": true
},
"nodes": [
"d553e1445dcf917d",
"023fbec124cdbd99",
"55042fe02f92a38f",
"576a3cfa192af778",
"bf27db4775adb57d"
],
"x": 1494,
"y": 511.5,
"w": 702,
"h": 157
},
{
"id": "0c1b9e75a62f1745",
"type": "group",
"z": "da6e05d5352f2b39",
"g": "c688d3eb587b998f",
"name": "Level 1 Feedback",
"style": {
"label": true
},
"nodes": [
"90101cd275dbe569",
"dece5840921dfd30",
"b9f0f302e6cec66e",
"4f740e81ed409dbf",
"4b1486d79c8cd36b",
"f1d4fa5f9b11f6b2"
],
"x": 1494,
"y": 299,
"w": 712,
"h": 189.5
},
{
"id": "22d58c78d80545ea",
"type": "group",
"z": "da6e05d5352f2b39",
"g": "2c52c0b620b15555",
"name": "Create Subscriptions",
"style": {
"label": true
},
"nodes": [
"8272729ff9885032",
"765ad1a4ad968cfd",
"b7a057c47c1b5d64",
"2755193d15817fab",
"806768ff2817a4b2",
"65f177379b4cfc56",
"d31eb432090c8b37",
"e4379d857135fab3",
"aa4c92fe8a3d82a5",
"e9e5b237e8128eb9"
],
"x": 254,
"y": 279,
"w": 392,
"h": 242
},
{
"id": "e6ee9f514971c1b6",
"type": "group",
"z": "da6e05d5352f2b39",
"g": "7488e2ac3e49447e",
"name": "Source Selector 1 Mutually Exclusive",
"style": {
"label": true,
"label-position": "n"
},
"nodes": [
"638bec55de2f6af2",
"94c5967566ce741e",
"985494e3d47dc158",
"79249b88716bf964",
"eb618cd1ab4d8c0b",
"58cddf679d830501",
"802426c250185cde",
"c3cc170e8f7e7db3",
"4389dd7c3f4c29d1",
"3a5515ec6acba027",
"d3c79afea1f885ef",
"d09126a42851af1c",
"8d950b6e5febdee4",
"a2c301eeed9234f6",
"b7e8320b2c9e4629",
"5ecbc1ebc36387e4",
"e36b44b2d8ef6d7c"
],
"x": 2274,
"y": 759,
"w": 772,
"h": 362
},
{
"id": "8c6658359f1cdda7",
"type": "group",
"z": "da6e05d5352f2b39",
"g": "7488e2ac3e49447e",
"name": "Source Selector 1 Feedback",
"style": {
"label": true,
"color": "#ffffff",
"label-position": "n"
},
"nodes": [
"a1e68b2a688c740b",
"d265c2d2c8b34537",
"e07fbf6781067c09",
"8647f4fa071f5c00",
"e5188367b9f8bd86",
"74bfde85425f3176",
"f06de56c1d91c80a",
"dfa4c284457c16ac",
"888fcb8bcfe6f052",
"1b84135c1bca7e64"
],
"x": 1494,
"y": 759,
"w": 712,
"h": 362
},
{
"id": "d1affebe95753506",
"type": "tcp request",
"z": "da6e05d5352f2b39",
"name": "Biamp TCP Connection",
"server": "10.35.88.32",
"port": "23",
"out": "sit",
"ret": "buffer",
"splitc": " ",
"newline": "",
"trim": false,
"tls": "",
"x": 1160,
"y": 40,
"wires": [
[
"98caab64b9b703c7"
]
]
},
{
"id": "1371f64fd806119d",
"type": "inject",
"z": "da6e05d5352f2b39",
"g": "2c52c0b620b15555",
"name": "Open Connection on Start and Keep Alive",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "45",
"crontab": "",
"once": true,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 270,
"y": 160,
"wires": [
[
"a881c43fa4c27527"
]
]
},
{
"id": "a881c43fa4c27527",
"type": "function",
"z": "da6e05d5352f2b39",
"g": "2c52c0b620b15555",
"name": "null",
"func": "var input = flow.get(\"input\")\nvar output = flow.get(\"output\")\n\nmsg.payload = Buffer.from(\"\");\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 570,
"y": 240,
"wires": [
[
"ca9c5199bf916fd5"
]
]
},
{
"id": "e692e1672f173f26",
"type": "function",
"z": "da6e05d5352f2b39",
"g": "c61e789dd3eee62e",
"name": "if Biamp Handshake Request Received",
"func": "var Arr1 = Buffer.from([0xff, 0xfc, 0x18, 0xff, 0xfc, 0x20, 0xff, 0xfc, 0x23, 0xff, 0xfc, 0x27, 0xff, 0xfc, 0x24]);\nvar Arr2 = Buffer.from([0xff, 0xfe, 0x03, 0xff, 0xfc, 0x01, 0xff, 0xfc, 0x22, 0xff, 0xfc, 0x1f, 0xff, 0xfe, 0x05, 0xff, 0xfc, 0x21]);\n\nif (msg.payload[0] == 0xff && msg.payload[1] == 0xfd && msg.payload[2] == 0x18){\n msg.payload = Arr1;\n return msg;\n}\nif (msg.payload[0] == 0xff && msg.payload[1] == 0xfb && msg.payload[2] == 0x3){\n msg.payload = Arr2;\n return msg;\n}",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 1760,
"y": 200,
"wires": [
[
"9b90569418ace2a3",
"ff2315bfb163b1ef"
]
]
},
{
"id": "aca318a8c544a2e8",
"type": "link in",
"z": "da6e05d5352f2b39",
"name": "Biamp TCP In",
"links": [
"ff2315bfb163b1ef",
"3e66c2169d70929d",
"818e7207b5a7eb8e",
"ca9c5199bf916fd5",
"b4229bc62c696279"
],
"x": 1005,
"y": 40,
"wires": [
[
"d1affebe95753506"
]
]
},
{
"id": "ff2315bfb163b1ef",
"type": "link out",
"z": "da6e05d5352f2b39",
"g": "c61e789dd3eee62e",
"name": "toBiamp",
"mode": "link",
"links": [
"aca318a8c544a2e8"
],
"x": 1995,
"y": 200,
"wires": []
},
{
"id": "9b90569418ace2a3",
"type": "debug",
"z": "da6e05d5352f2b39",
"g": "c61e789dd3eee62e",
"name": "debug 37",
"active": false,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 2040,
"y": 160,
"wires": []
},
{
"id": "3ef770b7538e255b",
"type": "debug",
"z": "da6e05d5352f2b39",
"name": "debug 38",
"active": false,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 1860,
"y": 40,
"wires": []
},
{
"id": "765ad1a4ad968cfd",
"type": "change",
"z": "da6e05d5352f2b39",
"g": "22d58c78d80545ea",
"name": "subscribe Level1",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "Level1 subscribe level 1 lvl1 100",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 540,
"y": 320,
"wires": [
[
"a63bf17af4660c67",
"b7a057c47c1b5d64"
]
]
},
{
"id": "a63bf17af4660c67",
"type": "subflow:1cf05b9a1d3db98f",
"z": "da6e05d5352f2b39",
"g": "2c52c0b620b15555",
"name": "",
"x": 790,
"y": 320,
"wires": [
[
"ca9c5199bf916fd5"
],
[],
[]
]
},
{
"id": "7d16ae967966b40b",
"type": "Controller",
"z": "da6e05d5352f2b39",
"name": "Controller",
"mojo": {
"controller": "tsmu3300:80",
"protocol": "http",
"host": "tsmu3300",
"port": 80,
"username": "admin",
"password": "12rms34"
},
"x": 140,
"y": 40,
"wires": []
},
{
"id": "7518f03e6d99af2b",
"type": "subflow:5fb61457a46fa579",
"z": "da6e05d5352f2b39",
"name": "",
"x": 1670,
"y": 40,
"wires": [
[
"3ef770b7538e255b"
]
]
},
{
"id": "2755193d15817fab",
"type": "change",
"z": "da6e05d5352f2b39",
"g": "22d58c78d80545ea",
"name": "subscribe Mute1",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "Level1 subscribe mute 1 lvl1Mute 100",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 540,
"y": 360,
"wires": [
[
"a63bf17af4660c67",
"806768ff2817a4b2"
]
]
},
{
"id": "8272729ff9885032",
"type": "delay",
"z": "da6e05d5352f2b39",
"g": "22d58c78d80545ea",
"name": "",
"pauseType": "delay",
"timeout": "3",
"timeoutUnits": "seconds",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"allowrate": false,
"outputs": 1,
"x": 340,
"y": 320,
"wires": [
[
"765ad1a4ad968cfd"
]
]
},
{
"id": "c8bb29c816fe06cc",
"type": "switch",
"z": "da6e05d5352f2b39",
"name": "publishSwtich",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "cont",
"v": "! \"publishToken\":\"lvl1\" \"value\":",
"vt": "str"
},
{
"t": "cont",
"v": "! \"publishToken\":\"lvl1Mute\" \"value\":",
"vt": "str"
},
{
"t": "cont",
"v": "! \"publishToken\":\"lvl2\" \"value\":",
"vt": "str"
},
{
"t": "cont",
"v": "! \"publishToken\":\"lvl2Mute\" \"value\":",
"vt": "str"
},
{
"t": "cont",
"v": "! \"publishToken\":\"ss1\" \"value\":",
"vt": "str"
}
],
"checkall": "true",
"repair": false,
"outputs": 5,
"x": 1270,
"y": 500,
"wires": [
[
"4f740e81ed409dbf"
],
[
"4b1486d79c8cd36b"
],
[
"d553e1445dcf917d"
],
[
"023fbec124cdbd99"
],
[
"a1e68b2a688c740b"
]
],
"outputLabels": [
"Level 1",
"Level 1 Mute",
"Level 2",
"Level 2 Mute",
"Source Selector 1"
]
},
{
"id": "f63dcfd9718f7ad4",
"type": "Control Panel",
"z": "da6e05d5352f2b39",
"name": "10002",
"mojo": {
"device": "AMX-10002",
"md5": "b6eb671bb4b93bc1faff2f2f5618b7a0",
"tp5": "Biamp Direct Control -NR.TP5"
},
"x": 290,
"y": 40,
"wires": []
},
{
"id": "90101cd275dbe569",
"type": "Command",
"z": "da6e05d5352f2b39",
"g": "0c1b9e75a62f1745",
"name": "10002 Level 1 fb",
"mojo": {
"device": "AMX-10002",
"command": "//port/1/level/1",
"normalized": false,
"cmdvalue": "Message payload",
"onebased": true
},
"x": 2100,
"y": 380,
"wires": [
[]
]
},
{
"id": "dece5840921dfd30",
"type": "range",
"z": "da6e05d5352f2b39",
"g": "0c1b9e75a62f1745",
"minin": "-100",
"maxin": "12",
"minout": "0",
"maxout": "255",
"action": "roll",
"round": true,
"property": "payload",
"name": "",
"x": 1910,
"y": 380,
"wires": [
[
"90101cd275dbe569",
"f1d4fa5f9b11f6b2"
]
]
},
{
"id": "b9f0f302e6cec66e",
"type": "Command",
"z": "da6e05d5352f2b39",
"g": "0c1b9e75a62f1745",
"name": "10002 lvl1Mute",
"mojo": {
"cmdvalue": "Message payload",
"args": "",
"device": "AMX-10002",
"command": "//port/1/channel/3",
"normalized": false,
"onebased": true
},
"x": 2100,
"y": 440,
"wires": [
[]
]
},
{
"id": "4f740e81ed409dbf",
"type": "subflow:c2964f25c9429034",
"z": "da6e05d5352f2b39",
"g": "0c1b9e75a62f1745",
"name": "",
"x": 1590,
"y": 380,
"wires": [
[
"dece5840921dfd30"
],
[],
[]
]
},
{
"id": "4b1486d79c8cd36b",
"type": "subflow:c2964f25c9429034",
"z": "da6e05d5352f2b39",
"g": "0c1b9e75a62f1745",
"name": "",
"x": 1590,
"y": 440,
"wires": [
[],
[
"b9f0f302e6cec66e"
],
[]
]
},
{
"id": "65f177379b4cfc56",
"type": "change",
"z": "da6e05d5352f2b39",
"g": "22d58c78d80545ea",
"name": "subscribe Level2",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "Level1 subscribe level 2 lvl2 100",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 540,
"y": 400,
"wires": [
[
"a63bf17af4660c67",
"d31eb432090c8b37"
]
]
},
{
"id": "e4379d857135fab3",
"type": "change",
"z": "da6e05d5352f2b39",
"g": "22d58c78d80545ea",
"name": "subscribe Mute2",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "Level1 subscribe mute 2 lvl2Mute 100",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 540,
"y": 440,
"wires": [
[
"a63bf17af4660c67",
"aa4c92fe8a3d82a5"
]
]
},
{
"id": "d553e1445dcf917d",
"type": "subflow:c2964f25c9429034",
"z": "da6e05d5352f2b39",
"g": "62fcc6409a5cd164",
"name": "",
"x": 1590,
"y": 560,
"wires": [
[
"576a3cfa192af778"
],
[],
[]
]
},
{
"id": "023fbec124cdbd99",
"type": "subflow:c2964f25c9429034",
"z": "da6e05d5352f2b39",
"g": "62fcc6409a5cd164",
"name": "",
"x": 1590,
"y": 620,
"wires": [
[],
[
"bf27db4775adb57d"
],
[]
]
},
{
"id": "55042fe02f92a38f",
"type": "Command",
"z": "da6e05d5352f2b39",
"g": "62fcc6409a5cd164",
"name": "10002 Level 2 fb",
"mojo": {
"device": "AMX-10002",
"command": "//port/1/level/2",
"normalized": false,
"cmdvalue": "Message payload",
"onebased": true
},
"x": 2090,
"y": 560,
"wires": [
[]
]
},
{
"id": "576a3cfa192af778",
"type": "range",
"z": "da6e05d5352f2b39",
"g": "62fcc6409a5cd164",
"minin": "-100",
"maxin": "12",
"minout": "0",
"maxout": "255",
"action": "roll",
"round": true,
"property": "payload",
"name": "",
"x": 1900,
"y": 560,
"wires": [
[
"55042fe02f92a38f"
]
]
},
{
"id": "bf27db4775adb57d",
"type": "Command",
"z": "da6e05d5352f2b39",
"g": "62fcc6409a5cd164",
"name": "10002 lvl2Mute",
"mojo": {
"cmdvalue": "Message payload",
"device": "AMX-10002",
"command": "//port/1/channel/6",
"normalized": false,
"onebased": true
},
"x": 2090,
"y": 620,
"wires": [
[]
]
},
{
"id": "3e66c2169d70929d",
"type": "link out",
"z": "da6e05d5352f2b39",
"g": "1d89ee7fdb0e9895",
"name": "toBiamp",
"mode": "link",
"links": [
"aca318a8c544a2e8"
],
"x": 905,
"y": 840,
"wires": []
},
{
"id": "1765e825cb43aa6e",
"type": "UI Control",
"z": "da6e05d5352f2b39",
"g": "1d89ee7fdb0e9895",
"name": "lvl1 Vol+ P",
"mojo": {
"type": "BUTTON",
"path": "//1/1",
"locator": {
"ccode": 1,
"cport": 1
},
"trigger": "PUSH",
"state": "ON",
"cp": "f63dcfd9718f7ad4"
},
"x": 160,
"y": 720,
"wires": [
[
"179dae952d85ffe0"
]
]
},
{
"id": "fd8f40d2afba93d7",
"type": "UI Control",
"z": "da6e05d5352f2b39",
"g": "1d89ee7fdb0e9895",
"name": "lvl1 Vol+ R",
"mojo": {
"type": "BUTTON",
"path": "//1/1",
"trigger": "RELEASE",
"state": "OFF",
"cp": "f63dcfd9718f7ad4",
"locator": {
"ccode": 1,
"cport": 1
}
},
"x": 160,
"y": 760,
"wires": [
[
"179dae952d85ffe0"
]
]
},
{
"id": "179dae952d85ffe0",
"type": "trigger",
"z": "da6e05d5352f2b39",
"g": "1d89ee7fdb0e9895",
"name": "",
"op1": "",
"op2": "0",
"op1type": "pay",
"op2type": "str",
"duration": "-333",
"extend": false,
"overrideDelay": false,
"units": "ms",
"reset": "false",
"bytopic": "all",
"topic": "topic",
"outputs": 1,
"x": 370,
"y": 740,
"wires": [
[
"82e0422f84713028"
]
]
},
{
"id": "82e0422f84713028",
"type": "change",
"z": "da6e05d5352f2b39",
"g": "1d89ee7fdb0e9895",
"name": "lvl1 bumpUp 5",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "Level1 increment level 1 5",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 590,
"y": 740,
"wires": [
[
"7697da89098fcff0"
]
]
},
{
"id": "7697da89098fcff0",
"type": "subflow:1cf05b9a1d3db98f",
"z": "da6e05d5352f2b39",
"g": "1d89ee7fdb0e9895",
"name": "",
"x": 790,
"y": 840,
"wires": [
[
"3e66c2169d70929d"
],
[],
[]
]
},
{
"id": "8ec89703630b52dc",
"type": "change",
"z": "da6e05d5352f2b39",
"g": "1d89ee7fdb0e9895",
"name": "lvl1 bumpDN 5",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "Level1 decrement level 1 5",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 590,
"y": 840,
"wires": [
[
"7697da89098fcff0"
]
]
},
{
"id": "ae8d3d9af5c74434",
"type": "UI Control",
"z": "da6e05d5352f2b39",
"g": "1d89ee7fdb0e9895",
"name": "lvl1 Vol- P",
"mojo": {
"type": "BUTTON",
"path": "//1/2",
"locator": {
"ccode": 2,
"cport": 1
},
"trigger": "PUSH",
"state": "ON",
"cp": "f63dcfd9718f7ad4"
},
"x": 160,
"y": 820,
"wires": [
[
"4171a240a7b30541"
]
]
},
{
"id": "ef3a31c611afeef4",
"type": "UI Control",
"z": "da6e05d5352f2b39",
"g": "1d89ee7fdb0e9895",
"name": "lvl1 Vol- R",
"mojo": {
"type": "BUTTON",
"path": "//1/2",
"trigger": "RELEASE",
"state": "OFF",
"cp": "f63dcfd9718f7ad4",
"locator": {
"ccode": 2,
"cport": 1
}
},
"x": 160,
"y": 860,
"wires": [
[
"4171a240a7b30541"
]
]
},
{
"id": "4171a240a7b30541",
"type": "trigger",
"z": "da6e05d5352f2b39",
"g": "1d89ee7fdb0e9895",
"name": "",
"op1": "",
"op2": "0",
"op1type": "pay",
"op2type": "str",
"duration": "-333",
"extend": false,
"overrideDelay": false,
"units": "ms",
"reset": "false",
"bytopic": "all",
"topic": "topic",
"outputs": 1,
"x": 370,
"y": 840,
"wires": [
[
"8ec89703630b52dc"
]
]
},
{
"id": "5b9f0496b30ba27f",
"type": "UI Control",
"z": "da6e05d5352f2b39",
"g": "93c2af947f970495",
"name": "lvl2 Vol+ P",
"mojo": {
"type": "BUTTON",
"path": "//1/4",
"locator": {
"ccode": 4,
"cport": 1
},
"trigger": "PUSH",
"state": "ON",
"cp": "f63dcfd9718f7ad4"
},
"x": 160,
"y": 1080,
"wires": [
[
"35edc996111753e5"
]
]
},
{
"id": "6c7dcb9cc9b1d964",
"type": "UI Control",
"z": "da6e05d5352f2b39",
"g": "93c2af947f970495",
"name": "lvl2 Vol+ R",
"mojo": {
"type": "BUTTON",
"path": "//1/4",
"trigger": "RELEASE",
"state": "OFF",
"cp": "f63dcfd9718f7ad4",
"locator": {
"ccode": 4,
"cport": 1
}
},
"x": 160,
"y": 1120,
"wires": [
[
"35edc996111753e5"
]
]
},
{
"id": "35edc996111753e5",
"type": "trigger",
"z": "da6e05d5352f2b39",
"g": "93c2af947f970495",
"name": "",
"op1": "",
"op2": "0",
"op1type": "pay",
"op2type": "str",
"duration": "-333",
"extend": false,
"overrideDelay": false,
"units": "ms",
"reset": "false",
"bytopic": "all",
"topic": "topic",
"outputs": 1,
"x": 370,
"y": 1100,
"wires": [
[
"e7098d38a0101939"
]
]
},
{
"id": "e7098d38a0101939",
"type": "change",
"z": "da6e05d5352f2b39",
"g": "93c2af947f970495",
"name": "lvl2 bumpUp 5",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "Level1 increment level 2 5",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 590,
"y": 1100,
"wires": [
[
"73d518c479cf9b64"
]
]
},
{
"id": "6f63432a8bfeb2d4",
"type": "change",
"z": "da6e05d5352f2b39",
"g": "93c2af947f970495",
"name": "lvl2 bumpDN 5",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "Level1 decrement level 2 5",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 590,
"y": 1200,
"wires": [
[
"73d518c479cf9b64"
]
]
},
{
"id": "6008e46796111362",
"type": "UI Control",
"z": "da6e05d5352f2b39",
"g": "93c2af947f970495",
"name": "lvl2 Vol- P",
"mojo": {
"type": "BUTTON",
"path": "//1/6",
"locator": {
"ccode": 5,
"cport": 1
},
"trigger": "PUSH",
"state": "ON",
"cp": "f63dcfd9718f7ad4"
},
"x": 160,
"y": 1180,
"wires": [
[
"d9282dcc2f0b7c9d"
]
]
},
{
"id": "b1bc0625d97390f1",
"type": "UI Control",
"z": "da6e05d5352f2b39",
"g": "93c2af947f970495",
"name": "lvl2 Vol- R",
"mojo": {
"type": "BUTTON",
"path": "//1/6",
"trigger": "RELEASE",
"state": "OFF",
"cp": "f63dcfd9718f7ad4",
"locator": {
"ccode": 5,
"cport": 1
}
},
"x": 160,
"y": 1220,
"wires": [
[
"d9282dcc2f0b7c9d"
]
]
},
{
"id": "d9282dcc2f0b7c9d",
"type": "trigger",
"z": "da6e05d5352f2b39",
"g": "93c2af947f970495",
"name": "",
"op1": "",
"op2": "0",
"op1type": "pay",
"op2type": "str",
"duration": "-333",
"extend": false,
"overrideDelay": false,
"units": "ms",
"reset": "false",
"bytopic": "all",
"topic": "topic",
"outputs": 1,
"x": 370,
"y": 1200,
"wires": [
[
"6f63432a8bfeb2d4"
]
]
},
{
"id": "2d1e366145820a16",
"type": "UI Control",
"z": "da6e05d5352f2b39",
"g": "1d89ee7fdb0e9895",
"name": "lvl1 mute ",
"mojo": {
"cp": "f63dcfd9718f7ad4",
"type": "BUTTON",
"path": "//1/5",
"locator": {
"ccode": 3,
"cport": 1
},
"trigger": "PUSH",
"state": "NONE"
},
"x": 160,
"y": 940,
"wires": [
[
"dda4112755aced35"
]
]
},
{
"id": "dda4112755aced35",
"type": "change",
"z": "da6e05d5352f2b39",
"g": "1d89ee7fdb0e9895",
"name": "lvl1 mute",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "Level1 toggle mute 1",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 600,
"y": 940,
"wires": [
[
"7697da89098fcff0"
]
]
},
{
"id": "0442e13d867f9095",
"type": "UI Control",
"z": "da6e05d5352f2b39",
"g": "93c2af947f970495",
"name": "lvl2 mute ",
"mojo": {
"cp": "f63dcfd9718f7ad4",
"type": "BUTTON",
"path": "//1/8",
"locator": {
"ccode": 6,
"cport": 1
},
"trigger": "PUSH",
"state": "NONE"
},
"x": 160,
"y": 1300,
"wires": [
[
"9457d3b01ed4965c"
]
]
},
{
"id": "9457d3b01ed4965c",
"type": "change",
"z": "da6e05d5352f2b39",
"g": "93c2af947f970495",
"name": "lvl2 mute",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "Level1 toggle mute 2",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 600,
"y": 1300,
"wires": [
[
"73d518c479cf9b64"
]
]
},
{
"id": "73d518c479cf9b64",
"type": "subflow:1cf05b9a1d3db98f",
"z": "da6e05d5352f2b39",
"g": "93c2af947f970495",
"name": "",
"x": 790,
"y": 1200,
"wires": [
[
"818e7207b5a7eb8e"
],
[],
[]
]
},
{
"id": "818e7207b5a7eb8e",
"type": "link out",
"z": "da6e05d5352f2b39",
"g": "93c2af947f970495",
"name": "toBiamp",
"mode": "link",
"links": [
"aca318a8c544a2e8"
],
"x": 905,
"y": 1200,
"wires": []
},
{
"id": "b7a057c47c1b5d64",
"type": "delay",
"z": "da6e05d5352f2b39",
"g": "22d58c78d80545ea",
"name": "",
"pauseType": "delay",
"timeout": "555",
"timeoutUnits": "milliseconds",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"allowrate": false,
"outputs": 1,
"x": 350,
"y": 360,
"wires": [
[
"2755193d15817fab"
]
]
},
{
"id": "806768ff2817a4b2",
"type": "delay",
"z": "da6e05d5352f2b39",
"g": "22d58c78d80545ea",
"name": "",
"pauseType": "delay",
"timeout": "555",
"timeoutUnits": "milliseconds",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"allowrate": false,
"outputs": 1,
"x": 350,
"y": 400,
"wires": [
[
"65f177379b4cfc56"
]
]
},
{
"id": "d31eb432090c8b37",
"type": "delay",
"z": "da6e05d5352f2b39",
"g": "22d58c78d80545ea",
"name": "",
"pauseType": "delay",
"timeout": "555",
"timeoutUnits": "milliseconds",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"allowrate": false,
"outputs": 1,
"x": 350,
"y": 440,
"wires": [
[
"e4379d857135fab3"
]
]
},
{
"id": "ca9c5199bf916fd5",
"type": "link out",
"z": "da6e05d5352f2b39",
"g": "2c52c0b620b15555",
"name": "toBiamp",
"mode": "link",
"links": [
"aca318a8c544a2e8"
],
"x": 905,
"y": 240,
"wires": []
},
{
"id": "83cfc8510584119e",
"type": "status",
"z": "da6e05d5352f2b39",
"g": "2c52c0b620b15555",
"name": "Biamp Connection Status",
"scope": [
"d1affebe95753506"
],
"x": 320,
"y": 200,
"wires": [
[
"eced53772bb137e4"
]
]
},
{
"id": "eced53772bb137e4",
"type": "switch",
"z": "da6e05d5352f2b39",
"g": "2c52c0b620b15555",
"name": "biampConnect",
"property": "status.text",
"propertyType": "msg",
"rules": [
{
"t": "cont",
"v": "common.status.disconnected",
"vt": "str"
},
{
"t": "cont",
"v": "common.status.connected",
"vt": "str"
}
],
"checkall": "true",
"repair": false,
"outputs": 2,
"x": 350,
"y": 240,
"wires": [
[
"a881c43fa4c27527"
],
[
"8272729ff9885032"
]
]
},
{
"id": "f1d4fa5f9b11f6b2",
"type": "debug",
"z": "da6e05d5352f2b39",
"g": "0c1b9e75a62f1745",
"name": "debug 44",
"active": false,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 2100,
"y": 340,
"wires": []
},
{
"id": "aa4c92fe8a3d82a5",
"type": "delay",
"z": "da6e05d5352f2b39",
"g": "22d58c78d80545ea",
"name": "",
"pauseType": "delay",
"timeout": "555",
"timeoutUnits": "milliseconds",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"allowrate": false,
"outputs": 1,
"x": 350,
"y": 480,
"wires": [
[
"e9e5b237e8128eb9"
]
]
},
{
"id": "e9e5b237e8128eb9",
"type": "change",
"z": "da6e05d5352f2b39",
"g": "22d58c78d80545ea",
"name": "subscribe SrcS1",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "SourceSelector1 subscribe sourceSelection ss1 100",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 540,
"y": 480,
"wires": [
[
"a63bf17af4660c67"
]
]
},
{
"id": "a1e68b2a688c740b",
"type": "subflow:c2964f25c9429034",
"z": "da6e05d5352f2b39",
"g": "8c6658359f1cdda7",
"name": "",
"x": 1590,
"y": 940,
"wires": [
[],
[],
[
"d265c2d2c8b34537"
]
]
},
{
"id": "638bec55de2f6af2",
"type": "Event",
"z": "da6e05d5352f2b39",
"g": "e6ee9f514971c1b6",
"name": "Source 1 FB True",
"mojo": {
"device": "AMX-10002",
"event": "//port/1/channel/11",
"onebased": true,
"eventKind": "Parameter",
"paramType": "Boolean",
"boolParamFilter": "true"
},
"x": 2380,
"y": 800,
"wires": [
[
"94c5967566ce741e"
]
]
},
{
"id": "94c5967566ce741e",
"type": "switch",
"z": "da6e05d5352f2b39",
"g": "e6ee9f514971c1b6",
"name": "mutuallyExclusive Swtich",
"property": "topic",
"propertyType": "msg",
"rules": [
{
"t": "neq",
"v": "Source 1 FB True",
"vt": "str"
},
{
"t": "neq",
"v": "Source 2 FB True",
"vt": "str"
},
{
"t": "neq",
"v": "Source 3 FB True",
"vt": "str"
},
{
"t": "neq",
"v": "Source 4 FB True",
"vt": "str"
},
{
"t": "neq",
"v": "Source 5 FB True",
"vt": "str"
},
{
"t": "neq",
"v": "Source 6 FB True",
"vt": "str"
},
{
"t": "neq",
"v": "Source 7 FB True",
"vt": "str"
},
{
"t": "neq",
"v": "Source 8 FB True",
"vt": "str"
}
],
"checkall": "true",
"repair": false,
"outputs": 8,
"x": 2680,
"y": 940,
"wires": [
[
"985494e3d47dc158"
],
[
"d3c79afea1f885ef"
],
[
"d09126a42851af1c"
],
[
"8d950b6e5febdee4"
],
[
"a2c301eeed9234f6"
],
[
"b7e8320b2c9e4629"
],
[
"5ecbc1ebc36387e4"
],
[
"e36b44b2d8ef6d7c"
]
]
},
{
"id": "985494e3d47dc158",
"type": "Command",
"z": "da6e05d5352f2b39",
"g": "e6ee9f514971c1b6",
"name": "ch11 FB off",
"mojo": {
"device": "AMX-10002",
"command": "//port/1/channel/11",
"normalized": false,
"cmdvalue": "Manual configuration",
"args": false,
"onebased": true
},
"x": 2960,
"y": 800,
"wires": [
[]
]
},
{
"id": "79249b88716bf964",
"type": "Event",
"z": "da6e05d5352f2b39",
"g": "e6ee9f514971c1b6",
"name": "Source 2 FB True",
"mojo": {
"device": "AMX-10002",
"event": "//port/1/channel/12",
"onebased": true,
"eventKind": "Parameter",
"paramType": "Boolean",
"boolParamFilter": "true"
},
"x": 2380,
"y": 840,
"wires": [
[
"94c5967566ce741e"
]
]
},
{
"id": "eb618cd1ab4d8c0b",
"type": "Event",
"z": "da6e05d5352f2b39",
"g": "e6ee9f514971c1b6",
"name": "Source 3 FB True",
"mojo": {
"device": "AMX-10002",
"event": "//port/1/channel/13",
"onebased": true,
"eventKind": "Parameter",
"paramType": "Boolean",
"boolParamFilter": "true"
},
"x": 2380,
"y": 880,
"wires": [
[
"94c5967566ce741e"
]
]
},
{
"id": "58cddf679d830501",
"type": "Event",
"z": "da6e05d5352f2b39",
"g": "e6ee9f514971c1b6",
"name": "Source 4 FB True",
"mojo": {
"device": "AMX-10002",
"event": "//port/1/channel/14",
"onebased": true,
"eventKind": "Parameter",
"paramType": "Boolean",
"boolParamFilter": "true"
},
"x": 2380,
"y": 920,
"wires": [
[
"94c5967566ce741e"
]
]
},
{
"id": "802426c250185cde",
"type": "Event",
"z": "da6e05d5352f2b39",
"g": "e6ee9f514971c1b6",
"name": "Source 5 FB True",
"mojo": {
"device": "AMX-10002",
"event": "//port/1/channel/15",
"onebased": true,
"eventKind": "Parameter",
"paramType": "Boolean",
"boolParamFilter": "true"
},
"x": 2380,
"y": 960,
"wires": [
[
"94c5967566ce741e"
]
]
},
{
"id": "c3cc170e8f7e7db3",
"type": "Event",
"z": "da6e05d5352f2b39",
"g": "e6ee9f514971c1b6",
"name": "Source 6 FB True",
"mojo": {
"device": "AMX-10002",
"event": "//port/1/channel/16",
"onebased": true,
"eventKind": "Parameter",
"paramType": "Boolean",
"boolParamFilter": "true"
},
"x": 2380,
"y": 1000,
"wires": [
[
"94c5967566ce741e"
]
]
},
{
"id": "4389dd7c3f4c29d1",
"type": "Event",
"z": "da6e05d5352f2b39",
"g": "e6ee9f514971c1b6",
"name": "Source 7 FB True",
"mojo": {
"device": "AMX-10002",
"event": "//port/1/channel/17",
"onebased": true,
"eventKind": "Parameter",
"paramType": "Boolean",
"boolParamFilter": "true"
},
"x": 2380,
"y": 1040,
"wires": [
[
"94c5967566ce741e"
]
]
},
{
"id": "3a5515ec6acba027",
"type": "Event",
"z": "da6e05d5352f2b39",
"g": "e6ee9f514971c1b6",
"name": "Source 8 FB True",
"mojo": {
"device": "AMX-10002",
"event": "//port/1/channel/18",
"onebased": true,
"eventKind": "Parameter",
"paramType": "Boolean",
"boolParamFilter": "true"
},
"x": 2380,
"y": 1080,
"wires": [
[
"94c5967566ce741e"
]
]
},
{
"id": "d3c79afea1f885ef",
"type": "Command",
"z": "da6e05d5352f2b39",
"g": "e6ee9f514971c1b6",
"name": "ch12 FB off",
"mojo": {
"device": "AMX-10002",
"command": "//port/1/channel/12",
"normalized": false,
"cmdvalue": "Manual configuration",
"args": false,
"onebased": true
},
"x": 2960,
"y": 840,
"wires": [
[]
]
},
{
"id": "d09126a42851af1c",
"type": "Command",
"z": "da6e05d5352f2b39",
"g": "e6ee9f514971c1b6",
"name": "ch13 FB off",
"mojo": {
"device": "AMX-10002",
"command": "//port/1/channel/13",
"normalized": false,
"cmdvalue": "Manual configuration",
"args": false,
"onebased": true
},
"x": 2960,
"y": 880,
"wires": [
[]
]
},
{
"id": "8d950b6e5febdee4",
"type": "Command",
"z": "da6e05d5352f2b39",
"g": "e6ee9f514971c1b6",
"name": "ch14 FB off",
"mojo": {
"device": "AMX-10002",
"command": "//port/1/channel/14",
"normalized": false,
"cmdvalue": "Manual configuration",
"args": false,
"onebased": true
},
"x": 2960,
"y": 920,
"wires": [
[]
]
},
{
"id": "a2c301eeed9234f6",
"type": "Command",
"z": "da6e05d5352f2b39",
"g": "e6ee9f514971c1b6",
"name": "ch15 FB off",
"mojo": {
"device": "AMX-10002",
"command": "//port/1/channel/15",
"normalized": false,
"cmdvalue": "Manual configuration",
"args": false,
"onebased": true
},
"x": 2960,
"y": 960,
"wires": [
[]
]
},
{
"id": "b7e8320b2c9e4629",
"type": "Command",
"z": "da6e05d5352f2b39",
"g": "e6ee9f514971c1b6",
"name": "ch16 FB off",
"mojo": {
"device": "AMX-10002",
"command": "//port/1/channel/16",
"normalized": false,
"cmdvalue": "Manual configuration",
"args": false,
"onebased": true
},
"x": 2960,
"y": 1000,
"wires": [
[]
]
},
{
"id": "5ecbc1ebc36387e4",
"type": "Command",
"z": "da6e05d5352f2b39",
"g": "e6ee9f514971c1b6",
"name": "ch17 FB off",
"mojo": {
"device": "AMX-10002",
"command": "//port/1/channel/17",
"normalized": false,
"cmdvalue": "Manual configuration",
"args": false,
"onebased": true
},
"x": 2960,
"y": 1040,
"wires": [
[]
]
},
{
"id": "e36b44b2d8ef6d7c",
"type": "Command",
"z": "da6e05d5352f2b39",
"g": "e6ee9f514971c1b6",
"name": "ch18 FB off",
"mojo": {
"device": "AMX-10002",
"command": "//port/1/channel/18",
"normalized": false,
"cmdvalue": "Manual configuration",
"args": false,
"onebased": true
},
"x": 2960,
"y": 1080,
"wires": [
[]
]
},
{
"id": "e07fbf6781067c09",
"type": "Command",
"z": "da6e05d5352f2b39",
"g": "8c6658359f1cdda7",
"name": "Source 1 fbOn",
"mojo": {
"device": "AMX-10002",
"command": "//port/1/channel/11",
"normalized": false,
"cmdvalue": "Manual configuration",
"args": true,
"onebased": true
},
"x": 2110,
"y": 800,
"wires": [
[]
]
},
{
"id": "d265c2d2c8b34537",
"type": "switch",
"z": "da6e05d5352f2b39",
"g": "8c6658359f1cdda7",
"name": "Source Number Switch",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "1",
"vt": "num"
},
{
"t": "eq",
"v": "2",
"vt": "num"
},
{
"t": "eq",
"v": "3",
"vt": "num"
},
{
"t": "eq",
"v": "4",
"vt": "num"
},
{
"t": "eq",
"v": "5",
"vt": "num"
},
{
"t": "eq",
"v": "6",
"vt": "num"
},
{
"t": "eq",
"v": "7",
"vt": "num"
},
{
"t": "eq",
"v": "8",
"vt": "num"
}
],
"checkall": "true",
"repair": false,
"outputs": 8,
"x": 1820,
"y": 940,
"wires": [
[
"e07fbf6781067c09"
],
[
"8647f4fa071f5c00"
],
[
"e5188367b9f8bd86"
],
[
"74bfde85425f3176"
],
[
"f06de56c1d91c80a"
],
[
"dfa4c284457c16ac"
],
[
"888fcb8bcfe6f052"
],
[
"1b84135c1bca7e64"
]
]
},
{
"id": "8647f4fa071f5c00",
"type": "Command",
"z": "da6e05d5352f2b39",
"g": "8c6658359f1cdda7",
"name": "Source 2 fbOn ",
"mojo": {
"device": "AMX-10002",
"command": "//port/1/channel/12",
"normalized": false,
"cmdvalue": "Manual configuration",
"args": true,
"onebased": true
},
"x": 2110,
"y": 840,
"wires": [
[]
]
},
{
"id": "e5188367b9f8bd86",
"type": "Command",
"z": "da6e05d5352f2b39",
"g": "8c6658359f1cdda7",
"name": "Source 3 fbOn",
"mojo": {
"device": "AMX-10002",
"command": "//port/1/channel/13",
"normalized": false,
"cmdvalue": "Manual configuration",
"args": true,
"onebased": true
},
"x": 2110,
"y": 880,
"wires": [
[]
]
},
{
"id": "74bfde85425f3176",
"type": "Command",
"z": "da6e05d5352f2b39",
"g": "8c6658359f1cdda7",
"name": "Source 4 fbOn",
"mojo": {
"device": "AMX-10002",
"command": "//port/1/channel/14",
"normalized": false,
"cmdvalue": "Manual configuration",
"args": true,
"onebased": true
},
"x": 2110,
"y": 920,
"wires": [
[]
]
},
{
"id": "f06de56c1d91c80a",
"type": "Command",
"z": "da6e05d5352f2b39",
"g": "8c6658359f1cdda7",
"name": "Source 5 fbOn",
"mojo": {
"device": "AMX-10002",
"command": "//port/1/channel/15",
"normalized": false,
"cmdvalue": "Manual configuration",
"args": true,
"onebased": true
},
"x": 2110,
"y": 960,
"wires": [
[]
]
},
{
"id": "dfa4c284457c16ac",
"type": "Command",
"z": "da6e05d5352f2b39",
"g": "8c6658359f1cdda7",
"name": "Source 6 fbOn",
"mojo": {
"device": "AMX-10002",
"command": "//port/1/channel/16",
"normalized": false,
"cmdvalue": "Manual configuration",
"args": true,
"onebased": true
},
"x": 2110,
"y": 1000,
"wires": [
[]
]
},
{
"id": "888fcb8bcfe6f052",
"type": "Command",
"z": "da6e05d5352f2b39",
"g": "8c6658359f1cdda7",
"name": "Source 7 fbOn",
"mojo": {
"device": "AMX-10002",
"command": "//port/1/channel/17",
"normalized": false,
"cmdvalue": "Manual configuration",
"args": true,
"onebased": true
},
"x": 2110,
"y": 1040,
"wires": [
[]
]
},
{
"id": "1b84135c1bca7e64",
"type": "Command",
"z": "da6e05d5352f2b39",
"g": "8c6658359f1cdda7",
"name": "Source 8 fbOn",
"mojo": {
"device": "AMX-10002",
"command": "//port/1/channel/18",
"normalized": false,
"cmdvalue": "Manual configuration",
"args": true,
"onebased": true
},
"x": 2110,
"y": 1080,
"wires": [
[]
]
},
{
"id": "f985908198ed8f07",
"type": "UI Control",
"z": "da6e05d5352f2b39",
"g": "751351e02c9111b9",
"name": "Source 1",
"mojo": {
"cp": "f63dcfd9718f7ad4",
"type": "BUTTON",
"path": "//1/9",
"locator": {
"ccode": 11,
"cport": 1
},
"trigger": "PUSH",
"state": "NONE"
},
"x": 150,
"y": 1420,
"wires": [
[
"6a4690d5d9779dc9"
]
]
},
{
"id": "a02c2ed35d3f705b",
"type": "UI Control",
"z": "da6e05d5352f2b39",
"g": "751351e02c9111b9",
"name": "Source 2",
"mojo": {
"cp": "f63dcfd9718f7ad4",
"type": "BUTTON",
"path": "//1/19",
"locator": {
"ccode": 12,
"cport": 1
},
"trigger": "PUSH",
"state": "NONE"
},
"x": 150,
"y": 1460,
"wires": [
[
"6a4690d5d9779dc9"
]
]
},
{
"id": "68e4f73ad3509384",
"type": "UI Control",
"z": "da6e05d5352f2b39",
"g": "751351e02c9111b9",
"name": "Source 3",
"mojo": {
"cp": "f63dcfd9718f7ad4",
"type": "BUTTON",
"path": "//1/10",
"locator": {
"ccode": 13,
"cport": 1
},
"trigger": "PUSH",
"state": "NONE"
},
"x": 150,
"y": 1500,
"wires": [
[
"6a4690d5d9779dc9"
]
]
},
{
"id": "47100989cd027f32",
"type": "UI Control",
"z": "da6e05d5352f2b39",
"g": "751351e02c9111b9",
"name": "Source 4",
"mojo": {
"cp": "f63dcfd9718f7ad4",
"type": "BUTTON",
"path": "//1/11",
"locator": {
"ccode": 14,
"cport": 1
},
"trigger": "PUSH",
"state": "NONE"
},
"x": 150,
"y": 1540,
"wires": [
[
"6a4690d5d9779dc9"
]
]
},
{
"id": "92a7c970bcfcd383",
"type": "UI Control",
"z": "da6e05d5352f2b39",
"g": "751351e02c9111b9",
"name": "Source 5",
"mojo": {
"cp": "f63dcfd9718f7ad4",
"type": "BUTTON",
"path": "//1/12",
"locator": {
"ccode": 15,
"cport": 1
},
"trigger": "PUSH",
"state": "NONE"
},
"x": 150,
"y": 1580,
"wires": [
[
"6a4690d5d9779dc9"
]
]
},
{
"id": "c19f4512f60c543a",
"type": "UI Control",
"z": "da6e05d5352f2b39",
"g": "751351e02c9111b9",
"name": "Source 6",
"mojo": {
"cp": "f63dcfd9718f7ad4",
"type": "BUTTON",
"path": "//1/13",
"locator": {
"ccode": 16,
"cport": 1
},
"trigger": "PUSH",
"state": "NONE"
},
"x": 150,
"y": 1620,
"wires": [
[
"6a4690d5d9779dc9"
]
]
},
{
"id": "68a03808c56d21a1",
"type": "UI Control",
"z": "da6e05d5352f2b39",
"g": "751351e02c9111b9",
"name": "Source 7",
"mojo": {
"cp": "f63dcfd9718f7ad4",
"type": "BUTTON",
"path": "//1/14",
"locator": {
"ccode": 17,
"cport": 1
},
"trigger": "PUSH",
"state": "NONE"
},
"x": 150,
"y": 1660,
"wires": [
[
"6a4690d5d9779dc9"
]
]
},
{
"id": "1fc531d48315f35c",
"type": "UI Control",
"z": "da6e05d5352f2b39",
"g": "751351e02c9111b9",
"name": "Source 8",
"mojo": {
"cp": "f63dcfd9718f7ad4",
"type": "BUTTON",
"path": "//1/18",
"locator": {
"ccode": 18,
"cport": 1
},
"trigger": "PUSH",
"state": "NONE"
},
"x": 150,
"y": 1700,
"wires": [
[
"6a4690d5d9779dc9"
]
]
},
{
"id": "a7e7d3d51ec7d7d9",
"type": "subflow:1cf05b9a1d3db98f",
"z": "da6e05d5352f2b39",
"g": "751351e02c9111b9",
"name": "",
"x": 790,
"y": 1560,
"wires": [
[
"b4229bc62c696279"
],
[],
[]
]
},
{
"id": "b4229bc62c696279",
"type": "link out",
"z": "da6e05d5352f2b39",
"g": "751351e02c9111b9",
"name": "toBiamp",
"mode": "link",
"links": [
"aca318a8c544a2e8"
],
"x": 905,
"y": 1560,
"wires": []
},
{
"id": "6a4690d5d9779dc9",
"type": "function",
"z": "da6e05d5352f2b39",
"g": "751351e02c9111b9",
"name": "function 2",
"func": "let myStr = msg.topic;\n\n//removing 'Source' from msg.topic leaving only the source number\nmyStr = myStr.toString().substring(myStr.lastIndexOf(\" \") + 1);\n\n//create message using source number in myStr\nmsg.payload = Buffer.from(\"SourceSelector1 set sourceSelection \" + myStr);\nreturn msg;",
"outputs": 1,
"timeout": "",
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 600,
"y": 1560,
"wires": [
[
"a7e7d3d51ec7d7d9"
]
]
},
{
"id": "98caab64b9b703c7",
"type": "link out",
"z": "da6e05d5352f2b39",
"name": "Biamp TCP Out",
"mode": "link",
"links": [
"8fedf4c8dbd04d10",
"346f81f1936d4eef",
"ad89ba666549d8e2"
],
"x": 1305,
"y": 40,
"wires": []
},
{
"id": "8fedf4c8dbd04d10",
"type": "link in",
"z": "da6e05d5352f2b39",
"g": "c61e789dd3eee62e",
"name": "fromBiamp",
"links": [
"98caab64b9b703c7"
],
"x": 1515,
"y": 200,
"wires": [
[
"e692e1672f173f26"
]
]
},
{
"id": "346f81f1936d4eef",
"type": "link in",
"z": "da6e05d5352f2b39",
"name": "fromBiamp",
"links": [
"98caab64b9b703c7"
],
"x": 1155,
"y": 500,
"wires": [
[
"c8bb29c816fe06cc"
]
]
},
{
"id": "ad89ba666549d8e2",
"type": "link in",
"z": "da6e05d5352f2b39",
"name": "fromBiamp",
"links": [
"98caab64b9b703c7"
],
"x": 1495,
"y": 40,
"wires": [
[
"7518f03e6d99af2b"
]
]
},
{
"id": "4a3cf56120cea773",
"type": "inject",
"z": "da6e05d5352f2b39",
"g": "2c52c0b620b15555",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": true,
"onceDelay": "5",
"topic": "",
"payload": "",
"payloadType": "date",
"x": 180,
"y": 260,
"wires": [
[
"8272729ff9885032"
]
]
},
{
"id": "ee78ed43596ec417",
"type": "comment",
"z": "da6e05d5352f2b39",
"g": "2c52c0b620b15555",
"name": "Create Subscrptions (open for more)",
"info": "You will need to setup subscriptions for each\nblock that you would like to subscirbe to. \n\nYou can use the Biamp String Calculator\nhttps://support.biamp.com/Tesira/Control/Tesira_command_string_calculator\nto generate the subscription strings and\nreplace the example strings in subscriptions \nabove. ",
"x": 670,
"y": 140,
"wires": []
},
{
"id": "3d3251aa11edda34",
"type": "comment",
"z": "da6e05d5352f2b39",
"g": "1d89ee7fdb0e9895",
"name": "Level and Mute Example ",
"info": "This group is used control a level bump and \nmute toggle. The command strings in the \nchange nodes will need to be replaced with \nstrings that match instance ID of your \ncontrol block. \n\nFor the level control the trigger node\nwill start to repeat 3 times per second\nwhen the push from the button is received\nand will cancel the repeat once the release\nfrom the button is received. ",
"x": 380,
"y": 680,
"wires": []
},
{
"id": "d60a2c48d48a4249",
"type": "comment",
"z": "da6e05d5352f2b39",
"g": "751351e02c9111b9",
"name": "Source Selector Info",
"info": "This function in this source selector example\nis using the UI Control Node name of Source #\nwhich is sent to the function in msg.topic. \n\nThe function removes the Source leaving only \nthe number which is stored in a variable. \nIt then builds a command string of\nSourceSelector1 set sourceSelection \nthat is then sent to the Biamp. \n\n",
"x": 610,
"y": 1420,
"wires": []
},
{
"id": "e357b014d2ab30a3",
"type": "comment",
"z": "da6e05d5352f2b39",
"name": "Response Parsing Info",
"info": "The switch node name publishSwitch is looking \nfor specific strings that include the \ninstance tag for the block that the change \noccured on. \n\nThe instance tag will need to be replaced \nwith your own instance tags that were used\nin the subscribe section. \n\nWhen a matching string is found in the \nresponses it sends the message into the \nbiampParser subflow which removes everything\nexpect the relevent data such as true/false\nfor a mute status or a string and number\nvalue for level value. \n\nYou can then use these values to connect\nto a touch panel channel for button feedback. \nExample, if you connect the boolean output \nof the biampParser to a command node that \nis configured for your touch panel device,\nport 1, channel 1, and the input type as\nmsg.payload then whenever the mute true\nmessage is received from the biamp it would\nturn on the feedback on TP Port 1 Channel 1. \nWhen the false response is received it would\nturn off TP Port 1 Channel 1. \n",
"x": 1270,
"y": 380,
"wires": []
},
{
"id": "1ed3ae4b85600dee",
"type": "comment",
"z": "da6e05d5352f2b39",
"name": "Set IP of Biamp above in Biamp TCP Connection node",
"info": "",
"x": 1160,
"y": 80,
"wires": []
},
{
"id": "4ff51c26897ff3b0",
"type": "comment",
"z": "da6e05d5352f2b39",
"name": "Enable this debug node to see all responses from the Biamp",
"info": "",
"x": 2180,
"y": 40,
"wires": []
},
{
"id": "c8d8ea4ae6f9392a",
"type": "comment",
"z": "da6e05d5352f2b39",
"g": "c61e789dd3eee62e",
"name": "Handshake Info",
"info": "Most devices communicate in a raw telnet \nsession without any initial handshake \ninvolved. Other devices such as Cisco Codecs \nand BiAmp Tesira require a handshake to open\na telnet session. NetLinx controllers \nestablish a raw connection and therefore \nthe telnet handshake must be handled in \nNetLinx code. Most telnet clients quietly \nperform a handshake in the background. \nWith Putty you can establish a raw \nconnection as a test to determine if a \nhandshake is required.\n\nIn a handshake, there are all types of \nnegotiation options (i.e Echo, Binary \nTransmission, Reconnection). In most cases \nthe client (in our case a NetLinx Controller) \nneeds to simply respond with either a \n\"DON'T\" or \"WON'T\" based on each request. \nWhen a \"WILL\" ($FB) is received the response \nwould be \"DON'T\" ($FE). When a \"DO\" ($FD) \nis received the response would be \"WON'T\" \n($FC).\n\n \n\nFor example, the following is received \nupon the initial telnet connection:\n\n$FF$FD$18 $FF$FD$20 $FF$FD$23 $FF$FD$27\n\n \n\nThe response would be:\n\n$FF$FC$18 $FF$FC$20 $FF$FC$23 $FF$FC$27\n\n \n\nByte 1: $FF is the IAC (Interpret as Command)\n\nByte 2: $FB (WILL), $FD (DO), $FE (DON’T), or $FC (WON’T)\n\nByte 3: is the option. (echo, binary, reconnect, etc.)\n\n \n\nHere are some great resources:\n\nsupport.biamp.com/Tesira/Control/Telnet_session_negotiation_in_Tesira\n\nwww.iana.org/assignments/telnet-options",
"x": 1690,
"y": 140,
"wires": []
}
]
For help on importing flows in MUSE Automator see this article: import-flows-into-muse-automator
Table of Contents