1 line
3.3 MiB
1 line
3.3 MiB
{"Id":224,"Name":null,"Description":null,"FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","InProgress":false,"MessageTypes":[{"Id":7358,"Code":"ACK-SPEED","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam;ACK-SPEED;<<imei>>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam;ACK-SPEED;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7357,"Code":"ACK-WIFI","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam;ACK-WIFI;<<imei>>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam;ACK-WIFI;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6945,"Code":"ACK-VOL","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam;ACK-VOL;<<imei>>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5014,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getVolume","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar configs = [];\r\nvar value = '34'; //10 Ring tone Volume\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '02';\r\nvar key = 'F0';\r\nvar messageBody = command + keyLength + key + value;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum).toUpperCase();\r\nchecksum = ('0000' + checksum).slice(-4);\r\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\r\nvar prefix = 'AB10' + '0400' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = [];\r\n var j = 0;\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}","AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"CommandToUpdateId":null,"ParentId":null,"Parent":null,"HasAck":true,"HexString":true,"SendAttempts":2,"Order":24},"CacheImei":false,"RegEx":"^Roam;ACK-VOL;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6940,"Code":"ACK-FALLALERT","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam;ACK-FALLALERT;<<imei>>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5007,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getFallDownAlert","TemplateSMS":"","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar value = '56'; //Fall down Alert code\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '02';\r\nvar key = 'F0';\r\nvar messageBody = command + keyLength + key + value;\r\nvar dataSMS = 'V?'; // Get Firmware\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\n//var prefix = 'AB10' + '0B00' + checksum + sequenceID;\r\nvar prefix = 'AB10' + '0400' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"CommandToUpdateId":null,"ParentId":null,"Parent":null,"HasAck":true,"HexString":true,"SendAttempts":2,"Order":8},"CacheImei":false,"RegEx":"^Roam;ACK-FALLALERT;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6939,"Code":"ACK-NOMOTION","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam;ACK-NOMOTION;<<imei>>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5008,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getNoMotionAlert","TemplateSMS":"","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar value = '53'; //No motion Alert code\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '02';\r\nvar key = 'F0';\r\nvar messageBody = command + keyLength + key + value;\r\nvar dataSMS = 'V?'; // Get Firmware\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\n//var prefix = 'AB10' + '0B00' + checksum + sequenceID;\r\nvar prefix = 'AB10' + '0400' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"CommandToUpdateId":null,"ParentId":null,"Parent":null,"HasAck":true,"HexString":true,"SendAttempts":2,"Order":7},"CacheImei":false,"RegEx":"^Roam;ACK-NOMOTION;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6938,"Code":"ACK-CUSTID","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam;ACK-CUSTID;<<imei>>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5010,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCustomId","TemplateSMS":"","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar value = '47'; //Get device or custom id \r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '02';\r\nvar key = 'F0';\r\nvar messageBody = command + keyLength + key + value;\r\nvar dataSMS = 'V?'; // Get Firmware\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\n//var prefix = 'AB10' + '0B00' + checksum + sequenceID;\r\nvar prefix = 'AB10' + '0400' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"CommandToUpdateId":null,"ParentId":null,"Parent":null,"HasAck":true,"HexString":true,"SendAttempts":2,"Order":8},"CacheImei":false,"RegEx":"^Roam;ACK-CUSTID;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6937,"Code":"ACK-MODE","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam;ACK-MODE;<<imei>>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5005,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getPerformanceMode","TemplateSMS":"","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar value = '44'; //time interval\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '02';\r\nvar key = 'F0';\r\nvar messageBody = command + keyLength + key + value;\r\nvar dataSMS = 'V?'; // Get Firmware\r\n/* IMEI:863921033969786\r\nGSM signal quality: 15\r\nSoftware version: V07BX.8601.2109\r\nversion: V1.0.29.1 */\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\n//var prefix = 'AB10' + '0B00' + checksum + sequenceID;\r\nvar prefix = 'AB10' + '0400' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"CommandToUpdateId":null,"ParentId":null,"Parent":null,"HasAck":true,"HexString":true,"SendAttempts":7,"Order":23},"CacheImei":false,"RegEx":"^Roam;ACK-MODE;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6936,"Code":"ACK-LANG","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam;ACK-LANG;<<imei>>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5004,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getSystemLanguage","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\n//var value = '0234404142435673'; //Firmware, Contacts, APN, server details, fall sensitivity and Beacon List\r\nvar value = '1F'; //System language - locale\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '02';\r\nvar key = 'F0';\r\nvar messageBody = command + keyLength + key + value;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + '0400' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\nAddValue('data', data); // For GPRS command\r\nAddValue('sequenceNumber', sequenceID);\r\n//AddValueSMS('dataSMS', dataSMS); // For SMS command\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"CommandToUpdateId":null,"ParentId":null,"Parent":null,"HasAck":true,"HexString":true,"SendAttempts":3,"Order":22},"CacheImei":false,"RegEx":"^Roam;ACK-LANG;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6880,"Code":"ALSP","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Roam-ALSP;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;<<single_column_value>>","HasTemplateGlobal":false,"ResponseTemplate":"<<ack_internal>>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ALSP;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6888,"Code":"ALA-S","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-ALA-S;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;<<single_column_value>>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ALA-S;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6929,"Code":"ACK-FIRM","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam;ACK-FIRM;<<imei>>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":4957,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getFirmwareVersion","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar value = '1A'; //Ask for firmware Long\r\nvar command = '02';\r\nvar keyLength = '02';\r\nvar key = 'F0';\r\nvar messageBody = command + keyLength + key + value;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + '0400' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nvar dataSMS = 'V?';\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"CommandToUpdateId":null,"ParentId":null,"Parent":null,"HasAck":true,"HexString":true,"SendAttempts":2,"Order":16},"CacheImei":false,"RegEx":"^Roam;ACK-FIRM;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6912,"Code":"STP","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-STP;<<imei>>;STATUS=<<status_data>>;ETIME=<<event_time>>;GENERAL=<<general>>;<<single_column_value>>;STP=<<step_data>>;LABEL=<<oysta_labels>>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-STP;[^;]*;STATUS=[^;;]*;ETIME=[^;;]*;GENERAL=[^;;]*;[^;;]*;STP=[^;;]*;LABEL=[^=]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6885,"Code":"Alert Finalized","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-SOSEnding;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;<<single_column_value>>","HasTemplateGlobal":false,"ResponseTemplate":"<<ack_internal>>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-SOSEnding;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6864,"Code":"CYC","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-CYC;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;SIGNAL=<<signal_strength>>;WM=<<work_mode>>;GENERAL=<<general>>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-CYC;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;SIGNAL=[^;;]*;WM=[^;;]*;GENERAL=[^=]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6910,"Code":"CHK","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Eview-HTB;<<imei>>;STATUS=<<status_data>>;TIME=<<event_time>>;BATP=<<battery_percentage>>;SIGNAL=<<signal_strength>>;WM=<<work_mode>>;GENERAL=<<general>>","HasTemplateGlobal":false,"ResponseTemplate":"<<ack_internal>>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Eview-HTB;[^;]*;STATUS=[^;;]*;TIME=[^;;]*;BATP=[^;;]*;SIGNAL=[^;;]*;WM=[^;;]*;GENERAL=[^=]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6891,"Code":"BATL","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Roam-BATL;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;<<single_column_value>>","HasTemplateGlobal":false,"ResponseTemplate":"<<ack_internal>>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-BATL;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6892,"Code":"BATF","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-BATF;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;<<single_column_value>>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-BATF;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6894,"Code":"ALNM","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Roam-ALNM;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;<<single_column_value>>","HasTemplateGlobal":false,"ResponseTemplate":"<<ack_internal>>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ALNM;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6875,"Code":"ALSOS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Roam-ALSOS;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;<<single_column_value>>","HasTemplateGlobal":false,"ResponseTemplate":"<<ack_internal>>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ALSOS;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6896,"Code":"ALMOV","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Roam-ALMOV;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;<<single_column_value>>","HasTemplateGlobal":false,"ResponseTemplate":"<<ack_internal>>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ALMOV;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6899,"Code":"ALA","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Roam-ALA;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;<<single_column_value>>","HasTemplateGlobal":false,"ResponseTemplate":"<<ack_internal>>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ALA;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6884,"Code":"F-ACK-No Memory","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-ACK;<<imei>>;AB000300CFB3<<sequenceNumber>>7F0125","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ACK;[^;]*;AB000300CFB3[^ ]*7F0125","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6901,"Code":"F-ACK-Invalid Parameter","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-ACK;<<imei>>;AB000300EEA3<<sequenceNumber>>7F0124","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ACK;[^;]*;AB000300EEA3[^ ]*7F0124","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6889,"Code":"F-ACK-Data Size Error","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-ACK;<<imei>>;AB00030028C3<<sequenceNumber>>7F0122","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ACK;[^;]*;AB00030028C3[^ ]*7F0122","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6905,"Code":"F-ACK-Command Invalid","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-ACK;<<imei>>;AB0003009C85<<sequenceNumber>>7F0115","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ACK;[^;]*;AB0003009C85[^ ]*7F0115","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6865,"Code":"ACK-Out Of Service","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-ACK;<<imei>>;AB0003005BF1<<sequenceNumber>>7F0130","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ACK;[^;]*;AB0003005BF1[^ ]*7F0130","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6935,"Code":"ACK-HB-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Set heart beat<<data>>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":4918,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"actionConfigurationMode","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\r\nif (params.Controls.ConfigurationMode == 'true') {\r\n var data = `GPRSHB1M`;\r\n} else {\r\n var data = `GPRSHB0M`; //`GPRSHB240S`;\r\n}\r\nAddValue('data', data);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}","AvoidResending":false,"FollowParentSentType":false,"SendingType":2,"CommandToUpdateId":null,"ParentId":null,"Parent":null,"HasAck":true,"HexString":false,"SendAttempts":4,"Order":null},"CacheImei":false,"RegEx":"^Set heart beat[^t]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6934,"Code":"ACK-EPHONE","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"{{Set contact number 1 ok.|Configuracin numero contacto 1 ok.}}","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":4962,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setEmergencySettings","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar messageBody = '02';\r\nvar key = '30';\r\nvar phone_number = '00000000000';\r\nvar numberHex = '';\r\nvar sosKeyLength = '00';\r\n//var confFall = '1100'; // Enable, Dial\r\nvar confSOS = '10100000'; // Enable, no SMS, Toggle Call, No Sim Dialing, Contact Number 1\r\nvar dataSMS = '';\r\nif (params.AlertSettings.EmergencyNumber) {\r\n confSOS = ('00' + binaryToHex(confSOS)).slice(-2).toUpperCase();\r\n phone_number = params.AlertSettings.EmergencyNumber;\r\n numberHex = ascii_to_hexa(phone_number).toUpperCase();\r\n sosKeyLength = ('00' + decimalToHex(2 + (numberHex.length / 2))).slice(-2).toUpperCase();\r\n messageBody += sosKeyLength + key + confSOS + numberHex;\r\n dataSMS = `A1,0,1,${phone_number}`;\r\n}\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar totalLength = ('0000' + decimalToHex(messageBody.length / 2)).slice(-4).toUpperCase();\r\ntotalLength = changeEndianness(totalLength);\r\n//totalLength = '1000'; //better to calculate it\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + totalLength + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"CommandToUpdateId":null,"ParentId":null,"Parent":null,"HasAck":true,"HexString":true,"SendAttempts":4,"Order":3},"CacheImei":false,"RegEx":"^(Set contact number 1 ok.|Configuracin numero contacto 1 ok.)","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6933,"Code":"ACK-SERV-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"GRPS:<<data>>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":4954,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings5","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\n// Contacts, APN, server details, fall sensitivity and Beacon List\r\nvar dataSMS = 'GPRS?'; // Check Server Details\r\n/*GRPS: ON\r\nAPN: internet\r\nUsername:\r\nPassword:\r\nIP: 1, www.smart-locator.com\r\nPort: 6060\r\nMove report time: 30 minutes\r\nNo move report time: 60 minutes\r\nHB: on, 20 minutes */\r\nvar data = ''; // empty\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar notSend = false;\r\nif (isForcedBySMS == 'False' && ((serverParams.CommandType == 'ByGPRS') || (serverParams.CommandType == 'Default' && ((serverParams.ParentCommandType == 'ByGPRS') || (serverParams.ParentCommandType == 'Default' && serverParams.ConfigType == 'GPRS') || (serverParams.ParentCommandType === null && serverParams.ConfigType == 'GPRS'))))) {\r\n notSend = true;\r\n}\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS,\r\n notSend: notSend\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","AvoidResending":false,"FollowParentSentType":true,"SendingType":0,"CommandToUpdateId":null,"ParentId":3687,"Parent":null,"HasAck":true,"HexString":true,"SendAttempts":4,"Order":21},"CacheImei":false,"RegEx":"^GRPS:[^:]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6932,"Code":"ACK-CONTAC-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"A1:<<data>>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":4955,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings4","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\n// Contacts, APN, server details, fall sensitivity and Beacon List\r\nvar dataSMS = 'A?'; // Check Contact List\r\n/* A1: 1,1,15899795842\r\nA2: 1,0,13632770106\r\nA3: 0,1,15986236978 */\r\nvar data = ''; // empty\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar notSend = false;\r\nif (isForcedBySMS == 'False' && ((serverParams.CommandType == 'ByGPRS') || (serverParams.CommandType == 'Default' && ((serverParams.ParentCommandType == 'ByGPRS') || (serverParams.ParentCommandType == 'Default' && serverParams.ConfigType == 'GPRS') || (serverParams.ParentCommandType === null && serverParams.ConfigType == 'GPRS'))))) {\r\n notSend = true;\r\n}\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS,\r\n notSend: notSend\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","AvoidResending":false,"FollowParentSentType":true,"SendingType":0,"CommandToUpdateId":null,"ParentId":3687,"Parent":null,"HasAck":true,"HexString":true,"SendAttempts":4,"Order":20},"CacheImei":false,"RegEx":"^A1:[^:]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6931,"Code":"ACK-BEAC-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"1,<<data>>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":4956,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings3","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\n// Contacts, APN, server details, fall sensitivity and Beacon List\r\nvar dataSMS = 'BCQ1'; // Check Beacon List\r\n/* 1,F7:37:B7:10:81:CE,office1\r\n2,C4:9F:A6:15:24:3F,office2\r\n3,D3:E3:AC:86:5E:46,office7 */\r\nvar data = ''; // empty\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar notSend = false;\r\nif (isForcedBySMS == 'False' && ((serverParams.CommandType == 'ByGPRS') || (serverParams.CommandType == 'Default' && ((serverParams.ParentCommandType == 'ByGPRS') || (serverParams.ParentCommandType == 'Default' && serverParams.ConfigType == 'GPRS') || (serverParams.ParentCommandType === null && serverParams.ConfigType == 'GPRS'))))) {\r\n notSend = true;\r\n}\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS,\r\n notSend: notSend\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","AvoidResending":false,"FollowParentSentType":true,"SendingType":0,"CommandToUpdateId":null,"ParentId":3687,"Parent":null,"HasAck":true,"HexString":true,"SendAttempts":4,"Order":19},"CacheImei":false,"RegEx":"^1,[^,]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6930,"Code":"ACK-FALLSENS-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Mode:<<data>>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":4968,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings2","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\n// Contacts, APN, server details, fall sensitivity and Beacon List\r\nvar dataSMS = 'status'; // Check fall sens (function settings)\r\n/* Mode:4,0 second\r\nLED: on\r\nBeep: on\r\nVibration: on\r\nTime zone: +10:00\r\nGEO Fence:0,0,0,0\r\nMotion alarm: off\r\nNo Motion alarm: off\r\nTilt alert: off\r\nFall alarm: on, level:5\r\nLow power alarm: on,15%\r\nSOS Call:10 minutes, loop:1 */\r\nvar data = ''; // empty\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar notSend = false;\r\nif (isForcedBySMS == 'False' && ((serverParams.CommandType == 'ByGPRS') || (serverParams.CommandType == 'Default' && ((serverParams.ParentCommandType == 'ByGPRS') || (serverParams.ParentCommandType == 'Default' && serverParams.ConfigType == 'GPRS') || (serverParams.ParentCommandType === null && serverParams.ConfigType == 'GPRS'))))) {\r\n notSend = true;\r\n}\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS,\r\n notSend: notSend\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","AvoidResending":false,"FollowParentSentType":true,"SendingType":0,"CommandToUpdateId":null,"ParentId":3687,"Parent":null,"HasAck":true,"HexString":true,"SendAttempts":4,"Order":18},"CacheImei":false,"RegEx":"^Mode:[^:]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6928,"Code":"ACK-FIRM-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"IMEI:<<data>>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":4958,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\n//var value = '0234404142435673'; //Firmware, Contacts, APN, server details, fall sensitivity and Beacon List\r\nvar value = '214A1A3440414243567356101F4453473330';\r\n//SpeedDial, Wifi Network, Firmware Long, Contacts, APNusername, APNpass, server details, fall sensitivity and Beacon List, Fall down alert, Ring tome vol,System language, time interval, No motion alert,custom id, allow list, Emergency numbers\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\n//var keyLength = '10'; // previous\r\nvar keyLength = '13';\r\nvar key = 'F0';\r\nvar messageBody = command + keyLength + key + value;\r\nvar dataSMS = 'V?'; // Get Firmware\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + '1500' + checksum + sequenceID; // add 2 to keylenght\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"CommandToUpdateId":null,"ParentId":null,"Parent":null,"HasAck":true,"HexString":true,"SendAttempts":4,"Order":17},"CacheImei":false,"RegEx":"^IMEI:[^:]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6927,"Code":"ACK-GDATA","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam;ACK-GDATA;<<imei>>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":4958,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\n//var value = '0234404142435673'; //Firmware, Contacts, APN, server details, fall sensitivity and Beacon List\r\nvar value = '214A1A3440414243567356101F4453473330';\r\n//SpeedDial, Wifi Network, Firmware Long, Contacts, APNusername, APNpass, server details, fall sensitivity and Beacon List, Fall down alert, Ring tome vol,System language, time interval, No motion alert,custom id, allow list, Emergency numbers\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\n//var keyLength = '10'; // previous\r\nvar keyLength = '13';\r\nvar key = 'F0';\r\nvar messageBody = command + keyLength + key + value;\r\nvar dataSMS = 'V?'; // Get Firmware\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + '1500' + checksum + sequenceID; // add 2 to keylenght\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"CommandToUpdateId":null,"ParentId":null,"Parent":null,"HasAck":true,"HexString":true,"SendAttempts":4,"Order":17},"CacheImei":false,"RegEx":"^Roam;ACK-GDATA;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6926,"Code":"ACK-SRV","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"{{Set IP ok.|Configuracin de IP OK}}","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":4959,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setServer","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\n//para pruebas en local APN':\r\n//var params = {CommunicationSettings:{'SMSGateway':'+34666777888,Esendex','APN':'','APNOld':'','Server':'52.174.17.77,5678','ServerOld':''}}\r\n// AB101B 0066840300 021043802E1635322E3137342E31372E373704406D326D01410142\r\n// AB1015 00 66 84 F5 4B 02 10 43 80 2E 16 35 32 2E 31 37 34 2E 31 37 2E 37 37 04 40 6D 32 6D 01 41 01 42 \r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\n// configuration command (0X02) APN and Server and Gateway Number\r\nvar messageBody = '02';\r\n// Server\r\nvar domain = '';\r\nvar port = '';\r\nvar serverLength = '00';\r\n// APN\r\nvar apn = '';\r\nvar apn_password = '';\r\nvar apn_username = '';\r\nvar apnLength = '00';\r\nvar apnUserLength = '00';\r\nvar apnPassLength = '00';\r\nvar dataSMS = '';\r\nif (params.CommunicationSettings.Server) {\r\n var serverString = params.CommunicationSettings.Server.split(',');\r\n domain = serverString[0];\r\n port = serverString[1];\r\n port = changeEndianness(decimalToHex(parseInt(port))).toUpperCase();\r\n // Server IP and Port\r\n domain = ascii_to_hexa(domain).toUpperCase();\r\n serverLength = ('00' + decimalToHex(2 + port.length / 2 + domain.length / 2)).slice(-2).toUpperCase();\r\n // key 43 and TCP and GPRS is 80\r\n messageBody += serverLength + \"4380\" + port + domain;\r\n // For SMS\r\n dataSMS = `IP1,${serverString[0]},${serverString[1]}`;\r\n}\r\nif (params.CommunicationSettings.APN) {\r\n var apnString = params.CommunicationSettings.APN.split(',');\r\n // APN\r\n apn = apnString[0];\r\n apn = ascii_to_hexa(apn).toUpperCase();\r\n apnLength = ('00' + decimalToHex(1 + apn.length / 2)).slice(-2).toUpperCase();\r\n messageBody += apnLength + \"40\" + apn;\r\n // APN username\r\n apn_username = apnString[1];\r\n apn_username = ascii_to_hexa(apn_username).toUpperCase();\r\n apnUserLength = ('00' + decimalToHex(1 + apn_username.length / 2)).slice(-2).toUpperCase();\r\n messageBody += apnUserLength + \"41\" + apn_username;\r\n // APN passwprd\r\n apn_password = apnString[2];\r\n apn_password = ascii_to_hexa(apn_password).toUpperCase();\r\n apnPassLength = ('00' + decimalToHex(1 + apn_password.length / 2)).slice(-2).toUpperCase();\r\n messageBody += apnPassLength + \"42\" + apn_password;\r\n}\r\n// create HEADER\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar totalLenght = ('0000' + decimalToHex(messageBody.length / 2)).slice(-4).toUpperCase();\r\ntotalLenght = changeEndianness(totalLenght);\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + totalLenght + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","AvoidResending":false,"FollowParentSentType":false,"SendingType":2,"CommandToUpdateId":null,"ParentId":null,"Parent":null,"HasAck":true,"HexString":true,"SendAttempts":4,"Order":1},"CacheImei":false,"RegEx":"^(Set IP ok.|Configuracin de IP OK)","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6925,"Code":"ACK-GTW","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"{{Set contact number 10 ok.|Configuracin numero contacto 10 ok.}}","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":4960,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setGateway","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar messageBody = '02';\r\nvar key = '30';\r\nvar phone_number = '00000000000';\r\nvar numberHex = '';\r\nvar sosKeyLength = '00';\r\nvar confSOS = '10001001'; // Enable + doesn't accept SMS+ Untogle Call, No SIM Dialing + Contact Number 10\r\nvar dataSMS = '';\r\nif (params.CommunicationSettings.SMSGateway) {\r\n confSOS = ('00' + binaryToHex(confSOS)).slice(-2).toUpperCase();\r\n var gatewayString = params.CommunicationSettings.SMSGateway.split(',');\r\n var gateway = gatewayString[1];\r\n gateway_number = gatewayString[0];\r\n numberHex = ascii_to_hexa(gateway_number).toUpperCase();\r\n //numberLength = ('00' + decimalToHex(gateway_number.length)).slice(-2).toUpperCase();\r\n sosKeyLength = ('00' + decimalToHex(2 + (numberHex.length / 2))).slice(-2).toUpperCase();\r\n messageBody += sosKeyLength + key + confSOS + numberHex;\r\n dataSMS = `A10,1,0,${phone_number}`;\r\n}\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar totalLength = ('0000' + decimalToHex(messageBody.length / 2)).slice(-4).toUpperCase();\r\ntotalLength = changeEndianness(totalLength);\r\n//totalLength = '1000'; //better to calculate it\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + totalLength + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"CommandToUpdateId":null,"ParentId":null,"Parent":null,"HasAck":true,"HexString":true,"SendAttempts":4,"Order":2},"CacheImei":false,"RegEx":"^(Set contact number 10 ok.|Configuracin numero contacto 10 ok.)","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6924,"Code":"ACK-FALLSENS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"{{Set fall down alarm ok!|Configuracin alarma caida ok!}}","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":4961,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setFallSettings","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\n// configuration command (0X02) Fall sensitivity\r\nvar messageBody = '02';\r\nvar sensitivity = '';\r\nvar dataSMS = '';\r\nvar value = ''\r\nif (params.FallSettings.EnableDisableFallSettings == 'true') {\r\n value += '1'\r\n value += '100' //Dial\r\n //}\r\n if (params.FallSettings.Sensitivity) {\r\n var sensiString = params.FallSettings.Sensitivity.split(',');\r\n var level = sensiString[1];\r\n sensitivity = parseInt(sensiString[0]);\r\n // For SMS\r\n dataSMS = `FL1,${sensitivity},1`;\r\n //numberHex = ascii_to_hexa(sensitivity).toUpperCase();\r\n sensitivity = ('0000' + decimalToBinary(sensitivity)).slice(-4).toUpperCase()\r\n value += sensitivity\r\n }\r\n} else {\r\n value = '00000000'\r\n dataSMS = `FL0,1,1`;\r\n}\r\n// create HEADER\r\nvalue = ('00' + binaryToHex(value)).slice(-2).toUpperCase();\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase()\r\nvar command = '02'\r\nvar keyLength = '02'\r\nvar key = '56'\r\nvar messageBody = command + keyLength + key + value\r\nvar checksum = byteStringToByteArray(messageBody)\r\nchecksum = crc16byte(checksum)\r\nchecksum = decimalToHex(checksum)\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase()\r\nchecksum = changeEndianness(checksum)\r\n//Hpw to calculate sequenceID\r\nvar prefix = 'AB10' + '0400' + checksum + sequenceID\r\nvar data = prefix + messageBody\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"CommandToUpdateId":null,"ParentId":null,"Parent":null,"HasAck":true,"HexString":true,"SendAttempts":4,"Order":4},"CacheImei":false,"RegEx":"^(Set fall down alarm ok!|Configuracin alarma caida ok!)","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6923,"Code":"ACK-APN","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"{{Set APN ok.|Configuracin APN OK.}}","HasTemplateGlobal":false,"ResponseTemplate":"ok1","TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":4963,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setAPN","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\n//para pruebas en local APN':\r\n//var params = {CommunicationSettings:{'SMSGateway':'+34666777888,Esendex','APN':'','APNOld':'','Server':'52.174.17.77,5678','ServerOld':''}}\r\n// AB101B 0066840300 021043802E1635322E3137342E31372E373704406D326D01410142\r\n// AB1015 00 66 84 F5 4B 02 10 43 80 2E 16 35 32 2E 31 37 34 2E 31 37 2E 37 37 04 40 6D 32 6D 01 41 01 42 \r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\n// configuration command (0X02) APN and Server and Gateway Number\r\nvar messageBody = '02';\r\n// Server\r\nvar domain = '';\r\nvar port = '';\r\nvar serverLength = '00';\r\n// APN\r\nvar apn = '';\r\nvar apn_password = '';\r\nvar apn_username = '';\r\nvar apnLength = '00';\r\nvar apnUserLength = '00';\r\nvar apnPassLength = '00';\r\nvar dataSMS = '';\r\nif (params.CommunicationSettings.Server) {\r\n var serverString = params.CommunicationSettings.Server.split(',');\r\n domain = serverString[0];\r\n port = serverString[1];\r\n port = changeEndianness(decimalToHex(parseInt(port))).toUpperCase();\r\n // Server IP and Port\r\n domain = ascii_to_hexa(domain).toUpperCase();\r\n serverLength = ('00' + decimalToHex(2 + port.length / 2 + domain.length / 2)).slice(-2).toUpperCase();\r\n // key 43 and TCP and GPRS is 80\r\n messageBody += serverLength + \"4380\" + port + domain;\r\n}\r\nif (params.CommunicationSettings.APN) {\r\n var apnString = params.CommunicationSettings.APN.split(',');\r\n // APN\r\n apn = apnString[0];\r\n apn = ascii_to_hexa(apn).toUpperCase();\r\n apnLength = ('00' + decimalToHex(1 + apn.length / 2)).slice(-2).toUpperCase();\r\n messageBody += apnLength + \"40\" + apn;\r\n // APN username\r\n apn_username = apnString[1];\r\n apn_username = ascii_to_hexa(apn_username).toUpperCase();\r\n apnUserLength = ('00' + decimalToHex(1 + apn_username.length / 2)).slice(-2).toUpperCase();\r\n messageBody += apnUserLength + \"41\" + apn_username;\r\n // APN passwprd\r\n apn_password = apnString[2];\r\n apn_password = ascii_to_hexa(apn_password).toUpperCase();\r\n apnPassLength = ('00' + decimalToHex(1 + apn_password.length / 2)).slice(-2).toUpperCase();\r\n messageBody += apnPassLength + \"42\" + apn_password;\r\n // For SMS\r\n dataSMS = `S1,${apnString[0]},${apnString[1]},${apnString[2]}`;\r\n}\r\n// create HEADER\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar totalLenght = ('0000' + decimalToHex(messageBody.length / 2)).slice(-4).toUpperCase();\r\ntotalLenght = changeEndianness(totalLenght);\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + totalLenght + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","AvoidResending":false,"FollowParentSentType":false,"SendingType":2,"CommandToUpdateId":null,"ParentId":null,"Parent":null,"HasAck":true,"HexString":true,"SendAttempts":4,"Order":0},"CacheImei":false,"RegEx":"^(Set APN ok.|Configuracin APN OK.)","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6922,"Code":"ACK-RTL","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"{{Device location request have received!|Solicitud de ubicacin recibida!}}","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":4964,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"actionRealTimeLocation","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '01';\r\nvar key = '12';\r\nvar totalLenght = '0300';\r\nvar keyLength = '01';\r\nvar messageBody = command + keyLength + key;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + totalLenght + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\n/* Answer from the device\r\nGPS Loc!\r\nNow:\r\nLoc Time:07/04/2021 17:36:44\r\nSpeed:0km/h\r\nAltitude:97.0\r\nBattery:57%\r\nwww.google.com/maps?q=22.6537233,114.0006070\r\n*/\r\nvar dataSMS = 'loc';\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"CommandToUpdateId":null,"ParentId":null,"Parent":null,"HasAck":true,"HexString":true,"SendAttempts":4,"Order":10},"CacheImei":false,"RegEx":"^(Device location request have received!|Solicitud de ubicacin recibida!)","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6921,"Code":"ACK-TRACE","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Set live tracking","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":4965,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"actionTrace","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '01';\r\nvar key = '13';\r\nvar totalLenght = '0300';\r\nvar keyLength = '01';\r\nvar messageBody = command + keyLength + key;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + totalLenght + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\n/* Answer from the device\r\nSet live tracking every 10 seconds and last for 10 minutes ok.\r\n*/\r\nvar dataSMS = 'CL10s,600s'; // CL(interval),(duration)\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","AvoidResending":false,"FollowParentSentType":false,"SendingType":3,"CommandToUpdateId":null,"ParentId":null,"Parent":null,"HasAck":true,"HexString":true,"SendAttempts":4,"Order":11},"CacheImei":false,"RegEx":"^Set live tracking","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6920,"Code":"ACK-GSRV","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam;ACK-GSRV;<<imei>>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":4966,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getServer","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\r\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar value = '43'; //Ask for Server\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '02';\r\nvar key = 'F0';\r\nvar messageBody = command + keyLength + key + value;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + '0400' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"CommandToUpdateId":null,"ParentId":null,"Parent":null,"HasAck":true,"HexString":true,"SendAttempts":2,"Order":null},"CacheImei":false,"RegEx":"^Roam;ACK-GSRV;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6919,"Code":"ACK-GAPN","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam;ACK-GAPN;<<imei>>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":4967,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getAPN","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\r\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar value = '40'; //Ask for APN\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '02';\r\nvar key = 'F0';\r\nvar messageBody = command + keyLength + key + value;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + '0400' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID); //add 20/07\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"CommandToUpdateId":null,"ParentId":null,"Parent":null,"HasAck":true,"HexString":true,"SendAttempts":2,"Order":null},"CacheImei":false,"RegEx":"^Roam;ACK-GAPN;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6918,"Code":"ACK-OFF","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Power OFF!!!","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":4971,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"actionPowerOff","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '04';\r\nvar keyLength = '01';\r\nvar key = '14';\r\nvar messageBody = command + keyLength + key;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum).toUpperCase();\r\nchecksum = ('0000' + checksum).slice(-4);\r\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\r\nvar prefix = 'AB10' + '0300' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nvar dataSMS = 'off';\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = [];\r\n var j = 0;\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2);\r\n j++;\r\n }\r\n var bytes = [];\r\n var bytePos = 0;\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i];\r\n var b = parseInt(byteStr, 16);\r\n if (b < 256) {\r\n bytes[bytePos] = b;\r\n bytePos++;\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}","AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"CommandToUpdateId":null,"ParentId":null,"Parent":null,"HasAck":true,"HexString":true,"SendAttempts":4,"Order":14},"CacheImei":false,"RegEx":"^Power OFF!!!","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6917,"Code":"ACK-FLU","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"{{flush ok.|Borrar ok.}}","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":4969,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"actionDeleteRecords","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '04';\r\nvar keyLength = '01';\r\nvar key = '10';\r\nvar messageBody = command + keyLength + key;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum).toUpperCase();\r\nchecksum = ('0000' + checksum).slice(-4);\r\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\r\nvar prefix = 'AB10' + '0300' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nvar dataSMS = 'flush';\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}","AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"CommandToUpdateId":null,"ParentId":null,"Parent":null,"HasAck":true,"HexString":true,"SendAttempts":4,"Order":9},"CacheImei":false,"RegEx":"^(flush ok.|Borrar ok.)","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6916,"Code":"ACK-RST","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"{{Set ok.|reset ok.|Reiniciar ok.}}","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":4981,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"actionFactoryReset","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\nvar configs = [];\nvar configsSMS = [];\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\nvar command = '04';\nvar keyLength = '01';\nvar key = '11';\nvar messageBody = command + keyLength + key;\nvar checksum = byteStringToByteArray(messageBody);\nchecksum = crc16byte(checksum);\nchecksum = decimalToHex(checksum).toUpperCase();\nchecksum = ('0000' + checksum).slice(-4);\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\nvar prefix = 'AB10' + '0300' + checksum + sequenceID;\nvar data = prefix + messageBody;\n// For GPRS command\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID);\n// For SMS command\nvar dataSMS = 'ineedtoresetEV-06A!';\nAddValueSMS('dataSMS', dataSMS);\nvar commandConfigs = {\n template: \"main\",\n configs: configs,\n configsSMS: configsSMS\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction AddValueSMS(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configsSMS.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = []\n var j = 0\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2)\n j++\n }\n var bytes = []\n var bytePos = 0\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i]\n var b = parseInt(byteStr, 16)\n if (b < 256) {\n bytes[bytePos] = b\n bytePos++\n }\n }\n return bytes\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString\n}","AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"CommandToUpdateId":null,"ParentId":null,"Parent":null,"HasAck":true,"HexString":true,"SendAttempts":4,"Order":15},"CacheImei":false,"RegEx":"^(Set ok.|reset ok.|Reiniciar ok.)","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6915,"Code":"ACK-PREFIX","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"remove prefix ok.","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":4984,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setSMSPrefix","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\r\nif (params.SMSPrefix.SMSPrefix == 'true') { //Enable Prefix for SMS anwers\r\n if (params.SMSPassword.SMSPasswordOld) {\r\n var data = `${params.SMSPassword.SMSPasswordOld}Prefix1,Rio-${serverParams.Imei}-`;\r\n } else {\r\n var data = `Prefix1,Rio-${serverParams.Imei}-`;\r\n }\r\n} else {\r\n var data = `Prefix0,`; //Disable Prefix for SMS anwers\r\n}\r\nAddValue('data', data);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}","AvoidResending":false,"FollowParentSentType":false,"SendingType":2,"CommandToUpdateId":null,"ParentId":null,"Parent":null,"HasAck":true,"HexString":false,"SendAttempts":2,"Order":null},"CacheImei":false,"RegEx":"^remove prefix ok.","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6914,"Code":"RTL-GPS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"{{Now:Loc Time: |Ubicacin GPS:Tiempo de Loc: }}<<data>>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":4983,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"actionRequestLocation","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\nif (params.SMSPassword.SMSPasswordOld) {\n var data = `${params.SMSPassword.SMSPasswordOld}loc`\n} else {\n var data = `loc`\n}\nAddValue('data', data)\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}","AvoidResending":false,"FollowParentSentType":false,"SendingType":2,"CommandToUpdateId":null,"ParentId":null,"Parent":null,"HasAck":true,"HexString":false,"SendAttempts":4,"Order":null},"CacheImei":false,"RegEx":"^(Now:Loc Time: |Ubicacin GPS:Tiempo de Loc: )[^)]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6913,"Code":"ACK-RBT","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"{{reboot ok.|Reiniciar ok.}}","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":4982,"Protocol":{"Id":224,"Code":"Access TEC Roam","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"actionDeviceReboot","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '04';\r\nvar keyLength = '01';\r\nvar key = '12';\r\nvar messageBody = command + keyLength + key;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum).toUpperCase();\r\nchecksum = ('0000' + checksum).slice(-4);\r\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\r\nvar prefix = 'AB10' + '0300' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nvar dataSMS = 'reboot';\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}","AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"CommandToUpdateId":null,"ParentId":null,"Parent":null,"HasAck":true,"HexString":true,"SendAttempts":4,"Order":13},"CacheImei":false,"RegEx":"^(reboot ok.|Reiniciar ok.)","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6911,"Code":"F-ACK-Invalid State","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-ACK;<<imei>>;AB00030009D3<<sequenceNumber>>7F0123","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ACK;[^;]*;AB00030009D3[^ ]*7F0123","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6909,"Code":"ZNO","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"+RESP:ZOUT,<<imei>>,<<zone_name>>,<<latitude>>,<<longitude>>,<<location_accuracy>>,<<location_time>>,<<event_time>>,<<source>>$","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"\\+RESP:ZOUT,[^,]*,[^,,]*,[^,,]*,[^,,]*,[^,,]*,[^,,]*,[^,,]*,[^\\$,]*\\$","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6908,"Code":"ZNI","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"+RESP:ZIN,<<imei>>,<<zone_name>>,<<latitude>>,<<longitude>>,<<location_accuracy>>,<<location_time>>,<<event_time>>,<<source>>$","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"\\+RESP:ZIN,[^,]*,[^,,]*,[^,,]*,[^,,]*,[^,,]*,[^,,]*,[^,,]*,[^\\$,]*\\$","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6907,"Code":"F-ACK-GPS Is Not Ready","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-ACK;<<imei>>;AB0003008D93<<sequenceNumber>>7F0127","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ACK;[^;]*;AB0003008D93[^ ]*7F0127","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6906,"Code":"F-ACK-Data Format Invalid","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-ACK;<<imei>>;AB0003004BF3<<sequenceNumber>>7F0121","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ACK;[^;]*;AB0003004BF3[^ ]*7F0121","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6904,"Code":"F-ACK-Key Length Error","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-ACK;<<imei>>;AB000300DEA5<<sequenceNumber>>7F0117","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":"","LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ACK;[^;]*;AB000300DEA5[^ ]*7F0117","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6903,"Code":"CHK-ASSO","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Eview-ASSOCIATE;<<imei>>;<<guid>>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Eview-ASSOCIATE;[^;]*;[^;;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6902,"Code":"RTL","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-RTL;<<imei>>;<<event_time>>;<<location_time>>;<<latitude>>;<<longitude>>;<<location_accuracy>>;<<altitude>>;<<speed>>;<<battery_percentage>>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-RTL;[^;]*;[^;;]*;[^;;]*;[^;;]*;[^;;]*;[^;;]*;[^;;]*;[^;;]*;[^;;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6900,"Code":"F-ACK-SubFunction Not Supported","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-ACK;<<imei>>;AB000300AC83<<sequenceNumber>>7F0126","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ACK;[^;]*;AB000300AC83[^ ]*7F0126","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6898,"Code":"ALA-C","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-ALA-C;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;<<single_column_value>>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ALA-C;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6897,"Code":"ALF-C","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-ALF-C;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;<<single_column_value>>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ALF-C;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6895,"Code":"ALF","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Roam-ALF;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;<<single_column_value>>","HasTemplateGlobal":false,"ResponseTemplate":"<<ack_internal>>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ALF;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6893,"Code":"BATCF","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-BATCF;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;<<single_column_value>>","HasTemplateGlobal":false,"ResponseTemplate":"<<ack_internal>>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-BATCF;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6890,"Code":"COMM-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-SMS;<<imei>>;<<data>>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":"esendex<<phone>>esendex<<data>>","LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-SMS;[^;]*;[^;]*","RegExGlobal":"^esendex[^e]*esendex[^x]*","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6887,"Code":"NACT","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"+RESP:NACT,<<imei>>,<<event_time>>$","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"\\+RESP:NACT,[^,]*,[^\\$,]*\\$","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6886,"Code":"BATCN","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-BATCN;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;<<single_column_value>>","HasTemplateGlobal":false,"ResponseTemplate":"<<ack_internal>>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-BATCN;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6883,"Code":"ALA-O","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-ALA-O;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;<<single_column_value>>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ALA-O;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6882,"Code":"ENC-2","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"","HasTemplateGlobal":true,"ResponseTemplate":"<<ack>>","TemplateGlobal":"AB00<<all_data>>","LongConnection":true,"HexString":true,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"","RegExGlobal":"^AB00[^ ]*","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6881,"Code":"RTL-BEACON","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Beacon:Loc Time: <<data>>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Beacon:Loc Time: [^ ]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6879,"Code":"ENC","Name":null,"MessageCode":null,"NeedAck":true,"IsAck":false,"IsFailAck":false,"IsAckHexString":true,"NoOperation":false,"Type":0,"Template":"","HasTemplateGlobal":true,"ResponseTemplate":"<<ack>>","TemplateGlobal":"AB10<<all_data>>","LongConnection":true,"HexString":true,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"","RegExGlobal":"^AB10[^ ]*","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6878,"Code":"PWRN","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-PWRN;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;<<single_column_value>>","HasTemplateGlobal":false,"ResponseTemplate":"<<ack_internal>>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-PWRN;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6877,"Code":"PWRF","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-PWRF;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;<<single_column_value>>","HasTemplateGlobal":false,"ResponseTemplate":"<<ack_internal>>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-PWRF;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6876,"Code":"HRT","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-HRT;<<imei>>;STATUS=<<status_data>>;ETIME=<<event_time>>;GENERAL=<<general>>;<<single_column_value>>;HRT=<<heart_rate>>;TLEVEL=<<trust_level>>;LABEL=<<oysta_labels>>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-HRT;[^;]*;STATUS=[^;;]*;ETIME=[^;;]*;GENERAL=[^;;]*;[^;;]*;HRT=[^;;]*;TLEVEL=[^;;]*;LABEL=[^=]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6874,"Code":"RTL-WIFI","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Wifi and GSM:Loc Time: <<data>>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Wifi and GSM:Loc Time: [^ ]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6873,"Code":"F-ACK-Key Invalid","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-ACK;<<imei>>;AB000300FFB5<<sequenceNumber>>7F0116","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ACK;[^;]*;AB000300FFB5[^ ]*7F0116","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6872,"Code":"COMM-GT","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Eview;<<imei>>;<<sequenceNumber>>;Get timestamp","HasTemplateGlobal":false,"ResponseTemplate":"<<ack_internal>>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Eview;[^;]*;[^;;]*;Get timestamp","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6871,"Code":"F-ACK-Checksum Error","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-ACK;<<imei>>;AB000300BD95<<sequenceNumber>>7F0114","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ACK;[^;]*;AB000300BD95[^ ]*7F0114","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6870,"Code":"ACK-global","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-ACK;<<imei>>;AB00030008C7<<sequenceNumber>>7F0100","HasTemplateGlobal":false,"ResponseTemplate":"<<ack_internal>>","TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ACK;[^;]*;AB00030008C7[^ ]*7F0100","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6869,"Code":"F-ACK-Length Error","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-ACK;<<imei>>;AB0003005AE5<<sequenceNumber>>7F0113","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ACK;[^;]*;AB0003005AE5[^ ]*7F0113","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6868,"Code":"F-ACK-Encryption Invalid","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-ACK;<<imei>>;AB0003007BF5<<sequenceNumber>>7F0112","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ACK;[^;]*;AB0003007BF5[^ ]*7F0112","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6867,"Code":"F-ACK-Version Invalid","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-ACK;<<imei>>;AB00030018C5<<sequenceNumber>>7F0111","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ACK;[^;]*;AB00030018C5[^ ]*7F0111","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6866,"Code":"F-ACK-Address Resp","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-ACK;<<imei>>;AB0003006262<<sequenceNumber>>7F0128","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ACK;[^;]*;AB0003006262[^ ]*7F0128","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":6863,"Code":"F-ACK-BLE Password","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Roam-ACK;<<imei>>;AB000300CC8F<<sequenceNumber>>7F0140","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Roam-ACK;[^;]*;AB000300CC8F[^7;]*7F0140","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]}],"Commands":[{"Id":5348,"Name":"setWifiList","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\n//para pruebas en local WIFI Settings':\r\n//var params = {WiFiConnect:{'EnableDisableWiFiConnect':'false','SSID':'wifi_name','Password':'wifi_password'}}\r\n// Test enabled\r\n// AB 10 1C 00 98 78 00 00 02 1A 4A 80 09 0D 77 69 66 69 5F 6E 61 6D 65 77 69 66 69 5F 70 61 73 73 77 6F 72 64 \r\n// test disabled\r\n// AB 10 06 00 71 04 01 00 02 04 4A 00 00 00 \r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar idsToUpdate = [];\r\nvar deletedId = [];\r\nvar notSend = false;\r\n// WiFi\r\nvar network = '';\r\nvar pass = '';\r\nvar bodyLength = '00';\r\nvar networkLength = '00';\r\nvar passLength = '00';\r\nvar dataSMS = '';\r\n// configuration command (0X02) WiFi Connect Network\r\nvar value = '02';\r\nvar keyLength = '00';\r\nvar confWifi = '';\r\n//check if a number was deleted, and remove it from the list\r\nlet counter = 0;\r\nfor (var wifiChanged of paramsChanged.WiFiList) {\r\n // update ids\r\n var wifis = paramsChangedIds.WiFiList[counter];\r\n for (var item in wifis) {\r\n idsToUpdate.push(wifis[item]);\r\n }\r\n if (wifiChanged.Deleted === \"true\") {\r\n deletedId.push(wifiChanged);\r\n }\r\n counter++;\r\n}\r\n//iterate over approved wifi networks, \r\ncounter = 0;\r\nfor (var wifi in params.WiFiList) {\r\n confWifi = '8' + ('00' + decimalToHex(parseInt(wifi))).slice(-1).toUpperCase(); // Enable wifi index \r\n if (deletedId.length > 0) {\r\n if (checkValue(wifi) === true) {\r\n confWifi = ('00' + decimalToHex(wifi)).slice(-2).toUpperCase(); // Add wifi index\r\n value += `044A${confWifi}0000`; // No SSID, No password \r\n } else {\r\n if (params.WiFiList[wifi].SSID) {\r\n network = ascii_to_hexa(params.WiFiList[wifi].SSID).toUpperCase();\r\n networkLength = ('00' + decimalToHex(network.length / 2)).slice(-2).toUpperCase();\r\n }\r\n if (params.WiFiList[wifi].Password) {\r\n pass = ascii_to_hexa(params.WiFiList[wifi].Password).toUpperCase();\r\n passLength = ('00' + decimalToHex(pass.length / 2)).slice(-2).toUpperCase();\r\n }\r\n keyLength = ('00' + decimalToHex(4 + network.length / 2 + pass.length / 2)).slice(-2).toUpperCase();\r\n // key 4A\r\n value += keyLength + '4A' + confWifi + networkLength + passLength + network + pass;\r\n }\r\n } else {\r\n if (params.WiFiList[wifi].SSID) {\r\n network = ascii_to_hexa(params.WiFiList[wifi].SSID).toUpperCase();\r\n networkLength = ('00' + decimalToHex(network.length / 2)).slice(-2).toUpperCase();\r\n }\r\n if (params.WiFiList[wifi].Password) {\r\n pass = ascii_to_hexa(params.WiFiList[wifi].Password).toUpperCase();\r\n passLength = ('00' + decimalToHex(pass.length / 2)).slice(-2).toUpperCase();\r\n }\r\n keyLength = ('00' + decimalToHex(4 + network.length / 2 + pass.length / 2)).slice(-2).toUpperCase();\r\n // key 4A\r\n value += keyLength + '4A' + confWifi + networkLength + passLength + network + pass;\r\n }\r\n counter++;\r\n}\r\n//disable other wifi networks\r\n// 02 04 4A 02 00 00\r\nfor (counter; counter < 5; counter++) {\r\n confWifi = ('00' + decimalToHex(counter)).slice(-2).toUpperCase(); // Add wifi index\r\n value += `044A${confWifi}0000`; // No SSID, No password \r\n}\r\n// create HEADER\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar totalLenght = ('0000' + decimalToHex(value.length / 2)).slice(-4).toUpperCase();\r\ntotalLenght = changeEndianness(totalLenght);\r\nvar checksum = byteStringToByteArray(value);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\r\nvar prefix = 'AB10' + totalLenght + checksum + sequenceID;\r\nvar data = prefix + value;\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n idsToUpdate: idsToUpdate,\r\n notSend: notSend\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction checkValue(contact) {\r\n for (var d in deletedId) {\r\n if (params.WiFiList[contact].SSID == paramsChanged.WiFiList[d].SSID) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = [];\r\n var j = 0;\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2);\r\n j++;\r\n }\r\n var bytes = [];\r\n var bytePos = 0;\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i];\r\n var b = parseInt(byteStr, 16);\r\n if (b < 256) {\r\n bytes[bytePos] = b;\r\n bytePos++;\r\n }\r\n }\r\n return bytes;\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString;\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":5346,"Name":"setWifiSettings","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\n//para pruebas en local WIFI Settings':\r\n//var params = {WiFiConnect:{'EnableDisableWiFiConnect':'false','SSID':'wifi_name','Password':'wifi_password'}}\r\n// Test enabled\r\n// AB 10 1C 00 98 78 00 00 02 1A 4A 80 09 0D 77 69 66 69 5F 6E 61 6D 65 77 69 66 69 5F 70 61 73 73 77 6F 72 64 \r\n// test disabled\r\n// AB 10 06 00 71 04 01 00 02 04 4A 00 00 00 \r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\n// configuration command (0X02) WiFi Connect Network\r\nvar messageBody = '02';\r\n// WiFi\r\nvar network = '';\r\nvar pass = '';\r\nvar bodyLength = '00';\r\nvar networkLength = '00';\r\nvar passLength = '00';\r\nvar dataSMS = '';\r\nif (params.WiFiSettings.EnableDisableWiFiSettings == 'true') {\r\n if (params.WiFiSettings.SSID) {\r\n network = ascii_to_hexa(params.WiFiSettings.SSID).toUpperCase();\r\n networkLength = ('00' + decimalToHex(network.length / 2)).slice(-2).toUpperCase();\r\n }\r\n if (params.WiFiSettings.Password) {\r\n pass = ascii_to_hexa(params.WiFiSettings.Password).toUpperCase();\r\n passLength = ('00' + decimalToHex(pass.length / 2)).slice(-2).toUpperCase();\r\n }\r\n bodyLength = ('00' + decimalToHex(4 + network.length / 2 + pass.length / 2)).slice(-2).toUpperCase();\r\n // key 4A and enable, not connected and index 0 = 80\r\n messageBody += bodyLength + \"4A80\" + networkLength + passLength + network + pass;\r\n} else {\r\n messageBody += '044A000000';\r\n}\r\n// create HEADER\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar totalLenght = ('0000' + decimalToHex(messageBody.length / 2)).slice(-4).toUpperCase();\r\ntotalLenght = changeEndianness(totalLenght);\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + totalLenght + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":5015,"Name":"getSystemSettings","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar value = '33'; //System settings - allow list\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '02';\r\nvar key = 'F0';\r\nvar messageBody = command + keyLength + key + value;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + '0400' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\nAddValue('data', data); // For GPRS command\r\nAddValue('sequenceNumber', sequenceID);\r\n//AddValueSMS('dataSMS', dataSMS); // For SMS command\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":5014,"Name":"getVolume","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar configs = [];\r\nvar value = '34'; //10 Ring tone Volume\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '02';\r\nvar key = 'F0';\r\nvar messageBody = command + keyLength + key + value;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum).toUpperCase();\r\nchecksum = ('0000' + checksum).slice(-4);\r\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\r\nvar prefix = 'AB10' + '0400' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = [];\r\n var j = 0;\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":24,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":5013,"Name":"setSystemSettings","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\r\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\n//create the bit table to use with control\r\nvar value = '00000000000000000100'; // A1 phone monitor Enable as default documentation\r\nif (params.SystemSettings.AllowList == 'true') { // Enable SMS Whitelist Setting\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\n//if (params.PhoneSettings.SilentCallMode == 'true') {\r\n// value += '1';\r\n//} else {\r\nvalue += '0';\r\n//}\r\n//if (params.PhoneSettings.ButtonHangUp == 'true') {\r\n// value += '1';\r\n//} else {\r\nvalue += '1'; // ButtonHangUp Default True\r\n//}\r\nif (params.SystemSettings.AllowList == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.SystemSettings.AutoAnswer == 'true') {\r\n value += '1';\r\n // if (params.PhoneSettings.AutoAnswerAfterRings) {\r\n // value += ('0000000' + decimalToBinary(parseInt(params.PhoneSettings.AutoAnswerAfterRings))).slice(-7);\r\n // } else {\r\n value += ('0000011'); // default 3\r\n // }\r\n} else {\r\n value += '00000000';\r\n}\r\nvalue = ('00000000' + binaryToHex(value)).slice(-8).toUpperCase();\r\nvalue = changeEndianness(value);\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '05';\r\nvar key = '33';\r\nvar messageBody = command + keyLength + key + value;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + '0700' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('')\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF)\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = [];\r\n var j = 0;\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2);\r\n j++;\r\n }\r\n var bytes = [];\r\n var bytePos = 0;\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i];\r\n var b = parseInt(byteStr, 16);\r\n if (b < 256) {\r\n bytes[bytePos] = b;\r\n bytePos++;\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('')\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":3,"SendAttempts":3,"ProtocolActionObjects":[],"Tags":[]},{"Id":5010,"Name":"getCustomId","TemplateSMS":"","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar value = '47'; //Get device or custom id \r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '02';\r\nvar key = 'F0';\r\nvar messageBody = command + keyLength + key + value;\r\nvar dataSMS = 'V?'; // Get Firmware\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\n//var prefix = 'AB10' + '0B00' + checksum + sequenceID;\r\nvar prefix = 'AB10' + '0400' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":8,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":5008,"Name":"getNoMotionAlert","TemplateSMS":"","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar value = '53'; //No motion Alert code\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '02';\r\nvar key = 'F0';\r\nvar messageBody = command + keyLength + key + value;\r\nvar dataSMS = 'V?'; // Get Firmware\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\n//var prefix = 'AB10' + '0B00' + checksum + sequenceID;\r\nvar prefix = 'AB10' + '0400' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":7,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":5007,"Name":"getFallDownAlert","TemplateSMS":"","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar value = '56'; //Fall down Alert code\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '02';\r\nvar key = 'F0';\r\nvar messageBody = command + keyLength + key + value;\r\nvar dataSMS = 'V?'; // Get Firmware\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\n//var prefix = 'AB10' + '0B00' + checksum + sequenceID;\r\nvar prefix = 'AB10' + '0400' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":8,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":5005,"Name":"getPerformanceMode","TemplateSMS":"","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar value = '44'; //time interval\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '02';\r\nvar key = 'F0';\r\nvar messageBody = command + keyLength + key + value;\r\nvar dataSMS = 'V?'; // Get Firmware\r\n/* IMEI:863921033969786\r\nGSM signal quality: 15\r\nSoftware version: V07BX.8601.2109\r\nversion: V1.0.29.1 */\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\n//var prefix = 'AB10' + '0B00' + checksum + sequenceID;\r\nvar prefix = 'AB10' + '0400' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":23,"SendAttempts":7,"ProtocolActionObjects":[],"Tags":[]},{"Id":5004,"Name":"getSystemLanguage","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\n//var value = '0234404142435673'; //Firmware, Contacts, APN, server details, fall sensitivity and Beacon List\r\nvar value = '1F'; //System language - locale\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '02';\r\nvar key = 'F0';\r\nvar messageBody = command + keyLength + key + value;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + '0400' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\nAddValue('data', data); // For GPRS command\r\nAddValue('sequenceNumber', sequenceID);\r\n//AddValueSMS('dataSMS', dataSMS); // For SMS command\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":22,"SendAttempts":3,"ProtocolActionObjects":[],"Tags":[]},{"Id":5003,"Name":"getHomeBeacon","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\n//var value = '0234404142435673'; //Firmware, Contacts, APN, server details, fall sensitivity and Beacon List\r\nvar value = ''; //get home beacon\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '09';\r\nvar key = 'F0';\r\nvar messageBody = command + keyLength + key + value;\r\nvar dataSMS = 'V?'; // Get Firmware\r\n/* IMEI:863921033969786\r\nGSM signal quality: 15\r\nSoftware version: V07BX.8601.2109\r\nversion: V1.0.29.1 */\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + '0B00' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":3,"ProtocolActionObjects":[],"Tags":[]},{"Id":5002,"Name":"getAuthorisedNumbers","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\n//var value = '0234404142435673'; //Firmware, Contacts, APN, server details, fall sensitivity and Beacon List\r\nvar value = ''; //get top 10 authorised numbers\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '09';\r\nvar key = 'F0';\r\nvar messageBody = command + keyLength + key + value;\r\nvar dataSMS = 'V?'; // Get Firmware\r\n/* IMEI:863921033969786\r\nGSM signal quality: 15\r\nSoftware version: V07BX.8601.2109\r\nversion: V1.0.29.1 */\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + '0B00' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":3,"ProtocolActionObjects":[],"Tags":[]},{"Id":4918,"Name":"actionConfigurationMode","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\r\nif (params.Controls.ConfigurationMode == 'true') {\r\n var data = `GPRSHB1M`;\r\n} else {\r\n var data = `GPRSHB0M`; //`GPRSHB240S`;\r\n}\r\nAddValue('data', data);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":2,"HasAck":true,"HexString":false,"Order":null,"SendAttempts":4,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":4918,\"Name\":\"actionConfigurationMode\",\"TemplateSMS\":null,\"Template\":\"<<data>>\",\"AckTemplate\":null,\"Operation\":\"var configs = [];\\r\\nif (params.Controls.ConfigurationMode == 'true') {\\r\\n var data = `GPRSHB1M`;\\r\\n} else {\\r\\n var data = `GPRSHB240S`; //`GPRSHB0M`;\\r\\n}\\r\\nAddValue('data', data);\\r\\nvar commandConfigs = {\\r\\n template: \\\"main\\\",\\r\\n configs: configs\\r\\n};\\r\\nmsg.push(JSON.stringify(commandConfigs));\\r\\n\\r\\nfunction AddValue(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configs.push(cvpair);\\r\\n}\",\"CommandToUpdate\":null,\"Parent\":null,\"AvoidResending\":false,\"FollowParentSentType\":false,\"SendingType\":2,\"HasAck\":true,\"HexString\":false,\"Order\":null,\"SendAttempts\":4,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1734458640}],"Tags":[]},{"Id":4980,"Name":"setServerSMS","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\r\nvar configsSMS = [];\r\nvar data = '';\r\nvar dataSMS = '';\r\nvar notSend = false;\r\nif (params.CommunicationSettings.Server) {\r\n var serverString = params.CommunicationSettings.Server.split(',');\r\n var domain = serverString[0];\r\n var port = serverString[1];\r\n dataSMS = `IP1,${domain},${port}`;\r\n //if (params.SMSPassword.SMSPasswordOld) {\r\n // var data = `${params.SMSPassword.SMSPasswordOld}IP1,${domain},${port}`;\r\n //} else {\r\n // var data = `IP1,${domain},${port}`;\r\n //}\r\n}\r\nif (isForcedBySMS == 'False' && ((serverParams.CommandType == 'ByGPRS') || (serverParams.CommandType == 'Default' && ((serverParams.ParentCommandType == 'ByGPRS') || (serverParams.ParentCommandType == 'Default' && serverParams.ConfigType == 'GPRS') || (serverParams.ParentCommandType === null && serverParams.ConfigType == 'GPRS'))))) {\r\n notSend = true;\r\n}\r\nAddValue('data', data);\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS,\r\n notSend: notSend\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":false,"Order":null,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4976,"Name":"setEmergencyNumberbySMS","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\r\nvar configsSMS = [];\r\nvar data = '';\r\nvar dataSMS = '';\r\nvar notSend = false;\r\nif (params.EmergencySettings.EmergencyNumber) {\r\n var phone_number = params.EmergencySettings.EmergencyNumber;\r\n dataSMS = `A1,0,1,${phone_number}`;\r\n //if (params.SMSPassword.SMSPasswordOld) {\r\n // var data = `${params.SMSPassword.SMSPasswordOld}IP1,${domain},${port}`;\r\n //} else {\r\n // var data = `IP1,${domain},${port}`;\r\n //}\r\n}\r\n// Reply from device \"Set contact number 1 ok.\"\r\nif (isForcedBySMS == 'False' && ((serverParams.CommandType == 'ByGPRS') || (serverParams.CommandType == 'Default' && ((serverParams.ParentCommandType == 'ByGPRS') || (serverParams.ParentCommandType == 'Default' && serverParams.ConfigType == 'GPRS') || (serverParams.ParentCommandType === null && serverParams.ConfigType == 'GPRS'))))) {\r\n notSend = true;\r\n}\r\nAddValue('data', data);\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS,\r\n notSend: notSend\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":false,"Order":null,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4975,"Name":"setFallSensitivitybySMS","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\r\nvar configsSMS = [];\r\nvar data = '';\r\nvar dataSMS = '';\r\nvar notSend = false;\r\nif (params.EmergencySettings.FallSensitivity) {\r\n var sensitivity = parseInt(params.EmergencySettings.FallSensitivity);\r\n dataSMS = `FL1,${sensitivity},1`;\r\n}\r\n// Reply from device \"Set fall down alarm ok!\"\r\nif (isForcedBySMS == 'False' && ((serverParams.CommandType == 'ByGPRS') || (serverParams.CommandType == 'Default' && ((serverParams.ParentCommandType == 'ByGPRS') || (serverParams.ParentCommandType == 'Default' && serverParams.ConfigType == 'GPRS') || (serverParams.ParentCommandType === null && serverParams.ConfigType == 'GPRS'))))) {\r\n notSend = true;\r\n}\r\nAddValue('data', data);\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS,\r\n notSend: notSend\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":false,"Order":null,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4940,"Name":"setBeacons","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\n//para pruebas en local Beacon':\r\n//AB10C800F6640902021F73805F03002160C000000000000000004556303642617365436861726765721E73817016BAE84BF50000000000000000456E74726164614F666963696E6110730200000000000000000000000000001073030000000000000000000000000000107304000000000000000000000000000010730500000000000000000000000000001073060000000000000000000000000000107307000000000000000000000000000010730800000000000000000000000000001073090000000000000000000000000000//var params = {'HomeBeacon': [{'Beacon':'EV06 Base Charger,1C0:60:21:00:03:5F','Name':'Beacon1'},{'Beacon':'EntradaOficina,F5:4B:E8:BA:16:70','Name':'Beacon2'} ]};\r\n//var params = {'HomeBeacon': {'BeaconName': [{'Number':'1','Name':'Contact1'},{'Number':'2','Name':'Contact2'} ]}};\r\nvar configs = [];\r\nvar idsToUpdate = [];\r\nvar deletedId = []\r\nvar counter = 0;\r\nvar notSend = false;\r\nvar numberLength = '00';\r\nvar numberHex = ''; // MAC\r\nvar nameLength = '00';\r\nvar nameHex = ''; // Description\r\nvar value = '02';\r\nvar keyLength = '00';\r\nvar confTel = ''; // for index and enable//disable\r\nvar beaconString = '';\r\nvar beacon_name = '';\r\nvar beacon_mac = '';\r\nfor (var contactChanged of paramsChanged.BeaconList) {\r\n var contacts = paramsChangedIds.BeaconList[counter]; //counter\r\n for (var item in contacts) {\r\n idsToUpdate.push(contacts[item]);\r\n }\r\n if (contactChanged.Deleted === \"true\") {\r\n deletedId.push(contactChanged);\r\n // confTel = ('00' + decimalToHex(contactChanged)).slice(-2).toUpperCase(); // Add beacon number\r\n // value += \"1073\" + confTel + '0000000000000000000000000000'; //no name, mac nor lat//long\r\n }\r\n //counter++;\r\n}\r\n//var index = params.BeaconList.length;\r\nfor (var contact in params.BeaconList) {\r\n //console.log(parseInt(contact)+1);\r\n confTel = '8' + ('00' + decimalToHex(parseInt(contact))).slice(-1).toUpperCase(); // Add contact for the index\r\n if (deletedId.length > 0) {\r\n if (checkValue(contact) === true) {\r\n confTel = ('00' + decimalToHex(contact)).slice(-2).toUpperCase(); // Add beacon number\r\n value += \"1073\" + confTel + '0000000000000000000000000000'; //no name, mac nor lat//long\r\n } else {\r\n if (params.BeaconList[contact].Beacon !== null) {\r\n // name, mac, major, minor\r\n beaconString = params.BeaconList[contact].Beacon.split(',');\r\n beacon_name = ascii_to_hexa(beaconString[0].replace(/\\s+/g, '')).toUpperCase();\r\n beacon_mac = beaconString[1].replace(/:/g, '');\r\n beacon_mac = changeEndianness(beacon_mac);\r\n } else {\r\n beaconString = 'empty,00:00:00:00:00:00';\r\n beaconString = beaconString.split(',');\r\n beacon_name = ascii_to_hexa(beaconString[0].replace(/\\s+/g, '')).toUpperCase();\r\n beacon_mac = beaconString[1].replace(/:/g, '');\r\n }\r\n //let beacon_major = beaconString[2];\r\n //let beacon_minor = beaconString[3];\r\n //numberHex = ascii_to_hexa(params.HomeBeacon[contact].Beacon).toUpperCase();\r\n //numberLength = ('00' + decimalToHex(params.HomeBeacon[contact].Beacon.length)).slice(-2).toUpperCase();\r\n //nameHex = ascii_to_hexa(params.HomeBeacon[contact].Name).toUpperCase();\r\n //nameLength = ('00' + decimalToHex(params.HomeBeacon[contact].Name.length)).slice(-2).toUpperCase();\r\n //keyLength = ('00' + decimalToHex(5 + params.HomeBeacon[contact].Beacon.length + params.HomeBeacon[contact].Name.length)).slice(-2).toUpperCase();\r\n keyLength = ('00' + decimalToHex(16 + (beacon_name.length / 2))).slice(-2).toUpperCase();\r\n value += keyLength + \"73\" + confTel + beacon_mac + '0000000000000000' + beacon_name; //no lat long\r\n }\r\n } else {\r\n if (params.BeaconList[contact].Beacon !== null) {\r\n // name, mac, major, minor\r\n beaconString = params.BeaconList[contact].Beacon.split(',');\r\n beacon_name = ascii_to_hexa(beaconString[0].replace(/\\s+/g, '')).toUpperCase();\r\n beacon_mac = beaconString[1].replace(/:/g, '');\r\n beacon_mac = changeEndianness(beacon_mac);\r\n } else {\r\n beaconString = 'empty,00:00:00:00:00:00';\r\n beaconString = beaconString.split(',');\r\n beacon_name = ascii_to_hexa(beaconString[0].replace(/\\s+/g, '')).toUpperCase();\r\n beacon_mac = beaconString[1].replace(/:/g, '');\r\n }\r\n //let beacon_major = beaconString[2];\r\n //let beacon_minor = beaconString[3];\r\n //numberHex = ascii_to_hexa(params.HomeBeacon[contact].Beacon).toUpperCase();\r\n //numberLength = ('00' + decimalToHex(params.HomeBeacon[contact].Beacon.length)).slice(-2).toUpperCase();\r\n //nameHex = ascii_to_hexa(params.HomeBeacon[contact].Name).toUpperCase();\r\n //nameLength = ('00' + decimalToHex(params.HomeBeacon[contact].Name.length)).slice(-2).toUpperCase();\r\n //keyLength = ('00' + decimalToHex(5 + params.HomeBeacon[contact].Beacon.length + params.HomeBeacon[contact].Name.length)).slice(-2).toUpperCase();\r\n keyLength = ('00' + decimalToHex(16 + (beacon_name.length / 2))).slice(-2).toUpperCase();\r\n value += keyLength + \"73\" + confTel + beacon_mac + '0000000000000000' + beacon_name; //no lat long\r\n //index = index - 1;\r\n }\r\n counter++;\r\n}\r\n//disable other beacons\r\n// 10 73 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00\r\nfor (counter; counter < 10; counter++) {\r\n confTel = ('00' + decimalToHex(counter)).slice(-2).toUpperCase(); // Add beacon number\r\n value += \"1073\" + confTel + '0000000000000000000000000000'; //no name, mac nor lat//long\r\n}\r\n//for (var contactChanged of paramsChanged.BeaconList) {\r\n// var contacts = paramsChangedIds.BeaconList[counter];\r\n// for (var item in contacts) {\r\n// idsToUpdate.push(contacts[item]);\r\n// }\r\n//if (contactChanged.Deleted === \"true\") {\r\n// var cadena = contactChanged.Name + \":\" + contactChanged.Number + ',';\r\n// command = command.replace(cadena, '');\r\n//}\r\n// counter++;\r\n//}\r\n// create HEADER\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar totalLenght = ('0000' + decimalToHex(value.length / 2)).slice(-4).toUpperCase();\r\ntotalLenght = changeEndianness(totalLenght);\r\nvar checksum = byteStringToByteArray(value);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\r\nvar prefix = 'AB10' + totalLenght + checksum + sequenceID;\r\nvar data = prefix + value;\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n idsToUpdate: idsToUpdate,\r\n notSend: notSend\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction checkValue(contact) {\r\n for (var d in deletedId) {\r\n if (params.BeaconList[contact].Beacon == paramsChanged.BeaconList[d].Beacon) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = [];\r\n var j = 0;\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2);\r\n j++;\r\n }\r\n var bytes = [];\r\n var bytePos = 0;\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i];\r\n var b = parseInt(byteStr, 16);\r\n if (b < 256) {\r\n bytes[bytePos] = b;\r\n bytePos++;\r\n }\r\n }\r\n return bytes;\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString;\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4978,"Name":"setAPNSMS","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\r\nvar configsSMS = [];\r\nvar data = '';\r\nvar dataSMS = '';\r\nvar notSend = false;\r\nif (params.CommunicationSettings.APN) {\r\n var apnString = params.CommunicationSettings.APN.split(',');\r\n var apn = apnString[0];\r\n var apn_username = apnString[1];\r\n var apn_password = apnString[2];\r\n dataSMS = `S1,${apn},${apn_username},${apn_password}`;\r\n //if (params.SMSPassword.SMSPasswordOld) {\r\n // data = `${params.SMSPassword.SMSPasswordOld}S1,${apn},${apn_username},${apn_password}`;\r\n //} else {\r\n // data = `S1,${apn},${apn_username},${apn_password}`;\r\n //}\r\n}\r\nif (isForcedBySMS == 'False' && ((serverParams.CommandType == 'ByGPRS') || (serverParams.CommandType == 'Default' && ((serverParams.ParentCommandType == 'ByGPRS') || (serverParams.ParentCommandType == 'Default' && serverParams.ConfigType == 'GPRS') || (serverParams.ParentCommandType === null && serverParams.ConfigType == 'GPRS'))))) {\r\n notSend = true;\r\n}\r\nAddValue('data', data);\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS,\r\n notSend: notSend\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":false,"Order":null,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4968,"Name":"getCurrentSettings2","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\n// Contacts, APN, server details, fall sensitivity and Beacon List\r\nvar dataSMS = 'status'; // Check fall sens (function settings)\r\n/* Mode:4,0 second\r\nLED: on\r\nBeep: on\r\nVibration: on\r\nTime zone: +10:00\r\nGEO Fence:0,0,0,0\r\nMotion alarm: off\r\nNo Motion alarm: off\r\nTilt alert: off\r\nFall alarm: on, level:5\r\nLow power alarm: on,15%\r\nSOS Call:10 minutes, loop:1 */\r\nvar data = ''; // empty\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar notSend = false;\r\nif (isForcedBySMS == 'False' && ((serverParams.CommandType == 'ByGPRS') || (serverParams.CommandType == 'Default' && ((serverParams.ParentCommandType == 'ByGPRS') || (serverParams.ParentCommandType == 'Default' && serverParams.ConfigType == 'GPRS') || (serverParams.ParentCommandType === null && serverParams.ConfigType == 'GPRS'))))) {\r\n notSend = true;\r\n}\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS,\r\n notSend: notSend\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":true,"SendingType":0,"HasAck":true,"HexString":true,"Order":18,"SendAttempts":4,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":4968,\"Name\":\"getCurrentSettings2\",\"TemplateSMS\":\"<<dataSMS>>\",\"Template\":\"<<data>>\",\"AckTemplate\":null,\"Operation\":\"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\\r\\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\\r\\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\\r\\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\\r\\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\\r\\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\\r\\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\\r\\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\\r\\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\\r\\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\\r\\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\\r\\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\\r\\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\\r\\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\\r\\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\\r\\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\\r\\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\\r\\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\\r\\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\\r\\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\\r\\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\\r\\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\\r\\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\\r\\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\\r\\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\\r\\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\\r\\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\\r\\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\\r\\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\\r\\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\\r\\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\\r\\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\\r\\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\\r\\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\\r\\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\\r\\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\\r\\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\\r\\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\\r\\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\\r\\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\\r\\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\\r\\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\\r\\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\\r\\n];\\r\\nvar msg = [];\\r\\nvar configs = [];\\r\\nvar configsSMS = [];\\r\\n// Contacts, APN, server details, fall sensitivity and Beacon List\\r\\nvar dataSMS = 'status'; // Check fall sens (function settings)\\r\\n/* Mode:4,0 second\\r\\nLED: on\\r\\nBeep: on\\r\\nVibration: on\\r\\nTime zone: +10:00\\r\\nGEO Fence:0,0,0,0\\r\\nMotion alarm: off\\r\\nNo Motion alarm: off\\r\\nTilt alert: off\\r\\nFall alarm: on, level:5\\r\\nLow power alarm: on,15%\\r\\nSOS Call:10 minutes, loop:1 */\\r\\nvar data = ''; // empty\\r\\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\\r\\nvar notSend = false;\\r\\nif (isForcedBySMS == 'False' && ((serverParams.CommandType == 'ByGPRS') || (serverParams.CommandType == 'Default' && ((serverParams.ParentCommandType == 'ByGPRS') || (serverParams.ParentCommandType == 'Default' && serverParams.ConfigType == 'GPRS') || (serverParams.ParentCommandType === null && serverParams.ConfigType == 'GPRS'))))) {\\r\\n notSend = true;\\r\\n}\\r\\n// For GPRS command\\r\\nAddValue('data', data);\\r\\nAddValue('sequenceNumber', sequenceID);\\r\\n// For SMS command\\r\\nAddValueSMS('dataSMS', dataSMS);\\r\\nvar commandConfigs = {\\r\\n template: \\\"main\\\",\\r\\n configs: configs,\\r\\n configsSMS: configsSMS,\\r\\n notSend: notSend\\r\\n};\\r\\nmsg.push(JSON.stringify(commandConfigs));\\r\\n// functions\\r\\nfunction AddValue(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configs.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction AddValueSMS(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configsSMS.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction ascii_to_hexa(str) {\\r\\n var arr1 = [];\\r\\n for (var n = 0, l = str.length; n < l; n++) {\\r\\n var hex = Number(str.charCodeAt(n)).toString(16);\\r\\n arr1.push(hex);\\r\\n }\\r\\n return arr1.join('');\\r\\n}\\r\\n\\r\\nfunction crc16byte(s) {\\r\\n var crc = 0x0000;\\r\\n var j, i;\\r\\n for (i = 0; i < s.length; i++) {\\r\\n c = s[i];\\r\\n if (c > 255) {\\r\\n throw new RangeError();\\r\\n }\\r\\n j = (c ^ (crc >> 8)) & 0xFF;\\r\\n crc = crcTable[j] ^ (crc << 8);\\r\\n }\\r\\n return ((crc ^ 0) & 0xFFFF);\\r\\n}\\r\\n\\r\\nfunction byteStringToByteArray(str) {\\r\\n var splitStr = []\\r\\n var j = 0\\r\\n for (let i = 0; i < str.length; i += 2) {\\r\\n splitStr[j] = str.substring(i, i + 2)\\r\\n j++\\r\\n }\\r\\n var bytes = []\\r\\n var bytePos = 0\\r\\n for (let i = 0; i < splitStr.length; i++) {\\r\\n var byteStr = splitStr[i]\\r\\n var b = parseInt(byteStr, 16)\\r\\n if (b < 256) {\\r\\n bytes[bytePos] = b\\r\\n bytePos++\\r\\n }\\r\\n }\\r\\n return bytes\\r\\n}\\r\\n\\r\\nfunction decimalToHex(str) {\\r\\n hexString = str.toString(16);\\r\\n return hexString\\r\\n}\\r\\n\\r\\nfunction decimalToBinary(x) {\\r\\n let bin = 0;\\r\\n let rem, i = 1,\\r\\n step = 1;\\r\\n while (x != 0) {\\r\\n rem = x % 2;\\r\\n x = parseInt(x / 2);\\r\\n bin = bin + rem * i;\\r\\n i = i * 10;\\r\\n }\\r\\n return bin\\r\\n}\\r\\n\\r\\nfunction binaryToHex(x) {\\r\\n var hexa = parseInt(x, 2).toString(16);\\r\\n return hexa\\r\\n}\\r\\n\\r\\nfunction changeEndianness(string) {\\r\\n const result = [];\\r\\n let len = string.length - 2;\\r\\n while (len >= 0) {\\r\\n result.push(string.substr(len, 2));\\r\\n len -= 2;\\r\\n }\\r\\n return result.join('');\\r\\n}\",\"CommandToUpdate\":null,\"Parent\":{\"Id\":4958,\"Protocol\":{\"Id\":224,\"Code\":\"Access TEC Roam\",\"Version\":\"0.2\",\"FirmwareVersion\":\"V04b.8601.2411.1.0.16.4411.2409.25\",\"Product\":null,\"AvailableVersions\":[],\"HistoryVersions\":[],\"IsChanged\":false},\"Name\":\"getCurrentSettings\",\"TemplateSMS\":\"<<dataSMS>>\",\"Template\":\"<<data>>\",\"AckTemplate\":null,\"Operation\":\"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\\r\\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\\r\\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\\r\\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\\r\\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\\r\\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\\r\\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\\r\\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\\r\\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\\r\\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\\r\\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\\r\\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\\r\\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\\r\\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\\r\\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\\r\\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\\r\\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\\r\\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\\r\\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\\r\\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\\r\\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\\r\\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\\r\\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\\r\\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\\r\\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\\r\\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\\r\\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\\r\\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\\r\\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\\r\\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\\r\\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\\r\\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\\r\\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\\r\\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\\r\\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\\r\\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\\r\\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\\r\\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\\r\\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\\r\\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\\r\\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\\r\\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\\r\\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\\r\\n];\\r\\nvar msg = [];\\r\\nvar configs = [];\\r\\nvar configsSMS = [];\\r\\n//var value = '0234404142435673'; //Firmware, Contacts, APN, server details, fall sensitivity and Beacon List\\r\\nvar value = '214A1A3440414243567356101F4453473330';\\r\\n//SpeedDial, Wifi Network, Firmware Long, Contacts, APNusername, APNpass, server details, fall sensitivity and Beacon List, Fall down alert, Ring tome vol,System language, time interval, No motion alert,custom id, allow list, Emergency numbers\\r\\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\\r\\nvar command = '02';\\r\\n//var keyLength = '10'; // previous\\r\\nvar keyLength = '13';\\r\\nvar key = 'F0';\\r\\nvar messageBody = command + keyLength + key + value;\\r\\nvar dataSMS = 'V?'; // Get Firmware\\r\\nvar checksum = byteStringToByteArray(messageBody);\\r\\nchecksum = crc16byte(checksum);\\r\\nchecksum = decimalToHex(checksum);\\r\\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\\r\\nchecksum = changeEndianness(checksum);\\r\\nvar prefix = 'AB10' + '1500' + checksum + sequenceID; // add 2 to keylenght\\r\\nvar data = prefix + messageBody;\\r\\n// For GPRS command\\r\\nAddValue('data', data);\\r\\nAddValue('sequenceNumber', sequenceID);\\r\\n// For SMS command\\r\\nAddValueSMS('dataSMS', dataSMS);\\r\\nvar commandConfigs = {\\r\\n template: \\\"main\\\",\\r\\n configs: configs,\\r\\n configsSMS: configsSMS\\r\\n};\\r\\nmsg.push(JSON.stringify(commandConfigs));\\r\\n// functions\\r\\nfunction AddValue(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configs.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction AddValueSMS(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configsSMS.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction ascii_to_hexa(str) {\\r\\n var arr1 = [];\\r\\n for (var n = 0, l = str.length; n < l; n++) {\\r\\n var hex = Number(str.charCodeAt(n)).toString(16);\\r\\n arr1.push(hex);\\r\\n }\\r\\n return arr1.join('');\\r\\n}\\r\\n\\r\\nfunction crc16byte(s) {\\r\\n var crc = 0x0000;\\r\\n var j, i;\\r\\n for (i = 0; i < s.length; i++) {\\r\\n c = s[i];\\r\\n if (c > 255) {\\r\\n throw new RangeError();\\r\\n }\\r\\n j = (c ^ (crc >> 8)) & 0xFF;\\r\\n crc = crcTable[j] ^ (crc << 8);\\r\\n }\\r\\n return ((crc ^ 0) & 0xFFFF);\\r\\n}\\r\\n\\r\\nfunction byteStringToByteArray(str) {\\r\\n var splitStr = []\\r\\n var j = 0\\r\\n for (let i = 0; i < str.length; i += 2) {\\r\\n splitStr[j] = str.substring(i, i + 2)\\r\\n j++\\r\\n }\\r\\n var bytes = []\\r\\n var bytePos = 0\\r\\n for (let i = 0; i < splitStr.length; i++) {\\r\\n var byteStr = splitStr[i]\\r\\n var b = parseInt(byteStr, 16)\\r\\n if (b < 256) {\\r\\n bytes[bytePos] = b\\r\\n bytePos++\\r\\n }\\r\\n }\\r\\n return bytes\\r\\n}\\r\\n\\r\\nfunction decimalToHex(str) {\\r\\n hexString = str.toString(16);\\r\\n return hexString\\r\\n}\\r\\n\\r\\nfunction decimalToBinary(x) {\\r\\n let bin = 0;\\r\\n let rem, i = 1,\\r\\n step = 1;\\r\\n while (x != 0) {\\r\\n rem = x % 2;\\r\\n x = parseInt(x / 2);\\r\\n bin = bin + rem * i;\\r\\n i = i * 10;\\r\\n }\\r\\n return bin\\r\\n}\\r\\n\\r\\nfunction binaryToHex(x) {\\r\\n var hexa = parseInt(x, 2).toString(16);\\r\\n return hexa\\r\\n}\\r\\n\\r\\nfunction changeEndianness(string) {\\r\\n const result = [];\\r\\n let len = string.length - 2;\\r\\n while (len >= 0) {\\r\\n result.push(string.substr(len, 2));\\r\\n len -= 2;\\r\\n }\\r\\n return result.join('');\\r\\n}\",\"AvoidResending\":false,\"FollowParentSentType\":false,\"SendingType\":0,\"CommandToUpdateId\":null,\"ParentId\":null,\"Parent\":null,\"HasAck\":true,\"HexString\":true,\"SendAttempts\":4,\"Order\":17},\"AvoidResending\":false,\"FollowParentSentType\":true,\"SendingType\":0,\"HasAck\":true,\"HexString\":true,\"Order\":18,\"SendAttempts\":4,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1733390363}],"Tags":[]},{"Id":4919,"Name":"actionFindDevice","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '04';\r\nvar key = '13';\r\nvar totalLenght = '0300';\r\nvar keyLength = '01';\r\nvar messageBody = command + keyLength + key;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + totalLenght + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\n/* Answer from the device\r\n (no reply)\r\n*/\r\nvar dataSMS = 'findme';\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":12,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4984,"Name":"setSMSPrefix","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\r\nif (params.SMSPrefix.SMSPrefix == 'true') { //Enable Prefix for SMS anwers\r\n if (params.SMSPassword.SMSPasswordOld) {\r\n var data = `${params.SMSPassword.SMSPasswordOld}Prefix1,Rio-${serverParams.Imei}-`;\r\n } else {\r\n var data = `Prefix1,Rio-${serverParams.Imei}-`;\r\n }\r\n} else {\r\n var data = `Prefix0,`; //Disable Prefix for SMS anwers\r\n}\r\nAddValue('data', data);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":2,"HasAck":true,"HexString":false,"Order":null,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":4983,"Name":"actionRequestLocation","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\nif (params.SMSPassword.SMSPasswordOld) {\n var data = `${params.SMSPassword.SMSPasswordOld}loc`\n} else {\n var data = `loc`\n}\nAddValue('data', data)\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":2,"HasAck":true,"HexString":false,"Order":null,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4982,"Name":"actionDeviceReboot","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '04';\r\nvar keyLength = '01';\r\nvar key = '12';\r\nvar messageBody = command + keyLength + key;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum).toUpperCase();\r\nchecksum = ('0000' + checksum).slice(-4);\r\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\r\nvar prefix = 'AB10' + '0300' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nvar dataSMS = 'reboot';\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":13,"SendAttempts":4,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":4982,\"Name\":\"actionDeviceReboot\",\"TemplateSMS\":\"<<dataSMS>>\",\"Template\":\"<<data>>\",\"AckTemplate\":null,\"Operation\":\"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\\r\\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\\r\\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\\r\\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\\r\\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\\r\\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\\r\\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\\r\\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\\r\\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\\r\\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\\r\\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\\r\\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\\r\\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\\r\\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\\r\\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\\r\\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\\r\\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\\r\\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\\r\\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\\r\\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\\r\\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\\r\\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\\r\\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\\r\\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\\r\\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\\r\\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\\r\\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\\r\\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\\r\\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\\r\\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\\r\\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\\r\\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\\r\\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\\r\\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\\r\\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\\r\\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\\r\\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\\r\\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\\r\\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\\r\\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\\r\\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\\r\\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\\r\\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\\r\\n];\\r\\nvar configs = [];\\r\\nvar configsSMS = [];\\r\\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\\r\\nvar command = '04';\\r\\nvar keyLength = '01';\\r\\nvar key = '12';\\r\\nvar messageBody = command + keyLength + key;\\r\\nvar checksum = byteStringToByteArray(messageBody);\\r\\nchecksum = crc16byte(checksum);\\r\\nchecksum = decimalToHex(checksum).toUpperCase();\\r\\nchecksum = ('0000' + checksum).slice(-4);\\r\\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\\r\\nvar prefix = 'AB10' + '0300' + checksum + sequenceID;\\r\\nvar data = prefix + messageBody;\\r\\n// For GPRS command\\r\\nAddValue('data', data);\\r\\nAddValue('sequenceNumber', sequenceID);\\r\\n// For SMS command\\r\\nvar dataSMS = 'reboot';\\r\\nAddValueSMS('dataSMS', dataSMS);\\r\\nvar commandConfigs = {\\r\\n template: \\\"main\\\",\\r\\n configs: configs,\\r\\n configsSMS: configsSMS\\r\\n};\\r\\nmsg.push(JSON.stringify(commandConfigs));\\r\\n\\r\\nfunction AddValue(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configs.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction AddValueSMS(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configsSMS.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction ascii_to_hexa(str) {\\r\\n var arr1 = [];\\r\\n for (var n = 0, l = str.length; n < l; n++) {\\r\\n var hex = Number(str.charCodeAt(n)).toString(16);\\r\\n arr1.push(hex);\\r\\n }\\r\\n return arr1.join('');\\r\\n}\\r\\n\\r\\nfunction crc16byte(s) {\\r\\n var crc = 0x0000;\\r\\n var j, i;\\r\\n for (i = 0; i < s.length; i++) {\\r\\n c = s[i];\\r\\n if (c > 255) {\\r\\n throw new RangeError();\\r\\n }\\r\\n j = (c ^ (crc >> 8)) & 0xFF;\\r\\n crc = crcTable[j] ^ (crc << 8);\\r\\n }\\r\\n return ((crc ^ 0) & 0xFFFF);\\r\\n}\\r\\n\\r\\nfunction byteStringToByteArray(str) {\\r\\n var splitStr = []\\r\\n var j = 0\\r\\n for (let i = 0; i < str.length; i += 2) {\\r\\n splitStr[j] = str.substring(i, i + 2)\\r\\n j++\\r\\n }\\r\\n var bytes = []\\r\\n var bytePos = 0\\r\\n for (let i = 0; i < splitStr.length; i++) {\\r\\n var byteStr = splitStr[i]\\r\\n var b = parseInt(byteStr, 16)\\r\\n if (b < 256) {\\r\\n bytes[bytePos] = b\\r\\n bytePos++\\r\\n }\\r\\n }\\r\\n return bytes\\r\\n}\\r\\n\\r\\nfunction decimalToHex(str) {\\r\\n hexString = str.toString(16);\\r\\n return hexString\\r\\n}\",\"CommandToUpdate\":null,\"Parent\":null,\"AvoidResending\":false,\"FollowParentSentType\":false,\"SendingType\":2,\"HasAck\":true,\"HexString\":true,\"Order\":13,\"SendAttempts\":4,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1734006832}],"Tags":[]},{"Id":4981,"Name":"actionFactoryReset","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\nvar configs = [];\nvar configsSMS = [];\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\nvar command = '04';\nvar keyLength = '01';\nvar key = '11';\nvar messageBody = command + keyLength + key;\nvar checksum = byteStringToByteArray(messageBody);\nchecksum = crc16byte(checksum);\nchecksum = decimalToHex(checksum).toUpperCase();\nchecksum = ('0000' + checksum).slice(-4);\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\nvar prefix = 'AB10' + '0300' + checksum + sequenceID;\nvar data = prefix + messageBody;\n// For GPRS command\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID);\n// For SMS command\nvar dataSMS = 'ineedtoresetEV-06A!';\nAddValueSMS('dataSMS', dataSMS);\nvar commandConfigs = {\n template: \"main\",\n configs: configs,\n configsSMS: configsSMS\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction AddValueSMS(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configsSMS.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = []\n var j = 0\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2)\n j++\n }\n var bytes = []\n var bytePos = 0\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i]\n var b = parseInt(byteStr, 16)\n if (b < 256) {\n bytes[bytePos] = b\n bytePos++\n }\n }\n return bytes\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":15,"SendAttempts":4,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":4981,\"Name\":\"actionFactoryReset\",\"TemplateSMS\":\"<<dataSMS>>\",\"Template\":\"<<data>>\",\"AckTemplate\":null,\"Operation\":\"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\\n];\\nvar configs = [];\\nvar configsSMS = [];\\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\\nvar command = '04';\\nvar keyLength = '01';\\nvar key = '11';\\nvar messageBody = command + keyLength + key;\\nvar checksum = byteStringToByteArray(messageBody);\\nchecksum = crc16byte(checksum);\\nchecksum = decimalToHex(checksum).toUpperCase();\\nchecksum = ('0000' + checksum).slice(-4);\\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\\nvar prefix = 'AB10' + '0300' + checksum + sequenceID;\\nvar data = prefix + messageBody;\\n// For GPRS command\\nAddValue('data', data);\\nAddValue('sequenceNumber', sequenceID);\\n// For SMS command\\nvar dataSMS = 'ineedtoresetEV-06A!';\\nAddValueSMS('dataSMS', dataSMS);\\nvar commandConfigs = {\\n template: \\\"main\\\",\\n configs: configs,\\n configsSMS: configsSMS\\n};\\nmsg.push(JSON.stringify(commandConfigs));\\n\\nfunction AddValue(p1, p2) {\\n var cvpair = {\\n code: p1,\\n value: p2\\n };\\n configs.push(cvpair);\\n}\\n\\nfunction AddValueSMS(p1, p2) {\\n var cvpair = {\\n code: p1,\\n value: p2\\n };\\n configsSMS.push(cvpair);\\n}\\n\\nfunction ascii_to_hexa(str) {\\n var arr1 = [];\\n for (var n = 0, l = str.length; n < l; n++) {\\n var hex = Number(str.charCodeAt(n)).toString(16);\\n arr1.push(hex);\\n }\\n return arr1.join('');\\n}\\n\\nfunction crc16byte(s) {\\n var crc = 0x0000;\\n var j, i;\\n for (i = 0; i < s.length; i++) {\\n c = s[i];\\n if (c > 255) {\\n throw new RangeError();\\n }\\n j = (c ^ (crc >> 8)) & 0xFF;\\n crc = crcTable[j] ^ (crc << 8);\\n }\\n return ((crc ^ 0) & 0xFFFF);\\n}\\n\\nfunction byteStringToByteArray(str) {\\n var splitStr = []\\n var j = 0\\n for (let i = 0; i < str.length; i += 2) {\\n splitStr[j] = str.substring(i, i + 2)\\n j++\\n }\\n var bytes = []\\n var bytePos = 0\\n for (let i = 0; i < splitStr.length; i++) {\\n var byteStr = splitStr[i]\\n var b = parseInt(byteStr, 16)\\n if (b < 256) {\\n bytes[bytePos] = b\\n bytePos++\\n }\\n }\\n return bytes\\n}\\n\\nfunction decimalToHex(str) {\\n hexString = str.toString(16);\\n return hexString\\n}\",\"CommandToUpdate\":null,\"Parent\":null,\"AvoidResending\":false,\"FollowParentSentType\":false,\"SendingType\":2,\"HasAck\":true,\"HexString\":true,\"Order\":15,\"SendAttempts\":4,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1733955479},{"Type":1,"NewValue":"{\"Id\":4981,\"Name\":\"actionFactoryReset\",\"TemplateSMS\":\"<<dataSMS>>\",\"Template\":\"<<data>>\",\"AckTemplate\":null,\"Operation\":\"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\\n];\\nvar configs = [];\\nvar configsSMS = [];\\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\\nvar command = '04';\\nvar keyLength = '01';\\nvar key = '11';\\nvar messageBody = command + keyLength + key;\\nvar checksum = byteStringToByteArray(messageBody);\\nchecksum = crc16byte(checksum);\\nchecksum = decimalToHex(checksum).toUpperCase();\\nchecksum = ('0000' + checksum).slice(-4);\\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\\nvar prefix = 'AB10' + '0300' + checksum + sequenceID;\\nvar data = prefix + messageBody;\\n// For GPRS command\\nAddValue('data', data);\\nAddValue('sequenceNumber', sequenceID);\\n// For SMS command\\nvar dataSMS = 'ineedtoresetEV04!';\\nAddValueSMS('dataSMS', dataSMS);\\nvar commandConfigs = {\\n template: \\\"main\\\",\\n configs: configs,\\n configsSMS: configsSMS\\n};\\nmsg.push(JSON.stringify(commandConfigs));\\n\\nfunction AddValue(p1, p2) {\\n var cvpair = {\\n code: p1,\\n value: p2\\n };\\n configs.push(cvpair);\\n}\\n\\nfunction AddValueSMS(p1, p2) {\\n var cvpair = {\\n code: p1,\\n value: p2\\n };\\n configsSMS.push(cvpair);\\n}\\n\\nfunction ascii_to_hexa(str) {\\n var arr1 = [];\\n for (var n = 0, l = str.length; n < l; n++) {\\n var hex = Number(str.charCodeAt(n)).toString(16);\\n arr1.push(hex);\\n }\\n return arr1.join('');\\n}\\n\\nfunction crc16byte(s) {\\n var crc = 0x0000;\\n var j, i;\\n for (i = 0; i < s.length; i++) {\\n c = s[i];\\n if (c > 255) {\\n throw new RangeError();\\n }\\n j = (c ^ (crc >> 8)) & 0xFF;\\n crc = crcTable[j] ^ (crc << 8);\\n }\\n return ((crc ^ 0) & 0xFFFF);\\n}\\n\\nfunction byteStringToByteArray(str) {\\n var splitStr = []\\n var j = 0\\n for (let i = 0; i < str.length; i += 2) {\\n splitStr[j] = str.substring(i, i + 2)\\n j++\\n }\\n var bytes = []\\n var bytePos = 0\\n for (let i = 0; i < splitStr.length; i++) {\\n var byteStr = splitStr[i]\\n var b = parseInt(byteStr, 16)\\n if (b < 256) {\\n bytes[bytePos] = b\\n bytePos++\\n }\\n }\\n return bytes\\n}\\n\\nfunction decimalToHex(str) {\\n hexString = str.toString(16);\\n return hexString\\n}\",\"CommandToUpdate\":null,\"Parent\":null,\"AvoidResending\":false,\"FollowParentSentType\":false,\"SendingType\":2,\"HasAck\":true,\"HexString\":true,\"Order\":15,\"SendAttempts\":4,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1734595853}],"Tags":[]},{"Id":4979,"Name":"setGatewayNumberbySMS","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\r\nvar configsSMS = [];\r\nvar data = '';\r\nvar dataSMS = '';\r\nvar notSend = false;\r\nif (params.CommunicationSettings.SMSGateway) {\r\n var gatewayString = params.CommunicationSettings.SMSGateway.split(',');\r\n var gateway_name = gatewayString[1];\r\n var gateway_number = gatewayString[0];\r\n dataSMS = `A10,1,0,${gateway_number}`;\r\n //if (params.SMSPassword.SMSPasswordOld) {\r\n // var data = `${params.SMSPassword.SMSPasswordOld}IP1,${domain},${port}`;\r\n //} else {\r\n // var data = `IP1,${domain},${port}`;\r\n //}\r\n}\r\n// Reply from device \"Set contact number 10 ok.\"\r\nif (isForcedBySMS == 'False' && ((serverParams.CommandType == 'ByGPRS') || (serverParams.CommandType == 'Default' && ((serverParams.ParentCommandType == 'ByGPRS') || (serverParams.ParentCommandType == 'Default' && serverParams.ConfigType == 'GPRS') || (serverParams.ParentCommandType === null && serverParams.ConfigType == 'GPRS'))))) {\r\n notSend = true;\r\n}\r\nAddValue('data', data);\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS,\r\n notSend: notSend\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":false,"Order":null,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4977,"Name":"setPerformanceMode","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\n//Añadir comando para poner modo6 ??\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar command = '02';\r\nvar keyLength = '0D';\r\nvar key = '44'; // Time interval command\r\nvar cycleInterval = 60;\r\nvar lazyCycleInterval = 60;\r\nvar heartBeatStatus = '00000000'; //heartbeat OFF and heartBeat = 0; heartbeat ON and heartBeat = 240 F0000080; \r\nvar selectedMode = '2'; // Balanced mode\r\nif (params.PerformanceSettings.Mode) {\r\n selectedMode = params.PerformanceSettings.Mode;\r\n}\r\nvar value = '000000'; // Time interval to zero\r\nswitch (selectedMode) {\r\n case '0': // No reporting\r\n cycleInterval = 86400; // Time interval to 24 hrs \r\n lazyCycleInterval = 86400; // Lazy Time interval to 24 hrs \r\n // HB = 0\r\n break;\r\n case '1': //Power Saving\r\n cycleInterval = 28800; // Time interval to 8 hrs \r\n lazyCycleInterval = 43200; // Lazy Time interval to 12 hrs \r\n // HB = 0\r\n break;\r\n case '2': //Balanced\r\n cycleInterval = 600; // Time interval to 10 min \r\n lazyCycleInterval = 3600; // Lazy Time interval to 1 hrs \r\n heartBeatStatus = 'F0000080'; //heartbeat ON and heartBeat = 240\r\n break;\r\n case '3': //High Freq\r\n cycleInterval = 240; // Time interval to 4 min \r\n lazyCycleInterval = 3600; // Lazy Time interval to 1 hrs\r\n heartBeatStatus = 'F0000080'; //heartbeat ON and heartBeat = 240 \r\n break;\r\n default:\r\n var value = '000000'; // Time interval to zero\r\n //var valueSMS = '';\r\n}\r\n//Sms Value\r\nvar valueSMS = ',' + cycleInterval + 'S,' + lazyCycleInterval + 'S';\r\nvar value = parseInt(cycleInterval);\r\nif (params.Controls.ConfigurationMode == 'true') {\r\n heartBeatStatus = '3C000080'; //heartbeat ON and heartBeat = 60;\r\n} // else {\r\n// var heartBeatStatus = '00000000'; //heartbeat OFF and heartBeat = 0; heartbeat ON and heartBeat = 240 F0000080; \r\n//}\r\nvalue = decimalToHex(value);\r\nvalue = ('000000' + value).slice(-6).toUpperCase();\r\nvalue = value.substring(4, 6) + value.substring(2, 4) + value.substring(0, 2);\r\nvar valueLazy = parseInt(lazyCycleInterval);\r\nvar valueLazy = decimalToHex(valueLazy);\r\nvalueLazy = ('000000' + valueLazy).slice(-6).toUpperCase();\r\nvalueLazy = valueLazy.substring(4, 6) + valueLazy.substring(2, 4) + valueLazy.substring(0, 2);\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar messageBody = command + keyLength + key + heartBeatStatus + value + '00' + valueLazy + '00';\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\r\n//How to calculate sequenceID\r\nvar prefix = 'AB10' + '0F00' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nvar dataSMS = 'mode6' + valueSMS;\r\nAddValueSMS('dataSMS', dataSMS);\r\n//debug(data);\r\n//debug(dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":2,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":4977,\"Name\":\"setPerformanceMode\",\"TemplateSMS\":\"<<dataSMS>>\",\"Template\":\"<<data>>\",\"AckTemplate\":null,\"Operation\":\"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\\r\\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\\r\\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\\r\\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\\r\\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\\r\\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\\r\\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\\r\\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\\r\\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\\r\\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\\r\\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\\r\\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\\r\\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\\r\\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\\r\\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\\r\\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\\r\\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\\r\\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\\r\\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\\r\\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\\r\\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\\r\\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\\r\\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\\r\\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\\r\\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\\r\\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\\r\\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\\r\\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\\r\\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\\r\\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\\r\\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\\r\\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\\r\\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\\r\\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\\r\\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\\r\\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\\r\\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\\r\\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\\r\\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\\r\\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\\r\\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\\r\\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\\r\\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\\r\\n];\\r\\n//Añadir comando para poner modo6 ??\\r\\nvar configs = [];\\r\\nvar configsSMS = [];\\r\\nvar command = '02';\\r\\nvar keyLength = '0D';\\r\\nvar key = '44'; // Time interval command\\r\\nvar cycleInterval = 60;\\r\\nvar lazyCycleInterval = 60;\\r\\nvar heartBeatStatus = '00000000'; //heartbeat OFF and heartBeat = 0; heartbeat ON and heartBeat = 240 F0000080; \\r\\nvar selectedMode = '2'; // Balanced mode\\r\\nif (params.PerformanceSettings.Mode) {\\r\\n selectedMode = params.PerformanceSettings.Mode;\\r\\n}\\r\\nvar value = '000000'; // Time interval to zero\\r\\nswitch (selectedMode) {\\r\\n case '0': // No reporting\\r\\n cycleInterval = 86400; // Time interval to 24 hrs \\r\\n lazyCycleInterval = 86400; // Lazy Time interval to 24 hrs \\r\\n // HB = 0\\r\\n break;\\r\\n case '1': //Power Saving\\r\\n cycleInterval = 28800; // Time interval to 8 hrs \\r\\n lazyCycleInterval = 43200; // Lazy Time interval to 12 hrs \\r\\n // HB = 0\\r\\n break;\\r\\n case '2': //Balanced\\r\\n cycleInterval = 600; // Time interval to 10 min \\r\\n lazyCycleInterval = 3600; // Lazy Time interval to 1 hrs \\r\\n //heartBeatStatus = 'F0000080'; //heartbeat ON and heartBeat = 240\\r\\n break;\\r\\n case '3': //High Freq\\r\\n cycleInterval = 240; // Time interval to 4 min \\r\\n lazyCycleInterval = 3600; // Lazy Time interval to 1 hrs\\r\\n //heartBeatStatus = 'F0000080'; //heartbeat ON and heartBeat = 240 \\r\\n break;\\r\\n default:\\r\\n var value = '000000'; // Time interval to zero\\r\\n //var valueSMS = '';\\r\\n}\\r\\n//Sms Value\\r\\nvar valueSMS = ',' + cycleInterval + 'S,' + lazyCycleInterval + 'S';\\r\\nvar value = parseInt(cycleInterval);\\r\\nif (params.Controls.ConfigurationMode == 'true') {\\r\\n heartBeatStatus = '3C000080'; //heartbeat ON and heartBeat = 60;\\r\\n} else {\\r\\n heartBeatStatus = 'F0000080'; //heartbeat ON and heartBeat = 240; \\r\\n}\\r\\nvalue = decimalToHex(value);\\r\\nvalue = ('000000' + value).slice(-6).toUpperCase();\\r\\nvalue = value.substring(4, 6) + value.substring(2, 4) + value.substring(0, 2);\\r\\nvar valueLazy = parseInt(lazyCycleInterval);\\r\\nvar valueLazy = decimalToHex(valueLazy);\\r\\nvalueLazy = ('000000' + valueLazy).slice(-6).toUpperCase();\\r\\nvalueLazy = valueLazy.substring(4, 6) + valueLazy.substring(2, 4) + valueLazy.substring(0, 2);\\r\\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\\r\\nvar messageBody = command + keyLength + key + heartBeatStatus + value + '00' + valueLazy + '00';\\r\\nvar checksum = byteStringToByteArray(messageBody);\\r\\nchecksum = crc16byte(checksum);\\r\\nchecksum = decimalToHex(checksum);\\r\\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\\r\\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\\r\\n//How to calculate sequenceID\\r\\nvar prefix = 'AB10' + '0F00' + checksum + sequenceID;\\r\\nvar data = prefix + messageBody;\\r\\n// For GPRS command\\r\\nAddValue('data', data);\\r\\nAddValue('sequenceNumber', sequenceID);\\r\\n// For SMS command\\r\\nvar dataSMS = 'mode6' + valueSMS;\\r\\nAddValueSMS('dataSMS', dataSMS);\\r\\n//debug(data);\\r\\n//debug(dataSMS);\\r\\nvar commandConfigs = {\\r\\n template: \\\"main\\\",\\r\\n configs: configs,\\r\\n configsSMS: configsSMS\\r\\n};\\r\\nmsg.push(JSON.stringify(commandConfigs));\\r\\n\\r\\nfunction AddValue(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configs.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction AddValueSMS(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configsSMS.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction ascii_to_hexa(str) {\\r\\n var arr1 = [];\\r\\n for (var n = 0, l = str.length; n < l; n++) {\\r\\n var hex = Number(str.charCodeAt(n)).toString(16);\\r\\n arr1.push(hex);\\r\\n }\\r\\n return arr1.join('');\\r\\n}\\r\\n\\r\\nfunction crc16byte(s) {\\r\\n var crc = 0x0000;\\r\\n var j, i;\\r\\n for (i = 0; i < s.length; i++) {\\r\\n c = s[i];\\r\\n if (c > 255) {\\r\\n throw new RangeError();\\r\\n }\\r\\n j = (c ^ (crc >> 8)) & 0xFF;\\r\\n crc = crcTable[j] ^ (crc << 8);\\r\\n }\\r\\n return ((crc ^ 0) & 0xFFFF);\\r\\n}\\r\\n\\r\\nfunction byteStringToByteArray(str) {\\r\\n var splitStr = []\\r\\n var j = 0\\r\\n for (let i = 0; i < str.length; i += 2) {\\r\\n splitStr[j] = str.substring(i, i + 2)\\r\\n j++\\r\\n }\\r\\n var bytes = []\\r\\n var bytePos = 0\\r\\n for (let i = 0; i < splitStr.length; i++) {\\r\\n var byteStr = splitStr[i]\\r\\n var b = parseInt(byteStr, 16)\\r\\n if (b < 256) {\\r\\n bytes[bytePos] = b\\r\\n bytePos++\\r\\n }\\r\\n }\\r\\n return bytes\\r\\n}\\r\\n\\r\\nfunction decimalToHex(str) {\\r\\n hexString = str.toString(16);\\r\\n return hexString\\r\\n}\\r\\n\\r\\nfunction decimalToBinary(x) {\\r\\n let bin = 0;\\r\\n let rem, i = 1,\\r\\n step = 1;\\r\\n while (x != 0) {\\r\\n rem = x % 2;\\r\\n x = parseInt(x / 2);\\r\\n bin = bin + rem * i;\\r\\n i = i * 10;\\r\\n }\\r\\n return bin\\r\\n}\\r\\n\\r\\nfunction binaryToHex(x) {\\r\\n var hexa = parseInt(x, 2).toString(16);\\r\\n return hexa\\r\\n}\\r\\n\\r\\nfunction changeEndianness(string) {\\r\\n const result = [];\\r\\n let len = string.length - 2;\\r\\n while (len >= 0) {\\r\\n result.push(string.substr(len, 2));\\r\\n len -= 2;\\r\\n }\\r\\n return result.join('');\\r\\n}\",\"CommandToUpdate\":null,\"Parent\":null,\"AvoidResending\":false,\"FollowParentSentType\":false,\"SendingType\":0,\"HasAck\":true,\"HexString\":true,\"Order\":null,\"SendAttempts\":2,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1734459146}],"Tags":[]},{"Id":4974,"Name":"setRingToneVolume","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\nvar configs = [];\nif (params.SystemSettings.Volume) {\n var volume = parseInt(params.SystemSettings.Volume);\n volume = decimalToHex(parseInt(volume));\n volume = ('00' + volume).slice(-2);\n}\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\nvar command = '02';\nvar keyLength = '02';\nvar key = '10';\nvar messageBody = command + keyLength + key + volume;\nvar checksum = byteStringToByteArray(messageBody);\nchecksum = crc16byte(checksum);\nchecksum = decimalToHex(checksum).toUpperCase();\nchecksum = ('0000' + checksum).slice(-4);\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\n//Hpw to calculate sequenceID // change to AB10 from AB18\nvar prefix = 'AB10' + '0400' + checksum + sequenceID;\nvar data = prefix + messageBody;\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID); //add 20/07\n//var commandConfigs = {\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = [];\n var j = 0;\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2)\n j++\n }\n var bytes = []\n var bytePos = 0\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i]\n var b = parseInt(byteStr, 16)\n if (b < 256) {\n bytes[bytePos] = b\n bytePos++\n }\n }\n return bytes\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":4973,"Name":"setSpeakerVolume","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\nif (params.SystemSettings.Volume) {\n var volume = parseInt(params.SystemSettings.Volume)\n volume = decimalToHex(volume)\n volume = ('00' + volume).slice(-2).toUpperCase()\n}\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase()\nvar command = '02'\nvar keyLength = '02'\nvar key = '12'\nvar messageBody = command + keyLength + key + volume\nvar checksum = byteStringToByteArray(messageBody)\nchecksum = crc16byte(checksum)\nchecksum = decimalToHex(checksum).toUpperCase()\nchecksum = ('0000' + checksum).slice(-4)\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2)\n//Hpw to calculate sequenceID\nvar prefix = 'AB10' + '0400' + checksum + sequenceID\nvar data = prefix + messageBody\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID); //add 20/07\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = []\n var j = 0\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2)\n j++\n }\n var bytes = []\n var bytePos = 0\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i]\n var b = parseInt(byteStr, 16)\n if (b < 256) {\n bytes[bytePos] = b\n bytePos++\n }\n }\n return bytes\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":4972,"Name":"setAlarmClock1","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\nif (params.AlarmClock1.EnableDisableAlarmClock1 == 'true') {\n var index = '80';\n if (params.AlarmClock1.Time) {\n var hour = params.AlarmClock1.Time.replace(/[^a-zA-Z0-9]/g, \"\").substring(0, 2)\n hour = parseInt(hour)\n hour = decimalToHex(hour)\n hour = ('00' + hour).slice(-2).toUpperCase()\n var min = params.AlarmClock1.Time.replace(/[^a-zA-Z0-9]/g, \"\").substring(2, 4)\n min = parseInt(min)\n min = decimalToHex(min)\n min = ('00' + min).slice(-2).toUpperCase()\n } else {\n var hour = '0C'; // default time 12:00\n var min = '00';\n }\n //create the bit table to use with workdays\n var workday = 0\n if (params.AlarmClock1.Monday == 'true') {\n workday += 1\n }\n if (params.AlarmClock1.Tuesday == 'true') {\n workday += 2\n }\n if (params.AlarmClock1.Wednesday == 'true') {\n workday += 4\n }\n if (params.AlarmClock1.Thursday == 'true') {\n workday += 8\n }\n if (params.AlarmClock1.Friday == 'true') {\n workday += 16\n }\n if (params.AlarmClock1.Saturday == 'true') {\n workday += 32\n }\n if (params.AlarmClock1.Sunday == 'true') {\n workday += 64\n }\n workday = decimalToHex(workday).toUpperCase()\n workday = ('00' + workday).slice(-2).toUpperCase()\n if (params.AlarmClock1.Duration) {\n var duration = params.AlarmClock1.Duration\n duration = decimalToHex(parseInt(duration)).toUpperCase()\n duration = ('00' + duration).slice(-2).toUpperCase()\n } else {\n var duration = '1E';\n }\n var ring = '01'\n var value = index + hour + min + workday + duration + ring\n} else {\n value = '000000000101'\n}\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase()\nvar command = '02'\nvar keyLength = '07'\nvar key = '0B'\nvar messageBody = command + keyLength + key + value\nvar checksum = byteStringToByteArray(messageBody)\nchecksum = crc16byte(checksum)\nchecksum = decimalToHex(checksum)\nchecksum = ('0000' + checksum).slice(-4).toUpperCase()\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2)\nvar prefix = 'AB10' + '0900' + checksum + sequenceID\nvar data = prefix + messageBody\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID);\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = []\n var j = 0\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2)\n j++\n }\n var bytes = []\n var bytePos = 0\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i]\n var b = parseInt(byteStr, 16)\n if (b < 256) {\n bytes[bytePos] = b\n bytePos++\n }\n }\n return bytes\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":4971,"Name":"actionPowerOff","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '04';\r\nvar keyLength = '01';\r\nvar key = '14';\r\nvar messageBody = command + keyLength + key;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum).toUpperCase();\r\nchecksum = ('0000' + checksum).slice(-4);\r\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\r\nvar prefix = 'AB10' + '0300' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nvar dataSMS = 'off';\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = [];\r\n var j = 0;\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2);\r\n j++;\r\n }\r\n var bytes = [];\r\n var bytePos = 0;\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i];\r\n var b = parseInt(byteStr, 16);\r\n if (b < 256) {\r\n bytes[bytePos] = b;\r\n bytePos++;\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":14,"SendAttempts":4,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":4971,\"Name\":\"actionPowerOff\",\"TemplateSMS\":\"<<dataSMS>>\",\"Template\":\"<<data>>\",\"AckTemplate\":null,\"Operation\":\"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\\r\\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\\r\\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\\r\\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\\r\\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\\r\\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\\r\\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\\r\\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\\r\\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\\r\\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\\r\\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\\r\\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\\r\\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\\r\\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\\r\\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\\r\\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\\r\\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\\r\\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\\r\\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\\r\\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\\r\\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\\r\\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\\r\\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\\r\\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\\r\\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\\r\\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\\r\\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\\r\\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\\r\\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\\r\\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\\r\\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\\r\\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\\r\\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\\r\\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\\r\\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\\r\\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\\r\\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\\r\\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\\r\\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\\r\\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\\r\\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\\r\\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\\r\\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\\r\\n];\\r\\nvar configs = [];\\r\\nvar configsSMS = [];\\r\\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\\r\\nvar command = '04';\\r\\nvar keyLength = '01';\\r\\nvar key = '14';\\r\\nvar messageBody = command + keyLength + key;\\r\\nvar checksum = byteStringToByteArray(messageBody);\\r\\nchecksum = crc16byte(checksum);\\r\\nchecksum = decimalToHex(checksum).toUpperCase();\\r\\nchecksum = ('0000' + checksum).slice(-4);\\r\\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\\r\\nvar prefix = 'AB10' + '0300' + checksum + sequenceID;\\r\\nvar data = prefix + messageBody;\\r\\n// For GPRS command\\r\\nAddValue('data', data);\\r\\nAddValue('sequenceNumber', sequenceID);\\r\\n// For SMS command\\r\\nvar dataSMS = 'off';\\r\\nAddValueSMS('dataSMS', dataSMS);\\r\\nvar commandConfigs = {\\r\\n template: \\\"main\\\",\\r\\n configs: configs,\\r\\n configsSMS: configsSMS\\r\\n};\\r\\nmsg.push(JSON.stringify(commandConfigs));\\r\\n\\r\\nfunction AddValue(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configs.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction AddValueSMS(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configsSMS.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction ascii_to_hexa(str) {\\r\\n var arr1 = [];\\r\\n for (var n = 0, l = str.length; n < l; n++) {\\r\\n var hex = Number(str.charCodeAt(n)).toString(16);\\r\\n arr1.push(hex);\\r\\n }\\r\\n return arr1.join('');\\r\\n}\\r\\n\\r\\nfunction crc16byte(s) {\\r\\n var crc = 0x0000;\\r\\n var j, i;\\r\\n for (i = 0; i < s.length; i++) {\\r\\n c = s[i];\\r\\n if (c > 255) {\\r\\n throw new RangeError();\\r\\n }\\r\\n j = (c ^ (crc >> 8)) & 0xFF;\\r\\n crc = crcTable[j] ^ (crc << 8);\\r\\n }\\r\\n return ((crc ^ 0) & 0xFFFF);\\r\\n}\\r\\n\\r\\nfunction byteStringToByteArray(str) {\\r\\n var splitStr = [];\\r\\n var j = 0;\\r\\n for (let i = 0; i < str.length; i += 2) {\\r\\n splitStr[j] = str.substring(i, i + 2);\\r\\n j++;\\r\\n }\\r\\n var bytes = [];\\r\\n var bytePos = 0;\\r\\n for (let i = 0; i < splitStr.length; i++) {\\r\\n var byteStr = splitStr[i];\\r\\n var b = parseInt(byteStr, 16);\\r\\n if (b < 256) {\\r\\n bytes[bytePos] = b;\\r\\n bytePos++;\\r\\n }\\r\\n }\\r\\n return bytes\\r\\n}\\r\\n\\r\\nfunction decimalToHex(str) {\\r\\n hexString = str.toString(16);\\r\\n return hexString\\r\\n}\",\"CommandToUpdate\":null,\"Parent\":null,\"AvoidResending\":false,\"FollowParentSentType\":false,\"SendingType\":2,\"HasAck\":true,\"HexString\":true,\"Order\":14,\"SendAttempts\":4,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1733955031}],"Tags":[]},{"Id":4970,"Name":"setNoDisturb","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\nvar configs = [];\nif (params.DoNotDisturb.EnableDisableNoDisturb == 'true') {\n var flag = '80';\n if (params.DoNotDisturb.Start) {\n var hourStart = params.DoNotDisturb.Start.replace(/[^a-zA-Z0-9]/g, \"\").substring(0, 2);\n hourStart = parseInt(hourStart);\n hourStart = decimalToHex(hourStart);\n hourStart = ('00' + hourStart).slice(-2).toUpperCase();\n var minStart = params.DoNotDisturb.Start.replace(/[^a-zA-Z0-9]/g, \"\").substring(2, 4);\n minStart = parseInt(minStart);\n minStart = decimalToHex(minStart);\n minStart = ('00' + minStart).slice(-2).toUpperCase();\n }\n if (params.DoNotDisturb.End) {\n var hourEnd = params.DoNotDisturb.End.replace(/[^a-zA-Z0-9]/g, \"\").substring(0, 2);\n hourEnd = parseInt(hourEnd);\n hourEnd = decimalToHex(hourEnd);\n hourEnd = ('00' + hourEnd).slice(-2).toUpperCase();\n var minEnd = params.DoNotDisturb.End.replace(/[^a-zA-Z0-9]/g, \"\").substring(2, 4);\n minEnd = parseInt(minEnd);\n minEnd = decimalToHex(minEnd);\n minEnd = ('00' + minEnd).slice(-2).toUpperCase();\n }\n} else {\n var flag = '00';\n var hourStart, hourEnd, minStart, minEnd;\n hourStart = hourEnd = minStart = minEnd = '00';\n}\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\nvar command = '02';\nvar keyLength = '06';\nvar key = '0C';\nvar messageBody = command + keyLength + key + flag + hourStart + minStart + hourEnd + minEnd;\nvar checksum = byteStringToByteArray(messageBody);\nchecksum = crc16byte(checksum);\nchecksum = decimalToHex(checksum);\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\n//Hpw to calculate sequenceID\nvar prefix = 'AB10' + '0800' + checksum + sequenceID;\nvar data = prefix + messageBody;\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID); //add 20/07\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = [];\n var j = 0;\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2);\n j++;\n }\n var bytes = [];\n var bytePos = 0;\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i];\n var b = parseInt(byteStr, 16);\n if (b < 256) {\n bytes[bytePos] = b;\n bytePos++;\n }\n }\n return bytes;\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString;\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":4969,"Name":"actionDeleteRecords","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '04';\r\nvar keyLength = '01';\r\nvar key = '10';\r\nvar messageBody = command + keyLength + key;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum).toUpperCase();\r\nchecksum = ('0000' + checksum).slice(-4);\r\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\r\nvar prefix = 'AB10' + '0300' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nvar dataSMS = 'flush';\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":9,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4967,"Name":"getAPN","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\r\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar value = '40'; //Ask for APN\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '02';\r\nvar key = 'F0';\r\nvar messageBody = command + keyLength + key + value;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + '0400' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID); //add 20/07\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":4966,"Name":"getServer","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\r\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar value = '43'; //Ask for Server\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '02';\r\nvar key = 'F0';\r\nvar messageBody = command + keyLength + key + value;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + '0400' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":4965,"Name":"actionTrace","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '01';\r\nvar key = '13';\r\nvar totalLenght = '0300';\r\nvar keyLength = '01';\r\nvar messageBody = command + keyLength + key;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + totalLenght + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\n/* Answer from the device\r\nSet live tracking every 10 seconds and last for 10 minutes ok.\r\n*/\r\nvar dataSMS = 'CL10s,600s'; // CL(interval),(duration)\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":3,"HasAck":true,"HexString":true,"Order":11,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4964,"Name":"actionRealTimeLocation","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '01';\r\nvar key = '12';\r\nvar totalLenght = '0300';\r\nvar keyLength = '01';\r\nvar messageBody = command + keyLength + key;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + totalLenght + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\n/* Answer from the device\r\nGPS Loc!\r\nNow:\r\nLoc Time:07/04/2021 17:36:44\r\nSpeed:0km/h\r\nAltitude:97.0\r\nBattery:57%\r\nwww.google.com/maps?q=22.6537233,114.0006070\r\n*/\r\nvar dataSMS = 'loc';\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":10,"SendAttempts":4,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":4964,\"Name\":\"actionRealTimeLocation\",\"TemplateSMS\":\"<<dataSMS>>\",\"Template\":\"<<data>>\",\"AckTemplate\":null,\"Operation\":\"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\\r\\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\\r\\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\\r\\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\\r\\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\\r\\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\\r\\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\\r\\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\\r\\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\\r\\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\\r\\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\\r\\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\\r\\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\\r\\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\\r\\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\\r\\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\\r\\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\\r\\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\\r\\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\\r\\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\\r\\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\\r\\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\\r\\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\\r\\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\\r\\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\\r\\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\\r\\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\\r\\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\\r\\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\\r\\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\\r\\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\\r\\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\\r\\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\\r\\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\\r\\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\\r\\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\\r\\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\\r\\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\\r\\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\\r\\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\\r\\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\\r\\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\\r\\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\\r\\n];\\r\\nvar configs = [];\\r\\nvar configsSMS = [];\\r\\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\\r\\nvar command = '01';\\r\\nvar key = '12';\\r\\nvar totalLenght = '0300';\\r\\nvar keyLength = '01';\\r\\nvar messageBody = command + keyLength + key;\\r\\nvar checksum = byteStringToByteArray(messageBody);\\r\\nchecksum = crc16byte(checksum);\\r\\nchecksum = decimalToHex(checksum);\\r\\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\\r\\nchecksum = changeEndianness(checksum);\\r\\nvar prefix = 'AB10' + totalLenght + checksum + sequenceID;\\r\\nvar data = prefix + messageBody;\\r\\n// For GPRS command\\r\\nAddValue('data', data);\\r\\nAddValue('sequenceNumber', sequenceID);\\r\\n// For SMS command\\r\\n/* Answer from the device\\r\\nGPS Loc!\\r\\nNow:\\r\\nLoc Time:07/04/2021 17:36:44\\r\\nSpeed:0km/h\\r\\nAltitude:97.0\\r\\nBattery:57%\\r\\nwww.google.com/maps?q=22.6537233,114.0006070\\r\\n*/\\r\\nvar dataSMS = 'loc';\\r\\nAddValueSMS('dataSMS', dataSMS);\\r\\nvar commandConfigs = {\\r\\n template: \\\"main\\\",\\r\\n configs: configs,\\r\\n configsSMS: configsSMS\\r\\n};\\r\\nmsg.push(JSON.stringify(commandConfigs));\\r\\n\\r\\nfunction AddValue(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configs.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction AddValueSMS(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configsSMS.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction ascii_to_hexa(str) {\\r\\n var arr1 = [];\\r\\n for (var n = 0, l = str.length; n < l; n++) {\\r\\n var hex = Number(str.charCodeAt(n)).toString(16);\\r\\n arr1.push(hex);\\r\\n }\\r\\n return arr1.join('');\\r\\n}\\r\\n\\r\\nfunction crc16byte(s) {\\r\\n var crc = 0x0000;\\r\\n var j, i;\\r\\n for (i = 0; i < s.length; i++) {\\r\\n c = s[i];\\r\\n if (c > 255) {\\r\\n throw new RangeError();\\r\\n }\\r\\n j = (c ^ (crc >> 8)) & 0xFF;\\r\\n crc = crcTable[j] ^ (crc << 8);\\r\\n }\\r\\n return ((crc ^ 0) & 0xFFFF);\\r\\n}\\r\\n\\r\\nfunction byteStringToByteArray(str) {\\r\\n var splitStr = []\\r\\n var j = 0\\r\\n for (let i = 0; i < str.length; i += 2) {\\r\\n splitStr[j] = str.substring(i, i + 2)\\r\\n j++\\r\\n }\\r\\n var bytes = []\\r\\n var bytePos = 0\\r\\n for (let i = 0; i < splitStr.length; i++) {\\r\\n var byteStr = splitStr[i]\\r\\n var b = parseInt(byteStr, 16)\\r\\n if (b < 256) {\\r\\n bytes[bytePos] = b\\r\\n bytePos++\\r\\n }\\r\\n }\\r\\n return bytes\\r\\n}\\r\\n\\r\\nfunction decimalToHex(str) {\\r\\n hexString = str.toString(16);\\r\\n return hexString\\r\\n}\\r\\n\\r\\nfunction decimalToBinary(x) {\\r\\n let bin = 0;\\r\\n let rem, i = 1,\\r\\n step = 1;\\r\\n while (x != 0) {\\r\\n rem = x % 2;\\r\\n x = parseInt(x / 2);\\r\\n bin = bin + rem * i;\\r\\n i = i * 10;\\r\\n }\\r\\n return bin\\r\\n}\\r\\n\\r\\nfunction binaryToHex(x) {\\r\\n var hexa = parseInt(x, 2).toString(16);\\r\\n return hexa\\r\\n}\\r\\n\\r\\nfunction changeEndianness(string) {\\r\\n const result = [];\\r\\n let len = string.length - 2;\\r\\n while (len >= 0) {\\r\\n result.push(string.substr(len, 2));\\r\\n len -= 2;\\r\\n }\\r\\n return result.join('');\\r\\n}\",\"CommandToUpdate\":null,\"Parent\":null,\"AvoidResending\":false,\"FollowParentSentType\":false,\"SendingType\":2,\"HasAck\":true,\"HexString\":true,\"Order\":10,\"SendAttempts\":4,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1733954911}],"Tags":[]},{"Id":4963,"Name":"setAPN","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\n//para pruebas en local APN':\r\n//var params = {CommunicationSettings:{'SMSGateway':'+34666777888,Esendex','APN':'','APNOld':'','Server':'52.174.17.77,5678','ServerOld':''}}\r\n// AB101B 0066840300 021043802E1635322E3137342E31372E373704406D326D01410142\r\n// AB1015 00 66 84 F5 4B 02 10 43 80 2E 16 35 32 2E 31 37 34 2E 31 37 2E 37 37 04 40 6D 32 6D 01 41 01 42 \r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\n// configuration command (0X02) APN and Server and Gateway Number\r\nvar messageBody = '02';\r\n// Server\r\nvar domain = '';\r\nvar port = '';\r\nvar serverLength = '00';\r\n// APN\r\nvar apn = '';\r\nvar apn_password = '';\r\nvar apn_username = '';\r\nvar apnLength = '00';\r\nvar apnUserLength = '00';\r\nvar apnPassLength = '00';\r\nvar dataSMS = '';\r\nif (params.CommunicationSettings.Server) {\r\n var serverString = params.CommunicationSettings.Server.split(',');\r\n domain = serverString[0];\r\n port = serverString[1];\r\n port = changeEndianness(decimalToHex(parseInt(port))).toUpperCase();\r\n // Server IP and Port\r\n domain = ascii_to_hexa(domain).toUpperCase();\r\n serverLength = ('00' + decimalToHex(2 + port.length / 2 + domain.length / 2)).slice(-2).toUpperCase();\r\n // key 43 and TCP and GPRS is 80\r\n messageBody += serverLength + \"4380\" + port + domain;\r\n}\r\nif (params.CommunicationSettings.APN) {\r\n var apnString = params.CommunicationSettings.APN.split(',');\r\n // APN\r\n apn = apnString[0];\r\n apn = ascii_to_hexa(apn).toUpperCase();\r\n apnLength = ('00' + decimalToHex(1 + apn.length / 2)).slice(-2).toUpperCase();\r\n messageBody += apnLength + \"40\" + apn;\r\n // APN username\r\n apn_username = apnString[1];\r\n apn_username = ascii_to_hexa(apn_username).toUpperCase();\r\n apnUserLength = ('00' + decimalToHex(1 + apn_username.length / 2)).slice(-2).toUpperCase();\r\n messageBody += apnUserLength + \"41\" + apn_username;\r\n // APN passwprd\r\n apn_password = apnString[2];\r\n apn_password = ascii_to_hexa(apn_password).toUpperCase();\r\n apnPassLength = ('00' + decimalToHex(1 + apn_password.length / 2)).slice(-2).toUpperCase();\r\n messageBody += apnPassLength + \"42\" + apn_password;\r\n // For SMS\r\n dataSMS = `S1,${apnString[0]},${apnString[1]},${apnString[2]}`;\r\n}\r\n// create HEADER\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar totalLenght = ('0000' + decimalToHex(messageBody.length / 2)).slice(-4).toUpperCase();\r\ntotalLenght = changeEndianness(totalLenght);\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + totalLenght + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":2,"HasAck":true,"HexString":true,"Order":0,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4962,"Name":"setEmergencySettings","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar messageBody = '02';\r\nvar key = '30';\r\nvar phone_number = '00000000000';\r\nvar numberHex = '';\r\nvar sosKeyLength = '00';\r\n//var confFall = '1100'; // Enable, Dial\r\nvar confSOS = '10100000'; // Enable, no SMS, Toggle Call, No Sim Dialing, Contact Number 1\r\nvar dataSMS = '';\r\nif (params.AlertSettings.EmergencyNumber) {\r\n confSOS = ('00' + binaryToHex(confSOS)).slice(-2).toUpperCase();\r\n phone_number = params.AlertSettings.EmergencyNumber;\r\n numberHex = ascii_to_hexa(phone_number).toUpperCase();\r\n sosKeyLength = ('00' + decimalToHex(2 + (numberHex.length / 2))).slice(-2).toUpperCase();\r\n messageBody += sosKeyLength + key + confSOS + numberHex;\r\n dataSMS = `A1,0,1,${phone_number}`;\r\n}\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar totalLength = ('0000' + decimalToHex(messageBody.length / 2)).slice(-4).toUpperCase();\r\ntotalLength = changeEndianness(totalLength);\r\n//totalLength = '1000'; //better to calculate it\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + totalLength + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":3,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4961,"Name":"setFallSettings","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\n// configuration command (0X02) Fall sensitivity\r\nvar messageBody = '02';\r\nvar sensitivity = '';\r\nvar dataSMS = '';\r\nvar value = ''\r\nif (params.FallSettings.EnableDisableFallSettings == 'true') {\r\n value += '1'\r\n value += '100' //Dial\r\n //}\r\n if (params.FallSettings.Sensitivity) {\r\n var sensiString = params.FallSettings.Sensitivity.split(',');\r\n var level = sensiString[1];\r\n sensitivity = parseInt(sensiString[0]);\r\n // For SMS\r\n dataSMS = `FL1,${sensitivity},1`;\r\n //numberHex = ascii_to_hexa(sensitivity).toUpperCase();\r\n sensitivity = ('0000' + decimalToBinary(sensitivity)).slice(-4).toUpperCase()\r\n value += sensitivity\r\n }\r\n} else {\r\n value = '00000000'\r\n dataSMS = `FL0,1,1`;\r\n}\r\n// create HEADER\r\nvalue = ('00' + binaryToHex(value)).slice(-2).toUpperCase();\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase()\r\nvar command = '02'\r\nvar keyLength = '02'\r\nvar key = '56'\r\nvar messageBody = command + keyLength + key + value\r\nvar checksum = byteStringToByteArray(messageBody)\r\nchecksum = crc16byte(checksum)\r\nchecksum = decimalToHex(checksum)\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase()\r\nchecksum = changeEndianness(checksum)\r\n//Hpw to calculate sequenceID\r\nvar prefix = 'AB10' + '0400' + checksum + sequenceID\r\nvar data = prefix + messageBody\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":4,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4960,"Name":"setGateway","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar messageBody = '02';\r\nvar key = '30';\r\nvar phone_number = '00000000000';\r\nvar numberHex = '';\r\nvar sosKeyLength = '00';\r\nvar confSOS = '10001001'; // Enable + doesn't accept SMS+ Untogle Call, No SIM Dialing + Contact Number 10\r\nvar dataSMS = '';\r\nif (params.CommunicationSettings.SMSGateway) {\r\n confSOS = ('00' + binaryToHex(confSOS)).slice(-2).toUpperCase();\r\n var gatewayString = params.CommunicationSettings.SMSGateway.split(',');\r\n var gateway = gatewayString[1];\r\n gateway_number = gatewayString[0];\r\n numberHex = ascii_to_hexa(gateway_number).toUpperCase();\r\n //numberLength = ('00' + decimalToHex(gateway_number.length)).slice(-2).toUpperCase();\r\n sosKeyLength = ('00' + decimalToHex(2 + (numberHex.length / 2))).slice(-2).toUpperCase();\r\n messageBody += sosKeyLength + key + confSOS + numberHex;\r\n dataSMS = `A10,1,0,${phone_number}`;\r\n}\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar totalLength = ('0000' + decimalToHex(messageBody.length / 2)).slice(-4).toUpperCase();\r\ntotalLength = changeEndianness(totalLength);\r\n//totalLength = '1000'; //better to calculate it\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + totalLength + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":2,"SendAttempts":4,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":4960,\"Name\":\"setGateway\",\"TemplateSMS\":\"<<dataSMS>>\",\"Template\":\"<<data>>\",\"AckTemplate\":null,\"Operation\":\"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\\r\\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\\r\\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\\r\\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\\r\\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\\r\\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\\r\\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\\r\\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\\r\\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\\r\\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\\r\\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\\r\\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\\r\\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\\r\\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\\r\\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\\r\\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\\r\\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\\r\\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\\r\\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\\r\\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\\r\\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\\r\\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\\r\\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\\r\\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\\r\\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\\r\\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\\r\\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\\r\\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\\r\\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\\r\\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\\r\\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\\r\\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\\r\\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\\r\\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\\r\\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\\r\\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\\r\\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\\r\\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\\r\\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\\r\\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\\r\\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\\r\\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\\r\\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\\r\\n];\\r\\nvar msg = [];\\r\\nvar configs = [];\\r\\nvar configsSMS = [];\\r\\nvar messageBody = '02';\\r\\nvar key = '30';\\r\\nvar phone_number = '00000000000';\\r\\nvar numberHex = '';\\r\\nvar sosKeyLength = '00';\\r\\nvar confSOS = '10001001'; // Enable + doesn't accept SMS+ Untogle Call, No SIM Dialing + Contact Number 10\\r\\nvar dataSMS = '';\\r\\nif (params.CommunicationSettings.SMSGateway) {\\r\\n confSOS = ('00' + binaryToHex(confSOS)).slice(-2).toUpperCase();\\r\\n var gatewayString = params.CommunicationSettings.SMSGateway.split(',');\\r\\n var gateway = gatewayString[1];\\r\\n gateway_number = gatewayString[0];\\r\\n numberHex = ascii_to_hexa(gateway_number).toUpperCase();\\r\\n //numberLength = ('00' + decimalToHex(gateway_number.length)).slice(-2).toUpperCase();\\r\\n sosKeyLength = ('00' + decimalToHex(2 + (numberHex.length / 2))).slice(-2).toUpperCase();\\r\\n messageBody += sosKeyLength + key + confSOS + numberHex;\\r\\n dataSMS = `A10,1,0,${phone_number}`;\\r\\n}\\r\\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\\r\\nvar totalLength = ('0000' + decimalToHex(messageBody.length / 2)).slice(-4).toUpperCase();\\r\\ntotalLength = changeEndianness(totalLength);\\r\\n//totalLength = '1000'; //better to calculate it\\r\\nvar checksum = byteStringToByteArray(messageBody);\\r\\nchecksum = crc16byte(checksum);\\r\\nchecksum = decimalToHex(checksum);\\r\\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\\r\\nchecksum = changeEndianness(checksum);\\r\\nvar prefix = 'AB10' + totalLength + checksum + sequenceID;\\r\\nvar data = prefix + messageBody;\\r\\nAddValue('data', data);\\r\\nAddValue('sequenceNumber', sequenceID);\\r\\n// For SMS command\\r\\nAddValueSMS('dataSMS', dataSMS);\\r\\nvar commandConfigs = {\\r\\n template: \\\"main\\\",\\r\\n configs: configs,\\r\\n configsSMS: configsSMS\\r\\n};\\r\\nmsg.push(JSON.stringify(commandConfigs));\\r\\n// functions\\r\\nfunction AddValue(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configs.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction AddValueSMS(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configsSMS.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction ascii_to_hexa(str) {\\r\\n var arr1 = [];\\r\\n for (var n = 0, l = str.length; n < l; n++) {\\r\\n var hex = Number(str.charCodeAt(n)).toString(16);\\r\\n arr1.push(hex);\\r\\n }\\r\\n return arr1.join('');\\r\\n}\\r\\n\\r\\nfunction crc16byte(s) {\\r\\n var crc = 0x0000;\\r\\n var j, i;\\r\\n for (i = 0; i < s.length; i++) {\\r\\n c = s[i];\\r\\n if (c > 255) {\\r\\n throw new RangeError();\\r\\n }\\r\\n j = (c ^ (crc >> 8)) & 0xFF;\\r\\n crc = crcTable[j] ^ (crc << 8);\\r\\n }\\r\\n return ((crc ^ 0) & 0xFFFF);\\r\\n}\\r\\n\\r\\nfunction byteStringToByteArray(str) {\\r\\n var splitStr = []\\r\\n var j = 0\\r\\n for (let i = 0; i < str.length; i += 2) {\\r\\n splitStr[j] = str.substring(i, i + 2)\\r\\n j++\\r\\n }\\r\\n var bytes = []\\r\\n var bytePos = 0\\r\\n for (let i = 0; i < splitStr.length; i++) {\\r\\n var byteStr = splitStr[i]\\r\\n var b = parseInt(byteStr, 16)\\r\\n if (b < 256) {\\r\\n bytes[bytePos] = b\\r\\n bytePos++\\r\\n }\\r\\n }\\r\\n return bytes\\r\\n}\\r\\n\\r\\nfunction decimalToHex(str) {\\r\\n hexString = str.toString(16);\\r\\n return hexString\\r\\n}\\r\\n\\r\\nfunction decimalToBinary(x) {\\r\\n let bin = 0;\\r\\n let rem, i = 1,\\r\\n step = 1;\\r\\n while (x != 0) {\\r\\n rem = x % 2;\\r\\n x = parseInt(x / 2);\\r\\n bin = bin + rem * i;\\r\\n i = i * 10;\\r\\n }\\r\\n return bin\\r\\n}\\r\\n\\r\\nfunction binaryToHex(x) {\\r\\n var hexa = parseInt(x, 2).toString(16);\\r\\n return hexa\\r\\n}\\r\\n\\r\\nfunction changeEndianness(string) {\\r\\n const result = [];\\r\\n let len = string.length - 2;\\r\\n while (len >= 0) {\\r\\n result.push(string.substr(len, 2));\\r\\n len -= 2;\\r\\n }\\r\\n return result.join('');\\r\\n}\",\"CommandToUpdate\":null,\"Parent\":null,\"AvoidResending\":false,\"FollowParentSentType\":false,\"SendingType\":2,\"HasAck\":true,\"HexString\":true,\"Order\":2,\"SendAttempts\":4,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1733955599},{"Type":1,"NewValue":"{\"Id\":4960,\"Name\":\"setGateway\",\"TemplateSMS\":\"<<dataSMS>>\",\"Template\":\"<<data>>\",\"AckTemplate\":null,\"Operation\":\"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\\r\\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\\r\\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\\r\\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\\r\\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\\r\\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\\r\\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\\r\\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\\r\\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\\r\\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\\r\\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\\r\\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\\r\\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\\r\\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\\r\\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\\r\\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\\r\\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\\r\\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\\r\\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\\r\\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\\r\\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\\r\\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\\r\\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\\r\\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\\r\\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\\r\\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\\r\\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\\r\\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\\r\\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\\r\\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\\r\\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\\r\\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\\r\\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\\r\\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\\r\\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\\r\\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\\r\\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\\r\\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\\r\\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\\r\\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\\r\\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\\r\\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\\r\\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\\r\\n];\\r\\nvar msg = [];\\r\\nvar configs = [];\\r\\nvar configsSMS = [];\\r\\nvar messageBody = '02';\\r\\nvar key = '30';\\r\\nvar gateway_number = '00000000000';\\r\\nvar numberHex = '';\\r\\nvar sosKeyLength = '00';\\r\\nvar confSOS = '10001001'; // Enable + doesn't accept SMS+ Untogle Call, No SIM Dialing + Contact Number 10\\r\\nvar dataSMS = '';\\r\\nif (params.CommunicationSettings.SMSGateway) {\\r\\n confSOS = ('00' + binaryToHex(confSOS)).slice(-2).toUpperCase();\\r\\n var gatewayString = params.CommunicationSettings.SMSGateway.split(',');\\r\\n var gateway = gatewayString[1];\\r\\n gateway_number = gatewayString[0];\\r\\n numberHex = ascii_to_hexa(gateway_number).toUpperCase();\\r\\n //numberLength = ('00' + decimalToHex(gateway_number.length)).slice(-2).toUpperCase();\\r\\n sosKeyLength = ('00' + decimalToHex(2 + (numberHex.length / 2))).slice(-2).toUpperCase();\\r\\n messageBody += sosKeyLength + key + confSOS + numberHex;\\r\\n dataSMS = `A10,1,0,${gateway_number}`;\\r\\n}\\r\\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\\r\\nvar totalLength = ('0000' + decimalToHex(messageBody.length / 2)).slice(-4).toUpperCase();\\r\\ntotalLength = changeEndianness(totalLength);\\r\\n//totalLength = '1000'; //better to calculate it\\r\\nvar checksum = byteStringToByteArray(messageBody);\\r\\nchecksum = crc16byte(checksum);\\r\\nchecksum = decimalToHex(checksum);\\r\\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\\r\\nchecksum = changeEndianness(checksum);\\r\\nvar prefix = 'AB10' + totalLength + checksum + sequenceID;\\r\\nvar data = prefix + messageBody;\\r\\nAddValue('data', data);\\r\\nAddValue('sequenceNumber', sequenceID);\\r\\n// For SMS command\\r\\nAddValueSMS('dataSMS', dataSMS);\\r\\nvar commandConfigs = {\\r\\n template: \\\"main\\\",\\r\\n configs: configs,\\r\\n configsSMS: configsSMS\\r\\n};\\r\\nmsg.push(JSON.stringify(commandConfigs));\\r\\n// functions\\r\\nfunction AddValue(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configs.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction AddValueSMS(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configsSMS.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction ascii_to_hexa(str) {\\r\\n var arr1 = [];\\r\\n for (var n = 0, l = str.length; n < l; n++) {\\r\\n var hex = Number(str.charCodeAt(n)).toString(16);\\r\\n arr1.push(hex);\\r\\n }\\r\\n return arr1.join('');\\r\\n}\\r\\n\\r\\nfunction crc16byte(s) {\\r\\n var crc = 0x0000;\\r\\n var j, i;\\r\\n for (i = 0; i < s.length; i++) {\\r\\n c = s[i];\\r\\n if (c > 255) {\\r\\n throw new RangeError();\\r\\n }\\r\\n j = (c ^ (crc >> 8)) & 0xFF;\\r\\n crc = crcTable[j] ^ (crc << 8);\\r\\n }\\r\\n return ((crc ^ 0) & 0xFFFF);\\r\\n}\\r\\n\\r\\nfunction byteStringToByteArray(str) {\\r\\n var splitStr = []\\r\\n var j = 0\\r\\n for (let i = 0; i < str.length; i += 2) {\\r\\n splitStr[j] = str.substring(i, i + 2)\\r\\n j++\\r\\n }\\r\\n var bytes = []\\r\\n var bytePos = 0\\r\\n for (let i = 0; i < splitStr.length; i++) {\\r\\n var byteStr = splitStr[i]\\r\\n var b = parseInt(byteStr, 16)\\r\\n if (b < 256) {\\r\\n bytes[bytePos] = b\\r\\n bytePos++\\r\\n }\\r\\n }\\r\\n return bytes\\r\\n}\\r\\n\\r\\nfunction decimalToHex(str) {\\r\\n hexString = str.toString(16);\\r\\n return hexString\\r\\n}\\r\\n\\r\\nfunction decimalToBinary(x) {\\r\\n let bin = 0;\\r\\n let rem, i = 1,\\r\\n step = 1;\\r\\n while (x != 0) {\\r\\n rem = x % 2;\\r\\n x = parseInt(x / 2);\\r\\n bin = bin + rem * i;\\r\\n i = i * 10;\\r\\n }\\r\\n return bin\\r\\n}\\r\\n\\r\\nfunction binaryToHex(x) {\\r\\n var hexa = parseInt(x, 2).toString(16);\\r\\n return hexa\\r\\n}\\r\\n\\r\\nfunction changeEndianness(string) {\\r\\n const result = [];\\r\\n let len = string.length - 2;\\r\\n while (len >= 0) {\\r\\n result.push(string.substr(len, 2));\\r\\n len -= 2;\\r\\n }\\r\\n return result.join('');\\r\\n}\",\"CommandToUpdate\":null,\"Parent\":null,\"AvoidResending\":false,\"FollowParentSentType\":false,\"SendingType\":2,\"HasAck\":true,\"HexString\":true,\"Order\":2,\"SendAttempts\":4,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1734622575},{"Type":1,"NewValue":"{\"Id\":4960,\"Name\":\"setGateway\",\"TemplateSMS\":\"<<dataSMS>>\",\"Template\":\"<<data>>\",\"AckTemplate\":null,\"Operation\":\"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\\r\\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\\r\\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\\r\\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\\r\\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\\r\\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\\r\\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\\r\\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\\r\\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\\r\\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\\r\\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\\r\\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\\r\\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\\r\\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\\r\\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\\r\\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\\r\\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\\r\\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\\r\\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\\r\\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\\r\\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\\r\\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\\r\\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\\r\\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\\r\\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\\r\\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\\r\\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\\r\\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\\r\\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\\r\\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\\r\\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\\r\\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\\r\\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\\r\\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\\r\\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\\r\\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\\r\\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\\r\\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\\r\\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\\r\\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\\r\\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\\r\\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\\r\\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\\r\\n];\\r\\nvar msg = [];\\r\\nvar configs = [];\\r\\nvar configsSMS = [];\\r\\nvar messageBody = '02';\\r\\nvar key = '30';\\r\\nvar gateway_number = '00000000000';\\r\\nvar numberHex = '';\\r\\nvar sosKeyLength = '00';\\r\\nvar confSOS = '10001001'; // Enable + doesn't accept SMS+ Untogle Call, No SIM Dialing + Contact Number 10\\r\\nvar dataSMS = '';\\r\\nif (params.CommunicationSettings.SMSGateway) {\\r\\n confSOS = ('00' + binaryToHex(confSOS)).slice(-2).toUpperCase();\\r\\n var gatewayString = params.CommunicationSettings.SMSGateway.split(',');\\r\\n var gateway = gatewayString[1];\\r\\n gateway_number = gatewayString[0];\\r\\n numberHex = ascii_to_hexa(gateway_number).toUpperCase();\\r\\n //numberLength = ('00' + decimalToHex(gateway_number.length)).slice(-2).toUpperCase();\\r\\n sosKeyLength = ('00' + decimalToHex(2 + (numberHex.length / 2))).slice(-2).toUpperCase();\\r\\n messageBody += sosKeyLength + key + confSOS + numberHex;\\r\\n dataSMS = `A10,0,0,${gateway_number}`; // doesn't accept SMS+ Untogle Call\\r\\n}\\r\\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\\r\\nvar totalLength = ('0000' + decimalToHex(messageBody.length / 2)).slice(-4).toUpperCase();\\r\\ntotalLength = changeEndianness(totalLength);\\r\\n//totalLength = '1000'; //better to calculate it\\r\\nvar checksum = byteStringToByteArray(messageBody);\\r\\nchecksum = crc16byte(checksum);\\r\\nchecksum = decimalToHex(checksum);\\r\\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\\r\\nchecksum = changeEndianness(checksum);\\r\\nvar prefix = 'AB10' + totalLength + checksum + sequenceID;\\r\\nvar data = prefix + messageBody;\\r\\nAddValue('data', data);\\r\\nAddValue('sequenceNumber', sequenceID);\\r\\n// For SMS command\\r\\nAddValueSMS('dataSMS', dataSMS);\\r\\nvar commandConfigs = {\\r\\n template: \\\"main\\\",\\r\\n configs: configs,\\r\\n configsSMS: configsSMS\\r\\n};\\r\\nmsg.push(JSON.stringify(commandConfigs));\\r\\n// functions\\r\\nfunction AddValue(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configs.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction AddValueSMS(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configsSMS.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction ascii_to_hexa(str) {\\r\\n var arr1 = [];\\r\\n for (var n = 0, l = str.length; n < l; n++) {\\r\\n var hex = Number(str.charCodeAt(n)).toString(16);\\r\\n arr1.push(hex);\\r\\n }\\r\\n return arr1.join('');\\r\\n}\\r\\n\\r\\nfunction crc16byte(s) {\\r\\n var crc = 0x0000;\\r\\n var j, i;\\r\\n for (i = 0; i < s.length; i++) {\\r\\n c = s[i];\\r\\n if (c > 255) {\\r\\n throw new RangeError();\\r\\n }\\r\\n j = (c ^ (crc >> 8)) & 0xFF;\\r\\n crc = crcTable[j] ^ (crc << 8);\\r\\n }\\r\\n return ((crc ^ 0) & 0xFFFF);\\r\\n}\\r\\n\\r\\nfunction byteStringToByteArray(str) {\\r\\n var splitStr = []\\r\\n var j = 0\\r\\n for (let i = 0; i < str.length; i += 2) {\\r\\n splitStr[j] = str.substring(i, i + 2)\\r\\n j++\\r\\n }\\r\\n var bytes = []\\r\\n var bytePos = 0\\r\\n for (let i = 0; i < splitStr.length; i++) {\\r\\n var byteStr = splitStr[i]\\r\\n var b = parseInt(byteStr, 16)\\r\\n if (b < 256) {\\r\\n bytes[bytePos] = b\\r\\n bytePos++\\r\\n }\\r\\n }\\r\\n return bytes\\r\\n}\\r\\n\\r\\nfunction decimalToHex(str) {\\r\\n hexString = str.toString(16);\\r\\n return hexString\\r\\n}\\r\\n\\r\\nfunction decimalToBinary(x) {\\r\\n let bin = 0;\\r\\n let rem, i = 1,\\r\\n step = 1;\\r\\n while (x != 0) {\\r\\n rem = x % 2;\\r\\n x = parseInt(x / 2);\\r\\n bin = bin + rem * i;\\r\\n i = i * 10;\\r\\n }\\r\\n return bin\\r\\n}\\r\\n\\r\\nfunction binaryToHex(x) {\\r\\n var hexa = parseInt(x, 2).toString(16);\\r\\n return hexa\\r\\n}\\r\\n\\r\\nfunction changeEndianness(string) {\\r\\n const result = [];\\r\\n let len = string.length - 2;\\r\\n while (len >= 0) {\\r\\n result.push(string.substr(len, 2));\\r\\n len -= 2;\\r\\n }\\r\\n return result.join('');\\r\\n}\",\"CommandToUpdate\":null,\"Parent\":null,\"AvoidResending\":false,\"FollowParentSentType\":false,\"SendingType\":2,\"HasAck\":true,\"HexString\":true,\"Order\":2,\"SendAttempts\":4,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1734632777}],"Tags":[]},{"Id":4959,"Name":"setServer","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\n//para pruebas en local APN':\r\n//var params = {CommunicationSettings:{'SMSGateway':'+34666777888,Esendex','APN':'','APNOld':'','Server':'52.174.17.77,5678','ServerOld':''}}\r\n// AB101B 0066840300 021043802E1635322E3137342E31372E373704406D326D01410142\r\n// AB1015 00 66 84 F5 4B 02 10 43 80 2E 16 35 32 2E 31 37 34 2E 31 37 2E 37 37 04 40 6D 32 6D 01 41 01 42 \r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\n// configuration command (0X02) APN and Server and Gateway Number\r\nvar messageBody = '02';\r\n// Server\r\nvar domain = '';\r\nvar port = '';\r\nvar serverLength = '00';\r\n// APN\r\nvar apn = '';\r\nvar apn_password = '';\r\nvar apn_username = '';\r\nvar apnLength = '00';\r\nvar apnUserLength = '00';\r\nvar apnPassLength = '00';\r\nvar dataSMS = '';\r\nif (params.CommunicationSettings.Server) {\r\n var serverString = params.CommunicationSettings.Server.split(',');\r\n domain = serverString[0];\r\n port = serverString[1];\r\n port = changeEndianness(decimalToHex(parseInt(port))).toUpperCase();\r\n // Server IP and Port\r\n domain = ascii_to_hexa(domain).toUpperCase();\r\n serverLength = ('00' + decimalToHex(2 + port.length / 2 + domain.length / 2)).slice(-2).toUpperCase();\r\n // key 43 and TCP and GPRS is 80\r\n messageBody += serverLength + \"4380\" + port + domain;\r\n // For SMS\r\n dataSMS = `IP1,${serverString[0]},${serverString[1]}`;\r\n}\r\nif (params.CommunicationSettings.APN) {\r\n var apnString = params.CommunicationSettings.APN.split(',');\r\n // APN\r\n apn = apnString[0];\r\n apn = ascii_to_hexa(apn).toUpperCase();\r\n apnLength = ('00' + decimalToHex(1 + apn.length / 2)).slice(-2).toUpperCase();\r\n messageBody += apnLength + \"40\" + apn;\r\n // APN username\r\n apn_username = apnString[1];\r\n apn_username = ascii_to_hexa(apn_username).toUpperCase();\r\n apnUserLength = ('00' + decimalToHex(1 + apn_username.length / 2)).slice(-2).toUpperCase();\r\n messageBody += apnUserLength + \"41\" + apn_username;\r\n // APN passwprd\r\n apn_password = apnString[2];\r\n apn_password = ascii_to_hexa(apn_password).toUpperCase();\r\n apnPassLength = ('00' + decimalToHex(1 + apn_password.length / 2)).slice(-2).toUpperCase();\r\n messageBody += apnPassLength + \"42\" + apn_password;\r\n}\r\n// create HEADER\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar totalLenght = ('0000' + decimalToHex(messageBody.length / 2)).slice(-4).toUpperCase();\r\ntotalLenght = changeEndianness(totalLenght);\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + totalLenght + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":2,"HasAck":true,"HexString":true,"Order":1,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4958,"Name":"getCurrentSettings","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\n//var value = '0234404142435673'; //Firmware, Contacts, APN, server details, fall sensitivity and Beacon List\r\nvar value = '214A1A3440414243567356101F4453473330';\r\n//SpeedDial, Wifi Network, Firmware Long, Contacts, APNusername, APNpass, server details, fall sensitivity and Beacon List, Fall down alert, Ring tome vol,System language, time interval, No motion alert,custom id, allow list, Emergency numbers\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\n//var keyLength = '10'; // previous\r\nvar keyLength = '13';\r\nvar key = 'F0';\r\nvar messageBody = command + keyLength + key + value;\r\nvar dataSMS = 'V?'; // Get Firmware\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + '1500' + checksum + sequenceID; // add 2 to keylenght\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":17,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4957,"Name":"getFirmwareVersion","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar value = '1A'; //Ask for firmware Long\r\nvar command = '02';\r\nvar keyLength = '02';\r\nvar key = 'F0';\r\nvar messageBody = command + keyLength + key + value;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + '0400' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nvar dataSMS = 'V?';\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":16,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":4956,"Name":"getCurrentSettings3","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\n// Contacts, APN, server details, fall sensitivity and Beacon List\r\nvar dataSMS = 'BCQ1'; // Check Beacon List\r\n/* 1,F7:37:B7:10:81:CE,office1\r\n2,C4:9F:A6:15:24:3F,office2\r\n3,D3:E3:AC:86:5E:46,office7 */\r\nvar data = ''; // empty\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar notSend = false;\r\nif (isForcedBySMS == 'False' && ((serverParams.CommandType == 'ByGPRS') || (serverParams.CommandType == 'Default' && ((serverParams.ParentCommandType == 'ByGPRS') || (serverParams.ParentCommandType == 'Default' && serverParams.ConfigType == 'GPRS') || (serverParams.ParentCommandType === null && serverParams.ConfigType == 'GPRS'))))) {\r\n notSend = true;\r\n}\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS,\r\n notSend: notSend\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":true,"SendingType":0,"HasAck":true,"HexString":true,"Order":19,"SendAttempts":4,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":4956,\"Name\":\"getCurrentSettings3\",\"TemplateSMS\":\"<<dataSMS>>\",\"Template\":\"<<data>>\",\"AckTemplate\":null,\"Operation\":\"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\\r\\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\\r\\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\\r\\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\\r\\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\\r\\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\\r\\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\\r\\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\\r\\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\\r\\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\\r\\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\\r\\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\\r\\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\\r\\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\\r\\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\\r\\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\\r\\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\\r\\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\\r\\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\\r\\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\\r\\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\\r\\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\\r\\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\\r\\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\\r\\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\\r\\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\\r\\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\\r\\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\\r\\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\\r\\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\\r\\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\\r\\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\\r\\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\\r\\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\\r\\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\\r\\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\\r\\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\\r\\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\\r\\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\\r\\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\\r\\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\\r\\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\\r\\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\\r\\n];\\r\\nvar msg = [];\\r\\nvar configs = [];\\r\\nvar configsSMS = [];\\r\\n// Contacts, APN, server details, fall sensitivity and Beacon List\\r\\nvar dataSMS = 'BCQ1'; // Check Beacon List\\r\\n/* 1,F7:37:B7:10:81:CE,office1\\r\\n2,C4:9F:A6:15:24:3F,office2\\r\\n3,D3:E3:AC:86:5E:46,office7 */\\r\\nvar data = ''; // empty\\r\\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\\r\\nvar notSend = false;\\r\\nif (isForcedBySMS == 'False' && ((serverParams.CommandType == 'ByGPRS') || (serverParams.CommandType == 'Default' && ((serverParams.ParentCommandType == 'ByGPRS') || (serverParams.ParentCommandType == 'Default' && serverParams.ConfigType == 'GPRS') || (serverParams.ParentCommandType === null && serverParams.ConfigType == 'GPRS'))))) {\\r\\n notSend = true;\\r\\n}\\r\\n// For GPRS command\\r\\nAddValue('data', data);\\r\\nAddValue('sequenceNumber', sequenceID);\\r\\n// For SMS command\\r\\nAddValueSMS('dataSMS', dataSMS);\\r\\nvar commandConfigs = {\\r\\n template: \\\"main\\\",\\r\\n configs: configs,\\r\\n configsSMS: configsSMS,\\r\\n notSend: notSend\\r\\n};\\r\\nmsg.push(JSON.stringify(commandConfigs));\\r\\n// functions\\r\\nfunction AddValue(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configs.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction AddValueSMS(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configsSMS.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction ascii_to_hexa(str) {\\r\\n var arr1 = [];\\r\\n for (var n = 0, l = str.length; n < l; n++) {\\r\\n var hex = Number(str.charCodeAt(n)).toString(16);\\r\\n arr1.push(hex);\\r\\n }\\r\\n return arr1.join('');\\r\\n}\\r\\n\\r\\nfunction crc16byte(s) {\\r\\n var crc = 0x0000;\\r\\n var j, i;\\r\\n for (i = 0; i < s.length; i++) {\\r\\n c = s[i];\\r\\n if (c > 255) {\\r\\n throw new RangeError();\\r\\n }\\r\\n j = (c ^ (crc >> 8)) & 0xFF;\\r\\n crc = crcTable[j] ^ (crc << 8);\\r\\n }\\r\\n return ((crc ^ 0) & 0xFFFF);\\r\\n}\\r\\n\\r\\nfunction byteStringToByteArray(str) {\\r\\n var splitStr = []\\r\\n var j = 0\\r\\n for (let i = 0; i < str.length; i += 2) {\\r\\n splitStr[j] = str.substring(i, i + 2)\\r\\n j++\\r\\n }\\r\\n var bytes = []\\r\\n var bytePos = 0\\r\\n for (let i = 0; i < splitStr.length; i++) {\\r\\n var byteStr = splitStr[i]\\r\\n var b = parseInt(byteStr, 16)\\r\\n if (b < 256) {\\r\\n bytes[bytePos] = b\\r\\n bytePos++\\r\\n }\\r\\n }\\r\\n return bytes\\r\\n}\\r\\n\\r\\nfunction decimalToHex(str) {\\r\\n hexString = str.toString(16);\\r\\n return hexString\\r\\n}\\r\\n\\r\\nfunction decimalToBinary(x) {\\r\\n let bin = 0;\\r\\n let rem, i = 1,\\r\\n step = 1;\\r\\n while (x != 0) {\\r\\n rem = x % 2;\\r\\n x = parseInt(x / 2);\\r\\n bin = bin + rem * i;\\r\\n i = i * 10;\\r\\n }\\r\\n return bin\\r\\n}\\r\\n\\r\\nfunction binaryToHex(x) {\\r\\n var hexa = parseInt(x, 2).toString(16);\\r\\n return hexa\\r\\n}\\r\\n\\r\\nfunction changeEndianness(string) {\\r\\n const result = [];\\r\\n let len = string.length - 2;\\r\\n while (len >= 0) {\\r\\n result.push(string.substr(len, 2));\\r\\n len -= 2;\\r\\n }\\r\\n return result.join('');\\r\\n}\",\"CommandToUpdate\":null,\"Parent\":{\"Id\":4958,\"Protocol\":{\"Id\":224,\"Code\":\"Access TEC Roam\",\"Version\":\"0.2\",\"FirmwareVersion\":\"V04b.8601.2411.1.0.16.4411.2409.25\",\"Product\":null,\"AvailableVersions\":[],\"HistoryVersions\":[],\"IsChanged\":true},\"Name\":\"getCurrentSettings\",\"TemplateSMS\":\"<<dataSMS>>\",\"Template\":\"<<data>>\",\"AckTemplate\":null,\"Operation\":\"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\\r\\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\\r\\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\\r\\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\\r\\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\\r\\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\\r\\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\\r\\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\\r\\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\\r\\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\\r\\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\\r\\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\\r\\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\\r\\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\\r\\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\\r\\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\\r\\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\\r\\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\\r\\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\\r\\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\\r\\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\\r\\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\\r\\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\\r\\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\\r\\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\\r\\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\\r\\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\\r\\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\\r\\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\\r\\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\\r\\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\\r\\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\\r\\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\\r\\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\\r\\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\\r\\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\\r\\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\\r\\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\\r\\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\\r\\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\\r\\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\\r\\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\\r\\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\\r\\n];\\r\\nvar msg = [];\\r\\nvar configs = [];\\r\\nvar configsSMS = [];\\r\\n//var value = '0234404142435673'; //Firmware, Contacts, APN, server details, fall sensitivity and Beacon List\\r\\nvar value = '214A1A3440414243567356101F4453473330';\\r\\n//SpeedDial, Wifi Network, Firmware Long, Contacts, APNusername, APNpass, server details, fall sensitivity and Beacon List, Fall down alert, Ring tome vol,System language, time interval, No motion alert,custom id, allow list, Emergency numbers\\r\\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\\r\\nvar command = '02';\\r\\n//var keyLength = '10'; // previous\\r\\nvar keyLength = '13';\\r\\nvar key = 'F0';\\r\\nvar messageBody = command + keyLength + key + value;\\r\\nvar dataSMS = 'V?'; // Get Firmware\\r\\nvar checksum = byteStringToByteArray(messageBody);\\r\\nchecksum = crc16byte(checksum);\\r\\nchecksum = decimalToHex(checksum);\\r\\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\\r\\nchecksum = changeEndianness(checksum);\\r\\nvar prefix = 'AB10' + '1500' + checksum + sequenceID; // add 2 to keylenght\\r\\nvar data = prefix + messageBody;\\r\\n// For GPRS command\\r\\nAddValue('data', data);\\r\\nAddValue('sequenceNumber', sequenceID);\\r\\n// For SMS command\\r\\nAddValueSMS('dataSMS', dataSMS);\\r\\nvar commandConfigs = {\\r\\n template: \\\"main\\\",\\r\\n configs: configs,\\r\\n configsSMS: configsSMS\\r\\n};\\r\\nmsg.push(JSON.stringify(commandConfigs));\\r\\n// functions\\r\\nfunction AddValue(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configs.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction AddValueSMS(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configsSMS.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction ascii_to_hexa(str) {\\r\\n var arr1 = [];\\r\\n for (var n = 0, l = str.length; n < l; n++) {\\r\\n var hex = Number(str.charCodeAt(n)).toString(16);\\r\\n arr1.push(hex);\\r\\n }\\r\\n return arr1.join('');\\r\\n}\\r\\n\\r\\nfunction crc16byte(s) {\\r\\n var crc = 0x0000;\\r\\n var j, i;\\r\\n for (i = 0; i < s.length; i++) {\\r\\n c = s[i];\\r\\n if (c > 255) {\\r\\n throw new RangeError();\\r\\n }\\r\\n j = (c ^ (crc >> 8)) & 0xFF;\\r\\n crc = crcTable[j] ^ (crc << 8);\\r\\n }\\r\\n return ((crc ^ 0) & 0xFFFF);\\r\\n}\\r\\n\\r\\nfunction byteStringToByteArray(str) {\\r\\n var splitStr = []\\r\\n var j = 0\\r\\n for (let i = 0; i < str.length; i += 2) {\\r\\n splitStr[j] = str.substring(i, i + 2)\\r\\n j++\\r\\n }\\r\\n var bytes = []\\r\\n var bytePos = 0\\r\\n for (let i = 0; i < splitStr.length; i++) {\\r\\n var byteStr = splitStr[i]\\r\\n var b = parseInt(byteStr, 16)\\r\\n if (b < 256) {\\r\\n bytes[bytePos] = b\\r\\n bytePos++\\r\\n }\\r\\n }\\r\\n return bytes\\r\\n}\\r\\n\\r\\nfunction decimalToHex(str) {\\r\\n hexString = str.toString(16);\\r\\n return hexString\\r\\n}\\r\\n\\r\\nfunction decimalToBinary(x) {\\r\\n let bin = 0;\\r\\n let rem, i = 1,\\r\\n step = 1;\\r\\n while (x != 0) {\\r\\n rem = x % 2;\\r\\n x = parseInt(x / 2);\\r\\n bin = bin + rem * i;\\r\\n i = i * 10;\\r\\n }\\r\\n return bin\\r\\n}\\r\\n\\r\\nfunction binaryToHex(x) {\\r\\n var hexa = parseInt(x, 2).toString(16);\\r\\n return hexa\\r\\n}\\r\\n\\r\\nfunction changeEndianness(string) {\\r\\n const result = [];\\r\\n let len = string.length - 2;\\r\\n while (len >= 0) {\\r\\n result.push(string.substr(len, 2));\\r\\n len -= 2;\\r\\n }\\r\\n return result.join('');\\r\\n}\",\"AvoidResending\":false,\"FollowParentSentType\":false,\"SendingType\":0,\"CommandToUpdateId\":null,\"ParentId\":null,\"Parent\":null,\"HasAck\":true,\"HexString\":true,\"SendAttempts\":4,\"Order\":17},\"AvoidResending\":false,\"FollowParentSentType\":true,\"SendingType\":0,\"HasAck\":true,\"HexString\":true,\"Order\":19,\"SendAttempts\":4,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1733390414}],"Tags":[]},{"Id":4955,"Name":"getCurrentSettings4","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\n// Contacts, APN, server details, fall sensitivity and Beacon List\r\nvar dataSMS = 'A?'; // Check Contact List\r\n/* A1: 1,1,15899795842\r\nA2: 1,0,13632770106\r\nA3: 0,1,15986236978 */\r\nvar data = ''; // empty\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar notSend = false;\r\nif (isForcedBySMS == 'False' && ((serverParams.CommandType == 'ByGPRS') || (serverParams.CommandType == 'Default' && ((serverParams.ParentCommandType == 'ByGPRS') || (serverParams.ParentCommandType == 'Default' && serverParams.ConfigType == 'GPRS') || (serverParams.ParentCommandType === null && serverParams.ConfigType == 'GPRS'))))) {\r\n notSend = true;\r\n}\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS,\r\n notSend: notSend\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":true,"SendingType":0,"HasAck":true,"HexString":true,"Order":20,"SendAttempts":4,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":4955,\"Name\":\"getCurrentSettings4\",\"TemplateSMS\":\"<<dataSMS>>\",\"Template\":\"<<data>>\",\"AckTemplate\":null,\"Operation\":\"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\\r\\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\\r\\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\\r\\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\\r\\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\\r\\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\\r\\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\\r\\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\\r\\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\\r\\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\\r\\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\\r\\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\\r\\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\\r\\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\\r\\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\\r\\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\\r\\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\\r\\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\\r\\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\\r\\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\\r\\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\\r\\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\\r\\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\\r\\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\\r\\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\\r\\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\\r\\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\\r\\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\\r\\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\\r\\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\\r\\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\\r\\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\\r\\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\\r\\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\\r\\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\\r\\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\\r\\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\\r\\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\\r\\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\\r\\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\\r\\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\\r\\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\\r\\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\\r\\n];\\r\\nvar msg = [];\\r\\nvar configs = [];\\r\\nvar configsSMS = [];\\r\\n// Contacts, APN, server details, fall sensitivity and Beacon List\\r\\nvar dataSMS = 'A?'; // Check Contact List\\r\\n/* A1: 1,1,15899795842\\r\\nA2: 1,0,13632770106\\r\\nA3: 0,1,15986236978 */\\r\\nvar data = ''; // empty\\r\\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\\r\\nvar notSend = false;\\r\\nif (isForcedBySMS == 'False' && ((serverParams.CommandType == 'ByGPRS') || (serverParams.CommandType == 'Default' && ((serverParams.ParentCommandType == 'ByGPRS') || (serverParams.ParentCommandType == 'Default' && serverParams.ConfigType == 'GPRS') || (serverParams.ParentCommandType === null && serverParams.ConfigType == 'GPRS'))))) {\\r\\n notSend = true;\\r\\n}\\r\\n// For GPRS command\\r\\nAddValue('data', data);\\r\\nAddValue('sequenceNumber', sequenceID);\\r\\n// For SMS command\\r\\nAddValueSMS('dataSMS', dataSMS);\\r\\nvar commandConfigs = {\\r\\n template: \\\"main\\\",\\r\\n configs: configs,\\r\\n configsSMS: configsSMS,\\r\\n notSend: notSend\\r\\n};\\r\\nmsg.push(JSON.stringify(commandConfigs));\\r\\n// functions\\r\\nfunction AddValue(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configs.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction AddValueSMS(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configsSMS.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction ascii_to_hexa(str) {\\r\\n var arr1 = [];\\r\\n for (var n = 0, l = str.length; n < l; n++) {\\r\\n var hex = Number(str.charCodeAt(n)).toString(16);\\r\\n arr1.push(hex);\\r\\n }\\r\\n return arr1.join('');\\r\\n}\\r\\n\\r\\nfunction crc16byte(s) {\\r\\n var crc = 0x0000;\\r\\n var j, i;\\r\\n for (i = 0; i < s.length; i++) {\\r\\n c = s[i];\\r\\n if (c > 255) {\\r\\n throw new RangeError();\\r\\n }\\r\\n j = (c ^ (crc >> 8)) & 0xFF;\\r\\n crc = crcTable[j] ^ (crc << 8);\\r\\n }\\r\\n return ((crc ^ 0) & 0xFFFF);\\r\\n}\\r\\n\\r\\nfunction byteStringToByteArray(str) {\\r\\n var splitStr = []\\r\\n var j = 0\\r\\n for (let i = 0; i < str.length; i += 2) {\\r\\n splitStr[j] = str.substring(i, i + 2)\\r\\n j++\\r\\n }\\r\\n var bytes = []\\r\\n var bytePos = 0\\r\\n for (let i = 0; i < splitStr.length; i++) {\\r\\n var byteStr = splitStr[i]\\r\\n var b = parseInt(byteStr, 16)\\r\\n if (b < 256) {\\r\\n bytes[bytePos] = b\\r\\n bytePos++\\r\\n }\\r\\n }\\r\\n return bytes\\r\\n}\\r\\n\\r\\nfunction decimalToHex(str) {\\r\\n hexString = str.toString(16);\\r\\n return hexString\\r\\n}\\r\\n\\r\\nfunction decimalToBinary(x) {\\r\\n let bin = 0;\\r\\n let rem, i = 1,\\r\\n step = 1;\\r\\n while (x != 0) {\\r\\n rem = x % 2;\\r\\n x = parseInt(x / 2);\\r\\n bin = bin + rem * i;\\r\\n i = i * 10;\\r\\n }\\r\\n return bin\\r\\n}\\r\\n\\r\\nfunction binaryToHex(x) {\\r\\n var hexa = parseInt(x, 2).toString(16);\\r\\n return hexa\\r\\n}\\r\\n\\r\\nfunction changeEndianness(string) {\\r\\n const result = [];\\r\\n let len = string.length - 2;\\r\\n while (len >= 0) {\\r\\n result.push(string.substr(len, 2));\\r\\n len -= 2;\\r\\n }\\r\\n return result.join('');\\r\\n}\",\"CommandToUpdate\":null,\"Parent\":{\"Id\":4958,\"Protocol\":{\"Id\":224,\"Code\":\"Access TEC Roam\",\"Version\":\"0.2\",\"FirmwareVersion\":\"V04b.8601.2411.1.0.16.4411.2409.25\",\"Product\":null,\"AvailableVersions\":[],\"HistoryVersions\":[],\"IsChanged\":true},\"Name\":\"getCurrentSettings\",\"TemplateSMS\":\"<<dataSMS>>\",\"Template\":\"<<data>>\",\"AckTemplate\":null,\"Operation\":\"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\\r\\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\\r\\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\\r\\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\\r\\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\\r\\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\\r\\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\\r\\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\\r\\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\\r\\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\\r\\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\\r\\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\\r\\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\\r\\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\\r\\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\\r\\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\\r\\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\\r\\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\\r\\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\\r\\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\\r\\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\\r\\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\\r\\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\\r\\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\\r\\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\\r\\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\\r\\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\\r\\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\\r\\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\\r\\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\\r\\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\\r\\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\\r\\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\\r\\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\\r\\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\\r\\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\\r\\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\\r\\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\\r\\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\\r\\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\\r\\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\\r\\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\\r\\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\\r\\n];\\r\\nvar msg = [];\\r\\nvar configs = [];\\r\\nvar configsSMS = [];\\r\\n//var value = '0234404142435673'; //Firmware, Contacts, APN, server details, fall sensitivity and Beacon List\\r\\nvar value = '214A1A3440414243567356101F4453473330';\\r\\n//SpeedDial, Wifi Network, Firmware Long, Contacts, APNusername, APNpass, server details, fall sensitivity and Beacon List, Fall down alert, Ring tome vol,System language, time interval, No motion alert,custom id, allow list, Emergency numbers\\r\\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\\r\\nvar command = '02';\\r\\n//var keyLength = '10'; // previous\\r\\nvar keyLength = '13';\\r\\nvar key = 'F0';\\r\\nvar messageBody = command + keyLength + key + value;\\r\\nvar dataSMS = 'V?'; // Get Firmware\\r\\nvar checksum = byteStringToByteArray(messageBody);\\r\\nchecksum = crc16byte(checksum);\\r\\nchecksum = decimalToHex(checksum);\\r\\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\\r\\nchecksum = changeEndianness(checksum);\\r\\nvar prefix = 'AB10' + '1500' + checksum + sequenceID; // add 2 to keylenght\\r\\nvar data = prefix + messageBody;\\r\\n// For GPRS command\\r\\nAddValue('data', data);\\r\\nAddValue('sequenceNumber', sequenceID);\\r\\n// For SMS command\\r\\nAddValueSMS('dataSMS', dataSMS);\\r\\nvar commandConfigs = {\\r\\n template: \\\"main\\\",\\r\\n configs: configs,\\r\\n configsSMS: configsSMS\\r\\n};\\r\\nmsg.push(JSON.stringify(commandConfigs));\\r\\n// functions\\r\\nfunction AddValue(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configs.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction AddValueSMS(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configsSMS.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction ascii_to_hexa(str) {\\r\\n var arr1 = [];\\r\\n for (var n = 0, l = str.length; n < l; n++) {\\r\\n var hex = Number(str.charCodeAt(n)).toString(16);\\r\\n arr1.push(hex);\\r\\n }\\r\\n return arr1.join('');\\r\\n}\\r\\n\\r\\nfunction crc16byte(s) {\\r\\n var crc = 0x0000;\\r\\n var j, i;\\r\\n for (i = 0; i < s.length; i++) {\\r\\n c = s[i];\\r\\n if (c > 255) {\\r\\n throw new RangeError();\\r\\n }\\r\\n j = (c ^ (crc >> 8)) & 0xFF;\\r\\n crc = crcTable[j] ^ (crc << 8);\\r\\n }\\r\\n return ((crc ^ 0) & 0xFFFF);\\r\\n}\\r\\n\\r\\nfunction byteStringToByteArray(str) {\\r\\n var splitStr = []\\r\\n var j = 0\\r\\n for (let i = 0; i < str.length; i += 2) {\\r\\n splitStr[j] = str.substring(i, i + 2)\\r\\n j++\\r\\n }\\r\\n var bytes = []\\r\\n var bytePos = 0\\r\\n for (let i = 0; i < splitStr.length; i++) {\\r\\n var byteStr = splitStr[i]\\r\\n var b = parseInt(byteStr, 16)\\r\\n if (b < 256) {\\r\\n bytes[bytePos] = b\\r\\n bytePos++\\r\\n }\\r\\n }\\r\\n return bytes\\r\\n}\\r\\n\\r\\nfunction decimalToHex(str) {\\r\\n hexString = str.toString(16);\\r\\n return hexString\\r\\n}\\r\\n\\r\\nfunction decimalToBinary(x) {\\r\\n let bin = 0;\\r\\n let rem, i = 1,\\r\\n step = 1;\\r\\n while (x != 0) {\\r\\n rem = x % 2;\\r\\n x = parseInt(x / 2);\\r\\n bin = bin + rem * i;\\r\\n i = i * 10;\\r\\n }\\r\\n return bin\\r\\n}\\r\\n\\r\\nfunction binaryToHex(x) {\\r\\n var hexa = parseInt(x, 2).toString(16);\\r\\n return hexa\\r\\n}\\r\\n\\r\\nfunction changeEndianness(string) {\\r\\n const result = [];\\r\\n let len = string.length - 2;\\r\\n while (len >= 0) {\\r\\n result.push(string.substr(len, 2));\\r\\n len -= 2;\\r\\n }\\r\\n return result.join('');\\r\\n}\",\"AvoidResending\":false,\"FollowParentSentType\":false,\"SendingType\":0,\"CommandToUpdateId\":null,\"ParentId\":null,\"Parent\":null,\"HasAck\":true,\"HexString\":true,\"SendAttempts\":4,\"Order\":17},\"AvoidResending\":false,\"FollowParentSentType\":true,\"SendingType\":0,\"HasAck\":true,\"HexString\":true,\"Order\":20,\"SendAttempts\":4,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1733390446}],"Tags":[]},{"Id":4954,"Name":"getCurrentSettings5","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\n// Contacts, APN, server details, fall sensitivity and Beacon List\r\nvar dataSMS = 'GPRS?'; // Check Server Details\r\n/*GRPS: ON\r\nAPN: internet\r\nUsername:\r\nPassword:\r\nIP: 1, www.smart-locator.com\r\nPort: 6060\r\nMove report time: 30 minutes\r\nNo move report time: 60 minutes\r\nHB: on, 20 minutes */\r\nvar data = ''; // empty\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar notSend = false;\r\nif (isForcedBySMS == 'False' && ((serverParams.CommandType == 'ByGPRS') || (serverParams.CommandType == 'Default' && ((serverParams.ParentCommandType == 'ByGPRS') || (serverParams.ParentCommandType == 'Default' && serverParams.ConfigType == 'GPRS') || (serverParams.ParentCommandType === null && serverParams.ConfigType == 'GPRS'))))) {\r\n notSend = true;\r\n}\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS,\r\n notSend: notSend\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n// functions\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":true,"SendingType":0,"HasAck":true,"HexString":true,"Order":21,"SendAttempts":4,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":4954,\"Name\":\"getCurrentSettings5\",\"TemplateSMS\":\"<<dataSMS>>\",\"Template\":\"<<data>>\",\"AckTemplate\":null,\"Operation\":\"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\\r\\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\\r\\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\\r\\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\\r\\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\\r\\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\\r\\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\\r\\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\\r\\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\\r\\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\\r\\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\\r\\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\\r\\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\\r\\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\\r\\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\\r\\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\\r\\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\\r\\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\\r\\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\\r\\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\\r\\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\\r\\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\\r\\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\\r\\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\\r\\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\\r\\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\\r\\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\\r\\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\\r\\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\\r\\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\\r\\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\\r\\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\\r\\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\\r\\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\\r\\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\\r\\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\\r\\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\\r\\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\\r\\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\\r\\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\\r\\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\\r\\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\\r\\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\\r\\n];\\r\\nvar msg = [];\\r\\nvar configs = [];\\r\\nvar configsSMS = [];\\r\\n// Contacts, APN, server details, fall sensitivity and Beacon List\\r\\nvar dataSMS = 'GPRS?'; // Check Server Details\\r\\n/*GRPS: ON\\r\\nAPN: internet\\r\\nUsername:\\r\\nPassword:\\r\\nIP: 1, www.smart-locator.com\\r\\nPort: 6060\\r\\nMove report time: 30 minutes\\r\\nNo move report time: 60 minutes\\r\\nHB: on, 20 minutes */\\r\\nvar data = ''; // empty\\r\\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\\r\\nvar notSend = false;\\r\\nif (isForcedBySMS == 'False' && ((serverParams.CommandType == 'ByGPRS') || (serverParams.CommandType == 'Default' && ((serverParams.ParentCommandType == 'ByGPRS') || (serverParams.ParentCommandType == 'Default' && serverParams.ConfigType == 'GPRS') || (serverParams.ParentCommandType === null && serverParams.ConfigType == 'GPRS'))))) {\\r\\n notSend = true;\\r\\n}\\r\\n// For GPRS command\\r\\nAddValue('data', data);\\r\\nAddValue('sequenceNumber', sequenceID);\\r\\n// For SMS command\\r\\nAddValueSMS('dataSMS', dataSMS);\\r\\nvar commandConfigs = {\\r\\n template: \\\"main\\\",\\r\\n configs: configs,\\r\\n configsSMS: configsSMS,\\r\\n notSend: notSend\\r\\n};\\r\\nmsg.push(JSON.stringify(commandConfigs));\\r\\n// functions\\r\\nfunction AddValue(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configs.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction AddValueSMS(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configsSMS.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction ascii_to_hexa(str) {\\r\\n var arr1 = [];\\r\\n for (var n = 0, l = str.length; n < l; n++) {\\r\\n var hex = Number(str.charCodeAt(n)).toString(16);\\r\\n arr1.push(hex);\\r\\n }\\r\\n return arr1.join('');\\r\\n}\\r\\n\\r\\nfunction crc16byte(s) {\\r\\n var crc = 0x0000;\\r\\n var j, i;\\r\\n for (i = 0; i < s.length; i++) {\\r\\n c = s[i];\\r\\n if (c > 255) {\\r\\n throw new RangeError();\\r\\n }\\r\\n j = (c ^ (crc >> 8)) & 0xFF;\\r\\n crc = crcTable[j] ^ (crc << 8);\\r\\n }\\r\\n return ((crc ^ 0) & 0xFFFF);\\r\\n}\\r\\n\\r\\nfunction byteStringToByteArray(str) {\\r\\n var splitStr = []\\r\\n var j = 0\\r\\n for (let i = 0; i < str.length; i += 2) {\\r\\n splitStr[j] = str.substring(i, i + 2)\\r\\n j++\\r\\n }\\r\\n var bytes = []\\r\\n var bytePos = 0\\r\\n for (let i = 0; i < splitStr.length; i++) {\\r\\n var byteStr = splitStr[i]\\r\\n var b = parseInt(byteStr, 16)\\r\\n if (b < 256) {\\r\\n bytes[bytePos] = b\\r\\n bytePos++\\r\\n }\\r\\n }\\r\\n return bytes\\r\\n}\\r\\n\\r\\nfunction decimalToHex(str) {\\r\\n hexString = str.toString(16);\\r\\n return hexString\\r\\n}\\r\\n\\r\\nfunction decimalToBinary(x) {\\r\\n let bin = 0;\\r\\n let rem, i = 1,\\r\\n step = 1;\\r\\n while (x != 0) {\\r\\n rem = x % 2;\\r\\n x = parseInt(x / 2);\\r\\n bin = bin + rem * i;\\r\\n i = i * 10;\\r\\n }\\r\\n return bin\\r\\n}\\r\\n\\r\\nfunction binaryToHex(x) {\\r\\n var hexa = parseInt(x, 2).toString(16);\\r\\n return hexa\\r\\n}\\r\\n\\r\\nfunction changeEndianness(string) {\\r\\n const result = [];\\r\\n let len = string.length - 2;\\r\\n while (len >= 0) {\\r\\n result.push(string.substr(len, 2));\\r\\n len -= 2;\\r\\n }\\r\\n return result.join('');\\r\\n}\",\"CommandToUpdate\":null,\"Parent\":{\"Id\":4958,\"Protocol\":{\"Id\":224,\"Code\":\"Access TEC Roam\",\"Version\":\"0.2\",\"FirmwareVersion\":\"V04b.8601.2411.1.0.16.4411.2409.25\",\"Product\":null,\"AvailableVersions\":[],\"HistoryVersions\":[],\"IsChanged\":true},\"Name\":\"getCurrentSettings\",\"TemplateSMS\":\"<<dataSMS>>\",\"Template\":\"<<data>>\",\"AckTemplate\":null,\"Operation\":\"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\\r\\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\\r\\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\\r\\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\\r\\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\\r\\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\\r\\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\\r\\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\\r\\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\\r\\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\\r\\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\\r\\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\\r\\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\\r\\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\\r\\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\\r\\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\\r\\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\\r\\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\\r\\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\\r\\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\\r\\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\\r\\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\\r\\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\\r\\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\\r\\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\\r\\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\\r\\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\\r\\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\\r\\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\\r\\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\\r\\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\\r\\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\\r\\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\\r\\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\\r\\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\\r\\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\\r\\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\\r\\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\\r\\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\\r\\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\\r\\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\\r\\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\\r\\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\\r\\n];\\r\\nvar msg = [];\\r\\nvar configs = [];\\r\\nvar configsSMS = [];\\r\\n//var value = '0234404142435673'; //Firmware, Contacts, APN, server details, fall sensitivity and Beacon List\\r\\nvar value = '214A1A3440414243567356101F4453473330';\\r\\n//SpeedDial, Wifi Network, Firmware Long, Contacts, APNusername, APNpass, server details, fall sensitivity and Beacon List, Fall down alert, Ring tome vol,System language, time interval, No motion alert,custom id, allow list, Emergency numbers\\r\\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\\r\\nvar command = '02';\\r\\n//var keyLength = '10'; // previous\\r\\nvar keyLength = '13';\\r\\nvar key = 'F0';\\r\\nvar messageBody = command + keyLength + key + value;\\r\\nvar dataSMS = 'V?'; // Get Firmware\\r\\nvar checksum = byteStringToByteArray(messageBody);\\r\\nchecksum = crc16byte(checksum);\\r\\nchecksum = decimalToHex(checksum);\\r\\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\\r\\nchecksum = changeEndianness(checksum);\\r\\nvar prefix = 'AB10' + '1500' + checksum + sequenceID; // add 2 to keylenght\\r\\nvar data = prefix + messageBody;\\r\\n// For GPRS command\\r\\nAddValue('data', data);\\r\\nAddValue('sequenceNumber', sequenceID);\\r\\n// For SMS command\\r\\nAddValueSMS('dataSMS', dataSMS);\\r\\nvar commandConfigs = {\\r\\n template: \\\"main\\\",\\r\\n configs: configs,\\r\\n configsSMS: configsSMS\\r\\n};\\r\\nmsg.push(JSON.stringify(commandConfigs));\\r\\n// functions\\r\\nfunction AddValue(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configs.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction AddValueSMS(p1, p2) {\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n configsSMS.push(cvpair);\\r\\n}\\r\\n\\r\\nfunction ascii_to_hexa(str) {\\r\\n var arr1 = [];\\r\\n for (var n = 0, l = str.length; n < l; n++) {\\r\\n var hex = Number(str.charCodeAt(n)).toString(16);\\r\\n arr1.push(hex);\\r\\n }\\r\\n return arr1.join('');\\r\\n}\\r\\n\\r\\nfunction crc16byte(s) {\\r\\n var crc = 0x0000;\\r\\n var j, i;\\r\\n for (i = 0; i < s.length; i++) {\\r\\n c = s[i];\\r\\n if (c > 255) {\\r\\n throw new RangeError();\\r\\n }\\r\\n j = (c ^ (crc >> 8)) & 0xFF;\\r\\n crc = crcTable[j] ^ (crc << 8);\\r\\n }\\r\\n return ((crc ^ 0) & 0xFFFF);\\r\\n}\\r\\n\\r\\nfunction byteStringToByteArray(str) {\\r\\n var splitStr = []\\r\\n var j = 0\\r\\n for (let i = 0; i < str.length; i += 2) {\\r\\n splitStr[j] = str.substring(i, i + 2)\\r\\n j++\\r\\n }\\r\\n var bytes = []\\r\\n var bytePos = 0\\r\\n for (let i = 0; i < splitStr.length; i++) {\\r\\n var byteStr = splitStr[i]\\r\\n var b = parseInt(byteStr, 16)\\r\\n if (b < 256) {\\r\\n bytes[bytePos] = b\\r\\n bytePos++\\r\\n }\\r\\n }\\r\\n return bytes\\r\\n}\\r\\n\\r\\nfunction decimalToHex(str) {\\r\\n hexString = str.toString(16);\\r\\n return hexString\\r\\n}\\r\\n\\r\\nfunction decimalToBinary(x) {\\r\\n let bin = 0;\\r\\n let rem, i = 1,\\r\\n step = 1;\\r\\n while (x != 0) {\\r\\n rem = x % 2;\\r\\n x = parseInt(x / 2);\\r\\n bin = bin + rem * i;\\r\\n i = i * 10;\\r\\n }\\r\\n return bin\\r\\n}\\r\\n\\r\\nfunction binaryToHex(x) {\\r\\n var hexa = parseInt(x, 2).toString(16);\\r\\n return hexa\\r\\n}\\r\\n\\r\\nfunction changeEndianness(string) {\\r\\n const result = [];\\r\\n let len = string.length - 2;\\r\\n while (len >= 0) {\\r\\n result.push(string.substr(len, 2));\\r\\n len -= 2;\\r\\n }\\r\\n return result.join('');\\r\\n}\",\"AvoidResending\":false,\"FollowParentSentType\":false,\"SendingType\":0,\"CommandToUpdateId\":null,\"ParentId\":null,\"Parent\":null,\"HasAck\":true,\"HexString\":true,\"SendAttempts\":4,\"Order\":17},\"AvoidResending\":false,\"FollowParentSentType\":true,\"SendingType\":0,\"HasAck\":true,\"HexString\":true,\"Order\":21,\"SendAttempts\":4,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1733390475}],"Tags":[]},{"Id":4953,"Name":"setMotionAlert","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\n//create the bit table to use with control\nvar value = '';\nif (params.MovementAlert.EnableDisableMotionAlert == 'true') {\n value += '1';\n if (params.MovementAlert.Dial == 'true') {\n value += '1';\n } else {\n value += '0';\n }\n if (params.MovementAlert.Time) {\n var time = ('00000000000000' + decimalToBinary(parseInt(params.MovementAlert.Time))).slice(-14);\n value += time;\n }\n if (params.MovementAlert.Cooldown) {\n var time = ('0000000000000000' + decimalToBinary(parseInt(params.MovementAlert.Cooldown))).slice(-16);\n value += time;\n //console.log(value);\n }\n} else {\n value = '0';\n}\nvalue = ('00000000' + binaryToHex(value)).slice(-8).toUpperCase();\nvalue = changeEndianness(value);\n//value = value.substring(6, 8) + value.substring(4, 6) + value.substring(2, 4) + value.substring(0, 2);\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\nvar command = '02';\nvar keyLength = '05';\nvar key = '52';\nvar messageBody = command + keyLength + key + value;\nvar checksum = byteStringToByteArray(messageBody);\nchecksum = crc16byte(checksum);\nchecksum = decimalToHex(checksum);\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\nchecksum = changeEndianness(checksum);\n//checksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\n//Hpw to calculate sequenceID\nvar prefix = 'AB10' + '0700' + checksum + sequenceID;\nvar data = prefix + messageBody;\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID); //add 20/07\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = [];\n var j = 0;\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2);\n j++;\n }\n var bytes = [];\n var bytePos = 0;\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i];\n var b = parseInt(byteStr, 16);\n if (b < 256) {\n bytes[bytePos] = b;\n bytePos++;\n }\n }\n return bytes;\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString;\n}\n\nfunction decimalToBinary(x) {\n let bin = 0;\n let rem, i = 1,\n step = 1;\n while (x !== 0) {\n rem = x % 2;\n x = parseInt(x / 2);\n bin = bin + rem * i;\n i = i * 10;\n }\n return bin;\n}\n\nfunction binaryToHex(x) {\n var hexa = parseInt(x, 2).toString(16);\n return hexa;\n}\n\nfunction changeEndianness(string) {\n const result = [];\n let len = string.length - 2;\n while (len >= 0) {\n result.push(string.substr(len, 2));\n len -= 2;\n }\n return result.join('');\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":4952,"Name":"setSpeedDialSettings","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\n//create the bit table to use with control\nvar value = '';\nif (params.SpeedDial.EnableDisableSpeedDial == 'true') {\n value += '10'; //Enable\n value += '0'; //Long Press\n /*if (params.SpeedDialButtonSettings.TriggerMode == '0') {\n value += '0';\n } else {\n value += '1';\n }*/\n value += '0010'; //Auth2 number\n var time = 20;\n value += ('0000000' + decimalToBinary(parseInt(time))).slice(-7);\n value += '11'; //feedback vibrate and voice\n /*if (params.SpeedDialButtonSettings.Feedback) {\n value += params.SpeedDialButtonSettings.Feedback;\n } else {\n value += '00';\n }*/\n} else {\n value = '0000000000000000';\n}\nvalue = ('0000' + binaryToHex(value)).slice(-4).toUpperCase();\nvalue = value.substring(2, 4) + value.substring(0, 2);\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\nvar command = '02';\nvar keyLength = '03';\nvar key = '21';\nvar messageBody = command + keyLength + key + value;\nvar checksum = byteStringToByteArray(messageBody);\nchecksum = crc16byte(checksum);\nchecksum = decimalToHex(checksum);\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\n//Hpw to calculate sequenceID\nvar prefix = 'AB10' + '0500' + checksum + sequenceID;\nvar data = prefix + messageBody;\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID); //add 20/07\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = []\n var j = 0\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2)\n j++\n }\n var bytes = []\n var bytePos = 0\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i]\n var b = parseInt(byteStr, 16)\n if (b < 256) {\n bytes[bytePos] = b\n bytePos++\n }\n }\n return bytes\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString\n}\n\nfunction decimalToBinary(x) {\n let bin = 0;\n let rem, i = 1,\n step = 1;\n while (x != 0) {\n rem = x % 2;\n x = parseInt(x / 2);\n bin = bin + rem * i;\n i = i * 10;\n }\n return bin\n}\n\nfunction binaryToHex(x) {\n var hexa = parseInt(x, 2).toString(16);\n return hexa\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":6,"ProtocolActionObjects":[],"Tags":[]},{"Id":4951,"Name":"setSystemLanguage","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar configs = [];\r\n//create the bit table to use with control\r\nvar value = '';\r\nif (params.SystemSettings.SystemLanguage) {\r\n var language = params.SystemSettings.SystemLanguage;\r\n var languageHex = ascii_to_hexa(language).toUpperCase();\r\n}\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = ('0' + decimalToHex(1 + (languageHex.length / 2))).slice(-2).toUpperCase();\r\nvar key = '1F'; //system language\r\nvar messageBody = command + keyLength + key + languageHex;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\r\nvar totalLength = '0500';\r\nif (languageHex.length == 10) {\r\n totalLength = '0800';\r\n}\r\nif (languageHex.length == 12) {\r\n totalLength = '0900';\r\n}\r\n//Hpw to calculate sequenceID\r\nvar prefix = 'AB10' + totalLength + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = [];\r\n var j = 0;\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2);\r\n j++;\r\n }\r\n var bytes = [];\r\n var bytePos = 0;\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i];\r\n var b = parseInt(byteStr, 16);\r\n if (b < 256) {\r\n bytes[bytePos] = b;\r\n bytePos++;\r\n }\r\n }\r\n return bytes;\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString;\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x !== 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin;\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa;\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":4950,"Name":"setNoMotionAlert","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\n//create the bit table to use with control\nvar value = '';\nif (params.NonMovementSettings.EnableDisableNonMovementSettings == 'true') {\n value += '1';\n //if (params.NonMovementAlert.Dial == 'true') {\n // value += '1'\n //} else {\n value += '1'; // Dial by default\n //}\n if (params.NonMovementSettings.Time) {\n var time = ('000000000000000000000000000000' + decimalToBinary(params.NonMovementSettings.Time)).slice(-30);\n //var time = ('000000000000000000000000000000' + decimalToBinary(121)).slice(-30)\n value += time;\n }\n} else {\n value = '0';\n}\nvalue = ('00000000' + binaryToHex(value)).slice(-8).toUpperCase()\nvalue = value.substring(6, 8) + value.substring(4, 6) + value.substring(2, 4) + value.substring(0, 2)\n//value = '2C010080'\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase()\nvar command = '02'\nvar keyLength = '05'\nvar key = '53'\nvar messageBody = command + keyLength + key + value\nvar checksum = byteStringToByteArray(messageBody)\nchecksum = crc16byte(checksum)\nchecksum = decimalToHex(checksum)\nchecksum = ('0000' + checksum).slice(-4).toUpperCase()\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2)\n//Hpw to calculate sequenceID\nvar prefix = 'AB10' + '0700' + checksum + sequenceID\nvar data = prefix + messageBody\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID); //add 20/07\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = []\n var j = 0\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2)\n j++\n }\n var bytes = []\n var bytePos = 0\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i]\n var b = parseInt(byteStr, 16)\n if (b < 256) {\n bytes[bytePos] = b\n bytePos++\n }\n }\n return bytes\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString\n}\n\nfunction decimalToBinary(x) {\n let bin = 0;\n let rem, i = 1,\n step = 1;\n while (x != 0) {\n rem = x % 2;\n x = parseInt(x / 2);\n bin = bin + rem * i;\n i = i * 10;\n }\n return bin\n}\n\nfunction binaryToHex(x) {\n var hexa = parseInt(x, 2).toString(16);\n return hexa\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":4949,"Name":"setOverSpeedAlert","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\n//create the bit table to use with control\nvar value = ''\nif (params.OverSpeedAlert.EnableDisableOverSpeedAlert == 'true') {\n value += '1'\n if (params.OverSpeedAlert.Speed) {\n var angle = ('000000000000000' + decimalToBinary(parseInt(params.OverSpeedAlert.Speed))).slice(-15)\n value += angle\n }\n} else {\n value = '0'\n}\nvalue = ('0000' + binaryToHex(value)).slice(-4).toUpperCase()\nvalue = changeEndianness(value)\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase()\nvar command = '02'\nvar keyLength = '03'\nvar key = '54'\nvar messageBody = command + keyLength + key + value\nvar checksum = byteStringToByteArray(messageBody)\nchecksum = crc16byte(checksum)\nchecksum = decimalToHex(checksum)\nchecksum = ('0000' + checksum).slice(-4).toUpperCase()\nchecksum = changeEndianness(checksum.toString())\n//Hpw to calculate sequenceID\nvar prefix = 'AB10' + '0500' + checksum + sequenceID\nvar data = prefix + messageBody\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID); //add 20/07\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = []\n var j = 0\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2)\n j++\n }\n var bytes = []\n var bytePos = 0\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i]\n var b = parseInt(byteStr, 16)\n if (b < 256) {\n bytes[bytePos] = b\n bytePos++\n }\n }\n return bytes\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString\n}\n\nfunction decimalToBinary(x) {\n let bin = 0;\n let rem, i = 1,\n step = 1;\n while (x != 0) {\n rem = x % 2;\n x = parseInt(x / 2);\n bin = bin + rem * i;\n i = i * 10;\n }\n return bin\n}\n\nfunction binaryToHex(x) {\n var hexa = parseInt(x, 2).toString(16);\n return hexa\n}\n\nfunction changeEndianness(string) {\n const result = [];\n let len = string.length - 2;\n while (len >= 0) {\n result.push(string.substr(len, 2));\n len -= 2;\n }\n return result.join('');\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":4948,"Name":"setHomeBeacon","TemplateSMS":"<<dataSMS>>","Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\n// BeaconName\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar dataSMS = '';\r\n//create the bit table to use with control\r\nvar value = '';\r\nvar beacon_name = '';\r\nvar beacon_mac = '000000000000'; //default\r\n// always enable\r\nvalue += '1'; //Enable\r\nvalue += '0000000'; // Beacon 1\r\n/*if (params.SetBeacon1.EnableDisableBeacon1 == 'true') {\r\n value += '1'; //Enable\r\n value += '0000000'; // Beacon 1\r\n //Beacon 1\r\n} else {\r\n value = '00000000';\r\n}*/\r\n// name, mac, major, minor\r\nif (params.HomeBeacon.BeaconName) {\r\n beaconString = params.HomeBeacon.BeaconName.split(',');\r\n var beacon_name = ascii_to_hexa(beaconString[0].replace(/\\s+/g, ''));\r\n var beacon_mac = beaconString[1].replace(/:/g, '');\r\n beacon_mac = changeEndianness(beacon_mac);\r\n var beacon_major = beaconString[2];\r\n var beacon_minor = beaconString[3];\r\n dataSMS = `BSC0.0,0.0,${beaconString[1]},${beaconString[0].replace(/\\s+/g, '')}`;\r\n}\r\nvalue = ('00' + binaryToHex(value)).slice(-2).toUpperCase();\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = ('00' + decimalToHex(16 + (beacon_name.length / 2))).slice(-2).toUpperCase();\r\nvar key = '73';\r\nvar suffix = '0000000000000000'; // lat and long. not needed\r\nvar messageBody = command + keyLength + key + value + beacon_mac + suffix + beacon_name;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\r\nvar totalLenght = ('0000' + decimalToHex(18 + (beacon_name.length / 2))).slice(-4).toUpperCase();\r\ntotalLenght = totalLenght.substring(2, 4) + totalLenght.substring(0, 2);\r\nvar prefix = 'AB10' + totalLenght + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\n// For GPRS command\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\n// For SMS command\r\nAddValueSMS('dataSMS', dataSMS);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n configsSMS: configsSMS\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction AddValueSMS(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configsSMS.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = [];\r\n var j = 0;\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2);\r\n j++;\r\n }\r\n var bytes = [];\r\n var bytePos = 0;\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i];\r\n var b = parseInt(byteStr, 16);\r\n if (b < 256) {\r\n bytes[bytePos] = b;\r\n bytePos++;\r\n }\r\n }\r\n return bytes;\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString;\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x !== 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin;\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa;\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":7,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4947,"Name":"setSMSGatewayNumber","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar configs = [];\r\nvar numberHex = '';\r\nvar numberLength = '00';\r\nvar gateway_number = '00000000000';\r\nvar nameHex = ascii_to_hexa('No Esendex').toUpperCase();\r\nvar value = '';\r\nif (params.CommunicationSettings.SMSGateway) {\r\n value += '110'; // Enable + accept SMS+ Untogle Call\r\n //Authorised number 10\r\n value += '01001'; // No SIM Dialing + Contact Number 10\r\n var gatewayString = params.CommunicationSettings.SMSGateway.split(',');\r\n var gateway = gatewayString[1];\r\n gateway_number = gatewayString[0];\r\n numberHex = ascii_to_hexa(gateway_number).toUpperCase();\r\n numberLength = ('00' + decimalToHex(gateway_number.length)).slice(-2).toUpperCase();\r\n nameHex = ascii_to_hexa(gateway).toUpperCase();\r\n} else {\r\n value += '000'; // Disable + not accept SMS +Untogle Call\r\n value += '01001';\r\n numberHex = ascii_to_hexa(gateway_number).toUpperCase();\r\n numberLength = ('00' + decimalToHex(gateway_number.length)).slice(-2).toUpperCase();\r\n}\r\nvalue = ('00' + binaryToHex(value)).slice(-2).toUpperCase();\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar key = '34';\r\nvar keyLength = ('00' + decimalToHex(5 + (numberHex.length / 2) + (nameHex.length / 2))).slice(-2).toUpperCase();\r\nvar nameLenght = ('00' + decimalToHex((nameHex.length / 2))).slice(-2).toUpperCase();\r\nvar messageBody = command + keyLength + key + value + numberLength + numberHex + nameLenght + nameHex + '00'; // no photo\r\nvar totalLenght = ('0000' + decimalToHex(7 + (numberHex.length / 2) + (nameHex.length / 2))).slice(-4).toUpperCase();\r\ntotalLenght = totalLenght.substring(2, 4) + totalLenght.substring(0, 2);\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\r\nvar prefix = 'AB10' + totalLenght + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x !== 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":3,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4946,"Name":"setCustom ID","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\nvar configs = [];\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\nvar command = '02';\nvar key = '47';\nif (params.CustomID.CustomID == 'true') {\n var keyLength = '02';\n var customID = '06';\n var totalLenght = '0400';\n} else {\n var keyLength = '01';\n var customID = '';\n var totalLenght = '0300';\n}\nvar messageBody = command + keyLength + key + customID;\nvar checksum = byteStringToByteArray(messageBody);\nchecksum = crc16byte(checksum);\nchecksum = decimalToHex(checksum).toUpperCase();\nchecksum = ('0000' + checksum).slice(-4);\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\nvar prefix = 'AB10' + totalLenght + checksum + sequenceID;\nvar data = prefix + messageBody;\n// For GPRS command\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID);\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = []\n var j = 0\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2)\n j++\n }\n var bytes = []\n var bytePos = 0\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i]\n var b = parseInt(byteStr, 16)\n if (b < 256) {\n bytes[bytePos] = b\n bytePos++\n }\n }\n return bytes\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":5,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":4945,"Name":"setHeartRateDetectingInterval","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\nvar configs = [];\nif (params.HeartRateMonitor.HeartRateDetectingInterval) {\n var heartBeat = parseInt(params.HeartRateMonitor.HeartRateDetectingInterval) * 60;\n heartBeat = decimalToHex(heartBeat);\n heartBeat = ('000000' + heartBeat).slice(-6).toUpperCase();\n if (params.HeartRateMonitor.EnableDisableHeartRateMonitor == 'true') {\n heartBeat = '80' + heartBeat;\n } //enable\n else {\n heartBeat = '00' + heartBeat;\n } //disable\n heartBeat = heartBeat.substring(6, 8) + heartBeat.substring(4, 6) + heartBeat.substring(2, 4) + heartBeat.substring(0, 2);\n} else {\n var heartBeat = '58 02 00 00'\n} // disable and 600 seconds\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\nvar command = '02';\nvar keyLength = '05';\nvar key = '46';\nvar totalLenght = '0700';\nvar messageBody = command + keyLength + key + heartBeat;\nvar checksum = byteStringToByteArray(messageBody);\nchecksum = crc16byte(checksum);\nchecksum = decimalToHex(checksum).toUpperCase();\nchecksum = ('0000' + checksum).slice(-4);\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\nvar prefix = 'AB10' + totalLenght + checksum + sequenceID;\nvar data = prefix + messageBody;\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID);\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = [];\n var j = 0;\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2);\n j++;\n }\n var bytes = [];\n var bytePos = 0;\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i];\n var b = parseInt(byteStr, 16);\n if (b < 256) {\n bytes[bytePos] = b;\n bytePos++;\n }\n }\n return bytes;\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString;\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":6,"ProtocolActionObjects":[],"Tags":[]},{"Id":4944,"Name":"setVoicePrompt","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar configs = [];\r\n//create the bit table to use with control\r\nvar value = '';\r\nif (params.VoicePrompt.Beep == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.TiltCancel == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.Charging == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.Battery == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.Call1 == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.Call2 == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.Call3 == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.Call4 == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.Call5 == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.Fall == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.SOS == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.Click == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.NoMotion == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.Motion == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.Tilt == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.Activity == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.Find == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.Call6 == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.AlarmCancel == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.Time == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nvalue += '0'; // not defined bit 20\r\nif (params.VoicePrompt.CallError == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.CallDisconnected == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.CallHang == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.Call7 == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.Call8 == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.Call9 == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.Call10 == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.AlarmComplete == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.BLE == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.VoicePrompt.BaseLocation == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nvalue += '0'; // not defined bit 31\r\nvalue = reverseString(value);\r\n\r\nfunction reverseString(str) {\r\n var newString = \"\";\r\n for (var i = str.length - 1; i >= 0; i--) {\r\n newString += str[i];\r\n }\r\n return newString;\r\n}\r\nvalue = ('00000000' + binaryToHex(value)).slice(-8).toUpperCase();\r\nvalue = changeEndianness(value);\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '05';\r\nvar key = '19';\r\nvar messageBody = command + keyLength + key + value;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + '0700' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":4943,"Name":"setCycle","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\nif (params.CycleInterval.HeartbeatInterval) {\n var heartBeat = parseInt(params.CycleInterval.HeartbeatInterval) * 60;\n heartBeat = decimalToHex(heartBeat);\n heartBeat = ('000000' + heartBeat).slice(-6).toUpperCase();\n heartBeat = '80' + heartBeat;\n heartBeat = heartBeat.substring(6, 8) + heartBeat.substring(4, 6) + heartBeat.substring(2, 4) + heartBeat.substring(0, 2);\n}\nif (params.CycleInterval.CycleInterval) {\n var cycleInterval = parseInt(params.CycleInterval.CycleInterval) * 60;\n cycleInterval = decimalToHex(cycleInterval);\n cycleInterval = ('00000000' + cycleInterval).slice(-8).toUpperCase();\n cycleInterval = cycleInterval.substring(6, 8) + cycleInterval.substring(4, 6) + cycleInterval.substring(2, 4) + cycleInterval.substring(0, 2);\n}\nif (params.CycleInterval.LazyCycleInterval) {\n var lazyCycleInterval = parseInt(params.CycleInterval.LazyCycleInterval) * 60;\n lazyCycleInterval = decimalToHex(lazyCycleInterval);\n lazyCycleInterval = ('00000000' + lazyCycleInterval).slice(-8).toUpperCase();\n lazyCycleInterval = lazyCycleInterval.substring(6, 8) + lazyCycleInterval.substring(4, 6) + lazyCycleInterval.substring(2, 4) + lazyCycleInterval.substring(0, 2);\n}\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\nvar command = '02';\nvar keyLength = '0D';\nvar key = '44';\nvar messageBody = command + keyLength + key + heartBeat + cycleInterval + lazyCycleInterval;\nvar checksum = byteStringToByteArray(messageBody);\nchecksum = crc16byte(checksum);\nchecksum = decimalToHex(checksum).toUpperCase();\nchecksum = ('0000' + checksum).slice(-4);\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\n//Hpw to calculate sequenceID\nvar prefix = 'AB10' + '0F00' + checksum + sequenceID;\nvar data = prefix + messageBody;\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID); //add 20/07\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = [];\n var j = 0;\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2);\n j++;\n }\n var bytes = [];\n var bytePos = 0;\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i];\n var b = parseInt(byteStr, 16);\n if (b < 256) {\n bytes[bytePos] = b;\n bytePos++;\n }\n }\n return bytes;\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString;\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4942,"Name":"setAlarmClock2","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\nif (params.AlarmClock2.EnableDisableAlarmClock2 == 'true') {\n var index = '81'\n if (params.AlarmClock2.Time) {\n var hour = params.AlarmClock2.Time.replace(/[^a-zA-Z0-9]/g, \"\").substring(0, 2)\n hour = parseInt(hour)\n hour = decimalToHex(hour)\n hour = ('00' + hour).slice(-2).toUpperCase()\n var min = params.AlarmClock2.Time.replace(/[^a-zA-Z0-9]/g, \"\").substring(2, 4)\n min = parseInt(min)\n min = decimalToHex(min)\n min = ('00' + min).slice(-2).toUpperCase()\n } else {\n var hour = '0C'; // default time 12:00\n var min = '00';\n }\n //create the bit table to use with workdays\n var workday = 0\n if (params.AlarmClock2.Monday == 'true') {\n workday += 1\n }\n if (params.AlarmClock2.Tuesday == 'true') {\n workday += 2\n }\n if (params.AlarmClock2.Wednesday == 'true') {\n workday += 4\n }\n if (params.AlarmClock2.Thursday == 'true') {\n workday += 8\n }\n if (params.AlarmClock2.Friday == 'true') {\n workday += 16\n }\n if (params.AlarmClock2.Saturday == 'true') {\n workday += 32\n }\n if (params.AlarmClock2.Sunday == 'true') {\n workday += 64\n }\n workday = decimalToHex(workday).toUpperCase()\n workday = ('00' + workday).slice(-2).toUpperCase()\n if (params.AlarmClock2.Duration) {\n var duration = params.AlarmClock2.Duration\n duration = decimalToHex(parseInt(duration)).toUpperCase()\n duration = ('00' + duration).slice(-2).toUpperCase()\n } else {\n var duration = '1E';\n }\n var ring = '01'\n var value = index + hour + min + workday + duration + ring\n} else {\n value = '010000000101'\n}\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase()\nvar command = '02'\nvar keyLength = '07'\nvar key = '0B'\nvar messageBody = command + keyLength + key + value\nvar checksum = byteStringToByteArray(messageBody)\nchecksum = crc16byte(checksum)\nchecksum = decimalToHex(checksum)\nchecksum = ('0000' + checksum).slice(-4).toUpperCase()\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2)\nvar prefix = 'AB10' + '0900' + checksum + sequenceID\nvar data = prefix + messageBody\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID); //add 20/07\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = []\n var j = 0\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2)\n j++\n }\n var bytes = []\n var bytePos = 0\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i]\n var b = parseInt(byteStr, 16)\n if (b < 256) {\n bytes[bytePos] = b\n bytePos++\n }\n }\n return bytes\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":4941,"Name":"setVoicePromptVolume","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\nif (params.SystemSettings.Volume) {\n var volume = parseInt(params.SystemSettings.Volume)\n volume = decimalToHex(volume)\n volume = ('00' + volume).slice(-2).toUpperCase()\n}\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase()\nvar command = '02'\nvar keyLength = '02'\nvar key = '1C'\nvar messageBody = command + keyLength + key + volume\nvar checksum = byteStringToByteArray(messageBody)\nchecksum = crc16byte(checksum)\nchecksum = decimalToHex(checksum).toUpperCase()\nchecksum = ('0000' + checksum).slice(-4)\nchecksum = changeEndianness(checksum)\n//Hpw to calculate sequenceID\nvar prefix = 'AB10' + '0400' + checksum + sequenceID\nvar data = prefix + messageBody\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID); //add 20/07\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = []\n var j = 0\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2)\n j++\n }\n var bytes = []\n var bytePos = 0\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i]\n var b = parseInt(byteStr, 16)\n if (b < 256) {\n bytes[bytePos] = b\n bytePos++\n }\n }\n return bytes\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString\n}\n\nfunction changeEndianness(string) {\n const result = [];\n let len = string.length - 2;\n while (len >= 0) {\n result.push(string.substr(len, 2));\n len -= 2;\n }\n return result.join('');\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":4939,"Name":"setEnableControl","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\n//create the bit table to use with control\nvar value = '';\nif (params.EnableControl.LED == 'true') {\n value += '1';\n} else {\n value += '0';\n}\nif (params.EnableControl.Beep == 'true') {\n value += '1';\n} else {\n value += '0';\n}\nif (params.EnableControl.Vibration == 'true') {\n value += '1';\n} else {\n value += '0';\n}\nif (params.EnableControl.CellTowerLocating == 'true') {\n value += '1';\n} else {\n value += '0';\n}\nif (params.EnableControl.WiFi == 'true') {\n value += '1';\n} else {\n value += '0';\n}\nif (params.EnableControl.SOSCallSpeaker == 'true') {\n value += '1';\n} else {\n value += '0';\n}\nif (params.EnableControl.SideCallSpeaker == 'true') {\n value += '1';\n} else {\n value += '0';\n}\nif (params.EnableControl.BLEStayConnected == 'true') {\n value += '1';\n} else {\n value += '0';\n}\nif (params.EnableControl.BLELocating == 'true') {\n value += '1';\n} else {\n value += '0';\n}\nif (params.EnableControl.SOSCallVoice == 'true') {\n value += '1';\n} else {\n value += '0';\n}\nif (params.EnableControl.BLEAlwaysON == 'true') {\n value += '1';\n} else {\n value += '0';\n}\nif (params.EnableControl.GPSLocate == 'true') {\n value += '1';\n} else {\n value += '0';\n}\nif (params.EnableControl.AlertTCPFast == 'true') {\n value += '1';\n} else {\n value += '0';\n}\nvalue += '0'; //watch only girar muñeca para iluminar pantalla\nif (params.EnableControl.Beacon == 'true') {\n value += '1';\n} else {\n value += '0';\n}\nvalue += '0'; // activity fuction, \n//step counting, \nif (params.EnableControl.Step == 'true') {\n value += '1';\n} else {\n value += '0';\n}\n//home-wifi location, data-saver, NLprovider, power control,\n// sos cancel switch, Long SMS, plus 7 more without functions\nvalue += '0000';\nif (params.EnableControl.StopCallSequence == 'true') {\n value += '1';\n} else {\n value += '0';\n}\nvalue += '00000000';\nif (params.EnableControl.AutoUpdate == 'true') {\n value += '1';\n} else {\n value += '0';\n}\nif (params.EnableControl.AGPS == 'true') {\n value += '1';\n} else {\n value += '0';\n}\nvalue = reverseString(value);\n\nfunction reverseString(str) {\n var newString = \"\";\n for (var i = str.length - 1; i >= 0; i--) {\n newString += str[i];\n }\n return newString;\n}\nvalue = ('00000000' + binaryToHex(value)).slice(-8).toUpperCase();\nvalue = changeEndianness(value);\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\nvar command = '02';\nvar keyLength = '05';\nvar key = '0F';\nvar messageBody = command + keyLength + key + value;\nvar checksum = byteStringToByteArray(messageBody);\nchecksum = crc16byte(checksum);\nchecksum = decimalToHex(checksum);\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\nchecksum = changeEndianness(checksum);\n//Hpw to calculate sequenceID\nvar prefix = 'AB10' + '0700' + checksum + sequenceID;\nvar data = prefix + messageBody;\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID); //add 20/07\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = []\n var j = 0\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2)\n j++\n }\n var bytes = []\n var bytePos = 0\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i]\n var b = parseInt(byteStr, 16)\n if (b < 256) {\n bytes[bytePos] = b\n bytePos++\n }\n }\n return bytes\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString\n}\n\nfunction decimalToBinary(x) {\n let bin = 0;\n let rem, i = 1,\n step = 1;\n while (x != 0) {\n rem = x % 2;\n x = parseInt(x / 2);\n bin = bin + rem * i;\n i = i * 10;\n }\n return bin\n}\n\nfunction binaryToHex(x) {\n var hexa = parseInt(x, 2).toString(16);\n return hexa\n}\n\nfunction changeEndianness(string) {\n const result = [];\n let len = string.length - 2;\n while (len >= 0) {\n result.push(string.substr(len, 2));\n len -= 2;\n }\n return result.join('');\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4938,"Name":"setSOSButtonSettings","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\n//create the bit table to use with control\nvar value = '';\nif (params.SOSButtonSettings.EnableDisableSOSButtonSettings == 'true') {\n value += '10';\n if (params.SOSButtonSettings.TriggerMode == '0') {\n value += '0';\n } else {\n value += '1';\n }\n /*\n if (params.SOSButtonSettings.CallTo == '0'){\n value += '0001'\n }else { \n value += '0000'\n }\n */\n value += '1111'; //SOS task (Default) Standard\n var time = 20;\n value += ('0000000' + decimalToBinary(parseInt(time))).slice(-7);\n if (params.SOSButtonSettings.Feedback) {\n value += params.SOSButtonSettings.Feedback;\n } else {\n value += '00';\n }\n} else {\n value = '0000000000000000';\n}\nvalue = ('0000' + binaryToHex(value)).slice(-4).toUpperCase();\nvalue = value.substring(2, 4) + value.substring(0, 2);\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\nvar command = '02';\nvar keyLength = '03';\nvar key = '20';\nvar messageBody = command + keyLength + key + value;\nvar checksum = byteStringToByteArray(messageBody);\nchecksum = crc16byte(checksum);\nchecksum = decimalToHex(checksum);\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\n//Hpw to calculate sequenceID\nvar prefix = 'AB10' + '0500' + checksum + sequenceID;\nvar data = prefix + messageBody;\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID);\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = [];\n var j = 0;\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2);\n j++;\n }\n var bytes = [];\n var bytePos = 0;\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i];\n var b = parseInt(byteStr, 16);\n if (b < 256) {\n bytes[bytePos] = b;\n bytePos++;\n }\n }\n return bytes;\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString;\n}\n\nfunction decimalToBinary(x) {\n let bin = 0;\n let rem, i = 1,\n step = 1;\n while (x !== 0) {\n rem = x % 2;\n x = parseInt(x / 2);\n bin = bin + rem * i;\n i = i * 10;\n }\n return bin;\n}\n\nfunction binaryToHex(x) {\n var hexa = parseInt(x, 2).toString(16);\n return hexa;\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":6,"ProtocolActionObjects":[],"Tags":[]},{"Id":4937,"Name":"setExtraEnableControl","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\r\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\n//create the bit table to use with control\r\nvar value = '';\r\n// Wifi loc name EV07, beacon leaves home alert, beacon V2, BLE scan switch,\r\n// XXX, no motion alert data only EV05, power saving EV06, Stop alert call sequence.\r\nvalue += '0000000';\r\nif (params.EnableControl.StopCallSequence == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nvalue = reverseString(value);\r\n\r\nfunction reverseString(str) {\r\n var newString = \"\";\r\n for (var i = str.length - 1; i >= 0; i--) {\r\n newString += str[i];\r\n }\r\n return newString;\r\n}\r\nvalue = ('00000000' + binaryToHex(value)).slice(-8).toUpperCase();\r\nvalue = changeEndianness(value);\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '05';\r\nvar key = '75';\r\nvar messageBody = command + keyLength + key + value;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\n//How to calculate sequenceID\r\nvar prefix = 'AB10' + '0700' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID); //add 20/07\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":4936,"Name":"setAlarmClock4","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\nif (params.AlarmClock4.EnableDisableAlarmClock4 == 'true') {\n var index = '83'\n if (params.AlarmClock4.Time) {\n var hour = params.AlarmClock4.Time.replace(/[^a-zA-Z0-9]/g, \"\").substring(0, 2)\n hour = parseInt(hour)\n hour = decimalToHex(hour)\n hour = ('00' + hour).slice(-2).toUpperCase()\n var min = params.AlarmClock4.Time.replace(/[^a-zA-Z0-9]/g, \"\").substring(2, 4)\n min = parseInt(min)\n min = decimalToHex(min)\n min = ('00' + min).slice(-2).toUpperCase()\n } else {\n var hour = '0C'; // default time 12:00\n var min = '00';\n }\n //create the bit table to use with workdays\n var workday = 0\n if (params.AlarmClock4.Monday == 'true') {\n workday += 1\n }\n if (params.AlarmClock4.Tuesday == 'true') {\n workday += 2\n }\n if (params.AlarmClock4.Wednesday == 'true') {\n workday += 4\n }\n if (params.AlarmClock4.Thursday == 'true') {\n workday += 8\n }\n if (params.AlarmClock4.Friday == 'true') {\n workday += 16\n }\n if (params.AlarmClock4.Saturday == 'true') {\n workday += 32\n }\n if (params.AlarmClock4.Sunday == 'true') {\n workday += 64\n }\n workday = decimalToHex(workday).toUpperCase()\n workday = ('00' + workday).slice(-2).toUpperCase()\n if (params.AlarmClock4.Duration) {\n var duration = params.AlarmClock4.Duration\n duration = decimalToHex(parseInt(duration)).toUpperCase()\n duration = ('00' + duration).slice(-2).toUpperCase()\n } else {\n var duration = '1E';\n }\n var ring = '01'\n var value = index + hour + min + workday + duration + ring\n} else {\n value = '030000000101'\n}\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase()\nvar command = '02'\nvar keyLength = '07'\nvar key = '0B'\nvar messageBody = command + keyLength + key + value\nvar checksum = byteStringToByteArray(messageBody)\nchecksum = crc16byte(checksum)\nchecksum = decimalToHex(checksum)\nchecksum = ('0000' + checksum).slice(-4).toUpperCase()\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2)\nvar prefix = 'AB10' + '0900' + checksum + sequenceID\nvar data = prefix + messageBody\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID); //add 20/07\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = []\n var j = 0\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2)\n j++\n }\n var bytes = []\n var bytePos = 0\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i]\n var b = parseInt(byteStr, 16)\n if (b < 256) {\n bytes[bytePos] = b\n bytePos++\n }\n }\n return bytes\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":4935,"Name":"setOystaNumber","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\n//create the bit table to use with control\nvar value = ''\nvalue += '1'\nvalue += '010'\n//Authorised number 10\nvalue += '1001'\nvar number = '+447781482635'\nvar numberHex = ascii_to_hexa(number).toUpperCase()\nvalue = ('00' + binaryToHex(value)).slice(-2).toUpperCase()\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase()\nvar command = '02'\nvar keyLength = ('00' + decimalToHex(2 + (numberHex.length / 2))).slice(-2).toUpperCase()\nvar key = '30'\nvar messageBody = command + keyLength + key + value + numberHex\nvar checksum = byteStringToByteArray(messageBody)\nchecksum = crc16byte(checksum)\nchecksum = decimalToHex(checksum)\nchecksum = ('0000' + checksum).slice(-4).toUpperCase()\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2)\nvar totalLenght = ('0000' + decimalToHex(4 + (numberHex.length / 2))).slice(-4).toUpperCase()\ntotalLenght = totalLenght.substring(2, 4) + totalLenght.substring(0, 2)\n//Hpw to calculate sequenceID\nvar prefix = 'AB10' + totalLenght + checksum + sequenceID\nvar data = prefix + messageBody\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID); //add 20/07\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = []\n var j = 0\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2)\n j++\n }\n var bytes = []\n var bytePos = 0\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i]\n var b = parseInt(byteStr, 16)\n if (b < 256) {\n bytes[bytePos] = b\n bytePos++\n }\n }\n return bytes\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString\n}\n\nfunction decimalToBinary(x) {\n let bin = 0;\n let rem, i = 1,\n step = 1;\n while (x != 0) {\n rem = x % 2;\n x = parseInt(x / 2);\n bin = bin + rem * i;\n i = i * 10;\n }\n return bin\n}\n\nfunction binaryToHex(x) {\n var hexa = parseInt(x, 2).toString(16);\n return hexa\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":4934,"Name":"setStepCollectSettings","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\nvar configs = [];\nif (params.StepCounting.StepCountingInterval) {\n var heartBeat = parseInt(params.StepCounting.StepCountingInterval) * 60;\n heartBeat = decimalToHex(heartBeat);\n heartBeat = ('000000' + heartBeat).slice(-6).toUpperCase();\n if (params.StepCounting.EnableDisableStepCounting == 'true') {\n heartBeat = '80' + heartBeat;\n } //enable\n else {\n heartBeat = '00' + heartBeat;\n } //disable\n heartBeat = heartBeat.substring(6, 8) + heartBeat.substring(4, 6) + heartBeat.substring(2, 4) + heartBeat.substring(0, 2);\n} else {\n var heartBeat = '58 02 00 00';\n} // disable and 600 seconds\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\nvar command = '02';\nvar keyLength = '05';\nvar key = '5B';\nvar totalLength = '0700';\nvar messageBody = command + keyLength + key + heartBeat;\nvar checksum = byteStringToByteArray(messageBody);\nchecksum = crc16byte(checksum);\nchecksum = decimalToHex(checksum).toUpperCase();\nchecksum = ('0000' + checksum).slice(-4);\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\nvar prefix = 'AB10' + totalLength + checksum + sequenceID;\nvar data = prefix + messageBody;\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID);\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = [];\n var j = 0;\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2);\n j++;\n }\n var bytes = [];\n var bytePos = 0;\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i];\n var b = parseInt(byteStr, 16);\n if (b < 256) {\n bytes[bytePos] = b;\n bytePos++;\n }\n }\n return bytes;\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString;\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":6,"ProtocolActionObjects":[],"Tags":[]},{"Id":4933,"Name":"setSMSPassword","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\r\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar password = '00000000';\r\nif (params.SMSPassword.EnableDisableSMSPassword == 'true') {\r\n if (params.SMSPassword.SMSPassword) {\r\n password = parseInt(params.SMSPassword.SMSPassword);\r\n password = decimalToHex(password);\r\n password = ('000000' + password).slice(-6).toUpperCase();\r\n password = changeEndianness(password) + '80';\r\n }\r\n}\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '05';\r\nvar key = '0D';\r\nvar messageBody = command + keyLength + key + password;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum).toUpperCase();\r\nchecksum = ('0000' + checksum).slice(-4);\r\nchecksum = changeEndianness(checksum);\r\n//Hpw to calculate sequenceID\r\nvar prefix = 'AB10' + '0700' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID); //add 20/07\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":4932,"Name":"setFallDownAlert","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\r\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\n//create the bit table to use with control\r\nvar value = ''\r\nif (params.FallSettings.EnableDisableFallSettings == 'true') {\r\n value += '1'\r\n //if (params.FallAlarm.Dial == 'true') {\r\n // value += '100'\r\n //} else {\r\n value += '000'\r\n //}\r\n if (params.FallSettings.Sensitivity) {\r\n var sensitivity = parseInt(params.FallSettings.Sensitivity)\r\n sensitivity = ('0000' + decimalToBinary(sensitivity)).slice(-4).toUpperCase()\r\n value += sensitivity\r\n }\r\n} else {\r\n value = '00000000'\r\n}\r\nvalue = ('00' + binaryToHex(value)).slice(-2).toUpperCase();\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase()\r\nvar command = '02'\r\nvar keyLength = '02'\r\nvar key = '56'\r\nvar messageBody = command + keyLength + key + value\r\nvar checksum = byteStringToByteArray(messageBody)\r\nchecksum = crc16byte(checksum)\r\nchecksum = decimalToHex(checksum)\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase()\r\nchecksum = changeEndianness(checksum)\r\n//Hpw to calculate sequenceID\r\nvar prefix = 'AB10' + '0400' + checksum + sequenceID\r\nvar data = prefix + messageBody\r\n//var data = 'AB100400 7CEE0200020256C1';\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID); //add 20/07\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4931,"Name":"setSOSOption","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\nvar talkTime = 65534\ntalkTime = decimalToHex(talkTime)\ntalkTime = ('0000' + talkTime).slice(-4).toUpperCase()\ntalkTime = changeEndianness(talkTime)\nif (params.SOSButtonSettings.RingTime) {\n var ringTime = params.SOSButtonSettings.RingTime\n ringTime = parseInt(ringTime)\n ringTime = decimalToHex(ringTime)\n ringTime = ('00' + ringTime).slice(-2).toUpperCase()\n} else {\n var ringTime = 20;\n ringTime = decimalToHex(ringTime);\n ringTime = ('00' + ringTime).slice(-2).toUpperCase();\n}\nif (params.SOSButtonSettings.Retries) {\n var tries = params.SOSButtonSettings.Retries\n tries = parseInt(tries)\n tries = decimalToHex(tries)\n tries = ('00' + tries).slice(-2).toUpperCase()\n} else {\n var tries = '01';\n}\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase()\nvar command = '02'\nvar keyLength = '05'\nvar key = '32'\nvar messageBody = command + keyLength + key + talkTime + ringTime + tries\nvar checksum = byteStringToByteArray(messageBody)\nchecksum = crc16byte(checksum)\nchecksum = decimalToHex(checksum).toUpperCase()\nchecksum = ('0000' + checksum).slice(-4)\nchecksum = changeEndianness(checksum)\n//Hpw to calculate sequenceID\nvar prefix = 'AB10' + '0700' + checksum + sequenceID\nvar data = prefix + messageBody\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID); //add 20/07\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = []\n var j = 0\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2)\n j++\n }\n var bytes = []\n var bytePos = 0\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i]\n var b = parseInt(byteStr, 16)\n if (b < 256) {\n bytes[bytePos] = b\n bytePos++\n }\n }\n return bytes\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString\n}\n\nfunction changeEndianness(string) {\n const result = [];\n let len = string.length - 2;\n while (len >= 0) {\n result.push(string.substr(len, 2));\n len -= 2;\n }\n return result.join('');\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4930,"Name":"setAlarmClock3","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\nif (params.AlarmClock3.EnableDisableAlarmClock3 == 'true') {\n var index = '82'\n if (params.AlarmClock3.Time) {\n var hour = params.AlarmClock3.Time.replace(/[^a-zA-Z0-9]/g, \"\").substring(0, 2)\n hour = parseInt(hour)\n hour = decimalToHex(hour)\n hour = ('00' + hour).slice(-2).toUpperCase()\n var min = params.AlarmClock3.Time.replace(/[^a-zA-Z0-9]/g, \"\").substring(2, 4)\n min = parseInt(min)\n min = decimalToHex(min)\n min = ('00' + min).slice(-2).toUpperCase()\n } else {\n var hour = '0C'; // default time 12:00\n var min = '00';\n }\n //create the bit table to use with workdays\n var workday = 0\n if (params.AlarmClock3.Monday == 'true') {\n workday += 1\n }\n if (params.AlarmClock3.Tuesday == 'true') {\n workday += 2\n }\n if (params.AlarmClock3.Wednesday == 'true') {\n workday += 4\n }\n if (params.AlarmClock3.Thursday == 'true') {\n workday += 8\n }\n if (params.AlarmClock3.Friday == 'true') {\n workday += 16\n }\n if (params.AlarmClock3.Saturday == 'true') {\n workday += 32\n }\n if (params.AlarmClock3.Sunday == 'true') {\n workday += 64\n }\n workday = decimalToHex(workday).toUpperCase()\n workday = ('00' + workday).slice(-2).toUpperCase()\n if (params.AlarmClock3.Duration) {\n var duration = params.AlarmClock3.Duration\n duration = decimalToHex(parseInt(duration)).toUpperCase()\n duration = ('00' + duration).slice(-2).toUpperCase()\n } else {\n var duration = '1E';\n }\n var ring = '01'\n var value = index + hour + min + workday + duration + ring\n} else {\n value = '020000000101'\n}\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase()\nvar command = '02'\nvar keyLength = '07'\nvar key = '0B'\nvar messageBody = command + keyLength + key + value\nvar checksum = byteStringToByteArray(messageBody)\nchecksum = crc16byte(checksum)\nchecksum = decimalToHex(checksum)\nchecksum = ('0000' + checksum).slice(-4).toUpperCase()\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2)\nvar prefix = 'AB10' + '0900' + checksum + sequenceID\nvar data = prefix + messageBody\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID); //add 20/07\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = []\n var j = 0\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2)\n j++\n }\n var bytes = []\n var bytePos = 0\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i]\n var b = parseInt(byteStr, 16)\n if (b < 256) {\n bytes[bytePos] = b\n bytePos++\n }\n }\n return bytes\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":4929,"Name":"setSpeedDialNumber","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar configs = [];\r\nvar numberHex = '';\r\nvar value = '';\r\n// For Roam\r\nif (params.SpeedDial.EnableDisableSpeedDial == 'true') {\r\n value += '10'; // Enable + Not accept SMS\r\n} else {\r\n value += '00'; // Disable + not accept SMS\r\n}\r\nvalue += '0'; // Untogle Call\r\nif (params.SpeedDial.SpeedDialNumber) {\r\n value += '00001'; // No SIM Dialing + Contact Number 2\r\n // es posible que tengamos que definir un valor por defecto para el numero\r\n var number = params.SpeedDial.SpeedDialNumber;\r\n numberHex = ascii_to_hexa(number).toUpperCase();\r\n} else {\r\n value += '00001';\r\n}\r\nvalue = ('00' + binaryToHex(value)).slice(-2).toUpperCase();\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = ('00' + decimalToHex(2 + (numberHex.length / 2))).slice(-2).toUpperCase();\r\nvar key = '30';\r\nvar messageBody = command + keyLength + key + value + numberHex;\r\nvar totalLenght = ('0000' + decimalToHex(4 + (numberHex.length / 2))).slice(-4).toUpperCase();\r\ntotalLenght = totalLenght.substring(2, 4) + totalLenght.substring(0, 2);\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\r\nvar prefix = 'AB10' + totalLenght + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID); //add 20/07\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction fillHex(x, y) {\r\n if (x % 2 == 0) {\r\n return y\r\n } else {\r\n return y + '00'\r\n }\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":6,"ProtocolActionObjects":[],"Tags":[]},{"Id":4928,"Name":"setPowerAlert","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\n//create the bit table to use with control\nvar value = '';\nif (params.PowerAlert.EnableDisablePowerAlert == 'true') {\n if (params.PowerAlert.PowerOff == 'true') {\n value += '1';\n } else {\n value += '0';\n }\n if (params.PowerAlert.PowerOn == 'true') {\n value += '1';\n } else {\n value += '0';\n }\n if (params.PowerAlert.PowerLow == 'true') {\n value += '1';\n } else {\n value += '0';\n }\n value += '0';\n value += '000000000000';\n value += '00000000';\n if (params.PowerAlert.LowPowerThreshold) {\n var threshold = ('00000000' + decimalToBinary(params.PowerAlert.LowPowerThreshold)).slice(-8);\n value += threshold;\n } else {\n value += '00001111';\n }\n} else {\n value = '00000000000000000000000000000000';\n}\nvalue = ('00000000' + binaryToHex(value)).slice(-8).toUpperCase();\nvalue = value.substring(6, 8) + value.substring(4, 6) + value.substring(2, 4) + value.substring(0, 2);\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\nvar command = '02';\nvar keyLength = '05';\nvar key = '50';\nvar messageBody = command + keyLength + key + value;\nvar checksum = byteStringToByteArray(messageBody);\nchecksum = crc16byte(checksum);\nchecksum = decimalToHex(checksum);\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\n//Hpw to calculate sequenceID\nvar prefix = 'AB10' + '0700' + checksum + sequenceID;\nvar data = prefix + messageBody;\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID); //add 20/07\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = [];\n var j = 0;\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2);\n j++;\n }\n var bytes = [];\n var bytePos = 0;\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i];\n var b = parseInt(byteStr, 16);\n if (b < 256) {\n bytes[bytePos] = b;\n bytePos++;\n }\n }\n return bytes;\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString;\n}\n\nfunction decimalToBinary(x) {\n let bin = 0;\n let rem, i = 1,\n step = 1;\n while (x !== 0) {\n rem = x % 2;\n x = parseInt(x / 2);\n bin = bin + rem * i;\n i = i * 10;\n }\n return bin;\n}\n\nfunction binaryToHex(x) {\n var hexa = parseInt(x, 2).toString(16);\n return hexa;\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4927,"Name":"setSOSNumber","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\nvar configs = [];\r\nvar numberHex = '';\r\nvar numberLength = '00';\r\nvar phone_number = '00000000000';\r\nvar nameHex = ascii_to_hexa('SOS').toUpperCase();\r\nvar urlHex = ascii_to_hexa('https://test.myoysta.com/pearl_button_Non_Vector.jpeg').toUpperCase();\r\nvar urlLength = '35';\r\nvar value = '';\r\n// For Rio\r\nif (params.SOSButtonSettings.EnableDisableSOSButtonSettings == 'true') {\r\n value += '10'; // Enable + Not accept SMS\r\n} else {\r\n value += '00';\r\n} // Disable + not accept SMS\r\nif (params.SOSButtonSettings.Call == 'true') {\r\n value += '1'; // Togle Call\r\n} else {\r\n value += '0';\r\n} // Untogle Call\r\nif (params.SOSButtonSettings.Number) {\r\n value += '00000'; // No SIM Dialing + Contact Number 1\r\n phone_number = params.SOSButtonSettings.Number;\r\n numberHex = ascii_to_hexa(phone_number).toUpperCase();\r\n numberLength = ('00' + decimalToHex(phone_number.length)).slice(-2).toUpperCase();\r\n} else {\r\n value += '00000';\r\n numberHex = ascii_to_hexa(phone_number).toUpperCase();\r\n numberLength = ('00' + decimalToHex(phone_number.length)).slice(-2).toUpperCase();\r\n}\r\n// photo URL\r\nvalue = ('00' + binaryToHex(value)).slice(-2).toUpperCase();\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar key = '34';\r\nvar keyLength = ('00' + decimalToHex(8 + (numberHex.length / 2))).slice(-2).toUpperCase();\r\nvar nameLenght = ('00' + decimalToHex((nameHex.length / 2))).slice(-2).toUpperCase();\r\nvar messageBody = command + keyLength + key + value + numberLength + numberHex + nameLenght + nameHex + urlLength + urlHex; // no photo\r\nvar totalLenght = ('0000' + decimalToHex(7 + (urlHex.length / 2) + (numberHex.length / 2) + (nameHex.length / 2))).slice(-4).toUpperCase();\r\ntotalLenght = totalLenght.substring(2, 4) + totalLenght.substring(0, 2);\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\r\nvar prefix = 'AB10' + totalLenght + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID); //add 20/07\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = [];\r\n var j = 0;\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2);\r\n j++;\r\n }\r\n var bytes = [];\r\n var bytePos = 0;\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i];\r\n var b = parseInt(byteStr, 16);\r\n if (b < 256) {\r\n bytes[bytePos] = b;\r\n bytePos++;\r\n }\r\n }\r\n return bytes;\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString;\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x !== 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin;\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa;\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":6,"ProtocolActionObjects":[],"Tags":[]},{"Id":4926,"Name":"actionInitializeMileage","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\nvar value = '00000000';\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\nvar command = '02';\nvar keyLength = '05';\nvar key = '09';\nvar messageBody = command + keyLength + key + value;\nvar checksum = byteStringToByteArray(messageBody);\nchecksum = crc16byte(checksum);\nchecksum = decimalToHex(checksum);\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\nvar totalLenght = '0007';\ntotalLenght = totalLenght.substring(2, 4) + totalLenght.substring(0, 2);\n//Hpw to calculate sequenceID\nvar prefix = 'AB10' + totalLenght + checksum + sequenceID;\nvar data = prefix + messageBody;\n//var data = 'AB1007009E8B' + sequenceID + '02050900000000'\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID); //add 20/07\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = []\n var j = 0\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2)\n j++\n }\n var bytes = []\n var bytePos = 0\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i]\n var b = parseInt(byteStr, 16)\n if (b < 256) {\n bytes[bytePos] = b\n bytePos++\n }\n }\n return bytes\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString\n}\n\nfunction decimalToBinary(x) {\n let bin = 0;\n let rem, i = 1,\n step = 1;\n while (x != 0) {\n rem = x % 2;\n x = parseInt(x / 2);\n bin = bin + rem * i;\n i = i * 10;\n }\n return bin\n}\n\nfunction binaryToHex(x) {\n var hexa = parseInt(x, 2).toString(16);\n return hexa\n}\n/*var configs = [];\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase()\nvar data = 'AB1007009E8B' + sequenceID + '02050900000000'\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID); //add 20/07\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}*/","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4925,"Name":"setContinuousLocate","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\nif (params.ContinuousLocate.Interval) {\n var Interval = parseInt(params.ContinuousLocate.Interval) * 60;\n Interval = decimalToHex(Interval);\n Interval = ('0000' + Interval).slice(-4).toUpperCase();\n Interval = Interval.substring(2, 4) + Interval.substring(0, 2);\n}\nif (params.ContinuousLocate.Duration) {\n var Duration = parseInt(params.ContinuousLocate.Duration) * 60;\n Duration = decimalToHex(Duration);\n Duration = ('0000' + Duration).slice(-4).toUpperCase();\n Duration = Duration.substring(2, 4) + Duration.substring(0, 2);\n}\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\nvar command = '02';\nvar keyLength = '05';\nvar key = '45';\nvar messageBody = command + keyLength + key + Interval + Duration;\nvar checksum = byteStringToByteArray(messageBody);\nchecksum = crc16byte(checksum);\nchecksum = decimalToHex(checksum).toUpperCase();\nchecksum = ('0000' + checksum).slice(-4);\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\n//Hpw to calculate sequenceID\nvar prefix = 'AB10' + '0700' + checksum + sequenceID;\nvar data = prefix + messageBody;\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID); //add 20/07\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = [];\n var j = 0;\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2);\n j++;\n }\n var bytes = [];\n var bytePos = 0;\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i];\n var b = parseInt(byteStr, 16);\n if (b < 256) {\n bytes[bytePos] = b;\n bytePos++;\n }\n }\n return bytes;\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString;\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4924,"Name":"setAuthorisedNumbers","TemplateSMS":"","Template":"<<data>>","AckTemplate":null,"Operation":"//updated v 2\r\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\n//para pruebas en local Contact':\r\n//AB104F008CF27D3D020E34A0013108436F6E7461637431000E34A1013208436F6E746163743200053402000000053403000000053404000000053405000000053406000000053407000000053408000000053409000000\r\n//var params = {'ApprovedContacts': {'Contact': [{'Number':'1','Name':'Contact1'},{'Number':'2','Name':'Contact2'} ]}};\r\nvar configs = [];\r\nvar idsToUpdate = []\r\nvar deletedId = []\r\nvar notSend = false;\r\nvar numberLength = '00';\r\nvar numberHex = '';\r\nvar nameLength = '00';\r\nvar blankName = '';\r\nvar value = '02';\r\nvar keyLength = '00';\r\nvar confTel = '';\r\nvar count = 2; // approved contact will be from A3 to A9 - index 2 to index 8\r\n//check if a number was deleted, and remove it from the list\r\nlet counter = 0;\r\nfor (var contactChanged of paramsChanged.ApprovedContacts) {\r\n // update ids\r\n var contacts = paramsChangedIds.ApprovedContacts[counter];\r\n for (var item in contacts) {\r\n idsToUpdate.push(contacts[item]);\r\n }\r\n if (contactChanged.Deleted === \"true\") {\r\n //var cvpair1 = {code: p1,value: p2};\r\n deletedId.push(contactChanged);\r\n }\r\n counter++;\r\n}\r\n//iterate over approved contacts, \r\nfor (var contact in params.ApprovedContacts) {\r\n confTel = (binaryToHex(1000)).slice(-1).toUpperCase(); // Enable + Not accept SMS + No Accept Call + No SIM Dialing\r\n if (deletedId.length > 0) {\r\n if (checkValue(contact) === true) {\r\n confTel = ('00' + decimalToHex(count)).slice(-2).toUpperCase(); // Add contact\r\n value += \"0530\" + confTel + '000000'; //no number, no name, no photo\r\n } else {\r\n confTel = confTel + ('00' + decimalToHex(parseInt(count))).slice(-1).toUpperCase(); // Add contact from count to avoid rewrite SOS number and Dial number\r\n numberHex = ascii_to_hexa(params.ApprovedContacts[contact].Contact).toUpperCase();\r\n //numberLength = ('00' + decimalToHex(params.ApprovedContacts[contact].Contact.length)).slice(-2).toUpperCase();\r\n keyLength = ('00' + decimalToHex(2 + params.ApprovedContacts[contact].Contact.length)).slice(-2).toUpperCase();\r\n //value += keyLength + \"30\" + confTel + numberLength + numberHex; //no photo\r\n value += keyLength + \"30\" + confTel + numberHex; //no photo \r\n }\r\n } else {\r\n confTel = confTel + ('00' + decimalToHex(parseInt(count))).slice(-1).toUpperCase(); // Add contact from count to avoid rewrite SOS number and Dial number\r\n numberHex = ascii_to_hexa(params.ApprovedContacts[contact].Contact).toUpperCase();\r\n //numberLength = ('00' + decimalToHex(params.ApprovedContacts[contact].Contact.length)).slice(-2).toUpperCase();\r\n keyLength = ('00' + decimalToHex(2 + params.ApprovedContacts[contact].Contact.length)).slice(-2).toUpperCase();\r\n //value += keyLength + \"30\" + confTel + numberLength + numberHex; //no photo\r\n value += keyLength + \"30\" + confTel + numberHex; //no photo\r\n }\r\n count++;\r\n}\r\n//and disable other contacts\r\nfor (var i = count; i < 9; i++) {\r\n confTel = ('00' + decimalToHex(parseInt(i))).slice(-2).toUpperCase(); // Add contact\r\n value += \"0530\" + confTel + '000000'; //no number, no name, no photo\r\n}\r\n// create HEADER\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar totalLenght = ('0000' + decimalToHex(value.length / 2)).slice(-4).toUpperCase();\r\ntotalLenght = changeEndianness(totalLenght);\r\nvar checksum = byteStringToByteArray(value);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\r\nvar prefix = 'AB10' + totalLenght + checksum + sequenceID;\r\nvar data = prefix + value;\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs,\r\n idsToUpdate: idsToUpdate,\r\n notSend: notSend\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction checkValue(contact) {\r\n for (var d in deletedId) {\r\n //if (d === contact) {\r\n // return true;\r\n //}\r\n if (params.ApprovedContacts[contact].Contact == paramsChanged.ApprovedContacts[d].Contact) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = []\r\n var j = 0\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2)\r\n j++\r\n }\r\n var bytes = []\r\n var bytePos = 0\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i]\r\n var b = parseInt(byteStr, 16)\r\n if (b < 256) {\r\n bytes[bytePos] = b\r\n bytePos++\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":8,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4923,"Name":"setMicVolume","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\nif (params.MicVolume.Volume) {\n var volume = parseInt(params.MicVolume.Volume)\n volume = decimalToHex(volume)\n volume = ('00' + volume).slice(-2).toUpperCase()\n}\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase()\nvar command = '02'\nvar keyLength = '02'\nvar key = '11'\nvar messageBody = command + keyLength + key + volume\nvar checksum = byteStringToByteArray(messageBody)\nchecksum = crc16byte(checksum)\nchecksum = decimalToHex(checksum).toUpperCase()\nchecksum = ('0000' + checksum).slice(-4)\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2)\n//Hpw to calculate sequenceID\nvar prefix = 'AB10' + '0400' + checksum + sequenceID\nvar data = prefix + messageBody\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID); //add 20/07\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = []\n var j = 0\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2)\n j++\n }\n var bytes = []\n var bytePos = 0\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i]\n var b = parseInt(byteStr, 16)\n if (b < 256) {\n bytes[bytePos] = b\n bytePos++\n }\n }\n return bytes\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":4922,"Name":"setWelfareCheck","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\r\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\n//create the bit table to use with control\r\nvar value = '';\r\nvar value2 = '';\r\nif (params.WelfareCheck.EnableDisableWelfareCheck == 'true') {\r\n value += '1';\r\n var time = params.WelfareCheck.CheckTime * 60; //in minutes\r\n value += ('0000000000000000000000000000000' + decimalToBinary(parseInt(time))).slice(-31);\r\n} else {\r\n value += ('0000000000000000000000000000000' + decimalToBinary(parseInt(3600))).slice(-31); //default\r\n}\r\nvalue = ('00000000' + binaryToHex(value)).slice(-8).toUpperCase();\r\nvalue = changeEndianness(value);\r\nif (params.WelfareCheck.DialWarningTime == 'true') {\r\n value2 += '1';\r\n var time = params.WelfareCheck.WarningTime * 60; //in minutes\r\n value2 += ('0000000000000000000000000000000' + decimalToBinary(parseInt(time))).slice(-31);\r\n} else {\r\n value2 += ('0000000000000000000000000000000' + decimalToBinary(parseInt(300))).slice(-31); // default\r\n}\r\nvalue2 = ('00000000' + binaryToHex(value2)).slice(-8).toUpperCase();\r\nvalue2 = changeEndianness(value2);\r\n// join both msg\r\nvalue += value2;\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '09';\r\nvar key = '57';\r\nvar totalLenght = '0B00';\r\nif (params.DeviceVersion.DeviceVersion == '2') { // command not for watch so mic to 10\r\n command = '02';\r\n keyLength = '02';\r\n key = '11';\r\n value = '10';\r\n totalLenght = '0400';\r\n}\r\nvar messageBody = command + keyLength + key + value;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = checksum.toString().substring(2, 4) + checksum.toString().substring(0, 2);\r\nvar prefix = 'AB10' + totalLenght + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = [];\r\n var j = 0;\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2);\r\n j++;\r\n }\r\n var bytes = [];\r\n var bytePos = 0;\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i];\r\n var b = parseInt(byteStr, 16);\r\n if (b < 256) {\r\n bytes[bytePos] = b;\r\n bytePos++;\r\n }\r\n }\r\n return bytes;\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString;\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x !== 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin;\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa;\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4921,"Name":"setPhoneSettings","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\r\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\r\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\r\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\r\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\r\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\r\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\r\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\r\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\r\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\r\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\r\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\r\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\r\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\r\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\r\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\r\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\r\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\r\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\r\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\r\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\r\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\r\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\r\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\r\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\r\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\r\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\r\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\r\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\r\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\r\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\r\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\r\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\r\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n];\r\n//create the bit table to use with control\r\nvar value = '00000000000000000000';\r\nif (params.PhoneSettings.SMSWhiteList == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.PhoneSettings.SilentCallMode == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.PhoneSettings.ButtonHangUp == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.PhoneSettings.WhiteList == 'true') {\r\n value += '1';\r\n} else {\r\n value += '0';\r\n}\r\nif (params.PhoneSettings.AutoAnswer == 'true') {\r\n value += '1';\r\n if (params.PhoneSettings.AutoAnswerAfterRings) {\r\n value += ('0000000' + decimalToBinary(parseInt(params.PhoneSettings.AutoAnswerAfterRings))).slice(-7);\r\n } else {\r\n value += ('0000000');\r\n }\r\n} else {\r\n value += '00000000';\r\n}\r\nvalue = ('00000000' + binaryToHex(value)).slice(-8).toUpperCase();\r\nvalue = changeEndianness(value);\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '05';\r\nvar key = '33';\r\nvar messageBody = command + keyLength + key + value;\r\nvar checksum = byteStringToByteArray(messageBody);\r\nchecksum = crc16byte(checksum);\r\nchecksum = decimalToHex(checksum);\r\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\r\nchecksum = changeEndianness(checksum);\r\nvar prefix = 'AB10' + '0700' + checksum + sequenceID;\r\nvar data = prefix + messageBody;\r\nAddValue('data', data);\r\nAddValue('sequenceNumber', sequenceID);\r\nvar commandConfigs = {\r\n template: \"main\",\r\n configs: configs\r\n};\r\nmsg.push(JSON.stringify(commandConfigs));\r\n\r\nfunction AddValue(p1, p2) {\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n configs.push(cvpair);\r\n}\r\n\r\nfunction ascii_to_hexa(str) {\r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('')\r\n}\r\n\r\nfunction crc16byte(s) {\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF)\r\n}\r\n\r\nfunction byteStringToByteArray(str) {\r\n var splitStr = [];\r\n var j = 0;\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2);\r\n j++;\r\n }\r\n var bytes = [];\r\n var bytePos = 0;\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i];\r\n var b = parseInt(byteStr, 16);\r\n if (b < 256) {\r\n bytes[bytePos] = b;\r\n bytePos++;\r\n }\r\n }\r\n return bytes\r\n}\r\n\r\nfunction decimalToHex(str) {\r\n hexString = str.toString(16);\r\n return hexString\r\n}\r\n\r\nfunction decimalToBinary(x) {\r\n let bin = 0;\r\n let rem, i = 1,\r\n step = 1;\r\n while (x != 0) {\r\n rem = x % 2;\r\n x = parseInt(x / 2);\r\n bin = bin + rem * i;\r\n i = i * 10;\r\n }\r\n return bin\r\n}\r\n\r\nfunction binaryToHex(x) {\r\n var hexa = parseInt(x, 2).toString(16);\r\n return hexa\r\n}\r\n\r\nfunction changeEndianness(string) {\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('')\r\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":4,"ProtocolActionObjects":[],"Tags":[]},{"Id":4920,"Name":"setTiltAlertSettings","TemplateSMS":null,"Template":"<<data>>","AckTemplate":null,"Operation":"var configs = [];\nvar crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5,\n 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b,\n 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210,\n 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c,\n 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401,\n 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b,\n 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6,\n 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738,\n 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5,\n 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969,\n 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96,\n 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc,\n 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03,\n 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd,\n 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6,\n 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a,\n 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb,\n 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1,\n 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c,\n 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2,\n 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb,\n 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447,\n 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8,\n 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2,\n 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9,\n 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827,\n 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c,\n 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0,\n 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d,\n 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07,\n 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba,\n 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74,\n 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\n//create the bit table to use with control\nvar value = ''\nif (params.TiltAlert.EnableDisableTiltAlert == 'true') {\n value += '1';\n if (params.TiltAlert.Dial == 'true') {\n value += '1';\n } else {\n value += '0';\n }\n value += '000000';\n if (params.TiltAlert.Angle) {\n var angle = ('00000000' + decimalToBinary(parseInt(params.TiltAlert.Angle))).slice(-8);\n value += angle;\n }\n if (params.TiltAlert.Time) {\n var time = ('0000000000000000' + decimalToBinary(parseInt(params.TiltAlert.Time))).slice(-16);\n value += time;\n }\n} else {\n value = '0';\n}\nvalue = ('00000000' + binaryToHex(value)).slice(-8).toUpperCase();\nvalue = changeEndianness(value);\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\nvar command = '02';\nvar keyLength = '05';\nvar key = '55';\nvar messageBody = command + keyLength + key + value;\nvar checksum = byteStringToByteArray(messageBody);\nchecksum = crc16byte(checksum);\nchecksum = decimalToHex(checksum);\nchecksum = ('0000' + checksum).slice(-4).toUpperCase();\nchecksum = changeEndianness(checksum);\n//Hpw to calculate sequenceID\nvar prefix = 'AB10' + '0700' + checksum + sequenceID;\nvar data = prefix + messageBody;\nAddValue('data', data);\nAddValue('sequenceNumber', sequenceID); //add 20/07\nvar commandConfigs = {\n template: \"main\",\n configs: configs\n};\nmsg.push(JSON.stringify(commandConfigs));\n\nfunction AddValue(p1, p2) {\n var cvpair = {\n code: p1,\n value: p2\n };\n configs.push(cvpair);\n}\n\nfunction ascii_to_hexa(str) {\n var arr1 = [];\n for (var n = 0, l = str.length; n < l; n++) {\n var hex = Number(str.charCodeAt(n)).toString(16);\n arr1.push(hex);\n }\n return arr1.join('');\n}\n\nfunction crc16byte(s) {\n var crc = 0x0000;\n var j, i;\n for (i = 0; i < s.length; i++) {\n c = s[i];\n if (c > 255) {\n throw new RangeError();\n }\n j = (c ^ (crc >> 8)) & 0xFF;\n crc = crcTable[j] ^ (crc << 8);\n }\n return ((crc ^ 0) & 0xFFFF);\n}\n\nfunction byteStringToByteArray(str) {\n var splitStr = []\n var j = 0\n for (let i = 0; i < str.length; i += 2) {\n splitStr[j] = str.substring(i, i + 2)\n j++\n }\n var bytes = []\n var bytePos = 0\n for (let i = 0; i < splitStr.length; i++) {\n var byteStr = splitStr[i]\n var b = parseInt(byteStr, 16)\n if (b < 256) {\n bytes[bytePos] = b\n bytePos++\n }\n }\n return bytes\n}\n\nfunction decimalToHex(str) {\n hexString = str.toString(16);\n return hexString\n}\n\nfunction decimalToBinary(x) {\n let bin = 0;\n let rem, i = 1,\n step = 1;\n while (x != 0) {\n rem = x % 2;\n x = parseInt(x / 2);\n bin = bin + rem * i;\n i = i * 10;\n }\n return bin\n}\n\nfunction binaryToHex(x) {\n var hexa = parseInt(x, 2).toString(16);\n return hexa\n}\n\nfunction changeEndianness(string) {\n const result = [];\n let len = string.length - 2;\n while (len >= 0) {\n result.push(string.substr(len, 2));\n len -= 2;\n }\n return result.join('');\n}","CommandToUpdate":null,"Parent":null,"AvoidResending":false,"FollowParentSentType":false,"SendingType":0,"HasAck":true,"HexString":true,"Order":null,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]}],"Operations":[{"Id":314,"Name":"OnUpdateProtocol_CareWatch","Operation":"/*\r\nlet configsToUpdate = [];\r\nif (configs.HeartRateMonitor.EnableDisableHeartRateMonitor === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.HeartRateMonitor.EnableDisableHeartRateMonitor,\r\n 'value': 'false'\r\n });\r\n}\r\nif (configs.HeartRateMonitor.HeartRateDetectingInterval === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.HeartRateMonitor.HeartRateDetectingInterval,\r\n 'value': '10'\r\n });\r\n}\r\nif (configs.StepCounting.EnableDisableStepCounting === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.StepCounting.EnableDisableStepCounting,\r\n 'value': 'false'\r\n });\r\n}\r\nif (configs.StepCounting.StepCountingInterval === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.StepCounting.StepCountingInterval,\r\n 'value': '10'\r\n });\r\n}\r\nif (configs.DeviceVersion.DeviceVersion === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.DeviceVersion.DeviceVersion,\r\n 'value': '1'\r\n });\r\n}\r\nif (configs.NoActivity.EnableDisableNoActivity === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.NoActivity.EnableDisableNoActivity,\r\n 'value': 'false'\r\n });\r\n}\r\nif (configs.NoActivity.NoActivity === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.NoActivity.NoActivity,\r\n 'value': '3600'\r\n });\r\n}\r\nif (configs.VoicePrompt.Activity === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.Activity,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.AlarmCancel === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.AlarmCancel,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.AlarmComplete === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.AlarmComplete,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.BaseLocation === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.BaseLocation,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.Battery === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.Battery,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.Beep === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.Beep,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.BLE === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.BLE,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.Call1 === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.Call1,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.Call2 === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.Call2,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.Call3 === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.Call3,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.Call4 === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.Call4,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.Call5 === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.Call5,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.Call6 === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.Call6,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.Call7 === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.Call7,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.Call8 === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.Call8,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.Call9 === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.Call9,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.Call10 === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.Call10,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.CallDisconnected === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.CallDisconnected,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.CallError === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.CallError,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.CallHang === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.CallHang,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.Charging === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.Charging,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.Click === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.Click,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.Fall === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.Fall,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.Find === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.Find,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.Motion === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.Motion,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.NoMotion === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.NoMotion,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.SOS === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.SOS,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.Tilt === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.Tilt,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.TiltCancel === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.TiltCancel,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.VoicePrompt.Time === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.VoicePrompt.Time,\r\n 'value': 'true'\r\n });\r\n}\r\nif (configs.EnableControl.Step === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.EnableControl.Step,\r\n 'value': 'false'\r\n });\r\n}\r\nif (configs.SystemLanguage.Language === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.SystemLanguage.Language,\r\n 'value': 'en-US'\r\n });\r\n}\r\nif (configs.WelfareCheck.EnableDisableWelfareCheck === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.WelfareCheck.EnableDisableWelfareCheck,\r\n 'value': 'false'\r\n });\r\n}\r\nif (configs.WelfareCheck.CheckTime === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.WelfareCheck.CheckTime,\r\n 'value': '60'\r\n });\r\n}\r\nif (configs.WelfareCheck.WarningTime === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.WelfareCheck.WarningTime,\r\n 'value': '10'\r\n });\r\n}\r\nif (configs.WelfareCheck.DialWarningTime === \"\") {\r\n configsToUpdate.push({\r\n 'code': configIds.WelfareCheck.DialWarningTime,\r\n 'value': 'false'\r\n });\r\n}\r\nvar msg = {\r\n 'configsToUpdate': configsToUpdate\r\n};\r\nconsole.log(msg); */","Type":1,"ProtocolActionObjects":[]},{"Id":313,"Name":"Access TEC Roam","Operation":"function execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, localTesting) {\r\n ///////////////////////////////////////////////////////////////////////////////\r\n //\r\n // Roam protocol - please see variables and typical values in order below\r\n // TECRoam-CYC;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;SIGNAL=<<signal_strength>>;WM=<<work_mode>>;GENERAL=<<general>>\r\n // TECRoam-CYC;861629050193550;STATUS=WIFISource,CellTower;TIME=1673950279;BATP=84;LGPS=undefined;LWIF=-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369;LLBS=214,1,13,768,38529798;LBEACON=undefined;BLE=undefined;GENERAL=statusDevice:WIFISource,CellTower,battery:84,cellNetworkSignal:14,workMode:6,wifiTowers:-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369,214,1,13,768,38529798,;\",\r\n //\r\n // Author: Joe Bloggs\r\n // Created: 01/01/0000\r\n // Last modified: 12/04/2024\r\n //\r\n ///////////////////////////////////////////////////////////////////////////////\r\n if (typeof localTesting === \"undefined\") {\r\n var localTesting = \"False\";\r\n }\r\n const crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,\r\n 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,\r\n 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\r\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,\r\n 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,\r\n 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\r\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,\r\n 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,\r\n 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\r\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,\r\n 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,\r\n 0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\r\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,\r\n 0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,\r\n 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\r\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,\r\n 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,\r\n 0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\r\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,\r\n 0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,\r\n 0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\r\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,\r\n 0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,\r\n 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\r\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,\r\n 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,\r\n 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\r\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,\r\n 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,\r\n 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\r\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,\r\n 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\r\n ];\r\n var codeValues = [];\r\n AddValue(codeValues, 'protocol_template', 'Roam');\r\n AddValue(codeValues, 'product', serverParams.ProductName);\r\n var dataToReceiver = [];\r\n var configsToAck = [];\r\n var configsToUpdate = [];\r\n var configsToSend = [];\r\n if (globalTemplate == \"True\") {\r\n if (raw.startsWith('esendex')) {\r\n AddValue(codeValues, 'rawMsg', raw);\r\n //general SMS message\r\n messageForReceiver = (`Roam-SMS;${serverParams.Imei};${raw}`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n return;\r\n }\r\n AddValue(codeValues, 'raw', raw);\r\n AddValue(codeValues, 'rawMsg', rawFromBytes);\r\n var event_time, location_time, location_accuracy, speed, fix_state, latitude, longitude;\r\n var homeBeacon = '';\r\n var homeWiFi = '';\r\n var contacts = '';\r\n var gps_data = '';\r\n var wifi_data = '';\r\n var status_data = '';\r\n var lbs_data = '';\r\n var beacon_data = '';\r\n var ble_data = '';\r\n var smart_data = '';\r\n //parse header & properties\r\n var message = rawFromBytes;\r\n var properties = message.substring(2, 4);\r\n var lengthLittleEndian = message.substring(4, 8);\r\n var total_length = lengthLittleEndian.substring(2, 4) + lengthLittleEndian.substring(0, 2);\r\n total_length = 2 * hexToDecimal(total_length.substring(0, 4));\r\n var messageForReceiver;\r\n var sequenceID = message.substring(12, 16);\r\n var command = message.substring(16, 18);\r\n var index = 18;\r\n var prefix = 'AB' + '00';\r\n var lengthAck = 0;\r\n var ack = '';\r\n var needsAck = false;\r\n var hasConfigs = false;\r\n var general = '';\r\n var timestamp = '';\r\n var info = '';\r\n var customID = '';\r\n latitude = 0;\r\n longitude = 0;\r\n location_accuracy = 0; // GPS location adds the accuracy\r\n location_time = event_time = '';\r\n speed = 0.0;\r\n var location_type = '0';\r\n //var gen_location = '0'; \r\n var i; // general loop counter\r\n var battery_percentage = '';\r\n var cellNetworkSignal = '';\r\n var workMode = '';\r\n //mask bitwise (properties should be '10')\r\n if ((parseInt(properties) & 8) == 8) { // 22/7 change ((parseInt(properties) & 16) == 16)\r\n needsAck = true;\r\n }\r\n // Loop to decode multi-ACK msg\r\n if (message.includes('AB00030008C7')) {\r\n const multiack = message.split('AB00');\r\n for (let i = 1; i < multiack.length; i++) {\r\n message = 'AB00' + multiack[i];\r\n debug(message);\r\n decoder(message);\r\n } // FOR multiACK\r\n } else decoder(message); // IF multiACK\r\n } else if (oystaTemplate == 'True') { // Oysta Template \r\n AddValue(codeValues, 'rawMsg', raw);\r\n if ((params.gps_data) && (params.gps_data !== '')) { // decode gps data if exists\r\n var gen_location = params.gps_data.split(',');\r\n var latitude = gen_location[0];\r\n var longitude = gen_location[1];\r\n var location_accuracy = gen_location[2];\r\n var speed = gen_location[3];\r\n var direction = gen_location[4];\r\n var altitude = gen_location[5];\r\n var satellites = gen_location[6];\r\n var mileage = gen_location[7];\r\n if (location_accuracy !== 0) {\r\n var fix_state = 1;\r\n } else {\r\n var fix_state = 0;\r\n }\r\n AddValue(codeValues, 'latitude', latitude);\r\n AddValue(codeValues, 'longitude', longitude);\r\n AddValue(codeValues, 'speed', speed);\r\n AddValue(codeValues, 'direction', direction);\r\n AddValue(codeValues, 'altitude', altitude);\r\n AddValue(codeValues, 'location_accuracy', location_accuracy);\r\n AddValue(codeValues, 'mileage', mileage);\r\n AddValue(codeValues, 'satellites', satellites);\r\n AddValue(codeValues, 'fix_state', fix_state);\r\n if (location_time) {\r\n AddValue(codeValues, 'location_time', location_time);\r\n }\r\n }\r\n if ((params.lbs_data) && (params.lbs_data !== '')) { // decode lbs data if exists\r\n var variables = []; //Define array\r\n variables = params.lbs_data.split(',');\r\n var index = 2;\r\n for (i = 0; i < ((variables.length - 2) / 3); i++) { //loop for number of LBS sets on incoming data.\r\n if (variables[i] !== '0') { //Check if LBS data is present (device sends 0 if data not present)/actually exists.\r\n AddValue(codeValues, 'mcc', variables[0]);\r\n AddValue(codeValues, 'mnc', variables[1]);\r\n AddValue(codeValues, 'lac', variables[index]);\r\n AddValue(codeValues, 'signal_lbs', variables[index + 1]);\r\n AddValue(codeValues, 'cellid', variables[index + 2]);\r\n }\r\n index += 3;\r\n }\r\n if (location_time) {\r\n AddValue(codeValues, 'location_time', location_time);\r\n }\r\n }\r\n if ((params.wifi_data) && (params.wifi_data !== '')) { // decode wifi data if exists\r\n var bssid_array = params.wifi_data.split(',');\r\n var index = 0;\r\n for (let i = 0; i < (bssid_array.length / 2); i++) {\r\n if (bssid_array[index + 1] != '000000000000') { //Check if MAC address is not 000000000000 - seems to be the default MAC of the device itself\r\n AddValue(codeValues, 'bssid', bssid_array[index + 1]);\r\n AddValue(codeValues, 'signal_wifi', bssid_array[index]);\r\n }\r\n index += 2;\r\n }\r\n if (location_time) {\r\n AddValue(codeValues, 'location_time', location_time);\r\n }\r\n }\r\n // when Beacon is detected and it isn't flic BLE detected\r\n if (((params.beacon_data) && (params.beacon_data !== '')) && !((params.ble_data) && (params.ble_data !== ''))) {\r\n var gen_location = params.beacon_data.split(',');\r\n var latitude = gen_location[0];\r\n var longitude = gen_location[1];\r\n var mac = gen_location[2];\r\n var label = gen_location[3];\r\n AddValue(codeValues, 'latitude', latitude);\r\n AddValue(codeValues, 'longitude', longitude);\r\n //AddValue(codeValues,'location_accuracy', '3'); // para mostrar que si hay accuracy muestra como source GPS\r\n // AddValue(codeValues,'beacon_mac', mac);\r\n //AddValue(codeValues,'beacon_major', 0);\r\n //AddValue(codeValues,'beacon_minor', 0);\r\n //<<beacon_mac>>,<<beacon_major>>,<<beacon_minor>> \r\n if (mac) {\r\n AddValue(codeValues, 'beacon_mac', mac);\r\n var simpleQuery = [{\r\n 'code': 'Mac',\r\n 'value': mac,\r\n }];\r\n var simpleQueryLabel = {\r\n 'table': 'beacons',\r\n 'select': 'Name',\r\n 'query': simpleQuery\r\n };\r\n var labels = [];\r\n labels.push(JSON.stringify(simpleQueryLabel));\r\n AddValue(codeValues, 'oysta_labels', JSON.stringify(labels));\r\n }\r\n if (params.beacon_major) {\r\n AddValue(codeValues, 'beacon_major', params.beacon_major);\r\n } else {\r\n AddValue(codeValues, 'beacon_major', 0);\r\n }\r\n if (params.beacon_minor) {\r\n AddValue(codeValues, 'beacon_minor', params.beacon_minor);\r\n } else {\r\n AddValue(codeValues, 'beacon_minor', 0);\r\n }\r\n //AddValue(codeValues,'oysta_labels', label);\r\n //AddValue(codeValues,'oysta_value', mac);\r\n if (location_time) {\r\n AddValue(codeValues, 'location_time', location_time);\r\n }\r\n }\r\n if ((params.ble_data) && (params.ble_data !== '')) { // decode ble data if exists\r\n var gen_location = params.ble_data.split(',');\r\n var flag = gen_location[0];\r\n var batLevel = gen_location[1];\r\n var mac2 = gen_location[2];\r\n //var label = gen_location[3];\r\n AddValue(codeValues, 'flagBLE', flag);\r\n AddValue(codeValues, 'batBLE', batLevel);\r\n //AddValue(codeValues,'location_accuracy', '3'); // para mostrar que si hay accuracy muestra como source GPS\r\n // AddValue(codeValues,'beacon_mac', mac);\r\n //AddValue(codeValues,'beacon_major', 0);\r\n //AddValue(codeValues,'beacon_minor', 0);\r\n //<<beacon_mac>>,<<beacon_major>>,<<beacon_minor>> \r\n if (mac2) {\r\n AddValue(codeValues, 'beacon_mac', mac2);\r\n var simpleQuery2 = [{\r\n 'code': 'Mac',\r\n 'value': mac2,\r\n }];\r\n var simpleQueryLabel2 = {\r\n 'table': 'beacons',\r\n 'select': 'Name',\r\n 'query': simpleQuery2\r\n };\r\n var labels2 = [];\r\n labels2.push(JSON.stringify(simpleQueryLabel2));\r\n AddValue(codeValues, 'oysta_labels', JSON.stringify(labels2));\r\n }\r\n if (params.beacon_major) {\r\n AddValue(codeValues, 'beacon_major', params.beacon_major);\r\n } else {\r\n AddValue(codeValues, 'beacon_major', 0);\r\n }\r\n if (params.beacon_minor) {\r\n AddValue(codeValues, 'beacon_minor', params.beacon_minor);\r\n } else {\r\n AddValue(codeValues, 'beacon_minor', 0);\r\n }\r\n //AddValue(codeValues,'oysta_labels', label);\r\n //AddValue(codeValues,'oysta_value', mac);\r\n if (location_time) {\r\n AddValue(codeValues, 'location_time', location_time);\r\n }\r\n }\r\n /* meter mas tarde... \r\n if (params.smart_data !== 'undefined') {\r\n var gen_location = params.smart_data.split(',')\r\n var latitude = gen_location[0]\r\n var longitude = gen_location[1]\r\n var location_accuracy = gen_location[2]\r\n var altitude = gen_location[3]\r\n AddValue(codeValues,'latitude', latitude);\r\n AddValue(codeValues,'longitude', longitude);\r\n AddValue(codeValues,'altitude', altitude);\r\n AddValue(codeValues,'location_accuracy', location_accuracy);\r\n }\r\n */\r\n /*else if ((params.event_time) && (params.event_time == '')) {\r\n var event_time = moment.utc().unix();\r\n AddValue(codeValues,'event_time', event_time);\r\n } revisar mas adelante*/\r\n // to parse SMS info from the device\r\n switch (messageTypeLocalCode) {\r\n case 'COMM-SMS': // SMS message sent in\r\n if (params.data.startsWith('Device location request')) {\r\n configsToAck.push(configIds.Controls.RealTimeLocate);\r\n } else if (params.data.startsWith('Set IP ok')) {\r\n configsToAck.push(configIds.Controls.GetCurrentConfig);\r\n } else if (params.data.startsWith('IMEI:')) {\r\n configsToAck.push(configIds.Controls.GetFirmwareVersion);\r\n } else if (params.data.startsWith('Set IP ok')) {\r\n configsToAck.push(configIds.Controls.ClearBufferedMessages);\r\n } else if (params.data.startsWith('flush ok')) {\r\n configsToAck.push(configIds.Controls.GetCurrentConfig);\r\n } else if (params.data.startsWith('Set Roam-')) {\r\n configsToAck.push(configIds.SMSPrefix.SMSPrefix);\r\n } else if (params.data.startsWith('set live tracking')) {\r\n configsToAck.push(configIds.Controls.Trace);\r\n } else if (params.data.startsWith('reboot ok')) {\r\n configsToAck.push(configIds.Controls.Reboot);\r\n } else if (params.data.startsWith('GPS')) {\r\n configsToAck.push(configIds.Controls.RealTimeLocate);\r\n var i1 = params.data.search('Now:')\r\n var i2 = params.data.search('Loc Time:')\r\n var i3 = params.data.search('Speed:')\r\n var i4 = params.data.search('Altitude:')\r\n var i5 = params.data.search('Battery:')\r\n var i6 = params.data.search('google')\r\n var eventTime = params.data.substring(i2 + 9, i3)\r\n var Speed = params.data.substring(i3 + 6, i4 - 3)\r\n if (params.data.substring(i4 - 3, i4) == 'mph') {\r\n Speed = Speed * 0.44704\r\n } else if (params.data.substring(i4 - 3, i4) == 'kph') {\r\n Speed = Speed / 3.6\r\n }\r\n var latlong = params.data.substring(i6 + 18)\r\n location_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\r\n messageForReceiver = (`Roam-RTL;${params.imei};${location_time};${location_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\r\n //event_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\r\n //messageForReceiver = (`CARE-RTL;${params.imei};${event_time};${event_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n }\r\n break;\r\n case 'ACK-FIRM-SMS': // Firmware info sent by SMS\r\n //var i1 = params.data.search('IMEI:')\r\n //var i2 = params.data.search('GSM signal quality:')\r\n var i3 = params.data.search('Software version:')\r\n var sub = params.data.substring(i3 + 17, params.data.length)\r\n var i4 = sub.search('version:');\r\n var fwVersion = sub.substring(i4, sub.length);\r\n imei = serverParams.Imei;\r\n AddValue(codeValues, \"imei\", imei);\r\n AddValue(codeValues, \"fwVersion\", fwVersion);\r\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\r\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\r\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\r\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\r\n break;\r\n case 'ACK-FALLSENS-SMS': // Fall sensibility info sent by SMS\r\n var i1 = params.data.search('Fall alarm:');\r\n var sensibility = params.data.substring(i1 + 11, i1 + 14);\r\n var i2 = params.data.search('level:');\r\n sensibility = sensibility + ', ' + params.data.substring(i2 + 6, i2 + 7);\r\n imei = serverParams.Imei;\r\n AddValue(codeValues, \"imei\", imei);\r\n AddValue(codeValues, \"sensibility\", sensibility);\r\n AddValue(configsToUpdate, configIds.ReadEmergencySettings.FallSensitivity, sensibility);\r\n configsToAck.push(configIds.ReadEmergencySettings.FallSensitivity);\r\n break;\r\n case 'ACK-BEAC-SMS': // Beacon list info sent by SMS\r\n var i1 = raw.search('1,');\r\n //var i2 = params.data.search('2,');\r\n //var homeBeacon = params.data.substring(i1+2, i2);\r\n imei = serverParams.Imei;\r\n AddValue(codeValues, \"imei\", imei);\r\n AddValue(codeValues, \"homeBeacon\", raw.substring(i1, raw.length));\r\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.HomeBeacon, raw.substring(i1, raw.length));\r\n configsToAck.push(configIds.ReadAdditionalSettings.HomeBeacon);\r\n break;\r\n case 'ACK-CONTAC-SMS': // Contact list info sent by SMS\r\n imei = serverParams.Imei;\r\n AddValue(codeValues, \"imei\", imei);\r\n var i1 = raw.search('A1:');\r\n if (raw.includes('A2:')) {\r\n var i2 = raw.search('A2:');\r\n } else {\r\n var i2 = raw.search('A10:');\r\n }\r\n var tel = raw.substring(i1 + 4, i2);\r\n AddValue(codeValues, \"EmergencyNumber\", tel);\r\n AddValue(configsToUpdate, configIds.ReadAlertSettings.EmergencyNumber, tel);\r\n configsToAck.push(configIds.ReadAlertSettings.EmergencyNumber);\r\n i2 = raw.search('A10:')\r\n tel = raw.substring(i2 + 4, raw.length);\r\n AddValue(codeValues, \"SMSGateway\", tel);\r\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.SMSGateway, tel);\r\n configsToAck.push(configIds.ReadCommunicationSettings.SMSGateway);\r\n AddValue(codeValues, \"ApprovedContacts\", raw.substring(i1, raw.length));\r\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.ApprovedContacts, raw.substring(i1, raw.length));\r\n configsToAck.push(configIds.ReadAdditionalSettings.ApprovedContacts);\r\n break;\r\n case 'ACK-SERV-SMS': // APN and Server info sent by SMS\r\n imei = serverParams.Imei;\r\n AddValue(codeValues, \"imei\", imei);\r\n var i1 = params.data.search('APN:')\r\n var i2 = params.data.search('IP:')\r\n var i3 = params.data.search('Move')\r\n var apn = params.data.substring(i1 + 4, i2);\r\n AddValue(codeValues, \"apn\", apn);\r\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.APN, apn);\r\n configsToAck.push(configIds.ReadCommunicationSettings.APN);\r\n var serverDetails = params.data.substring(i2 + 3, i3);\r\n AddValue(codeValues, \"server\", serverDetails);\r\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.Server, serverDetails);\r\n configsToAck.push(configIds.ReadCommunicationSettings.Server);\r\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n break;\r\n case 'RTL-GPS': // SRTL sent in via SMS with no pre-code\r\n var i3 = params.data.search('Speed:')\r\n var i4 = params.data.search('Altitude:')\r\n var i5 = params.data.search('Battery:')\r\n var i6 = params.data.search('google')\r\n var eventTime = params.data.substring(0, i3)\r\n var Speed = params.data.substring(i3 + 6, i4 - 3)\r\n if (params.data.substring(i4 - 3, i4) == 'mph') {\r\n Speed = Speed * 0.44704\r\n } else if (params.data.substring(i4 - 3, i4) == 'kph') {\r\n Speed = Speed / 3.6\r\n }\r\n var latlong = params.data.substring(i6 + 18)\r\n location_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\r\n messageForReceiver = (`Roam-RTL;${params.imei};${location_time};${location_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n break;\r\n }\r\n if (!params.event_time && !event_time) { // if params.event_time undefined - set it to now. \r\n var event_time = moment.utc().unix();\r\n AddValue(codeValues, 'event_time', event_time);\r\n }\r\n // if (!params.location_time && !location_time) { // if params.location_time undefined - set it to now. \r\n // var location_time = moment.utc().unix();\r\n // AddValue(codeValues, 'location_time', location_time);\r\n //}\r\n }\r\n var dataToReceiver = {\r\n 'values': codeValues\r\n };\r\n if (configsToAck.length > 0) {\r\n dataToReceiver.configsToAck = configsToAck\r\n };\r\n if (configsToUpdate.length > 0) {\r\n dataToReceiver.configsToUpdate = configsToUpdate\r\n };\r\n if (configsToSend.length > 0) {\r\n dataToReceiver.configsToSend = configsToSend\r\n };\r\n console.log(dataToReceiver);\r\n //}\r\n //return {\r\n // 'output': dataToReceiver\r\n //}\r\n // end of main operation\r\n // define functions used in operation\r\n function AddValue(codeValueArray, p1, p2) { // push code value pair into array\r\n var cvpair = {\r\n code: p1,\r\n value: p2\r\n };\r\n codeValueArray.push(cvpair);\r\n }\r\n\r\n function decoder(str) { // decode rawdata\r\n // CARE Decoder\r\n AddValue(codeValues, 'Message : ', str);\r\n var message = str;\r\n // need to check if checksum is correct for possible msg corruption 10/03/23\r\n var checksum = message.substring(8, 12);\r\n var messageBody = message.substring(16, message.length);\r\n debug('message =' + message);\r\n debug('checksum =' + checksum);\r\n debug('calculateCheckSum =' + calculateCheckSum(messageBody));\r\n if (calculateCheckSum(messageBody) == checksum) { // payload is valid\r\n debug(\"message has valid checksum\");\r\n var messageBody = command; // update value for the ACK\r\n debug('command =' + command);\r\n if (command == '01') {\r\n while (index < total_length + 16) {\r\n // gen_location = '0'; //cambiado 30/09\r\n var keyLengthHex = message.substring(index, index = index + 2);\r\n var keyLength = 2 * hexToDecimal(keyLengthHex);\r\n var key = message.substring(index, index = index + 2);\r\n var value = message.substring(index, index = index + keyLength - 2);\r\n debug('key = ' + key);\r\n debug('value = ' + value);\r\n switch (key) {\r\n //Device ID\r\n case '01':\r\n var imei = hex_to_ascii(value);\r\n break;\r\n //Alarm code\r\n case '02':\r\n var alarm = 'CYC';\r\n var alarmCode = value.substring(0, 8);\r\n alarmCode = changeEndianness(alarmCode);\r\n var timestampHex = value.substring(8, 16);\r\n timestampHex = changeEndianness(timestampHex);\r\n timestamp = hexToDecimal(timestampHex);\r\n event_time = timestamp;\r\n var alarmCodeInt = hexToDecimal(alarmCode);\r\n var alarmCodeExt = value.substring(16, 24);\r\n alarmCodeExt = changeEndianness(alarmCodeExt);\r\n var alarmCodeExtInt = hexToDecimal(alarmCodeExt);\r\n //Extended Alerts\r\n // Fall off\r\n if ((alarmCodeExtInt & 1) == 1) {\r\n var alarm = 'ALF-C';\r\n }\r\n // Welfare Check-out\r\n else if ((alarmCodeExtInt & 2) == 2) {\r\n var alarm = 'ALA-C';\r\n }\r\n // Standard Alerts\r\n //Battery low\r\n else if ((alarmCodeInt & 1) == 1) {\r\n var alarm = 'BATL';\r\n }\r\n //Overspeed\r\n else if ((alarmCodeInt & 2) == 2) {\r\n var alarm = 'ALSP';\r\n }\r\n //Fall\r\n else if ((alarmCodeInt & 4) == 4) {\r\n var alarm = 'ALF';\r\n }\r\n //Tilt\r\n else if ((alarmCodeInt & 8) == 8) {\r\n var alarm = 'Tilt';\r\n } else if ((alarmCodeInt & 16) == 16) {\r\n if ((alarmCodeInt & 16777216) == 16777216) {\r\n var alarm = 'Geo1-IN';\r\n } else {\r\n var alarm = 'Geo1-OUT';\r\n }\r\n } else if ((alarmCodeInt & 32) == 32) {\r\n if ((alarmCodeInt & 33554432) == 33554432) {\r\n var alarm = 'Geo2-IN';\r\n } else {\r\n var alarm = 'Geo2-OUT';\r\n }\r\n } else if ((alarmCodeInt & 64) == 64) {\r\n if ((alarmCodeInt & 67108864) == 67108864) {\r\n var alarm = 'Geo3-IN';\r\n } else {\r\n var alarm = 'Geo3-OUT';\r\n }\r\n } else if ((alarmCodeInt & 128) == 128) {\r\n if ((alarmCodeInt & 134217728) == 134217728) {\r\n var alarm = 'Geo4-IN';\r\n } else {\r\n var alarm = 'Geo4-OUT';\r\n }\r\n }\r\n //Power Off\r\n else if ((alarmCodeInt & 256) == 256) {\r\n var alarm = 'PWRF';\r\n }\r\n //Power On\r\n else if ((alarmCodeInt & 512) == 512) {\r\n var alarm = 'PWRN';\r\n }\r\n //Motion\r\n else if ((alarmCodeInt & 1024) == 1024) {\r\n var alarm = 'ALMOV';\r\n }\r\n //No Motion\r\n else if ((alarmCodeInt & 2048) == 2048) {\r\n var alarm = 'ALNM';\r\n }\r\n //SOS\r\n else if ((alarmCodeInt & 4096) == 4096) {\r\n var alarm = 'ALSOS';\r\n } else if ((alarmCodeInt & 8192) == 8192) {\r\n var alarm = 'Side1';\r\n } else if ((alarmCodeInt & 16384) == 16384) {\r\n var alarm = 'Side2';\r\n }\r\n //Battery charging\r\n else if ((alarmCodeInt & 32768) == 32768) {\r\n var alarm = 'BATCN';\r\n }\r\n //Battery no charging\r\n else if ((alarmCodeInt & 65536) == 65536) {\r\n var alarm = 'BATCF';\r\n }\r\n //SOS Ending\r\n // Temporary Commented until we know exactly how it works. 22/09/2022\r\n else if ((alarmCodeInt & 131072) == 131072) {\r\n var alarm = 'SOSEnding';\r\n info = 'Alarm Finished';\r\n }\r\n //Amber Alert EC03 only\r\n else if ((alarmCodeInt & 262144) == 262144) {\r\n var alarm = 'ALAO';\r\n }\r\n // welfare Alert check-in ALA-O\r\n else if ((alarmCodeInt & 524288) == 524288) {\r\n var alarm = 'ALA-O';\r\n }\r\n // Amber alert Ending ALA-C\r\n else if ((alarmCodeInt & 1048576) == 1048576) {\r\n var alarm = 'ALA-C';\r\n }\r\n // Amber alert Ending ALA-C\r\n //else if ((alarmCodeInt & 1048576) == 1048576) {\r\n // var alarm = 'ALA-C';\r\n //}\r\n // Fall-Down Alert ending\r\n else if ((alarmCodeInt & 2097152) == 2097152) {\r\n var alarm = 'ALF-C';\r\n }\r\n // welfare Alert Ending ALA\r\n else if ((alarmCodeInt & 4194304) == 4194304) {\r\n var alarm = 'ALA';\r\n }\r\n // Beacon absent Alert 11/10/22. Need to be added in msg types\r\n //else if ((alarmCodeInt & 16777216) == 16777216) {\r\n // var alarm = 'BEA';\r\n //}\r\n general += 'alarm:' + alarm + ',';\r\n break;\r\n //Custom ID\r\n case '03':\r\n // in value is customID.... '06' for Watch Care\r\n // if ((imei != '860470063029395') && (imei != '860470063035947')) {\r\n //update customID to check if belongs to this type of device\r\n customID = value;\r\n if (value != '04') {\r\n AddValue(codeValues, \"error\", \"customID not belongs to this protocol\");\r\n //AddValue(codeValues, \"rawFromBytes\", rawFromBytes);\r\n AddValue(codeValues, \"customID\", value);\r\n return\r\n } else {\r\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\r\n sendMessageToLocalhostNoWait(\"Eview-ASSOCIATE;\" + imei + \";\" + serverParams.Guid + \";\");\r\n }\r\n AddValue(codeValues, \"customID\", value);\r\n general += 'customID:' + value + ',';\r\n break;\r\n }\r\n //Historical Data Completed\r\n case '10': // indica q se han terminado de enviar todos los datos historicos.\r\n var histData = true;\r\n break;\r\n //GPS location\r\n case '20':\r\n location_type = 'GPS';\r\n var latitudeHex = value.substring(0, 8);\r\n var longitudeHex = value.substring(8, 16);\r\n var speedHex = value.substring(16, 20);\r\n var directionHex = value.substring(20, 24);\r\n var altitudeHex = value.substring(24, 28);\r\n var location_accuracyHex = value.substring(28, 32);\r\n var mileageHex = value.substring(32, 40);\r\n var satellitesHex = value.substring(40, 42);\r\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\r\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\r\n speed = ((hexToDecimal(changeEndianness(speedHex))) / 3.6).toFixed(2); //date 14-02-2023 in m/s\r\n var direction = hexToDecimal(changeEndianness(directionHex));\r\n var altitude = hexToDecimal(changeEndianness(altitudeHex)); // in meters\r\n //location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex)) * 5;\r\n // Range: 0.5 to 99.9 \r\n location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex));\r\n //var mileage = hexToDecimal(changeEndianness(mileageHex)) this is in km/h we need m/s\r\n var mileage = hexToDecimal(changeEndianness(mileageHex)); // in meters date 14-02-2023\r\n var satellites = hexToDecimal(satellitesHex);\r\n // location_time = timestamp;\r\n //<<latitude>>,<<longitude>>,<<speed>>,<<altitude>>,<<location_time>>\r\n gps_data = `${latitude},${longitude},${location_accuracy},${speed},${direction},${altitude},${satellites},${mileage}`;\r\n general += 'gps location (lat):' + latitude + ', (long):' + longitude + ',';\r\n break;\r\n //WIFI Towers\r\n case '22':\r\n location_type = 'WIFI';\r\n var numWifi = Math.round((hexToDecimal(keyLengthHex) - 1) / 7);\r\n //location_time = timestamp;\r\n var wifiTowers = value;\r\n general += 'wifiTowers:';\r\n var indexWifi = 0;\r\n var bssid_array = [];\r\n wifi_data = '';\r\n for (let i = 0; i < numWifi; i++) {\r\n wifi_data += hexToDecimalSigned(wifiTowers.substring(indexWifi, indexWifi + 2)) + ',' + wifiTowers.substring(indexWifi + 2, indexWifi + 14) + ',';\r\n indexWifi += 14;\r\n }\r\n wifi_data = wifi_data.slice(0, -1);\r\n general += wifi_data;\r\n break;\r\n //BLE Location Added 10/10/22\r\n case '23':\r\n location_type = 'BLE';\r\n var mac = value.substring(0, 12);\r\n var latitudeHex = value.substring(12, 20);\r\n var longitudeHex = value.substring(20, 28);\r\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\r\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\r\n var address = hex_to_ascii(value.substring(28, value.length));\r\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\r\n // add : format in MAC\r\n mac = mac.match(/.{1,2}/g).join(':');\r\n // location_time = timestamp;\r\n ble_data = `${latitude},${longitude},${mac},${address}`;\r\n general += 'BLE location (lat):' + latitude + ', (long):' + longitude + ',';\r\n break;\r\n //General Data , status_data\r\n case '24':\r\n //var general = 'true'\r\n if (customID != '04') {\r\n AddValue(codeValues, \"error\", \"customID not belongs to this protocol\");\r\n //AddValue(codeValues, \"rawFromBytes\", rawFromBytes);\r\n AddValue(codeValues, \"customID\", value);\r\n return\r\n }\r\n if (alarmCode) {\r\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\r\n } else if (statusDevice) {\r\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\r\n }\r\n //else {\r\n // messageForReceiver = (`CareWatch-CYC;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};`);\r\n //}\r\n // reset variables\r\n //alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\r\n var timestampHex = value.substring(0, 8);\r\n timestampHex = changeEndianness(timestampHex);\r\n timestamp = hexToDecimal(timestampHex);\r\n location_time = timestamp;\r\n // HardCode to fix possible issue in protocol\r\n // event_time = timestamp; \r\n event_time = moment.utc().unix();\r\n // end of hard code\r\n var statusHex = changeEndianness(value.substring(8, 16));\r\n var statusInt = hexToDecimal(statusHex);\r\n var statusDevice = '';\r\n if ((statusInt & 1) == 1) {\r\n statusDevice += 'GPS,';\r\n }\r\n if ((statusInt & 2) == 2) {\r\n statusDevice += 'WIFISource,';\r\n }\r\n if ((statusInt & 4) == 4) {\r\n statusDevice += 'CellTower,';\r\n }\r\n if ((statusInt & 8) == 8) {\r\n statusDevice += 'BLELocation,';\r\n }\r\n //params.BatteryStatus.BatteryStatus = '1';\r\n if ((statusInt & 16) == 16) {\r\n statusDevice += 'Charging,';\r\n // var alarm = 'BATCN';\r\n //configs.BatteryStatus.BatteryStatus = '1';\r\n /* if (configs.BatteryStatus.BatteryStatus !== '1') {\r\n hasConfigs = true;\r\n var batteryStatus = '1';\r\n var alarm = 'BATCN';\r\n let configsToUpdate = [];\r\n configsToUpdate.push({\r\n 'code': configIds.BatteryStatus.BatteryStatus,\r\n 'value': batteryStatus\r\n });\r\n }*/\r\n }\r\n if ((statusInt & 32) == 32) {\r\n statusDevice += 'FUllyCharged,';\r\n //var alarm = 'BATF';\r\n // configs.BatteryStatus.BatteryStatus = '3';\r\n /* if (configs.BatteryStatus.BatteryStatus !== '3') {\r\n hasConfigs = true;\r\n var batteryStatus = '3';\r\n var alarm = 'BATF';\r\n let configsToUpdate = [];\r\n configsToUpdate.push({\r\n 'code': configIds.BatteryStatus.BatteryStatus,\r\n 'value': batteryStatus\r\n });\r\n }*/\r\n }\r\n /* if (!((statusInt & 32) == 32) & !((statusInt & 16) == 16)) {\r\n statusDevice += 'Not Charging,';\r\n var alarm = 'BATCF';\r\n //configs.BatteryStatus.BatteryStatus = '2';\r\n if (configs.BatteryStatus.BatteryStatus !== '2') {\r\n var batteryStatus = '2';\r\n var alarm = 'BATCF';\r\n let configsToUpdate = [];\r\n configsToUpdate.push({\r\n 'code': configIds.BatteryStatus.BatteryStatus,\r\n 'value': batteryStatus\r\n });\r\n }\r\n }*/\r\n if ((statusInt & 64) == 64) {\r\n statusDevice += 'Reboot,';\r\n }\r\n if ((statusInt & 128) == 128) {\r\n statusDevice += 'HistoricalData,';\r\n }\r\n if ((statusInt & 256) == 256) {\r\n statusDevice += 'AGPSDataValid,';\r\n }\r\n if ((statusInt & 512) == 512) {\r\n statusDevice += 'Motion,';\r\n }\r\n if ((statusInt & 1024) == 1024) {\r\n statusDevice += 'SmartLocating,';\r\n }\r\n if ((statusInt & 2048) == 2048) { //isHome\r\n statusDevice += 'BeaconLocation,';\r\n }\r\n if ((statusInt & 4096) == 4096) {\r\n statusDevice += 'BLEConnected,';\r\n }\r\n if ((statusInt & 16384) == 16384) {\r\n statusDevice += 'HomeWiFi,';\r\n }\r\n statusDevice = statusDevice.slice(0, -1);\r\n status_data = statusDevice; //to oysta template\r\n //statusHex = (statusHex);\r\n statusHex = hex2bin(statusHex);\r\n statusHex = ('00000000000000000000000000000000' + statusHex).slice(-32);\r\n battery_percentage = parseInt(statusHex.substring(0, 8), 2);\r\n cellNetworkSignal = parseInt(statusHex.substring(8, 13), 2);\r\n workMode = parseInt(statusHex.substring(13, 16), 2);\r\n general += 'statusDevice:' + statusDevice + ',';\r\n if (battery_percentage) {\r\n general += 'battery:' + battery_percentage + ',';\r\n }\r\n if (cellNetworkSignal) {\r\n general += 'cellNetworkSignal:' + cellNetworkSignal + ',';\r\n }\r\n if (workMode) {\r\n general += 'workMode:' + workMode + ',';\r\n }\r\n //messageForReceiver = (`CareWatch-CYC;${imei};${i};${event_time};${battery_percentage}`);\r\n break;\r\n //Call Records\r\n case '25':\r\n //Needed?\r\n break;\r\n //BLE Location 2\r\n case '26':\r\n //I don't understand\r\n //messageBody = messageBody + keyLengthHex + key + value;\r\n break;\r\n //Smart Location\r\n case '27':\r\n location_type = 'SMART';\r\n var latitudeHex = value.substring(0, 8);\r\n var longitudeHex = value.substring(8, 16);\r\n var location_accuracyHex = value.substring(16, 20);\r\n var altitudeHex = value.substring(20, 24);\r\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\r\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\r\n var altitude = hexToDecimal(changeEndianness(altitudeHex));\r\n //location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex)) * 5;\r\n //04/08/2022 se quita el multiplicador por 5 pq ya viene el valor en metros\r\n location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex));\r\n //location_time = timestamp;\r\n smart_data = `${latitude},${longitude},${location_accuracy},${altitude}`;\r\n general += 'smart location (lat):' + latitude + ', (long):' + longitude + ',';\r\n break;\r\n //Beacon Location Added 11/10/22\r\n case '28':\r\n location_type = 'BEACON';\r\n // var alarm = 'EBZI';\r\n var latitudeHex = '00';\r\n var longitudeHex = '00';\r\n var descr = 'empty';\r\n var flag = hexToDecimal(value.substring(0, 1));\r\n var beacId = hexToDecimal(value.substring(1, 2));\r\n // msg includes descrip\r\n if ((flag & 4) == 4) {\r\n descr = hex_to_ascii(value.substring(18, value.length));\r\n }\r\n // msg includes lat/lon\r\n if ((flag & 8) == 8) {\r\n latitudeHex = value.substring(18, 26);\r\n longitudeHex = value.substring(26, 34);\r\n }\r\n // msg includes lat/lon and description\r\n if ((flag & 12) == 12) {\r\n latitudeHex = value.substring(18, 26);\r\n longitudeHex = value.substring(26, 34);\r\n descr = hex_to_ascii(value.substring(34, value.length));\r\n }\r\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\r\n // add : format in MAC\r\n mac = mac.match(/.{1,2}/g).join(':');\r\n var rssiHex = value.substring(14, 16);\r\n var rssi1Hex = value.substring(16, 18);\r\n rssi = hexToDecimalSigned(changeEndianness(rssiHex));\r\n rssi1 = hexToDecimalSigned(changeEndianness(rssi1Hex));\r\n // var latitudeHex = value.substring(18, 26);\r\n // var longitudeHex = value.substring(26, 34);\r\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\r\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\r\n //location_time = timestamp;\r\n beacon_data = `${latitude},${longitude},${mac},${descr}`;\r\n general += 'BEACON location (lat):' + latitude + ', (long):' + longitude + ', (mac):' + mac + ', (description):' + descr + ', (rssi):' + rssi + ', (listIndex):' + beacId + ',';\r\n break;\r\n // Beacon V2\r\n case '2C':\r\n location_type = 'BEACON';\r\n // var alarm = 'EBZI';\r\n var latitudeHex = '00';\r\n var longitudeHex = '00';\r\n var descr = 'empty';\r\n var flag = hexToDecimal(value.substring(0, 1));\r\n var beacId = hexToDecimal(value.substring(1, 2));\r\n // msg includes descrip\r\n if ((flag & 4) == 4) {\r\n let desc_leng = hexToDecimal(value.substring(20, 22));\r\n descr = hex_to_ascii(value.substring(22, 22 + (2 * desc_leng)));\r\n //descr = hex_to_ascii(value.substring(18, value.length));\r\n }\r\n // msg includes lat/lon\r\n if ((flag & 8) == 8) {\r\n latitudeHex = value.substring(18, 26);\r\n longitudeHex = value.substring(26, 34);\r\n }\r\n // msg includes lat/lon and description\r\n if ((flag & 12) == 12) {\r\n latitudeHex = value.substring(20, 28);\r\n longitudeHex = value.substring(28, 36);\r\n let desc_leng = hexToDecimal(value.substring(36, 38));\r\n descr = hex_to_ascii(value.substring(38, 38 + (2 * desc_leng)));\r\n }\r\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\r\n // add : format in MAC\r\n mac = mac.match(/.{1,2}/g).join(':');\r\n var rssiHex = value.substring(14, 16);\r\n var rssi1Hex = value.substring(16, 18);\r\n rssi = hexToDecimalSigned(changeEndianness(rssiHex));\r\n rssi1 = hexToDecimalSigned(changeEndianness(rssi1Hex));\r\n var battery_beacon = hexToDecimal(value.substring(18, 20));\r\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\r\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\r\n //location_time = timestamp;\r\n beacon_data = `${latitude},${longitude},${mac},${descr}`;\r\n general += 'BEACON location (lat):' + latitude + ', (long):' + longitude + ', (mac):' + mac + ', (description):' + descr + ', (rssi):' + rssi + ', (battery):' + battery_beacon + ', (listIndex):' + beacId + ',';\r\n break;\r\n //Cell Towers Note\r\n case '29':\r\n location_type = 'LBS';\r\n lbs_data = '';\r\n var mccHex = changeEndianness(value.substring(0, 4));\r\n var mncHex = value.substring(4, 6);\r\n var mcc = hexToDecimal(mccHex);\r\n lbs_data += mcc + ',';\r\n var mnc = hexToDecimal(mncHex);\r\n lbs_data += mnc + ',';\r\n var indexLbs = 6;\r\n var numTowers = (hexToDecimal(keyLengthHex) - 4) / 7;\r\n for (let i = 0; i < numTowers; i++) {\r\n var rxlHex = changeEndianness(value.substring(indexLbs, indexLbs + 2));\r\n var rxl = hexToDecimal(rxlHex);\r\n var lacHex = changeEndianness(value.substring(indexLbs + 2, indexLbs + 6));\r\n var lac = hexToDecimal(lacHex);\r\n var cellTowers = hexToDecimal(changeEndianness(value.substring(indexLbs + 6, indexLbs + 14)));\r\n lbs_data += rxl + ',' + lac + ',' + cellTowers + ',';\r\n indexLbs += 14;\r\n }\r\n lbs_data = lbs_data.slice(0, -1);\r\n general += lbs_data;\r\n break;\r\n case '30':\r\n //G-sensor. \r\n if (customID != '04') {\r\n AddValue(codeValues, \"error\", \"customID not belongs to this protocol\");\r\n //AddValue(codeValues, \"rawFromBytes\", rawFromBytes);\r\n AddValue(codeValues, \"customID\", value);\r\n return\r\n }\r\n var numStep = (keyLength - 2) / 16;\r\n for (let j = 0; j < numStep; j++) {\r\n var timestampHex = value.substring(0, 8);\r\n timestampHex = changeEndianness(timestampHex);\r\n timestamp = hexToDecimal(timestampHex);\r\n //timestamp = hexToDecimalSigned(timestampHex);\r\n var stepHex = value.substring(8, 16);\r\n stepHex = changeEndianness(stepHex);\r\n var stepRate = hexToDecimal(stepHex);\r\n info = stepRate;\r\n //var alarmCode = 'True';\r\n var alarm = 'STP';\r\n general += ' step counting' + j + ':' + stepRate + ',';\r\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};STP=${info};LABEL=steps`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n }\r\n break;\r\n //Activity\r\n case '31':\r\n //I don't understand\r\n break;\r\n //BLE MAC list\r\n case '32':\r\n //I don't understand\r\n break;\r\n //Beacon List\r\n case '33':\r\n //I don't understand\r\n break;\r\n //Heart Rate Data\r\n case '40':\r\n if (customID != '04') {\r\n AddValue(codeValues, \"error\", \"customID not belongs to this protocol\");\r\n //AddValue(codeValues, \"rawFromBytes\", rawFromBytes);\r\n AddValue(codeValues, \"customID\", value);\r\n return\r\n }\r\n var numHeartRate = (keyLength - 2) / 12;\r\n for (let j = 0; j < numHeartRate; j++) {\r\n var timestampHex = value.substring(0, 8);\r\n timestampHex = changeEndianness(timestampHex);\r\n timestamp = hexToDecimal(timestampHex);\r\n //timestamp = hexToDecimalSigned(timestampHex);\r\n var heartRateHex = value.substring(8, 10);\r\n var heartRate = hexToDecimal(heartRateHex);\r\n var trustLevelHex = value.substring(10, 12);\r\n var trustLevel = hexToDecimal(trustLevelHex);\r\n info = heartRate;\r\n //var alarmCode = 'True';\r\n var alarm = 'HRT';\r\n general += ' heart rate' + j + ':' + heartRate + ',';\r\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};HRT=${info};TLEVEL=${trustLevel};LABEL=bpm`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n }\r\n break;\r\n //BLE Connected . For Flic button\r\n case '62':\r\n location_type = 'BLE';\r\n //var alarm = 'EBZI'; \r\n //var latitudeHex = '00';\r\n //var longitudeHex = '00';\r\n //var descr = 'empty';\r\n var flag = hexToDecimal(value.substring(0, 2)); // 0= Disconnected, 1= Connected\r\n var mac = value.substring(2, 14); // No hace falta darle la vuelta\r\n // add : format in MAC\r\n mac = mac.match(/.{1,2}/g).join(':');\r\n var batLevel = hexToDecimal(value.substring(14, 16)); // 0-100\r\n //location_time = timestamp;\r\n ble_data = `${flag},${batLevel},${mac}`;\r\n general += 'BLE location (State):' + flag + ', (bat):' + batLevel + ', (mac):' + mac + ',';\r\n break;\r\n }\r\n }\r\n // CareWatch-CYC;<<imei>>;STATUS=<<status_data>>;TIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;\r\n // \"CareWatch-CYC;861629050193550;STATUS=WIFISource,CellTower;TIME=1673950279;BATP=84;LGPS=undefined;LWIF=-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369;LLBS=214,1,13,768,38529798;LBEACON=undefined;BLE=undefined;GENERAL=statusDevice:WIFISource,CellTower,battery:84,cellNetworkSignal:14,workMode:6,wifiTowers:-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369,214,1,13,768,38529798,;\",\r\n if (alarmCode) {\r\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n } else if (statusDevice) {\r\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n }\r\n /*else if (alarm === 'HRT') {\r\n messageForReceiver = (`CareWatch-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};HRT=${info};TLEVEL=${trustLevel};LABEL=bpm`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n } else if (alarm === 'STP') {\r\n messageForReceiver = (`CareWatch-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};STP=${info};LABEL=steps`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n } else {\r\n messageForReceiver = (`CareWatch-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n }*/\r\n // rest the alarm value\r\n alarm = '';\r\n }\r\n if (command == '02') {\r\n while (index < total_length + 16) {\r\n var keyLength = message.substring(index, index = index + 2);\r\n keyLength = 2 * hexToDecimal(keyLength);\r\n var key = message.substring(index, index = index + 2);\r\n var value = message.substring(index, index = index + keyLength - 2);\r\n switch (key) {\r\n //Module Number\r\n case '01':\r\n var date = value.substring(6, 8) + value.substring(4, 6) + '-' + value.substring(2, 4) + '-' + value.substring(0, 2);\r\n messageBody = messageBody + keyLengthHex + key + value;\r\n break;\r\n //Firmware version\r\n case '02':\r\n //no ACK need\r\n var fwVersion = 'v' + hexToDecimal(value.substring(6, 8)) + '.' + hexToDecimal(value.substring(4, 6)) + '.' + hexToDecimal(value.substring(2, 4)) + '.' + hexToDecimal(value.substring(0, 2));\r\n imei = serverParams.Imei;\r\n AddValue(codeValues, \"imei\", imei);\r\n AddValue(codeValues, \"fwVersion\", fwVersion);\r\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\r\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\r\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\r\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\r\n //messageBody = messageBody + keyLengthHex + key + value;\r\n break;\r\n case '1A':\r\n //no ACK need\r\n var fwVersion = hex_to_ascii(value);\r\n imei = serverParams.Imei;\r\n AddValue(codeValues, \"imei\", imei);\r\n AddValue(codeValues, \"fwVersion\", fwVersion);\r\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\r\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\r\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\r\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\r\n break;\r\n //IMEI\r\n case '03':\r\n var imei = hexToDecimal(value);\r\n // harcode to avoid conflicts with Rio protocol\r\n //if ((imei != '860470063029395') && (imei != '860470063035947')) {\r\n // AddValue(codeValues, \"error\", \"device imei is not in this protocol\");\r\n // AddValue(codeValues, \"rawFromBytes\", rawFromBytes);\r\n //AddValue(codeValues, \"IMEI\", imei);\r\n // return\r\n //}\r\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\r\n sendMessageToLocalhostNoWait(\"Eview-ASSOCIATE;\" + imei + \";\" + serverParams.Guid + \";\");\r\n }\r\n messageBody = messageBody + keyLengthHex + key + value;\r\n break;\r\n //ICCID\r\n case '04':\r\n var iccid = hexToDecimal(value);\r\n messageBody = messageBody + keyLengthHex + key + value;\r\n break;\r\n //BLE-MAC\r\n case '05':\r\n var bleMac = hexToDecimal(value);\r\n messageBody = messageBody + keyLengthHex + key + value;\r\n break;\r\n //Run Time\r\n case '07':\r\n var runTime = hexToDecimal(value);\r\n messageBody = messageBody + keyLengthHex + key + value;\r\n break;\r\n case '10': // Ringer Volume\r\n var volume = hexToDecimal(value);\r\n imei = serverParams.Imei;\r\n messageForReceiver = (`Roam;ACK-VOL;${imei};`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n AddValue(codeValues, \"Volume\", volume);\r\n AddValue(configsToUpdate, configIds.ReadSystemSettings.Volume, volume);\r\n configsToAck.push(configIds.ReadSystemSettings.Volume);\r\n break;\r\n case '0A': //Performance mode\r\n //var workMode = hexToDecimal(value);\r\n //messageBody = messageBody + keyLengthHex + key + value;\r\n //AddValue(codeValues, \"WorkMode\", workMode);\r\n //AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\r\n //configsToAck.push(configIds.ReadPerformance`Settings.Mode);\r\n //var workMode = hex_to_ascii(value.substring(0, value.length));\r\n //var workMode = hexToDecimal(value);\r\n //var workMode = hex_to_ascii(value.substring(0, value.length));\r\n var workMode = 1234; // + value + \"end\";\r\n //var workModeVal = 9;\r\n //workMode = 'test10';\r\n imei = serverParams.Imei;\r\n messageForReceiver = (`Roam;ACK-MODE;${imei};`);\r\n AddValue(codeValues, \"Mode\", workMode);\r\n AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\r\n configsToAck.push(configIds.ReadPerformanceSettings.Mode);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n //AddValue(codeValues, \"performanceMode\", performanceMode);\r\n //AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, performanceMode);\r\n // configsToAck.push(configIds.ReadPerformanceSettings.Mode);\r\n break;\r\n case '1B':\r\n //Decimal o ascii?\r\n var gsmModule = hexToDecimal(value);\r\n messageBody = messageBody + keyLengthHex + key + value;\r\n break;\r\n case '1F':\r\n //System Language\r\n var systemLanguage = hex_to_ascii(value.substring(0, value.length));\r\n imei = serverParams.Imei;\r\n //messageBody = messageBody + keyLengthHex + key + value;\r\n messageForReceiver = (`Roam;ACK-LANG;${imei};`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n AddValue(codeValues, \"SystemLanguage\", systemLanguage);\r\n AddValue(configsToUpdate, configIds.ReadSystemSettings.SystemLanguage, systemLanguage);\r\n configsToAck.push(configIds.ReadSystemSettings.SystemLanguage);\r\n break;\r\n case '33': // phone option\r\n // [Value]:83 0B 00 00 {\"phoneOption\":{\"flag_value\":2947,\"s3\":1,\"s4\":0,\"s5\":1,\"s6\":0,\"callIncoming\":0,\"rings\":3,\"s7\":0,\"toneID\":0,\"s1\":1,\"s2\":1}}\r\n var statusPhone = hex2bin(value.substring(0, 2)); // To find autoanswer setup\r\n if (statusPhone.substring(0, 1) == '1') { // 1 Enable\r\n var auto = 'true';\r\n } else var auto = 'false';\r\n statusPhone = hex2bin(value.substring(2, 4)); // To find allow list setup\r\n if (statusPhone.substring(7, 8) == '1') { // 1 Enable\r\n allow = 'true';\r\n } else var allow = 'false';\r\n //statusPhone = hex2bin(value.substring(0, 2)) + hex2bin(value.substring(2, 4));\r\n //AddValue(configsToUpdate, configIds.ReadSystemSettings.Statusphone, statusPhone);\r\n AddValue(configsToUpdate, configIds.ReadSystemSettings.AllowList, allow);\r\n AddValue(configsToUpdate, configIds.ReadSystemSettings.AutoAnswer, auto);\r\n //configsToAck.push(configIds.ReadSystemSettings.Statusphone);\r\n configsToAck.push(configIds.ReadSystemSettings.AllowList);\r\n configsToAck.push(configIds.ReadSystemSettings.AutoAnswer);\r\n break;\r\n case '30': //ContactList\r\n var contactNumber = value.substring(1, 2);\r\n var telLength = hexToDecimal(value.substring(2, 4));\r\n var tel = '';\r\n switch (contactNumber) {\r\n // Emergency Number\r\n case '0':\r\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\r\n AddValue(codeValues, \"EmergencyNumber\", tel);\r\n AddValue(configsToUpdate, configIds.ReadAlertSettings.EmergencyNumber, tel);\r\n configsToAck.push(configIds.ReadAlertSettings.EmergencyNumber);\r\n break;\r\n // Speed Dial Number\r\n case '1':\r\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\r\n AddValue(codeValues, \"SpeedDialNumber\", tel);\r\n AddValue(configsToUpdate, configIds.ReadSpeedDialSettings.SpeedDialNumber, tel);\r\n configsToAck.push(configIds.ReadSpeedDialSettings.SpeedDialNumber);\r\n break;\r\n // Gateway Number\r\n case '9': //00447781482635,Esendex UK 0034627177148,Esendex Spain 00447507288240,Esendex UK Acceptance\r\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\r\n if (tel.includes('447781482635') || tel.includes('00447781482635')) {\r\n tel = 'Esendex UK'\r\n } else if (tel.includes('34627177148') || tel.includes('0034627177148')) {\r\n tel = 'Esendex Spain'\r\n } else if (tel.includes('447507288240') || tel.includes('00447507288240')) {\r\n tel = 'Esendex UK Acceptance'\r\n } else {\r\n tel = 'Default'\r\n }\r\n AddValue(codeValues, \"SMSGateway\", tel);\r\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.SMSGateway, tel);\r\n configsToAck.push(configIds.ReadCommunicationSettings.SMSGateway);\r\n break;\r\n default:\r\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\r\n if (tel.length < 6) {\r\n break;\r\n }\r\n contacts += 'A' + (contactNumber - 1) + ': ' + tel + ', ';\r\n AddValue(codeValues, \"ApprovedContacts\", contacts);\r\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.ApprovedContacts, contacts);\r\n configsToAck.push(configIds.ReadAdditionalSettings.ApprovedContacts);\r\n break;\r\n }\r\n break;\r\n case '40': // APN\r\n //no ACK need\r\n var apn = hex_to_ascii(value.substring(0, value.length));\r\n imei = serverParams.Imei;\r\n break;\r\n case '41': // APN Username\r\n //no ACK need\r\n //apn = apn + ',' + hex_to_ascii(value.substring(0, value.length));\r\n break;\r\n case '42': // APN Password\r\n //no ACK need\r\n //apn = apn + ',' + hex_to_ascii(value.substring(0, value.length));\r\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n AddValue(codeValues, \"apn\", apn);\r\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.APN, apn);\r\n configsToAck.push(configIds.ReadCommunicationSettings.APN);\r\n break;\r\n case '43': //Server Details\r\n //52.232.85.255,5678 production 52.174.17.77,5678 acceptance\r\n var serverDetails = hex_to_ascii(value.substring(6, value.length)) + ':' + hexToDecimal(value.substring(4, 6) + value.substring(2, 4));\r\n if (serverDetails.includes('52.232.85.255:5678')) {\r\n serverDetails = 'Production'\r\n } else if (serverDetails.includes('52.174.17.77:5678')) {\r\n serverDetails = 'Acceptance'\r\n } else if (serverDetails.includes('52.174.17.77:5778')) {\r\n serverDetails = 'Protocol-Import'\r\n } else {\r\n serverDetails = 'Default'\r\n }\r\n AddValue(codeValues, \"server\", serverDetails);\r\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.Server, serverDetails);\r\n configsToAck.push(configIds.ReadCommunicationSettings.Server);\r\n break;\r\n case '44': //time interval - work mode intervals\r\n imei = serverParams.Imei;\r\n messageForReceiver = (`Roam;ACK-MODE;${imei};`);\r\n var workMode = 0;\r\n var cycle = hexToDecimal(value.substring(10, 12) + value.substring(8, 10));\r\n var lazyCycle = hexToDecimal(value.substring(18, 20) + value.substring(16, 18));\r\n if (cycle == 240 && lazyCycle == 3600) { // 4 mins and 1 hour\r\n //workMode = 'High Frequency';\r\n workMode = 3;\r\n }\r\n if (cycle == 600 && lazyCycle == 3600) { // 10 mins and 1 hour\r\n //workMode = 'Balanced';\r\n workMode = 2;\r\n }\r\n if (cycle == 28800 && lazyCycle == 43200) { // 6 hour and 12 hours\r\n //workMode = 'Power Saving';\r\n workMode = 1;\r\n }\r\n if (cycle == 86400 && lazyCycle == 86400) { // 24 hours and 24 hours\r\n //workMode = 'No Reporting';\r\n workMode = 0;\r\n }\r\n AddValue(codeValues, \"Mode\", workMode);\r\n AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\r\n configsToAck.push(configIds.ReadPerformanceSettings.Mode);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n break;\r\n case '47': // Custom Id\r\n imei = serverParams.Imei;\r\n messageForReceiver = (`Roam;ACK-CUSTID;${imei};`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n AddValue(codeValues, \"customeid\", value);\r\n AddValue(configsToUpdate, configIds.ReadState.CustomId, value);\r\n configsToAck.push(configIds.ReadState.CustomId);\r\n break;\r\n case '53': // Non motion alert\r\n //2B020080\r\n var status = hex2bin(value.substring(6, 8));\r\n var alertSetting = '';\r\n var enableDisable = '';\r\n if (status.substring(0, 1) == '1') {\r\n alertSetting = 'Enable, '\r\n enableDisable = '1';\r\n } else {\r\n alertSetting = 'Disable, '\r\n };\r\n //if (status.substring(5, 6) == '1') {\r\n // alertSetting += 'Dial, '\r\n //} else {\r\n // alertSetting += 'No Dial, '\r\n //};\r\n var time = hexToDecimal(value.substring(2, 4) + value.substring(0, 2));\r\n alertSetting += time;\r\n imei = serverParams.Imei;\r\n messageForReceiver = (`Roam;ACK-NOMOTION;${imei};`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n AddValue(codeValues, \"nomotion\", alertSetting);\r\n AddValue(configsToUpdate, configIds.ReadAlertSettings.NoMotionAlert, value + '-' + alertSetting);\r\n AddValue(configsToUpdate, configIds.ReadNonMovementSettings.EnableDisableNonMovementSettings, enableDisable);\r\n AddValue(configsToUpdate, configIds.ReadNonMovementSettings.Time, time);\r\n configsToAck.push(configIds.ReadAlertSettings.NoMotionAlert);\r\n configsToAck.push(configIds.ReadNonMovementSettings.EnableDisableNonMovementSettings);\r\n configsToAck.push(configIds.ReadNonMovementSettings.Time);\r\n break;\r\n case '56': //Fall down sensibility\r\n // '00001100'\r\n var fallStatus = hex2bin(value.substring(0, 2));\r\n var enalbleDisable = '';\r\n //if (fallStatus.substring(4, 5) == '1') {\r\n if (fallStatus.substring(0, 1) == '1') {\r\n var sensibility = 'Enable, '\r\n enalbleDisable = '1'\r\n } else {\r\n var sensibility = 'Disable, '\r\n };\r\n if (fallStatus.substring(5, 6) == '1') {\r\n sensibility += 'Dial, '\r\n } else {\r\n sensibility += 'No Dial, '\r\n };\r\n var imei = serverParams.Imei;\r\n messageForReceiver = (`Roam;ACK-FALLALERT;${imei};`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n var sesibityOptionValue = hexToDecimal(value.substring(1, 2));\r\n sensibility += sesibityOptionValue;\r\n AddValue(codeValues, \"sensibility\", sensibility);\r\n AddValue(configsToUpdate, configIds.ReadAlertSettings.FallSettings, sensibility);\r\n AddValue(configsToUpdate, configIds.ReadFallSettings.EnableDisableFallSettings, enalbleDisable);\r\n AddValue(configsToUpdate, configIds.ReadFallSettings.Sensitivity, sesibityOptionValue);\r\n configsToAck.push(configIds.ReadAlertSettings.FallSettings);\r\n configsToAck.push(configIds.ReadFallSettings.EnableDisableFallSettings);\r\n configsToAck.push(configIds.ReadFallSettings.Sensitivity);\r\n break;\r\n case '73': //BeaconList\r\n var beaconNumber = hexToDecimal(value.substring(1, 2));\r\n var beaconStatus = hex2bin(value.substring(0, 1));\r\n //if (beaconStatus.substring(4, 5) == '1') {\r\n // homeBeacon += ' Enable, '\r\n //} else {\r\n // homeBeacon += ' Disable, '\r\n //};\r\n beaconStatus = hex_to_ascii(value.substring(30, value.length));\r\n //beaconStatus = changeEndianness(value.substring(30, value.length));\r\n homeBeacon += 'B' + (beaconNumber + 1) + ': ' + beaconStatus + ', ';\r\n AddValue(codeValues, \"homeBeacon\", homeBeacon);\r\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.HomeBeacon, homeBeacon);\r\n configsToAck.push(configIds.ReadAdditionalSettings.HomeBeacon);\r\n break;\r\n case '4A': //Wifi Network List\r\n var wifiSSIDLenght = hexToDecimal(value.substring(2, 4));\r\n var wifiPasswordLenght = hexToDecimal(value.substring(4, 6));\r\n var wifiIndex = hexToDecimal(value.substring(1, 2));\r\n var wifiStatus = hexToDecimal(value.substring(0, 1));\r\n /*var enalbleDisable = wifiSSID = wifiPassword = homeWifi = '';\r\n /var homeWifi = '';\r\n if (wifiIndex == '0') { // Only first Wifi of the list\r\n if (wifiStatus == '8') {\r\n homeWifi += ' Enable, '\r\n enalbleDisable = '1';\r\n } else {\r\n homeWifi += ' Disable, '\r\n //enalbleDisable = '0';\r\n };*/\r\n if (wifiStatus == '8') {\r\n var wifiSSID = hex_to_ascii(value.substring(6, 6 + 2 * (wifiSSIDLenght)));\r\n var wifiPassword = hex_to_ascii(value.substring(6 + 2 * (wifiSSIDLenght), 6 + 2 * (wifiSSIDLenght + wifiPasswordLenght)));\r\n var imei = serverParams.Imei;\r\n messageForReceiver = (`Roam;ACK-WIFI;${imei};`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n homeWiFi += 'W' + (wifiIndex + 1) + ': ' + wifiSSID + ', ' + wifiPassword + ';';\r\n AddValue(codeValues, \"wifi\", homeWiFi);\r\n AddValue(configsToUpdate, configIds.ReadWiFiList.WiFiList, homeWiFi);\r\n configsToAck.push(configIds.ReadWiFiList.WiFiList);\r\n }\r\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.EnableDisableReadWiFiSettings, enalbleDisable);\r\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.SSID, wifiSSID);\r\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.Password, wifiPassword);\r\n //configsToAck.push(configIds.ReadWiFiSettings.EnableDisableReadWiFiSettings);\r\n //configsToAck.push(configIds.ReadWiFiSettings.SSID);\r\n //configsToAck.push(configIds.ReadWiFiSettings.Password);\r\n break;\r\n case '21': // Speed Dial Settings\r\n // [Value]:53 84 {\"call1Button\":{\"mode\":0,\"feedBack\":3,\"task\":2,\"time\":20,\"status\":1}}\r\n var status = hex2bin(value.substring(2, 3));\r\n var alertSetting = '';\r\n var enableDisable = '';\r\n if (status.substring(0, 1) == '1') {\r\n alertSetting = 'Enable, '\r\n enableDisable = '1';\r\n } else {\r\n alertSetting = 'Disable, '\r\n //enableDisable = '0';\r\n };\r\n //var time = hexToDecimal(value.substring(2, 4) + value.substring(0, 2));\r\n //alertSetting += time;\r\n imei = serverParams.Imei;\r\n messageForReceiver = (`Roam;ACK-SPEED;${imei};`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n AddValue(codeValues, \"speed\", alertSetting);\r\n //AddValue(configsToUpdate, configIds.ReadAlertSettings.NoMotionAlert, value + '-' + alertSetting);\r\n AddValue(configsToUpdate, configIds.ReadSpeedDialSettings.EnableDisableReadSpeedDialSettings, enableDisable);\r\n //AddValue(configsToUpdate, configIds.ReadNonMovementSettings.Time, time);\r\n //configsToAck.push(configIds.ReadAlertSettings.NoMotionAlert);\r\n configsToAck.push(configIds.ReadSpeedDialSettings.EnableDisableReadSpeedDialSettings);\r\n //configsToAck.push(configIds.ReadNonMovementSettings.Time);\r\n break;\r\n }\r\n }\r\n }\r\n if (command == '03') {\r\n while (index < total_length + 16) {\r\n var keyLengthHex = message.substring(index, index = index + 2);\r\n var keyLength = 2 * hexToDecimal(keyLengthHex);\r\n var key = message.substring(index, index = index + 2);\r\n var value = message.substring(index, index = index + keyLength - 2);\r\n debug('key = ' + key);\r\n debug('value = ' + value);\r\n switch (key) {\r\n case '01': // Device ID\r\n var imei = hex_to_ascii(value);\r\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\r\n sendMessageToLocalhostNoWait(\"Eview-ASSOCIATE;\" + imei + \";\" + serverParams.Guid + \";\");\r\n }\r\n break;\r\n //CustomID is not provided so far with command type 03.. commented in the mean time\r\n /* case '03':\r\n //update customID to check if belongs to this type of device\r\n customID = value;\r\n if (value != '04') {\r\n AddValue(codeValues, \"error\", \"customID not belongs to this protocol\");\r\n AddValue(codeValues, \"rawFromBytes\", rawFromBytes);\r\n AddValue(codeValues, \"customID\", value);\r\n return\r\n } else {\r\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\r\n sendMessageToLocalhostNoWait(\"Eview-ASSOCIATE;\" + imei + \";\" + serverParams.Guid + \";\");\r\n }\r\n AddValue(codeValues, \"customID\", value);\r\n general += 'customID:' + value + ',';\r\n break;\r\n }\r\n break; */\r\n case '10': // Heartbeat\r\n var heartbeat = hex_to_ascii(value);\r\n event_time = moment.utc().unix();\r\n if (index < total_length + 16) {\r\n var keyLengthHex = message.substring(index, index = index + 2);\r\n keyLength = 2 * hexToDecimal(keyLengthHex);\r\n key = message.substring(index, index = index + 2);\r\n if (key == '24') {\r\n // debug('key: ' + key) //comment those out\r\n value = message.substring(index, index = index + keyLength - 2);\r\n // debug(value)\r\n var timestampHex = value.substring(0, 8);\r\n // debug('timestampt hex: ' + timestampHex)\r\n timestampHex = changeEndianness(timestampHex);\r\n timestamp = hexToDecimal(timestampHex);\r\n event_time = timestamp;\r\n // debug(event_time)\r\n var statusHex = changeEndianness(value.substring(8, 16));\r\n // debug(statusHex)\r\n var statusInt = hexToDecimal(statusHex);\r\n var statusDevice = '';\r\n if ((statusInt & 1) == 1) {\r\n statusDevice += 'GPS,';\r\n }\r\n if ((statusInt & 2) == 2) {\r\n statusDevice += 'WIFISource,';\r\n }\r\n if ((statusInt & 4) == 4) {\r\n statusDevice += 'CellTower,';\r\n }\r\n if ((statusInt & 8) == 8) {\r\n statusDevice += 'BLELocation,';\r\n }\r\n if ((statusInt & 16) == 16) {\r\n statusDevice += 'Charging,';\r\n }\r\n if ((statusInt & 32) == 32) {\r\n statusDevice += 'FUllyCharged,';\r\n }\r\n if ((statusInt & 64) == 64) {\r\n statusDevice += 'Reboot,';\r\n }\r\n if ((statusInt & 128) == 128) {\r\n statusDevice += 'HistoricalData,';\r\n }\r\n if ((statusInt & 256) == 256) {\r\n statusDevice += 'AGPSDataValid,';\r\n }\r\n if ((statusInt & 512) == 512) {\r\n statusDevice += 'Motion,';\r\n }\r\n if ((statusInt & 1024) == 1024) {\r\n statusDevice += 'SmartLocating,';\r\n }\r\n if ((statusInt & 2048) == 2048) {\r\n statusDevice += 'BeaconLocation,';\r\n }\r\n if ((statusInt & 4096) == 4096) {\r\n statusDevice += 'BLEConnected,';\r\n }\r\n statusDevice = statusDevice.slice(0, -1);\r\n // debug('statusHex:' + statusHex)\r\n statusHex = (statusHex);\r\n statusHex = hex2bin(statusHex);\r\n statusHex = ('00000000000000000000000000000000' + statusHex).slice(-32);\r\n // debug(statusHex)\r\n battery_percentage = parseInt(statusHex.substring(0, 8), 2);\r\n // debug(battery_percentage)\r\n // debug(battery_percentage)\r\n // debug(statusHex.substring(8, 13))\r\n cellNetworkSignal = parseInt(statusHex.substring(8, 13), 2);\r\n // debug(cellNetworkSignal)\r\n workMode = parseInt(statusHex.substring(13, 16), 2);\r\n // debug(workMode)\r\n general += 'statusDevice:' + statusDevice + ';';\r\n if (battery_percentage) {\r\n general += 'battery:' + battery_percentage + ';';\r\n }\r\n if (cellNetworkSignal) {\r\n general += 'cellNetworkSignal:' + cellNetworkSignal + ';';\r\n }\r\n if (workMode) {\r\n general += 'workMode:' + workMode + ';';\r\n }\r\n }\r\n }\r\n // revisar\r\n var gen_location = '0';\r\n //CustomID is not provided so far with command type 03.. commented in the mean time\r\n /*if (customID != '04') {\r\n AddValue(codeValues, \"error\", \"customID not belongs to this protocol\");\r\n //AddValue(codeValues, \"rawFromBytes\", rawFromBytes);\r\n AddValue(codeValues, \"customID\", value);\r\n return\r\n }*/\r\n //messageForReceiver = (`Eview-HTB;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};SIGNAL=${cellNetworkSignal};WM=${workMode};SL=${systemLanguage};GENERAL=${general}`);\r\n messageForReceiver = (`Eview-HTB;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n //messageBody = messageBody + keyLengthHex + key + value;\r\n break;\r\n case '12': // Device requesting timestamp\r\n timestamp = moment.utc().unix();\r\n timestampHex = decimalToHex(timestamp);\r\n timestampHex = changeEndianness(timestampHex);\r\n keyLengthHex = ('00' + decimalToHex(1 + (timestampHex.length) / 2)).slice(-2);\r\n // respond to device with the timestamp of the server\r\n messageBody = messageBody + keyLengthHex + key + timestampHex;\r\n messageForReceiver = `Eview;${imei};${sequenceID};Get timestamp`;\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n break;\r\n case '21': //Cell Towers\r\n var mccHex = value.substring(0, 2);\r\n var mncHex = value.substring(2, 3);\r\n var mcc = hexToDecimal(mccHex);\r\n var mnc = hexToDecimal(mncHex);\r\n var numTowers = (keyLength - 4) / 5;\r\n var cellTowers = hex_to_ascii(value);\r\n messageBody = messageBody + keyLengthHex + key + value;\r\n break;\r\n case '22': // WIFI locations \r\n location_type = 'WIFI';\r\n var numWifi = Math.round((hexToDecimal(keyLengthHex) - 1) / 7);\r\n //location_time = timestamp;\r\n var wifiTowers = value;\r\n general += 'wifiTowers:';\r\n var indexWifi = 0;\r\n var bssid_array = [];\r\n gen_location = '';\r\n for (let i = 0; i < numWifi; i++) {\r\n gen_location += wifiTowers.substring(indexWifi + 2, indexWifi + 14) + ',';\r\n indexWifi += 14;\r\n }\r\n gen_location = gen_location.slice(0, -1);\r\n general += gen_location;\r\n //CustomID is not provided so far with command type 03\r\n /*if (customID != '04') {\r\n AddValue(codeValues, \"error\", \"customID not belongs to this protocol\");\r\n //AddValue(codeValues, \"rawFromBytes\", rawFromBytes);\r\n AddValue(codeValues, \"customID\", value);\r\n return\r\n }*/\r\n if (alarmCode) {\r\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n } else if (statusDevice) {\r\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n } else {\r\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n }\r\n alarmCode = '';\r\n break;\r\n }\r\n }\r\n }\r\n if (command == '04') {\r\n while (index < total_length + 16) {\r\n var keyLength = message.substring(index, index = index + 2);\r\n keyLength = 2 * hexToDecimal(keyLength);\r\n var key = message.substring(index, index = index + 2);\r\n var value = message.substring(index, index = index + keyLength - 2);\r\n }\r\n }\r\n if (command == '7E') {\r\n while (index < total_length + 16) {\r\n var keyLength = message.substring(index, index = index + 2);\r\n keyLength = 2 * hexToDecimal(keyLength);\r\n var key = message.substring(index, index = index + 2);\r\n var value = message.substring(index, index = index + keyLength - 2);\r\n }\r\n }\r\n if (command == '7F') {\r\n // while (index < total_length + 16) {\r\n var keyLength = message.substring(index, index = index + 2);\r\n keyLength = 2 * hexToDecimal(keyLength);\r\n var key = message.substring(index, index = index + 2);\r\n imei = serverParams.Imei;\r\n AddValue(codeValues, \"imei\", imei);\r\n messageForReceiver = (`Roam-ACK;${imei};${message}`); // ${sequenceID}; add ${sequenceID}; 19-07\r\n sendMessageToLocalhostNoWait(messageForReceiver);\r\n var value = message.substring(index, index = index + keyLength - 2);\r\n AddValue(configsToUpdate, configIds.ConfigureDevice.LastConfigured, moment().format('YYYY/MM/DD, HH:mm:ss'));\r\n configsToAck.push(configIds.ConfigureDevice.LastConfigured);\r\n //}\r\n }\r\n if (command == 'FE') {\r\n while (index < total_length + 16) {\r\n var keyLength = message.substring(index, index = index + 2);\r\n keyLength = 2 * hexToDecimal(keyLength);\r\n var key = message.substring(index, index = index + 2);\r\n var value = message.substring(index, index = index + keyLength - 2);\r\n }\r\n }\r\n // prepare the ACK msg and change config if it is needed\r\n lengthAck = messageBody.length / 2;\r\n lengthAck = ('0000' + decimalToHex(lengthAck)).slice(-4);\r\n lengthAck = lengthAck.toString().substring(2, 4) + lengthAck.toString().substring(0, 2);\r\n ////////////checksum CRC 16\r\n var checksumAck = byteStringToByteArray(messageBody);\r\n checksumAck = crc16byte(checksumAck);\r\n checksumAck = decimalToHex(checksumAck);\r\n checksumAck = ('0000' + checksumAck).slice(-4);\r\n checksumAck = checksumAck.toString().substring(2, 4) + checksumAck.toString().substring(0, 2);\r\n prefix = prefix + lengthAck + checksumAck + sequenceID;\r\n // To send ACK to the device previous to internal msg with parts\r\n if (needsAck == true) {\r\n if (messageBody.length <= 2) {\r\n ack = 'AB00030008C7' + sequenceID + '7F0100'; // change AB10030008C7 to AB00030008C7\r\n } else {\r\n ack = prefix + messageBody;\r\n }\r\n AddValue(codeValues, 'imei', imei);\r\n AddValue(codeValues, 'ack', ack);\r\n }\r\n } else { // checksum was invalid - print out useful debug info and bet quess at imei \r\n AddValue(codeValues, \"error\", \"checksum failed for message\");\r\n AddValue(codeValues, \"rawFromBytes\", rawFromBytes);\r\n i = rawFromBytes.search('3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]');\r\n if (i >= 0) {\r\n imei = hex_to_ascii(rawFromBytes.substring(i, i + 30));\r\n AddValue(codeValues, \"imei\", imei);\r\n }\r\n }\r\n }\r\n\r\n function ascii_to_hexa(str) { // ascii to hex \r\n var arr1 = [];\r\n for (var n = 0, l = str.length; n < l; n++) {\r\n var hex = Number(str.charCodeAt(n)).toString(16);\r\n arr1.push(hex);\r\n }\r\n return arr1.join('');\r\n }\r\n\r\n function byteStringToByteArray(str) { //\r\n var splitStr = [];\r\n var j = 0;\r\n for (let i = 0; i < str.length; i += 2) {\r\n splitStr[j] = str.substring(i, i + 2);\r\n j++;\r\n }\r\n var bytes = [];\r\n var bytePos = 0;\r\n for (let i = 0; i < splitStr.length; i++) {\r\n var byteStr = splitStr[i];\r\n var b = parseInt(byteStr, 16);\r\n if (b < 256) {\r\n bytes[bytePos] = b;\r\n bytePos++;\r\n }\r\n }\r\n return bytes;\r\n }\r\n\r\n function changeEndianness(string) { //\r\n const result = [];\r\n let len = string.length - 2;\r\n while (len >= 0) {\r\n result.push(string.substr(len, 2));\r\n len -= 2;\r\n }\r\n return result.join('');\r\n }\r\n\r\n function hex2bin(hex) { //\r\n return (parseInt(hex, 16).toString(2)).padStart(8, '0');\r\n }\r\n\r\n function calculateCheckSum(payloadData) { // check if payload checksum is valid\r\n var checksum = byteStringToByteArray(payloadData);\r\n checksum = crc16byte(checksum);\r\n checksum = decimalToHex(checksum);\r\n checksum = ('0000' + checksum).slice(-4).toUpperCase();\r\n return changeEndianness(checksum);\r\n }\r\n\r\n function crc16byte(s) { //\r\n var crc = 0x0000;\r\n var j, i;\r\n for (i = 0; i < s.length; i++) {\r\n c = s[i];\r\n if (c > 255) {\r\n throw new RangeError();\r\n }\r\n j = (c ^ (crc >> 8)) & 0xFF;\r\n crc = crcTable[j] ^ (crc << 8);\r\n }\r\n return ((crc ^ 0) & 0xFFFF);\r\n }\r\n\r\n function debug(str) { // write debug info to console log, if localTesting\r\n if (localTesting === \"True\") {\r\n console.log(str);\r\n }\r\n }\r\n\r\n function decimalToHex(x) { // decimal to hex\r\n x = x.toString(16).toUpperCase();\r\n return x;\r\n }\r\n\r\n function hex_to_ascii(str1) { // Hex to Ascii \r\n var hex = str1.toString();\r\n var str = '';\r\n for (var n = 0; n < hex.length; n += 2) {\r\n str += String.fromCharCode(parseInt(hex.substr(n, 2), 16));\r\n }\r\n return str;\r\n }\r\n\r\n function hexToDecimalSigned(hex) { // hex to decimal\r\n if (hex.length % 2 != 0) {\r\n hex = \"0\" + hex;\r\n }\r\n var num = parseInt(hex, 16);\r\n var maxVal = Math.pow(2, hex.length / 2 * 8);\r\n if (num > maxVal / 2 - 1) {\r\n num = num - maxVal;\r\n }\r\n return num;\r\n }\r\n\r\n function hexToDecimal(x) {\r\n x = parseInt(x, 16);\r\n return x;\r\n }\r\n\r\n function sendMessageToLocalhostNoWait(str) { // sends message to system, closing connection after\r\n var server;\r\n if (localTesting) {\r\n console.log('local testing - sending to acceptance server the message ... ');\r\n console.log(str);\r\n server = '52.174.17.77';\r\n } else {\r\n server = '127.0.0.1';\r\n }\r\n var c = net.createConnection(5678, server);\r\n c.on('error', function(error) {\r\n c = net.createConnection(5678, server);\r\n });\r\n c.write(`${str}`);\r\n c.end();\r\n }\r\n // modify to return the object that contains your data\r\n return dataToReceiver;\r\n}\r\n// params is not defined locally -> export as module\r\nif (typeof(params) === 'undefined') {\r\n module.exports = {\r\n execute_ops\r\n }\r\n} else { // on server use local defined vars\r\n let return_values = execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, false)\r\n // define global returns\r\n msg = return_values;\r\n}","Type":0,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":313,\"Name\":\"Access TEC Roam\",\"Operation\":\"function execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, localTesting) {\\r\\n ///////////////////////////////////////////////////////////////////////////////\\r\\n //\\r\\n // Roam protocol - please see variables and typical values in order below\\r\\n // TECRoam-CYC;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;SIGNAL=<<signal_strength>>;WM=<<work_mode>>;GENERAL=<<general>>\\r\\n // TECRoam-CYC;861629050193550;STATUS=WIFISource,CellTower;TIME=1673950279;BATP=84;LGPS=undefined;LWIF=-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369;LLBS=214,1,13,768,38529798;LBEACON=undefined;BLE=undefined;GENERAL=statusDevice:WIFISource,CellTower,battery:84,cellNetworkSignal:14,workMode:6,wifiTowers:-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369,214,1,13,768,38529798,;\\\",\\r\\n //\\r\\n // Author: Joe Bloggs\\r\\n // Created: 01/01/0000\\r\\n // Last modified: 12/04/2024\\r\\n //\\r\\n ///////////////////////////////////////////////////////////////////////////////\\r\\n if (typeof localTesting === \\\"undefined\\\") {\\r\\n var localTesting = \\\"False\\\";\\r\\n }\\r\\n const crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,\\r\\n 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,\\r\\n 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\\r\\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,\\r\\n 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,\\r\\n 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\\r\\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,\\r\\n 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,\\r\\n 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\\r\\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,\\r\\n 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,\\r\\n 0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\\r\\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,\\r\\n 0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,\\r\\n 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\\r\\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,\\r\\n 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,\\r\\n 0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\\r\\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,\\r\\n 0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,\\r\\n 0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\\r\\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,\\r\\n 0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,\\r\\n 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\\r\\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,\\r\\n 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,\\r\\n 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\\r\\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,\\r\\n 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,\\r\\n 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\\r\\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,\\r\\n 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\\r\\n ];\\r\\n var codeValues = [];\\r\\n AddValue(codeValues, 'protocol_template', 'Roam');\\r\\n AddValue(codeValues, 'product', serverParams.ProductName);\\r\\n var dataToReceiver = [];\\r\\n var configsToAck = [];\\r\\n var configsToUpdate = [];\\r\\n var configsToSend = [];\\r\\n if (globalTemplate == \\\"True\\\") {\\r\\n if (raw.startsWith('esendex')) {\\r\\n AddValue(codeValues, 'rawMsg', raw);\\r\\n //general SMS message\\r\\n messageForReceiver = (`Roam-SMS;${serverParams.Imei};${raw}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n return;\\r\\n }\\r\\n AddValue(codeValues, 'raw', raw);\\r\\n AddValue(codeValues, 'rawMsg', rawFromBytes);\\r\\n var event_time, location_time, location_accuracy, speed, fix_state, latitude, longitude;\\r\\n var homeBeacon = '';\\r\\n var homeWiFi = '';\\r\\n var contacts = '';\\r\\n var gps_data = '';\\r\\n var wifi_data = '';\\r\\n var status_data = '';\\r\\n var lbs_data = '';\\r\\n var beacon_data = '';\\r\\n var ble_data = '';\\r\\n var smart_data = '';\\r\\n //parse header & properties\\r\\n var message = rawFromBytes;\\r\\n var properties = message.substring(2, 4);\\r\\n var lengthLittleEndian = message.substring(4, 8);\\r\\n var total_length = lengthLittleEndian.substring(2, 4) + lengthLittleEndian.substring(0, 2);\\r\\n total_length = 2 * hexToDecimal(total_length.substring(0, 4));\\r\\n var messageForReceiver;\\r\\n var sequenceID = message.substring(12, 16);\\r\\n var command = message.substring(16, 18);\\r\\n var index = 18;\\r\\n var prefix = 'AB' + '00';\\r\\n var lengthAck = 0;\\r\\n var ack = '';\\r\\n var needsAck = false;\\r\\n var hasConfigs = false;\\r\\n var general = '';\\r\\n var timestamp = '';\\r\\n var info = '';\\r\\n var customID = '';\\r\\n latitude = 0;\\r\\n longitude = 0;\\r\\n location_accuracy = 0; // GPS location adds the accuracy\\r\\n location_time = event_time = '';\\r\\n speed = 0.0;\\r\\n var location_type = '0';\\r\\n //var gen_location = '0'; \\r\\n var i; // general loop counter\\r\\n var battery_percentage = '';\\r\\n var cellNetworkSignal = '';\\r\\n var workMode = '';\\r\\n //mask bitwise (properties should be '10')\\r\\n if ((parseInt(properties) & 8) == 8) { // 22/7 change ((parseInt(properties) & 16) == 16)\\r\\n needsAck = true;\\r\\n }\\r\\n // Loop to decode multi-ACK msg\\r\\n if (message.includes('AB00030008C7')) {\\r\\n const multiack = message.split('AB00');\\r\\n for (let i = 1; i < multiack.length; i++) {\\r\\n message = 'AB00' + multiack[i];\\r\\n debug(message);\\r\\n decoder(message);\\r\\n } // FOR multiACK\\r\\n } else decoder(message); // IF multiACK\\r\\n } else if (oystaTemplate == 'True') { // Oysta Template \\r\\n AddValue(codeValues, 'rawMsg', raw);\\r\\n if ((params.gps_data) && (params.gps_data !== '')) { // decode gps data if exists\\r\\n var gen_location = params.gps_data.split(',');\\r\\n var latitude = gen_location[0];\\r\\n var longitude = gen_location[1];\\r\\n var location_accuracy = gen_location[2];\\r\\n var speed = gen_location[3];\\r\\n var direction = gen_location[4];\\r\\n var altitude = gen_location[5];\\r\\n var satellites = gen_location[6];\\r\\n var mileage = gen_location[7];\\r\\n if (location_accuracy !== 0) {\\r\\n var fix_state = 1;\\r\\n } else {\\r\\n var fix_state = 0;\\r\\n }\\r\\n AddValue(codeValues, 'latitude', latitude);\\r\\n AddValue(codeValues, 'longitude', longitude);\\r\\n AddValue(codeValues, 'speed', speed);\\r\\n AddValue(codeValues, 'direction', direction);\\r\\n AddValue(codeValues, 'altitude', altitude);\\r\\n AddValue(codeValues, 'location_accuracy', location_accuracy);\\r\\n AddValue(codeValues, 'mileage', mileage);\\r\\n AddValue(codeValues, 'satellites', satellites);\\r\\n AddValue(codeValues, 'fix_state', fix_state);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.lbs_data) && (params.lbs_data !== '')) { // decode lbs data if exists\\r\\n var variables = []; //Define array\\r\\n variables = params.lbs_data.split(',');\\r\\n var index = 2;\\r\\n for (i = 0; i < ((variables.length - 2) / 3); i++) { //loop for number of LBS sets on incoming data.\\r\\n if (variables[i] !== '0') { //Check if LBS data is present (device sends 0 if data not present)/actually exists.\\r\\n AddValue(codeValues, 'mcc', variables[0]);\\r\\n AddValue(codeValues, 'mnc', variables[1]);\\r\\n AddValue(codeValues, 'lac', variables[index]);\\r\\n AddValue(codeValues, 'signal_lbs', variables[index + 1]);\\r\\n AddValue(codeValues, 'cellid', variables[index + 2]);\\r\\n }\\r\\n index += 3;\\r\\n }\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.wifi_data) && (params.wifi_data !== '')) { // decode wifi data if exists\\r\\n var bssid_array = params.wifi_data.split(',');\\r\\n var index = 0;\\r\\n for (let i = 0; i < (bssid_array.length / 2); i++) {\\r\\n if (bssid_array[index + 1] != '000000000000') { //Check if MAC address is not 000000000000 - seems to be the default MAC of the device itself\\r\\n AddValue(codeValues, 'bssid', bssid_array[index + 1]);\\r\\n AddValue(codeValues, 'signal_wifi', bssid_array[index]);\\r\\n }\\r\\n index += 2;\\r\\n }\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n // when Beacon is detected and it isn't flic BLE detected\\r\\n if (((params.beacon_data) && (params.beacon_data !== '')) && !((params.ble_data) && (params.ble_data !== ''))) {\\r\\n var gen_location = params.beacon_data.split(',');\\r\\n var latitude = gen_location[0];\\r\\n var longitude = gen_location[1];\\r\\n var mac = gen_location[2];\\r\\n var label = gen_location[3];\\r\\n AddValue(codeValues, 'latitude', latitude);\\r\\n AddValue(codeValues, 'longitude', longitude);\\r\\n //AddValue(codeValues,'location_accuracy', '3'); // para mostrar que si hay accuracy muestra como source GPS\\r\\n // AddValue(codeValues,'beacon_mac', mac);\\r\\n //AddValue(codeValues,'beacon_major', 0);\\r\\n //AddValue(codeValues,'beacon_minor', 0);\\r\\n //<<beacon_mac>>,<<beacon_major>>,<<beacon_minor>> \\r\\n if (mac) {\\r\\n AddValue(codeValues, 'beacon_mac', mac);\\r\\n var simpleQuery = [{\\r\\n 'code': 'Mac',\\r\\n 'value': mac,\\r\\n }];\\r\\n var simpleQueryLabel = {\\r\\n 'table': 'beacons',\\r\\n 'select': 'Name',\\r\\n 'query': simpleQuery\\r\\n };\\r\\n var labels = [];\\r\\n labels.push(JSON.stringify(simpleQueryLabel));\\r\\n AddValue(codeValues, 'oysta_labels', JSON.stringify(labels));\\r\\n }\\r\\n if (params.beacon_major) {\\r\\n AddValue(codeValues, 'beacon_major', params.beacon_major);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_major', 0);\\r\\n }\\r\\n if (params.beacon_minor) {\\r\\n AddValue(codeValues, 'beacon_minor', params.beacon_minor);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_minor', 0);\\r\\n }\\r\\n //AddValue(codeValues,'oysta_labels', label);\\r\\n //AddValue(codeValues,'oysta_value', mac);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.ble_data) && (params.ble_data !== '')) { // decode ble data if exists\\r\\n var gen_location = params.ble_data.split(',');\\r\\n var flag = gen_location[0];\\r\\n var batLevel = gen_location[1];\\r\\n var mac2 = gen_location[2];\\r\\n //var label = gen_location[3];\\r\\n AddValue(codeValues, 'flagBLE', flag);\\r\\n AddValue(codeValues, 'batBLE', batLevel);\\r\\n //AddValue(codeValues,'location_accuracy', '3'); // para mostrar que si hay accuracy muestra como source GPS\\r\\n // AddValue(codeValues,'beacon_mac', mac);\\r\\n //AddValue(codeValues,'beacon_major', 0);\\r\\n //AddValue(codeValues,'beacon_minor', 0);\\r\\n //<<beacon_mac>>,<<beacon_major>>,<<beacon_minor>> \\r\\n if (mac2) {\\r\\n AddValue(codeValues, 'beacon_mac', mac2);\\r\\n var simpleQuery2 = [{\\r\\n 'code': 'Mac',\\r\\n 'value': mac2,\\r\\n }];\\r\\n var simpleQueryLabel2 = {\\r\\n 'table': 'beacons',\\r\\n 'select': 'Name',\\r\\n 'query': simpleQuery2\\r\\n };\\r\\n var labels2 = [];\\r\\n labels2.push(JSON.stringify(simpleQueryLabel2));\\r\\n AddValue(codeValues, 'oysta_labels', JSON.stringify(labels2));\\r\\n }\\r\\n if (params.beacon_major) {\\r\\n AddValue(codeValues, 'beacon_major', params.beacon_major);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_major', 0);\\r\\n }\\r\\n if (params.beacon_minor) {\\r\\n AddValue(codeValues, 'beacon_minor', params.beacon_minor);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_minor', 0);\\r\\n }\\r\\n //AddValue(codeValues,'oysta_labels', label);\\r\\n //AddValue(codeValues,'oysta_value', mac);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n /* meter mas tarde... \\r\\n if (params.smart_data !== 'undefined') {\\r\\n var gen_location = params.smart_data.split(',')\\r\\n var latitude = gen_location[0]\\r\\n var longitude = gen_location[1]\\r\\n var location_accuracy = gen_location[2]\\r\\n var altitude = gen_location[3]\\r\\n AddValue(codeValues,'latitude', latitude);\\r\\n AddValue(codeValues,'longitude', longitude);\\r\\n AddValue(codeValues,'altitude', altitude);\\r\\n AddValue(codeValues,'location_accuracy', location_accuracy);\\r\\n }\\r\\n */\\r\\n /*else if ((params.event_time) && (params.event_time == '')) {\\r\\n var event_time = moment.utc().unix();\\r\\n AddValue(codeValues,'event_time', event_time);\\r\\n } revisar mas adelante*/\\r\\n // to parse SMS info from the device\\r\\n switch (messageTypeLocalCode) {\\r\\n case 'COMM-SMS': // SMS message sent in\\r\\n if (params.data.startsWith('Device location request')) {\\r\\n configsToAck.push(configIds.Controls.RealTimeLocate);\\r\\n } else if (params.data.startsWith('Set IP ok')) {\\r\\n configsToAck.push(configIds.Controls.GetCurrentConfig);\\r\\n } else if (params.data.startsWith('IMEI:')) {\\r\\n configsToAck.push(configIds.Controls.GetFirmwareVersion);\\r\\n } else if (params.data.startsWith('Set IP ok')) {\\r\\n configsToAck.push(configIds.Controls.ClearBufferedMessages);\\r\\n } else if (params.data.startsWith('flush ok')) {\\r\\n configsToAck.push(configIds.Controls.GetCurrentConfig);\\r\\n } else if (params.data.startsWith('Set Roam-')) {\\r\\n configsToAck.push(configIds.SMSPrefix.SMSPrefix);\\r\\n } else if (params.data.startsWith('set live tracking')) {\\r\\n configsToAck.push(configIds.Controls.Trace);\\r\\n } else if (params.data.startsWith('reboot ok')) {\\r\\n configsToAck.push(configIds.Controls.Reboot);\\r\\n } else if (params.data.startsWith('GPS')) {\\r\\n configsToAck.push(configIds.Controls.RealTimeLocate);\\r\\n var i1 = params.data.search('Now:')\\r\\n var i2 = params.data.search('Loc Time:')\\r\\n var i3 = params.data.search('Speed:')\\r\\n var i4 = params.data.search('Altitude:')\\r\\n var i5 = params.data.search('Battery:')\\r\\n var i6 = params.data.search('google')\\r\\n var eventTime = params.data.substring(i2 + 9, i3)\\r\\n var Speed = params.data.substring(i3 + 6, i4 - 3)\\r\\n if (params.data.substring(i4 - 3, i4) == 'mph') {\\r\\n Speed = Speed * 0.44704\\r\\n } else if (params.data.substring(i4 - 3, i4) == 'kph') {\\r\\n Speed = Speed / 3.6\\r\\n }\\r\\n var latlong = params.data.substring(i6 + 18)\\r\\n location_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n messageForReceiver = (`Roam-RTL;${params.imei};${location_time};${location_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n //event_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n //messageForReceiver = (`CARE-RTL;${params.imei};${event_time};${event_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n case 'ACK-FIRM-SMS': // Firmware info sent by SMS\\r\\n //var i1 = params.data.search('IMEI:')\\r\\n //var i2 = params.data.search('GSM signal quality:')\\r\\n var i3 = params.data.search('Software version:')\\r\\n var sub = params.data.substring(i3 + 17, params.data.length)\\r\\n var i4 = sub.search('version:');\\r\\n var fwVersion = sub.substring(i4, sub.length);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n break;\\r\\n case 'ACK-FALLSENS-SMS': // Fall sensibility info sent by SMS\\r\\n var i1 = params.data.search('Fall alarm:');\\r\\n var sensibility = params.data.substring(i1 + 11, i1 + 14);\\r\\n var i2 = params.data.search('level:');\\r\\n sensibility = sensibility + ', ' + params.data.substring(i2 + 6, i2 + 7);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"sensibility\\\", sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadEmergencySettings.FallSensitivity, sensibility);\\r\\n configsToAck.push(configIds.ReadEmergencySettings.FallSensitivity);\\r\\n break;\\r\\n case 'ACK-BEAC-SMS': // Beacon list info sent by SMS\\r\\n var i1 = raw.search('1,');\\r\\n //var i2 = params.data.search('2,');\\r\\n //var homeBeacon = params.data.substring(i1+2, i2);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"homeBeacon\\\", raw.substring(i1, raw.length));\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.HomeBeacon, raw.substring(i1, raw.length));\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.HomeBeacon);\\r\\n break;\\r\\n case 'ACK-CONTAC-SMS': // Contact list info sent by SMS\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n var i1 = raw.search('A1:');\\r\\n if (raw.includes('A2:')) {\\r\\n var i2 = raw.search('A2:');\\r\\n } else {\\r\\n var i2 = raw.search('A10:');\\r\\n }\\r\\n var tel = raw.substring(i1 + 4, i2);\\r\\n AddValue(codeValues, \\\"EmergencyNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.EmergencyNumber, tel);\\r\\n configsToAck.push(configIds.ReadAlertSettings.EmergencyNumber);\\r\\n i2 = raw.search('A10:')\\r\\n tel = raw.substring(i2 + 4, raw.length);\\r\\n AddValue(codeValues, \\\"SMSGateway\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.SMSGateway, tel);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.SMSGateway);\\r\\n AddValue(codeValues, \\\"ApprovedContacts\\\", raw.substring(i1, raw.length));\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.ApprovedContacts, raw.substring(i1, raw.length));\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.ApprovedContacts);\\r\\n break;\\r\\n case 'ACK-SERV-SMS': // APN and Server info sent by SMS\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n var i1 = params.data.search('APN:')\\r\\n var i2 = params.data.search('IP:')\\r\\n var i3 = params.data.search('Move')\\r\\n var apn = params.data.substring(i1 + 4, i2);\\r\\n AddValue(codeValues, \\\"apn\\\", apn);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.APN, apn);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.APN);\\r\\n var serverDetails = params.data.substring(i2 + 3, i3);\\r\\n AddValue(codeValues, \\\"server\\\", serverDetails);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.Server, serverDetails);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.Server);\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case 'RTL-GPS': // SRTL sent in via SMS with no pre-code\\r\\n var i3 = params.data.search('Speed:')\\r\\n var i4 = params.data.search('Altitude:')\\r\\n var i5 = params.data.search('Battery:')\\r\\n var i6 = params.data.search('google')\\r\\n var eventTime = params.data.substring(0, i3)\\r\\n var Speed = params.data.substring(i3 + 6, i4 - 3)\\r\\n if (params.data.substring(i4 - 3, i4) == 'mph') {\\r\\n Speed = Speed * 0.44704\\r\\n } else if (params.data.substring(i4 - 3, i4) == 'kph') {\\r\\n Speed = Speed / 3.6\\r\\n }\\r\\n var latlong = params.data.substring(i6 + 18)\\r\\n location_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n messageForReceiver = (`Roam-RTL;${params.imei};${location_time};${location_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n }\\r\\n if (!params.event_time && !event_time) { // if params.event_time undefined - set it to now. \\r\\n var event_time = moment.utc().unix();\\r\\n AddValue(codeValues, 'event_time', event_time);\\r\\n }\\r\\n // if (!params.location_time && !location_time) { // if params.location_time undefined - set it to now. \\r\\n // var location_time = moment.utc().unix();\\r\\n // AddValue(codeValues, 'location_time', location_time);\\r\\n //}\\r\\n }\\r\\n var dataToReceiver = {\\r\\n 'values': codeValues\\r\\n };\\r\\n if (configsToAck.length > 0) {\\r\\n dataToReceiver.configsToAck = configsToAck\\r\\n };\\r\\n if (configsToUpdate.length > 0) {\\r\\n dataToReceiver.configsToUpdate = configsToUpdate\\r\\n };\\r\\n if (configsToSend.length > 0) {\\r\\n dataToReceiver.configsToSend = configsToSend\\r\\n };\\r\\n console.log(dataToReceiver);\\r\\n //}\\r\\n //return {\\r\\n // 'output': dataToReceiver\\r\\n //}\\r\\n // end of main operation\\r\\n // define functions used in operation\\r\\n function AddValue(codeValueArray, p1, p2) { // push code value pair into array\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n codeValueArray.push(cvpair);\\r\\n }\\r\\n\\r\\n function decoder(str) { // decode rawdata\\r\\n // CARE Decoder\\r\\n AddValue(codeValues, 'Message : ', str);\\r\\n var message = str;\\r\\n // need to check if checksum is correct for possible msg corruption 10/03/23\\r\\n var checksum = message.substring(8, 12);\\r\\n var messageBody = message.substring(16, message.length);\\r\\n debug('message =' + message);\\r\\n debug('checksum =' + checksum);\\r\\n debug('calculateCheckSum =' + calculateCheckSum(messageBody));\\r\\n if (calculateCheckSum(messageBody) == checksum) { // payload is valid\\r\\n debug(\\\"message has valid checksum\\\");\\r\\n var messageBody = command; // update value for the ACK\\r\\n debug('command =' + command);\\r\\n if (command == '01') {\\r\\n while (index < total_length + 16) {\\r\\n // gen_location = '0'; //cambiado 30/09\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n var keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n debug('key = ' + key);\\r\\n debug('value = ' + value);\\r\\n switch (key) {\\r\\n //Device ID\\r\\n case '01':\\r\\n var imei = hex_to_ascii(value);\\r\\n break;\\r\\n //Alarm code\\r\\n case '02':\\r\\n var alarm = 'CYC';\\r\\n var alarmCode = value.substring(0, 8);\\r\\n alarmCode = changeEndianness(alarmCode);\\r\\n var timestampHex = value.substring(8, 16);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n event_time = timestamp;\\r\\n var alarmCodeInt = hexToDecimal(alarmCode);\\r\\n var alarmCodeExt = value.substring(16, 24);\\r\\n alarmCodeExt = changeEndianness(alarmCodeExt);\\r\\n var alarmCodeExtInt = hexToDecimal(alarmCodeExt);\\r\\n //Extended Alerts\\r\\n // Fall off\\r\\n if ((alarmCodeExtInt & 1) == 1) {\\r\\n var alarm = 'ALF-C';\\r\\n }\\r\\n // Welfare Check-out\\r\\n else if ((alarmCodeExtInt & 2) == 2) {\\r\\n var alarm = 'ALA-C';\\r\\n }\\r\\n // Standard Alerts\\r\\n //Battery low\\r\\n else if ((alarmCodeInt & 1) == 1) {\\r\\n var alarm = 'BATL';\\r\\n }\\r\\n //Overspeed\\r\\n else if ((alarmCodeInt & 2) == 2) {\\r\\n var alarm = 'ALSP';\\r\\n }\\r\\n //Fall\\r\\n else if ((alarmCodeInt & 4) == 4) {\\r\\n var alarm = 'ALF';\\r\\n }\\r\\n //Tilt\\r\\n else if ((alarmCodeInt & 8) == 8) {\\r\\n var alarm = 'Tilt';\\r\\n } else if ((alarmCodeInt & 16) == 16) {\\r\\n if ((alarmCodeInt & 16777216) == 16777216) {\\r\\n var alarm = 'Geo1-IN';\\r\\n } else {\\r\\n var alarm = 'Geo1-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 32) == 32) {\\r\\n if ((alarmCodeInt & 33554432) == 33554432) {\\r\\n var alarm = 'Geo2-IN';\\r\\n } else {\\r\\n var alarm = 'Geo2-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 64) == 64) {\\r\\n if ((alarmCodeInt & 67108864) == 67108864) {\\r\\n var alarm = 'Geo3-IN';\\r\\n } else {\\r\\n var alarm = 'Geo3-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 128) == 128) {\\r\\n if ((alarmCodeInt & 134217728) == 134217728) {\\r\\n var alarm = 'Geo4-IN';\\r\\n } else {\\r\\n var alarm = 'Geo4-OUT';\\r\\n }\\r\\n }\\r\\n //Power Off\\r\\n else if ((alarmCodeInt & 256) == 256) {\\r\\n var alarm = 'PWRF';\\r\\n }\\r\\n //Power On\\r\\n else if ((alarmCodeInt & 512) == 512) {\\r\\n var alarm = 'PWRN';\\r\\n }\\r\\n //Motion\\r\\n else if ((alarmCodeInt & 1024) == 1024) {\\r\\n var alarm = 'ALMOV';\\r\\n }\\r\\n //No Motion\\r\\n else if ((alarmCodeInt & 2048) == 2048) {\\r\\n var alarm = 'ALNM';\\r\\n }\\r\\n //SOS\\r\\n else if ((alarmCodeInt & 4096) == 4096) {\\r\\n var alarm = 'ALSOS';\\r\\n } else if ((alarmCodeInt & 8192) == 8192) {\\r\\n var alarm = 'Side1';\\r\\n } else if ((alarmCodeInt & 16384) == 16384) {\\r\\n var alarm = 'Side2';\\r\\n }\\r\\n //Battery charging\\r\\n else if ((alarmCodeInt & 32768) == 32768) {\\r\\n var alarm = 'BATCN';\\r\\n }\\r\\n //Battery no charging\\r\\n else if ((alarmCodeInt & 65536) == 65536) {\\r\\n var alarm = 'BATCF';\\r\\n }\\r\\n //SOS Ending\\r\\n // Temporary Commented until we know exactly how it works. 22/09/2022\\r\\n else if ((alarmCodeInt & 131072) == 131072) {\\r\\n var alarm = 'SOSEnding';\\r\\n info = 'Alarm Finished';\\r\\n }\\r\\n //Amber Alert EC03 only\\r\\n else if ((alarmCodeInt & 262144) == 262144) {\\r\\n var alarm = 'ALAO';\\r\\n }\\r\\n // welfare Alert check-in ALA-O\\r\\n else if ((alarmCodeInt & 524288) == 524288) {\\r\\n var alarm = 'ALA-O';\\r\\n }\\r\\n // Amber alert Ending ALA-C\\r\\n else if ((alarmCodeInt & 1048576) == 1048576) {\\r\\n var alarm = 'ALA-C';\\r\\n }\\r\\n // Amber alert Ending ALA-C\\r\\n //else if ((alarmCodeInt & 1048576) == 1048576) {\\r\\n // var alarm = 'ALA-C';\\r\\n //}\\r\\n // Fall-Down Alert ending\\r\\n else if ((alarmCodeInt & 2097152) == 2097152) {\\r\\n var alarm = 'ALF-C';\\r\\n }\\r\\n // welfare Alert Ending ALA\\r\\n else if ((alarmCodeInt & 4194304) == 4194304) {\\r\\n var alarm = 'ALA';\\r\\n }\\r\\n // Beacon absent Alert 11/10/22. Need to be added in msg types\\r\\n //else if ((alarmCodeInt & 16777216) == 16777216) {\\r\\n // var alarm = 'BEA';\\r\\n //}\\r\\n general += 'alarm:' + alarm + ',';\\r\\n break;\\r\\n //Custom ID\\r\\n case '03':\\r\\n // in value is customID.... '06' for Watch Care\\r\\n // if ((imei != '860470063029395') && (imei != '860470063035947')) {\\r\\n //update customID to check if belongs to this type of device\\r\\n customID = value;\\r\\n if (value != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n } else {\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n general += 'customID:' + value + ',';\\r\\n break;\\r\\n }\\r\\n //Historical Data Completed\\r\\n case '10': // indica q se han terminado de enviar todos los datos historicos.\\r\\n var histData = true;\\r\\n break;\\r\\n //GPS location\\r\\n case '20':\\r\\n location_type = 'GPS';\\r\\n var latitudeHex = value.substring(0, 8);\\r\\n var longitudeHex = value.substring(8, 16);\\r\\n var speedHex = value.substring(16, 20);\\r\\n var directionHex = value.substring(20, 24);\\r\\n var altitudeHex = value.substring(24, 28);\\r\\n var location_accuracyHex = value.substring(28, 32);\\r\\n var mileageHex = value.substring(32, 40);\\r\\n var satellitesHex = value.substring(40, 42);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n speed = ((hexToDecimal(changeEndianness(speedHex))) / 3.6).toFixed(2); //date 14-02-2023 in m/s\\r\\n var direction = hexToDecimal(changeEndianness(directionHex));\\r\\n var altitude = hexToDecimal(changeEndianness(altitudeHex)); // in meters\\r\\n //location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex)) * 5;\\r\\n // Range: 0.5 to 99.9 \\r\\n location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex));\\r\\n //var mileage = hexToDecimal(changeEndianness(mileageHex)) this is in km/h we need m/s\\r\\n var mileage = hexToDecimal(changeEndianness(mileageHex)); // in meters date 14-02-2023\\r\\n var satellites = hexToDecimal(satellitesHex);\\r\\n // location_time = timestamp;\\r\\n //<<latitude>>,<<longitude>>,<<speed>>,<<altitude>>,<<location_time>>\\r\\n gps_data = `${latitude},${longitude},${location_accuracy},${speed},${direction},${altitude},${satellites},${mileage}`;\\r\\n general += 'gps location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //WIFI Towers\\r\\n case '22':\\r\\n location_type = 'WIFI';\\r\\n var numWifi = Math.round((hexToDecimal(keyLengthHex) - 1) / 7);\\r\\n //location_time = timestamp;\\r\\n var wifiTowers = value;\\r\\n general += 'wifiTowers:';\\r\\n var indexWifi = 0;\\r\\n var bssid_array = [];\\r\\n wifi_data = '';\\r\\n for (let i = 0; i < numWifi; i++) {\\r\\n wifi_data += hexToDecimalSigned(wifiTowers.substring(indexWifi, indexWifi + 2)) + ',' + wifiTowers.substring(indexWifi + 2, indexWifi + 14) + ',';\\r\\n indexWifi += 14;\\r\\n }\\r\\n wifi_data = wifi_data.slice(0, -1);\\r\\n general += wifi_data;\\r\\n break;\\r\\n //BLE Location Added 10/10/22\\r\\n case '23':\\r\\n location_type = 'BLE';\\r\\n var mac = value.substring(0, 12);\\r\\n var latitudeHex = value.substring(12, 20);\\r\\n var longitudeHex = value.substring(20, 28);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n var address = hex_to_ascii(value.substring(28, value.length));\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n // location_time = timestamp;\\r\\n ble_data = `${latitude},${longitude},${mac},${address}`;\\r\\n general += 'BLE location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //General Data , status_data\\r\\n case '24':\\r\\n //var general = 'true'\\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n }\\r\\n //else {\\r\\n // messageForReceiver = (`CareWatch-CYC;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};`);\\r\\n //}\\r\\n // reset variables\\r\\n //alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n location_time = timestamp;\\r\\n // HardCode to fix possible issue in protocol\\r\\n // event_time = timestamp; \\r\\n event_time = moment.utc().unix();\\r\\n // end of hard code\\r\\n var statusHex = changeEndianness(value.substring(8, 16));\\r\\n var statusInt = hexToDecimal(statusHex);\\r\\n var statusDevice = '';\\r\\n if ((statusInt & 1) == 1) {\\r\\n statusDevice += 'GPS,';\\r\\n }\\r\\n if ((statusInt & 2) == 2) {\\r\\n statusDevice += 'WIFISource,';\\r\\n }\\r\\n if ((statusInt & 4) == 4) {\\r\\n statusDevice += 'CellTower,';\\r\\n }\\r\\n if ((statusInt & 8) == 8) {\\r\\n statusDevice += 'BLELocation,';\\r\\n }\\r\\n //params.BatteryStatus.BatteryStatus = '1';\\r\\n if ((statusInt & 16) == 16) {\\r\\n statusDevice += 'Charging,';\\r\\n // var alarm = 'BATCN';\\r\\n //configs.BatteryStatus.BatteryStatus = '1';\\r\\n /* if (configs.BatteryStatus.BatteryStatus !== '1') {\\r\\n hasConfigs = true;\\r\\n var batteryStatus = '1';\\r\\n var alarm = 'BATCN';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }*/\\r\\n }\\r\\n if ((statusInt & 32) == 32) {\\r\\n statusDevice += 'FUllyCharged,';\\r\\n //var alarm = 'BATF';\\r\\n // configs.BatteryStatus.BatteryStatus = '3';\\r\\n /* if (configs.BatteryStatus.BatteryStatus !== '3') {\\r\\n hasConfigs = true;\\r\\n var batteryStatus = '3';\\r\\n var alarm = 'BATF';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }*/\\r\\n }\\r\\n /* if (!((statusInt & 32) == 32) & !((statusInt & 16) == 16)) {\\r\\n statusDevice += 'Not Charging,';\\r\\n var alarm = 'BATCF';\\r\\n //configs.BatteryStatus.BatteryStatus = '2';\\r\\n if (configs.BatteryStatus.BatteryStatus !== '2') {\\r\\n var batteryStatus = '2';\\r\\n var alarm = 'BATCF';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }\\r\\n }*/\\r\\n if ((statusInt & 64) == 64) {\\r\\n statusDevice += 'Reboot,';\\r\\n }\\r\\n if ((statusInt & 128) == 128) {\\r\\n statusDevice += 'HistoricalData,';\\r\\n }\\r\\n if ((statusInt & 256) == 256) {\\r\\n statusDevice += 'AGPSDataValid,';\\r\\n }\\r\\n if ((statusInt & 512) == 512) {\\r\\n statusDevice += 'Motion,';\\r\\n }\\r\\n if ((statusInt & 1024) == 1024) {\\r\\n statusDevice += 'SmartLocating,';\\r\\n }\\r\\n if ((statusInt & 2048) == 2048) { //isHome\\r\\n statusDevice += 'BeaconLocation,';\\r\\n }\\r\\n if ((statusInt & 4096) == 4096) {\\r\\n statusDevice += 'BLEConnected,';\\r\\n }\\r\\n if ((statusInt & 16384) == 16384) {\\r\\n statusDevice += 'HomeWiFi,';\\r\\n }\\r\\n statusDevice = statusDevice.slice(0, -1);\\r\\n status_data = statusDevice; //to oysta template\\r\\n //statusHex = (statusHex);\\r\\n statusHex = hex2bin(statusHex);\\r\\n statusHex = ('00000000000000000000000000000000' + statusHex).slice(-32);\\r\\n battery_percentage = parseInt(statusHex.substring(0, 8), 2);\\r\\n cellNetworkSignal = parseInt(statusHex.substring(8, 13), 2);\\r\\n workMode = parseInt(statusHex.substring(13, 16), 2);\\r\\n general += 'statusDevice:' + statusDevice + ',';\\r\\n if (battery_percentage) {\\r\\n general += 'battery:' + battery_percentage + ',';\\r\\n }\\r\\n if (cellNetworkSignal) {\\r\\n general += 'cellNetworkSignal:' + cellNetworkSignal + ',';\\r\\n }\\r\\n if (workMode) {\\r\\n general += 'workMode:' + workMode + ',';\\r\\n }\\r\\n //messageForReceiver = (`CareWatch-CYC;${imei};${i};${event_time};${battery_percentage}`);\\r\\n break;\\r\\n //Call Records\\r\\n case '25':\\r\\n //Needed?\\r\\n break;\\r\\n //BLE Location 2\\r\\n case '26':\\r\\n //I don't understand\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Smart Location\\r\\n case '27':\\r\\n location_type = 'SMART';\\r\\n var latitudeHex = value.substring(0, 8);\\r\\n var longitudeHex = value.substring(8, 16);\\r\\n var location_accuracyHex = value.substring(16, 20);\\r\\n var altitudeHex = value.substring(20, 24);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n var altitude = hexToDecimal(changeEndianness(altitudeHex));\\r\\n //location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex)) * 5;\\r\\n //04/08/2022 se quita el multiplicador por 5 pq ya viene el valor en metros\\r\\n location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex));\\r\\n //location_time = timestamp;\\r\\n smart_data = `${latitude},${longitude},${location_accuracy},${altitude}`;\\r\\n general += 'smart location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //Beacon Location Added 11/10/22\\r\\n case '28':\\r\\n location_type = 'BEACON';\\r\\n // var alarm = 'EBZI';\\r\\n var latitudeHex = '00';\\r\\n var longitudeHex = '00';\\r\\n var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 1));\\r\\n var beacId = hexToDecimal(value.substring(1, 2));\\r\\n // msg includes descrip\\r\\n if ((flag & 4) == 4) {\\r\\n descr = hex_to_ascii(value.substring(18, value.length));\\r\\n }\\r\\n // msg includes lat/lon\\r\\n if ((flag & 8) == 8) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n }\\r\\n // msg includes lat/lon and description\\r\\n if ((flag & 12) == 12) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n descr = hex_to_ascii(value.substring(34, value.length));\\r\\n }\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var rssiHex = value.substring(14, 16);\\r\\n var rssi1Hex = value.substring(16, 18);\\r\\n rssi = hexToDecimalSigned(changeEndianness(rssiHex));\\r\\n rssi1 = hexToDecimalSigned(changeEndianness(rssi1Hex));\\r\\n // var latitudeHex = value.substring(18, 26);\\r\\n // var longitudeHex = value.substring(26, 34);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n //location_time = timestamp;\\r\\n beacon_data = `${latitude},${longitude},${mac},${descr}`;\\r\\n general += 'BEACON location (lat):' + latitude + ', (long):' + longitude + ', (mac):' + mac + ', (description):' + descr + ', (rssi):' + rssi + ', (listIndex):' + beacId + ',';\\r\\n break;\\r\\n // Beacon V2\\r\\n case '2C':\\r\\n location_type = 'BEACON';\\r\\n // var alarm = 'EBZI';\\r\\n var latitudeHex = '00';\\r\\n var longitudeHex = '00';\\r\\n var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 1));\\r\\n var beacId = hexToDecimal(value.substring(1, 2));\\r\\n // msg includes descrip\\r\\n if ((flag & 4) == 4) {\\r\\n let desc_leng = hexToDecimal(value.substring(20, 22));\\r\\n descr = hex_to_ascii(value.substring(22, 22 + (2 * desc_leng)));\\r\\n //descr = hex_to_ascii(value.substring(18, value.length));\\r\\n }\\r\\n // msg includes lat/lon\\r\\n if ((flag & 8) == 8) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n }\\r\\n // msg includes lat/lon and description\\r\\n if ((flag & 12) == 12) {\\r\\n latitudeHex = value.substring(20, 28);\\r\\n longitudeHex = value.substring(28, 36);\\r\\n let desc_leng = hexToDecimal(value.substring(36, 38));\\r\\n descr = hex_to_ascii(value.substring(38, 38 + (2 * desc_leng)));\\r\\n }\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var rssiHex = value.substring(14, 16);\\r\\n var rssi1Hex = value.substring(16, 18);\\r\\n rssi = hexToDecimalSigned(changeEndianness(rssiHex));\\r\\n rssi1 = hexToDecimalSigned(changeEndianness(rssi1Hex));\\r\\n var battery_beacon = hexToDecimal(value.substring(18, 20));\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n //location_time = timestamp;\\r\\n beacon_data = `${latitude},${longitude},${mac},${descr}`;\\r\\n general += 'BEACON location (lat):' + latitude + ', (long):' + longitude + ', (mac):' + mac + ', (description):' + descr + ', (rssi):' + rssi + ', (battery):' + battery_beacon + ', (listIndex):' + beacId + ',';\\r\\n break;\\r\\n //Cell Towers Note\\r\\n case '29':\\r\\n location_type = 'LBS';\\r\\n lbs_data = '';\\r\\n var mccHex = changeEndianness(value.substring(0, 4));\\r\\n var mncHex = value.substring(4, 6);\\r\\n var mcc = hexToDecimal(mccHex);\\r\\n lbs_data += mcc + ',';\\r\\n var mnc = hexToDecimal(mncHex);\\r\\n lbs_data += mnc + ',';\\r\\n var indexLbs = 6;\\r\\n var numTowers = (hexToDecimal(keyLengthHex) - 4) / 7;\\r\\n for (let i = 0; i < numTowers; i++) {\\r\\n var rxlHex = changeEndianness(value.substring(indexLbs, indexLbs + 2));\\r\\n var rxl = hexToDecimal(rxlHex);\\r\\n var lacHex = changeEndianness(value.substring(indexLbs + 2, indexLbs + 6));\\r\\n var lac = hexToDecimal(lacHex);\\r\\n var cellTowers = hexToDecimal(changeEndianness(value.substring(indexLbs + 6, indexLbs + 14)));\\r\\n lbs_data += rxl + ',' + lac + ',' + cellTowers + ',';\\r\\n indexLbs += 14;\\r\\n }\\r\\n lbs_data = lbs_data.slice(0, -1);\\r\\n general += lbs_data;\\r\\n break;\\r\\n case '30':\\r\\n //G-sensor. \\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n var numStep = (keyLength - 2) / 16;\\r\\n for (let j = 0; j < numStep; j++) {\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n //timestamp = hexToDecimalSigned(timestampHex);\\r\\n var stepHex = value.substring(8, 16);\\r\\n stepHex = changeEndianness(stepHex);\\r\\n var stepRate = hexToDecimal(stepHex);\\r\\n info = stepRate;\\r\\n //var alarmCode = 'True';\\r\\n var alarm = 'STP';\\r\\n general += ' step counting' + j + ':' + stepRate + ',';\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};STP=${info};LABEL=steps`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n //Activity\\r\\n case '31':\\r\\n //I don't understand\\r\\n break;\\r\\n //BLE MAC list\\r\\n case '32':\\r\\n //I don't understand\\r\\n break;\\r\\n //Beacon List\\r\\n case '33':\\r\\n //I don't understand\\r\\n break;\\r\\n //Heart Rate Data\\r\\n case '40':\\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n var numHeartRate = (keyLength - 2) / 12;\\r\\n for (let j = 0; j < numHeartRate; j++) {\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n //timestamp = hexToDecimalSigned(timestampHex);\\r\\n var heartRateHex = value.substring(8, 10);\\r\\n var heartRate = hexToDecimal(heartRateHex);\\r\\n var trustLevelHex = value.substring(10, 12);\\r\\n var trustLevel = hexToDecimal(trustLevelHex);\\r\\n info = heartRate;\\r\\n //var alarmCode = 'True';\\r\\n var alarm = 'HRT';\\r\\n general += ' heart rate' + j + ':' + heartRate + ',';\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};HRT=${info};TLEVEL=${trustLevel};LABEL=bpm`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n //BLE Connected . For Flic button\\r\\n case '62':\\r\\n location_type = 'BLE';\\r\\n //var alarm = 'EBZI'; \\r\\n //var latitudeHex = '00';\\r\\n //var longitudeHex = '00';\\r\\n //var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 2)); // 0= Disconnected, 1= Connected\\r\\n var mac = value.substring(2, 14); // No hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var batLevel = hexToDecimal(value.substring(14, 16)); // 0-100\\r\\n //location_time = timestamp;\\r\\n ble_data = `${flag},${batLevel},${mac}`;\\r\\n general += 'BLE location (State):' + flag + ', (bat):' + batLevel + ', (mac):' + mac + ',';\\r\\n break;\\r\\n }\\r\\n }\\r\\n // CareWatch-CYC;<<imei>>;STATUS=<<status_data>>;TIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;\\r\\n // \\\"CareWatch-CYC;861629050193550;STATUS=WIFISource,CellTower;TIME=1673950279;BATP=84;LGPS=undefined;LWIF=-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369;LLBS=214,1,13,768,38529798;LBEACON=undefined;BLE=undefined;GENERAL=statusDevice:WIFISource,CellTower,battery:84,cellNetworkSignal:14,workMode:6,wifiTowers:-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369,214,1,13,768,38529798,;\\\",\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n /*else if (alarm === 'HRT') {\\r\\n messageForReceiver = (`CareWatch-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};HRT=${info};TLEVEL=${trustLevel};LABEL=bpm`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (alarm === 'STP') {\\r\\n messageForReceiver = (`CareWatch-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};STP=${info};LABEL=steps`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else {\\r\\n messageForReceiver = (`CareWatch-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }*/\\r\\n // rest the alarm value\\r\\n alarm = '';\\r\\n }\\r\\n if (command == '02') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n switch (key) {\\r\\n //Module Number\\r\\n case '01':\\r\\n var date = value.substring(6, 8) + value.substring(4, 6) + '-' + value.substring(2, 4) + '-' + value.substring(0, 2);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Firmware version\\r\\n case '02':\\r\\n //no ACK need\\r\\n var fwVersion = 'v' + hexToDecimal(value.substring(6, 8)) + '.' + hexToDecimal(value.substring(4, 6)) + '.' + hexToDecimal(value.substring(2, 4)) + '.' + hexToDecimal(value.substring(0, 2));\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '1A':\\r\\n //no ACK need\\r\\n var fwVersion = hex_to_ascii(value);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n break;\\r\\n //IMEI\\r\\n case '03':\\r\\n var imei = hexToDecimal(value);\\r\\n // harcode to avoid conflicts with Rio protocol\\r\\n //if ((imei != '860470063029395') && (imei != '860470063035947')) {\\r\\n // AddValue(codeValues, \\\"error\\\", \\\"device imei is not in this protocol\\\");\\r\\n // AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n //AddValue(codeValues, \\\"IMEI\\\", imei);\\r\\n // return\\r\\n //}\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //ICCID\\r\\n case '04':\\r\\n var iccid = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //BLE-MAC\\r\\n case '05':\\r\\n var bleMac = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Run Time\\r\\n case '07':\\r\\n var runTime = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '10': // Ringer Volume\\r\\n var volume = hexToDecimal(value);\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-VOL;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"Volume\\\", volume);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.Volume, volume);\\r\\n configsToAck.push(configIds.ReadSystemSettings.Volume);\\r\\n break;\\r\\n case '0A': //Performance mode\\r\\n //var workMode = hexToDecimal(value);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n //AddValue(codeValues, \\\"WorkMode\\\", workMode);\\r\\n //AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n //configsToAck.push(configIds.ReadPerformance`Settings.Mode);\\r\\n //var workMode = hex_to_ascii(value.substring(0, value.length));\\r\\n //var workMode = hexToDecimal(value);\\r\\n //var workMode = hex_to_ascii(value.substring(0, value.length));\\r\\n var workMode = 1234; // + value + \\\"end\\\";\\r\\n //var workModeVal = 9;\\r\\n //workMode = 'test10';\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-MODE;${imei};`);\\r\\n AddValue(codeValues, \\\"Mode\\\", workMode);\\r\\n AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n //AddValue(codeValues, \\\"performanceMode\\\", performanceMode);\\r\\n //AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, performanceMode);\\r\\n // configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n break;\\r\\n case '1B':\\r\\n //Decimal o ascii?\\r\\n var gsmModule = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '1F':\\r\\n //System Language\\r\\n var systemLanguage = hex_to_ascii(value.substring(0, value.length));\\r\\n imei = serverParams.Imei;\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n messageForReceiver = (`Roam;ACK-LANG;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"SystemLanguage\\\", systemLanguage);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.SystemLanguage, systemLanguage);\\r\\n configsToAck.push(configIds.ReadSystemSettings.SystemLanguage);\\r\\n break;\\r\\n case '33': // phone option\\r\\n // [Value]:83 0B 00 00 {\\\"phoneOption\\\":{\\\"flag_value\\\":2947,\\\"s3\\\":1,\\\"s4\\\":0,\\\"s5\\\":1,\\\"s6\\\":0,\\\"callIncoming\\\":0,\\\"rings\\\":3,\\\"s7\\\":0,\\\"toneID\\\":0,\\\"s1\\\":1,\\\"s2\\\":1}}\\r\\n var statusPhone = hex2bin(value.substring(0, 2)); // To find autoanswer setup\\r\\n if (statusPhone.substring(0, 1) == '1') { // 1 Enable\\r\\n var auto = 'true';\\r\\n } else var auto = 'false';\\r\\n statusPhone = hex2bin(value.substring(2, 4)); // To find allow list setup\\r\\n if (statusPhone.substring(7, 8) == '1') { // 1 Enable\\r\\n allow = 'true';\\r\\n } else var allow = 'false';\\r\\n //statusPhone = hex2bin(value.substring(0, 2)) + hex2bin(value.substring(2, 4));\\r\\n //AddValue(configsToUpdate, configIds.ReadSystemSettings.Statusphone, statusPhone);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.AllowList, allow);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.AutoAnswer, auto);\\r\\n //configsToAck.push(configIds.ReadSystemSettings.Statusphone);\\r\\n configsToAck.push(configIds.ReadSystemSettings.AllowList);\\r\\n configsToAck.push(configIds.ReadSystemSettings.AutoAnswer);\\r\\n break;\\r\\n case '30': //ContactList\\r\\n var contactNumber = value.substring(1, 2);\\r\\n var telLength = hexToDecimal(value.substring(2, 4));\\r\\n var tel = '';\\r\\n switch (contactNumber) {\\r\\n // Emergency Number\\r\\n case '0':\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n AddValue(codeValues, \\\"EmergencyNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.EmergencyNumber, tel);\\r\\n configsToAck.push(configIds.ReadAlertSettings.EmergencyNumber);\\r\\n break;\\r\\n // Speed Dial Number\\r\\n case '1':\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n AddValue(codeValues, \\\"SpeedDialNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadSpeedDialSettings.SpeedDialNumber, tel);\\r\\n configsToAck.push(configIds.ReadSpeedDialSettings.SpeedDialNumber);\\r\\n AddValue(configsToUpdate, configIds.ReadSpeedDialSettings.EnableDisableReadSpeedDialSettings, configIds.SpeedDialSettings.EnableDisableSpeedDial);\\r\\n configsToAck.push(configIds.ReadSpeedDialSettings.EnableDisableReadSpeedDialSettings);\\r\\n break;\\r\\n // Gateway Number\\r\\n case '9': //00447781482635,Esendex UK 0034627177148,Esendex Spain 00447507288240,Esendex UK Acceptance\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n if (tel.includes('447781482635') || tel.includes('00447781482635')) {\\r\\n tel = 'Esendex UK'\\r\\n } else if (tel.includes('34627177148') || tel.includes('0034627177148')) {\\r\\n tel = 'Esendex Spain'\\r\\n } else if (tel.includes('447507288240') || tel.includes('00447507288240')) {\\r\\n tel = 'Esendex UK Acceptance'\\r\\n } else {\\r\\n tel = 'Default'\\r\\n }\\r\\n AddValue(codeValues, \\\"SMSGateway\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.SMSGateway, tel);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.SMSGateway);\\r\\n break;\\r\\n default:\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n if (tel.length < 6) {\\r\\n break;\\r\\n }\\r\\n contacts += 'A' + (contactNumber - 1) + ': ' + tel + ', ';\\r\\n AddValue(codeValues, \\\"ApprovedContacts\\\", contacts);\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.ApprovedContacts, contacts);\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.ApprovedContacts);\\r\\n break;\\r\\n }\\r\\n break;\\r\\n case '40': // APN\\r\\n //no ACK need\\r\\n var apn = hex_to_ascii(value.substring(0, value.length));\\r\\n imei = serverParams.Imei;\\r\\n break;\\r\\n case '41': // APN Username\\r\\n //no ACK need\\r\\n //apn = apn + ',' + hex_to_ascii(value.substring(0, value.length));\\r\\n break;\\r\\n case '42': // APN Password\\r\\n //no ACK need\\r\\n //apn = apn + ',' + hex_to_ascii(value.substring(0, value.length));\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"apn\\\", apn);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.APN, apn);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.APN);\\r\\n break;\\r\\n case '43': //Server Details\\r\\n //52.232.85.255,5678 production 52.174.17.77,5678 acceptance\\r\\n var serverDetails = hex_to_ascii(value.substring(6, value.length)) + ':' + hexToDecimal(value.substring(4, 6) + value.substring(2, 4));\\r\\n if (serverDetails.includes('52.232.85.255:5678')) {\\r\\n serverDetails = 'Production'\\r\\n } else if (serverDetails.includes('52.174.17.77:5678')) {\\r\\n serverDetails = 'Acceptance'\\r\\n } else if (serverDetails.includes('52.174.17.77:5778')) {\\r\\n serverDetails = 'Protocol-Import'\\r\\n } else {\\r\\n serverDetails = 'Default'\\r\\n }\\r\\n AddValue(codeValues, \\\"server\\\", serverDetails);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.Server, serverDetails);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.Server);\\r\\n break;\\r\\n case '44': //time interval - work mode intervals\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-MODE;${imei};`);\\r\\n var workMode = 0;\\r\\n var cycle = hexToDecimal(value.substring(10, 12) + value.substring(8, 10));\\r\\n var lazyCycle = hexToDecimal(value.substring(18, 20) + value.substring(16, 18));\\r\\n if (cycle == 240 && lazyCycle == 3600) { // 4 mins and 1 hour\\r\\n //workMode = 'High Frequency';\\r\\n workMode = 3;\\r\\n }\\r\\n if (cycle == 600 && lazyCycle == 3600) { // 10 mins and 1 hour\\r\\n //workMode = 'Balanced';\\r\\n workMode = 2;\\r\\n }\\r\\n if (cycle == 28800 && lazyCycle == 43200) { // 6 hour and 12 hours\\r\\n //workMode = 'Power Saving';\\r\\n workMode = 1;\\r\\n }\\r\\n if (cycle == 86400 && lazyCycle == 86400) { // 24 hours and 24 hours\\r\\n //workMode = 'No Reporting';\\r\\n workMode = 0;\\r\\n }\\r\\n AddValue(codeValues, \\\"Mode\\\", workMode);\\r\\n AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case '47': // Custom Id\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-CUSTID;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"customeid\\\", value);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CustomId, value);\\r\\n configsToAck.push(configIds.ReadState.CustomId);\\r\\n break;\\r\\n case '53': // Non motion alert\\r\\n //2B020080\\r\\n var status = hex2bin(value.substring(6, 8));\\r\\n var alertSetting = '';\\r\\n var enableDisable = '';\\r\\n if (status.substring(0, 1) == '1') {\\r\\n alertSetting = 'Enable, '\\r\\n enableDisable = '1';\\r\\n } else {\\r\\n alertSetting = 'Disable, '\\r\\n };\\r\\n //if (status.substring(5, 6) == '1') {\\r\\n // alertSetting += 'Dial, '\\r\\n //} else {\\r\\n // alertSetting += 'No Dial, '\\r\\n //};\\r\\n var time = hexToDecimal(value.substring(2, 4) + value.substring(0, 2));\\r\\n alertSetting += time;\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-NOMOTION;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"nomotion\\\", alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.NoMotionAlert, value + '-' + alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadNonMovementSettings.EnableDisableNonMovementSettings, enableDisable);\\r\\n AddValue(configsToUpdate, configIds.ReadNonMovementSettings.Time, time);\\r\\n configsToAck.push(configIds.ReadAlertSettings.NoMotionAlert);\\r\\n configsToAck.push(configIds.ReadNonMovementSettings.EnableDisableNonMovementSettings);\\r\\n configsToAck.push(configIds.ReadNonMovementSettings.Time);\\r\\n break;\\r\\n case '56': //Fall down sensibility\\r\\n // '00001100'\\r\\n var fallStatus = hex2bin(value.substring(0, 2));\\r\\n var enalbleDisable = '';\\r\\n //if (fallStatus.substring(4, 5) == '1') {\\r\\n if (fallStatus.substring(0, 1) == '1') {\\r\\n var sensibility = 'Enable, '\\r\\n enalbleDisable = '1'\\r\\n } else {\\r\\n var sensibility = 'Disable, '\\r\\n };\\r\\n if (fallStatus.substring(5, 6) == '1') {\\r\\n sensibility += 'Dial, '\\r\\n } else {\\r\\n sensibility += 'No Dial, '\\r\\n };\\r\\n var imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-FALLALERT;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n var sesibityOptionValue = hexToDecimal(value.substring(1, 2));\\r\\n sensibility += sesibityOptionValue;\\r\\n AddValue(codeValues, \\\"sensibility\\\", sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.FallSettings, sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadFallSettings.EnableDisableFallSettings, enalbleDisable);\\r\\n AddValue(configsToUpdate, configIds.ReadFallSettings.Sensitivity, sesibityOptionValue);\\r\\n configsToAck.push(configIds.ReadAlertSettings.FallSettings);\\r\\n configsToAck.push(configIds.ReadFallSettings.EnableDisableFallSettings);\\r\\n configsToAck.push(configIds.ReadFallSettings.Sensitivity);\\r\\n break;\\r\\n case '73': //BeaconList\\r\\n var beaconNumber = hexToDecimal(value.substring(1, 2));\\r\\n var beaconStatus = hex2bin(value.substring(0, 1));\\r\\n //if (beaconStatus.substring(4, 5) == '1') {\\r\\n // homeBeacon += ' Enable, '\\r\\n //} else {\\r\\n // homeBeacon += ' Disable, '\\r\\n //};\\r\\n beaconStatus = hex_to_ascii(value.substring(30, value.length));\\r\\n //beaconStatus = changeEndianness(value.substring(30, value.length));\\r\\n homeBeacon += 'B' + (beaconNumber + 1) + ': ' + beaconStatus + ', ';\\r\\n AddValue(codeValues, \\\"homeBeacon\\\", homeBeacon);\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.HomeBeacon, homeBeacon);\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.HomeBeacon);\\r\\n break;\\r\\n case '4A': //Wifi Network List\\r\\n var wifiSSIDLenght = hexToDecimal(value.substring(2, 4));\\r\\n var wifiPasswordLenght = hexToDecimal(value.substring(4, 6));\\r\\n var wifiIndex = hexToDecimal(value.substring(1, 2));\\r\\n var wifiStatus = hexToDecimal(value.substring(0, 1));\\r\\n /*var enalbleDisable = wifiSSID = wifiPassword = homeWifi = '';\\r\\n /var homeWifi = '';\\r\\n if (wifiIndex == '0') { // Only first Wifi of the list\\r\\n if (wifiStatus == '8') {\\r\\n homeWifi += ' Enable, '\\r\\n enalbleDisable = '1';\\r\\n } else {\\r\\n homeWifi += ' Disable, '\\r\\n //enalbleDisable = '0';\\r\\n };*/\\r\\n if (wifiStatus == '8') {\\r\\n var wifiSSID = hex_to_ascii(value.substring(6, 6 + 2 * (wifiSSIDLenght)));\\r\\n var wifiPassword = hex_to_ascii(value.substring(6 + 2 * (wifiSSIDLenght), 6 + 2 * (wifiSSIDLenght + wifiPasswordLenght)));\\r\\n var imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-WIFI;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n homeWiFi += 'W' + (wifiIndex + 1) + ': ' + wifiSSID + ', ' + wifiPassword + ';';\\r\\n AddValue(codeValues, \\\"wifi\\\", homeWiFi);\\r\\n AddValue(configsToUpdate, configIds.ReadWiFiList.WiFiList, homeWiFi);\\r\\n configsToAck.push(configIds.ReadWiFiList.WiFiList);\\r\\n }\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.EnableDisableReadWiFiSettings, enalbleDisable);\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.SSID, wifiSSID);\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.Password, wifiPassword);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.EnableDisableReadWiFiSettings);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.SSID);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.Password);\\r\\n break;\\r\\n case '21': // Speed Dial Settings\\r\\n // [Value]:53 84 {\\\"call1Button\\\":{\\\"mode\\\":0,\\\"feedBack\\\":3,\\\"task\\\":2,\\\"time\\\":20,\\\"status\\\":1}}\\r\\n var status = hex2bin(value.substring(2, 3));\\r\\n var alertSetting = '';\\r\\n var enableDisable = '';\\r\\n if (status.substring(0, 1) == '1') {\\r\\n alertSetting = 'Enable, '\\r\\n enableDisable = '1';\\r\\n } else {\\r\\n alertSetting = 'Disable, '\\r\\n //enableDisable = '0';\\r\\n };\\r\\n //var time = hexToDecimal(value.substring(2, 4) + value.substring(0, 2));\\r\\n //alertSetting += time;\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-SPEED;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"speed\\\", alertSetting);\\r\\n //AddValue(configsToUpdate, configIds.ReadAlertSettings.NoMotionAlert, value + '-' + alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadSpeedDialSettings.EnableDisableReadSpeedDialSettings, enableDisable);\\r\\n //AddValue(configsToUpdate, configIds.ReadNonMovementSettings.Time, time);\\r\\n //configsToAck.push(configIds.ReadAlertSettings.NoMotionAlert);\\r\\n configsToAck.push(configIds.ReadSpeedDialSettings.EnableDisableReadSpeedDialSettings);\\r\\n //configsToAck.push(configIds.ReadNonMovementSettings.Time);\\r\\n break;\\r\\n }\\r\\n }\\r\\n }\\r\\n if (command == '03') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n var keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n debug('key = ' + key);\\r\\n debug('value = ' + value);\\r\\n switch (key) {\\r\\n case '01': // Device ID\\r\\n var imei = hex_to_ascii(value);\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n break;\\r\\n //CustomID is not provided so far with command type 03.. commented in the mean time\\r\\n /* case '03':\\r\\n //update customID to check if belongs to this type of device\\r\\n customID = value;\\r\\n if (value != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n } else {\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n general += 'customID:' + value + ',';\\r\\n break;\\r\\n }\\r\\n break; */\\r\\n case '10': // Heartbeat\\r\\n var heartbeat = hex_to_ascii(value);\\r\\n event_time = moment.utc().unix();\\r\\n if (index < total_length + 16) {\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n key = message.substring(index, index = index + 2);\\r\\n if (key == '24') {\\r\\n // debug('key: ' + key) //comment those out\\r\\n value = message.substring(index, index = index + keyLength - 2);\\r\\n // debug(value)\\r\\n var timestampHex = value.substring(0, 8);\\r\\n // debug('timestampt hex: ' + timestampHex)\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n event_time = timestamp;\\r\\n // debug(event_time)\\r\\n var statusHex = changeEndianness(value.substring(8, 16));\\r\\n // debug(statusHex)\\r\\n var statusInt = hexToDecimal(statusHex);\\r\\n var statusDevice = '';\\r\\n if ((statusInt & 1) == 1) {\\r\\n statusDevice += 'GPS,';\\r\\n }\\r\\n if ((statusInt & 2) == 2) {\\r\\n statusDevice += 'WIFISource,';\\r\\n }\\r\\n if ((statusInt & 4) == 4) {\\r\\n statusDevice += 'CellTower,';\\r\\n }\\r\\n if ((statusInt & 8) == 8) {\\r\\n statusDevice += 'BLELocation,';\\r\\n }\\r\\n if ((statusInt & 16) == 16) {\\r\\n statusDevice += 'Charging,';\\r\\n }\\r\\n if ((statusInt & 32) == 32) {\\r\\n statusDevice += 'FUllyCharged,';\\r\\n }\\r\\n if ((statusInt & 64) == 64) {\\r\\n statusDevice += 'Reboot,';\\r\\n }\\r\\n if ((statusInt & 128) == 128) {\\r\\n statusDevice += 'HistoricalData,';\\r\\n }\\r\\n if ((statusInt & 256) == 256) {\\r\\n statusDevice += 'AGPSDataValid,';\\r\\n }\\r\\n if ((statusInt & 512) == 512) {\\r\\n statusDevice += 'Motion,';\\r\\n }\\r\\n if ((statusInt & 1024) == 1024) {\\r\\n statusDevice += 'SmartLocating,';\\r\\n }\\r\\n if ((statusInt & 2048) == 2048) {\\r\\n statusDevice += 'BeaconLocation,';\\r\\n }\\r\\n if ((statusInt & 4096) == 4096) {\\r\\n statusDevice += 'BLEConnected,';\\r\\n }\\r\\n statusDevice = statusDevice.slice(0, -1);\\r\\n // debug('statusHex:' + statusHex)\\r\\n statusHex = (statusHex);\\r\\n statusHex = hex2bin(statusHex);\\r\\n statusHex = ('00000000000000000000000000000000' + statusHex).slice(-32);\\r\\n // debug(statusHex)\\r\\n battery_percentage = parseInt(statusHex.substring(0, 8), 2);\\r\\n // debug(battery_percentage)\\r\\n // debug(battery_percentage)\\r\\n // debug(statusHex.substring(8, 13))\\r\\n cellNetworkSignal = parseInt(statusHex.substring(8, 13), 2);\\r\\n // debug(cellNetworkSignal)\\r\\n workMode = parseInt(statusHex.substring(13, 16), 2);\\r\\n // debug(workMode)\\r\\n general += 'statusDevice:' + statusDevice + ';';\\r\\n if (battery_percentage) {\\r\\n general += 'battery:' + battery_percentage + ';';\\r\\n }\\r\\n if (cellNetworkSignal) {\\r\\n general += 'cellNetworkSignal:' + cellNetworkSignal + ';';\\r\\n }\\r\\n if (workMode) {\\r\\n general += 'workMode:' + workMode + ';';\\r\\n }\\r\\n }\\r\\n }\\r\\n // revisar\\r\\n var gen_location = '0';\\r\\n //CustomID is not provided so far with command type 03.. commented in the mean time\\r\\n /*if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }*/\\r\\n //messageForReceiver = (`Eview-HTB;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};SIGNAL=${cellNetworkSignal};WM=${workMode};SL=${systemLanguage};GENERAL=${general}`);\\r\\n messageForReceiver = (`Eview-HTB;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '12': // Device requesting timestamp\\r\\n timestamp = moment.utc().unix();\\r\\n timestampHex = decimalToHex(timestamp);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n keyLengthHex = ('00' + decimalToHex(1 + (timestampHex.length) / 2)).slice(-2);\\r\\n // respond to device with the timestamp of the server\\r\\n messageBody = messageBody + keyLengthHex + key + timestampHex;\\r\\n messageForReceiver = `Eview;${imei};${sequenceID};Get timestamp`;\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case '21': //Cell Towers\\r\\n var mccHex = value.substring(0, 2);\\r\\n var mncHex = value.substring(2, 3);\\r\\n var mcc = hexToDecimal(mccHex);\\r\\n var mnc = hexToDecimal(mncHex);\\r\\n var numTowers = (keyLength - 4) / 5;\\r\\n var cellTowers = hex_to_ascii(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '22': // WIFI locations \\r\\n location_type = 'WIFI';\\r\\n var numWifi = Math.round((hexToDecimal(keyLengthHex) - 1) / 7);\\r\\n //location_time = timestamp;\\r\\n var wifiTowers = value;\\r\\n general += 'wifiTowers:';\\r\\n var indexWifi = 0;\\r\\n var bssid_array = [];\\r\\n gen_location = '';\\r\\n for (let i = 0; i < numWifi; i++) {\\r\\n gen_location += wifiTowers.substring(indexWifi + 2, indexWifi + 14) + ',';\\r\\n indexWifi += 14;\\r\\n }\\r\\n gen_location = gen_location.slice(0, -1);\\r\\n general += gen_location;\\r\\n //CustomID is not provided so far with command type 03\\r\\n /*if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }*/\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n alarmCode = '';\\r\\n break;\\r\\n }\\r\\n }\\r\\n }\\r\\n if (command == '04') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n if (command == '7E') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n if (command == '7F') {\\r\\n // while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n messageForReceiver = (`Roam-ACK;${imei};${message}`); // ${sequenceID}; add ${sequenceID}; 19-07\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n AddValue(configsToUpdate, configIds.ConfigureDevice.LastConfigured, moment().format('YYYY/MM/DD, HH:mm:ss'));\\r\\n configsToAck.push(configIds.ConfigureDevice.LastConfigured);\\r\\n //}\\r\\n }\\r\\n if (command == 'FE') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n // prepare the ACK msg and change config if it is needed\\r\\n lengthAck = messageBody.length / 2;\\r\\n lengthAck = ('0000' + decimalToHex(lengthAck)).slice(-4);\\r\\n lengthAck = lengthAck.toString().substring(2, 4) + lengthAck.toString().substring(0, 2);\\r\\n ////////////checksum CRC 16\\r\\n var checksumAck = byteStringToByteArray(messageBody);\\r\\n checksumAck = crc16byte(checksumAck);\\r\\n checksumAck = decimalToHex(checksumAck);\\r\\n checksumAck = ('0000' + checksumAck).slice(-4);\\r\\n checksumAck = checksumAck.toString().substring(2, 4) + checksumAck.toString().substring(0, 2);\\r\\n prefix = prefix + lengthAck + checksumAck + sequenceID;\\r\\n // To send ACK to the device previous to internal msg with parts\\r\\n if (needsAck == true) {\\r\\n if (messageBody.length <= 2) {\\r\\n ack = 'AB00030008C7' + sequenceID + '7F0100'; // change AB10030008C7 to AB00030008C7\\r\\n } else {\\r\\n ack = prefix + messageBody;\\r\\n }\\r\\n AddValue(codeValues, 'imei', imei);\\r\\n AddValue(codeValues, 'ack', ack);\\r\\n }\\r\\n } else { // checksum was invalid - print out useful debug info and bet quess at imei \\r\\n AddValue(codeValues, \\\"error\\\", \\\"checksum failed for message\\\");\\r\\n AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n i = rawFromBytes.search('3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]');\\r\\n if (i >= 0) {\\r\\n imei = hex_to_ascii(rawFromBytes.substring(i, i + 30));\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n function ascii_to_hexa(str) { // ascii to hex \\r\\n var arr1 = [];\\r\\n for (var n = 0, l = str.length; n < l; n++) {\\r\\n var hex = Number(str.charCodeAt(n)).toString(16);\\r\\n arr1.push(hex);\\r\\n }\\r\\n return arr1.join('');\\r\\n }\\r\\n\\r\\n function byteStringToByteArray(str) { //\\r\\n var splitStr = [];\\r\\n var j = 0;\\r\\n for (let i = 0; i < str.length; i += 2) {\\r\\n splitStr[j] = str.substring(i, i + 2);\\r\\n j++;\\r\\n }\\r\\n var bytes = [];\\r\\n var bytePos = 0;\\r\\n for (let i = 0; i < splitStr.length; i++) {\\r\\n var byteStr = splitStr[i];\\r\\n var b = parseInt(byteStr, 16);\\r\\n if (b < 256) {\\r\\n bytes[bytePos] = b;\\r\\n bytePos++;\\r\\n }\\r\\n }\\r\\n return bytes;\\r\\n }\\r\\n\\r\\n function changeEndianness(string) { //\\r\\n const result = [];\\r\\n let len = string.length - 2;\\r\\n while (len >= 0) {\\r\\n result.push(string.substr(len, 2));\\r\\n len -= 2;\\r\\n }\\r\\n return result.join('');\\r\\n }\\r\\n\\r\\n function hex2bin(hex) { //\\r\\n return (parseInt(hex, 16).toString(2)).padStart(8, '0');\\r\\n }\\r\\n\\r\\n function calculateCheckSum(payloadData) { // check if payload checksum is valid\\r\\n var checksum = byteStringToByteArray(payloadData);\\r\\n checksum = crc16byte(checksum);\\r\\n checksum = decimalToHex(checksum);\\r\\n checksum = ('0000' + checksum).slice(-4).toUpperCase();\\r\\n return changeEndianness(checksum);\\r\\n }\\r\\n\\r\\n function crc16byte(s) { //\\r\\n var crc = 0x0000;\\r\\n var j, i;\\r\\n for (i = 0; i < s.length; i++) {\\r\\n c = s[i];\\r\\n if (c > 255) {\\r\\n throw new RangeError();\\r\\n }\\r\\n j = (c ^ (crc >> 8)) & 0xFF;\\r\\n crc = crcTable[j] ^ (crc << 8);\\r\\n }\\r\\n return ((crc ^ 0) & 0xFFFF);\\r\\n }\\r\\n\\r\\n function debug(str) { // write debug info to console log, if localTesting\\r\\n if (localTesting === \\\"True\\\") {\\r\\n console.log(str);\\r\\n }\\r\\n }\\r\\n\\r\\n function decimalToHex(x) { // decimal to hex\\r\\n x = x.toString(16).toUpperCase();\\r\\n return x;\\r\\n }\\r\\n\\r\\n function hex_to_ascii(str1) { // Hex to Ascii \\r\\n var hex = str1.toString();\\r\\n var str = '';\\r\\n for (var n = 0; n < hex.length; n += 2) {\\r\\n str += String.fromCharCode(parseInt(hex.substr(n, 2), 16));\\r\\n }\\r\\n return str;\\r\\n }\\r\\n\\r\\n function hexToDecimalSigned(hex) { // hex to decimal\\r\\n if (hex.length % 2 != 0) {\\r\\n hex = \\\"0\\\" + hex;\\r\\n }\\r\\n var num = parseInt(hex, 16);\\r\\n var maxVal = Math.pow(2, hex.length / 2 * 8);\\r\\n if (num > maxVal / 2 - 1) {\\r\\n num = num - maxVal;\\r\\n }\\r\\n return num;\\r\\n }\\r\\n\\r\\n function hexToDecimal(x) {\\r\\n x = parseInt(x, 16);\\r\\n return x;\\r\\n }\\r\\n\\r\\n function sendMessageToLocalhostNoWait(str) { // sends message to system, closing connection after\\r\\n var server;\\r\\n if (localTesting) {\\r\\n console.log('local testing - sending to acceptance server the message ... ');\\r\\n console.log(str);\\r\\n server = '52.174.17.77';\\r\\n } else {\\r\\n server = '127.0.0.1';\\r\\n }\\r\\n var c = net.createConnection(5678, server);\\r\\n c.on('error', function(error) {\\r\\n c = net.createConnection(5678, server);\\r\\n });\\r\\n c.write(`${str}`);\\r\\n c.end();\\r\\n }\\r\\n // modify to return the object that contains your data\\r\\n return dataToReceiver;\\r\\n}\\r\\n// params is not defined locally -> export as module\\r\\nif (typeof(params) === 'undefined') {\\r\\n module.exports = {\\r\\n execute_ops\\r\\n }\\r\\n} else { // on server use local defined vars\\r\\n let return_values = execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, false)\\r\\n // define global returns\\r\\n msg = return_values;\\r\\n}\",\"Type\":0,\"ProtocolActionObjects\":[]}","Timestamp":1734423608},{"Type":1,"NewValue":"{\"Id\":313,\"Name\":\"Access TEC Roam\",\"Operation\":\"function execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, localTesting) {\\r\\n ///////////////////////////////////////////////////////////////////////////////\\r\\n //\\r\\n // Roam protocol - please see variables and typical values in order below\\r\\n // TECRoam-CYC;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;SIGNAL=<<signal_strength>>;WM=<<work_mode>>;GENERAL=<<general>>\\r\\n // TECRoam-CYC;861629050193550;STATUS=WIFISource,CellTower;TIME=1673950279;BATP=84;LGPS=undefined;LWIF=-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369;LLBS=214,1,13,768,38529798;LBEACON=undefined;BLE=undefined;GENERAL=statusDevice:WIFISource,CellTower,battery:84,cellNetworkSignal:14,workMode:6,wifiTowers:-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369,214,1,13,768,38529798,;\\\",\\r\\n //\\r\\n // Author: Joe Bloggs\\r\\n // Created: 01/01/0000\\r\\n // Last modified: 12/04/2024\\r\\n //\\r\\n ///////////////////////////////////////////////////////////////////////////////\\r\\n if (typeof localTesting === \\\"undefined\\\") {\\r\\n var localTesting = \\\"False\\\";\\r\\n }\\r\\n const crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,\\r\\n 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,\\r\\n 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\\r\\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,\\r\\n 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,\\r\\n 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\\r\\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,\\r\\n 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,\\r\\n 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\\r\\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,\\r\\n 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,\\r\\n 0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\\r\\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,\\r\\n 0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,\\r\\n 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\\r\\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,\\r\\n 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,\\r\\n 0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\\r\\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,\\r\\n 0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,\\r\\n 0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\\r\\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,\\r\\n 0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,\\r\\n 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\\r\\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,\\r\\n 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,\\r\\n 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\\r\\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,\\r\\n 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,\\r\\n 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\\r\\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,\\r\\n 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\\r\\n ];\\r\\n var codeValues = [];\\r\\n AddValue(codeValues, 'protocol_template', 'Roam');\\r\\n AddValue(codeValues, 'product', serverParams.ProductName);\\r\\n var dataToReceiver = [];\\r\\n var configsToAck = [];\\r\\n var configsToUpdate = [];\\r\\n var configsToSend = [];\\r\\n if (globalTemplate == \\\"True\\\") {\\r\\n if (raw.startsWith('esendex')) {\\r\\n AddValue(codeValues, 'rawMsg', raw);\\r\\n //general SMS message\\r\\n messageForReceiver = (`Roam-SMS;${serverParams.Imei};${raw}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n return;\\r\\n }\\r\\n AddValue(codeValues, 'raw', raw);\\r\\n AddValue(codeValues, 'rawMsg', rawFromBytes);\\r\\n var event_time, location_time, location_accuracy, speed, fix_state, latitude, longitude;\\r\\n var homeBeacon = '';\\r\\n var homeWiFi = '';\\r\\n var contacts = '';\\r\\n var gps_data = '';\\r\\n var wifi_data = '';\\r\\n var status_data = '';\\r\\n var lbs_data = '';\\r\\n var beacon_data = '';\\r\\n var ble_data = '';\\r\\n var smart_data = '';\\r\\n //parse header & properties\\r\\n var message = rawFromBytes;\\r\\n var properties = message.substring(2, 4);\\r\\n var lengthLittleEndian = message.substring(4, 8);\\r\\n var total_length = lengthLittleEndian.substring(2, 4) + lengthLittleEndian.substring(0, 2);\\r\\n total_length = 2 * hexToDecimal(total_length.substring(0, 4));\\r\\n var messageForReceiver;\\r\\n var sequenceID = message.substring(12, 16);\\r\\n var command = message.substring(16, 18);\\r\\n var index = 18;\\r\\n var prefix = 'AB' + '00';\\r\\n var lengthAck = 0;\\r\\n var ack = '';\\r\\n var needsAck = false;\\r\\n var hasConfigs = false;\\r\\n var general = '';\\r\\n var timestamp = '';\\r\\n var info = '';\\r\\n var customID = '';\\r\\n latitude = 0;\\r\\n longitude = 0;\\r\\n location_accuracy = 0; // GPS location adds the accuracy\\r\\n location_time = event_time = '';\\r\\n speed = 0.0;\\r\\n var location_type = '0';\\r\\n //var gen_location = '0'; \\r\\n var i; // general loop counter\\r\\n var battery_percentage = '';\\r\\n var cellNetworkSignal = '';\\r\\n var workMode = '';\\r\\n //mask bitwise (properties should be '10')\\r\\n if ((parseInt(properties) & 8) == 8) { // 22/7 change ((parseInt(properties) & 16) == 16)\\r\\n needsAck = true;\\r\\n }\\r\\n // Loop to decode multi-ACK msg\\r\\n if (message.includes('AB00030008C7')) {\\r\\n const multiack = message.split('AB00');\\r\\n for (let i = 1; i < multiack.length; i++) {\\r\\n message = 'AB00' + multiack[i];\\r\\n debug(message);\\r\\n decoder(message);\\r\\n } // FOR multiACK\\r\\n } else decoder(message); // IF multiACK\\r\\n } else if (oystaTemplate == 'True') { // Oysta Template \\r\\n AddValue(codeValues, 'rawMsg', raw);\\r\\n if ((params.gps_data) && (params.gps_data !== '')) { // decode gps data if exists\\r\\n var gen_location = params.gps_data.split(',');\\r\\n var latitude = gen_location[0];\\r\\n var longitude = gen_location[1];\\r\\n var location_accuracy = gen_location[2];\\r\\n var speed = gen_location[3];\\r\\n var direction = gen_location[4];\\r\\n var altitude = gen_location[5];\\r\\n var satellites = gen_location[6];\\r\\n var mileage = gen_location[7];\\r\\n if (location_accuracy !== 0) {\\r\\n var fix_state = 1;\\r\\n } else {\\r\\n var fix_state = 0;\\r\\n }\\r\\n AddValue(codeValues, 'latitude', latitude);\\r\\n AddValue(codeValues, 'longitude', longitude);\\r\\n AddValue(codeValues, 'speed', speed);\\r\\n AddValue(codeValues, 'direction', direction);\\r\\n AddValue(codeValues, 'altitude', altitude);\\r\\n AddValue(codeValues, 'location_accuracy', location_accuracy);\\r\\n AddValue(codeValues, 'mileage', mileage);\\r\\n AddValue(codeValues, 'satellites', satellites);\\r\\n AddValue(codeValues, 'fix_state', fix_state);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.lbs_data) && (params.lbs_data !== '')) { // decode lbs data if exists\\r\\n var variables = []; //Define array\\r\\n variables = params.lbs_data.split(',');\\r\\n var index = 2;\\r\\n for (i = 0; i < ((variables.length - 2) / 3); i++) { //loop for number of LBS sets on incoming data.\\r\\n if (variables[i] !== '0') { //Check if LBS data is present (device sends 0 if data not present)/actually exists.\\r\\n AddValue(codeValues, 'mcc', variables[0]);\\r\\n AddValue(codeValues, 'mnc', variables[1]);\\r\\n AddValue(codeValues, 'lac', variables[index]);\\r\\n AddValue(codeValues, 'signal_lbs', variables[index + 1]);\\r\\n AddValue(codeValues, 'cellid', variables[index + 2]);\\r\\n }\\r\\n index += 3;\\r\\n }\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.wifi_data) && (params.wifi_data !== '')) { // decode wifi data if exists\\r\\n var bssid_array = params.wifi_data.split(',');\\r\\n var index = 0;\\r\\n for (let i = 0; i < (bssid_array.length / 2); i++) {\\r\\n if (bssid_array[index + 1] != '000000000000') { //Check if MAC address is not 000000000000 - seems to be the default MAC of the device itself\\r\\n AddValue(codeValues, 'bssid', bssid_array[index + 1]);\\r\\n AddValue(codeValues, 'signal_wifi', bssid_array[index]);\\r\\n }\\r\\n index += 2;\\r\\n }\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n // when Beacon is detected and it isn't flic BLE detected\\r\\n if (((params.beacon_data) && (params.beacon_data !== '')) && !((params.ble_data) && (params.ble_data !== ''))) {\\r\\n var gen_location = params.beacon_data.split(',');\\r\\n var latitude = gen_location[0];\\r\\n var longitude = gen_location[1];\\r\\n var mac = gen_location[2];\\r\\n var label = gen_location[3];\\r\\n AddValue(codeValues, 'latitude', latitude);\\r\\n AddValue(codeValues, 'longitude', longitude);\\r\\n //AddValue(codeValues,'location_accuracy', '3'); // para mostrar que si hay accuracy muestra como source GPS\\r\\n // AddValue(codeValues,'beacon_mac', mac);\\r\\n //AddValue(codeValues,'beacon_major', 0);\\r\\n //AddValue(codeValues,'beacon_minor', 0);\\r\\n //<<beacon_mac>>,<<beacon_major>>,<<beacon_minor>> \\r\\n if (mac) {\\r\\n AddValue(codeValues, 'beacon_mac', mac);\\r\\n var simpleQuery = [{\\r\\n 'code': 'Mac',\\r\\n 'value': mac,\\r\\n }];\\r\\n var simpleQueryLabel = {\\r\\n 'table': 'beacons',\\r\\n 'select': 'Name',\\r\\n 'query': simpleQuery\\r\\n };\\r\\n var labels = [];\\r\\n labels.push(JSON.stringify(simpleQueryLabel));\\r\\n AddValue(codeValues, 'oysta_labels', JSON.stringify(labels));\\r\\n }\\r\\n if (params.beacon_major) {\\r\\n AddValue(codeValues, 'beacon_major', params.beacon_major);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_major', 0);\\r\\n }\\r\\n if (params.beacon_minor) {\\r\\n AddValue(codeValues, 'beacon_minor', params.beacon_minor);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_minor', 0);\\r\\n }\\r\\n //AddValue(codeValues,'oysta_labels', label);\\r\\n //AddValue(codeValues,'oysta_value', mac);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.ble_data) && (params.ble_data !== '')) { // decode ble data if exists\\r\\n var gen_location = params.ble_data.split(',');\\r\\n var flag = gen_location[0];\\r\\n var batLevel = gen_location[1];\\r\\n var mac2 = gen_location[2];\\r\\n //var label = gen_location[3];\\r\\n AddValue(codeValues, 'flagBLE', flag);\\r\\n AddValue(codeValues, 'batBLE', batLevel);\\r\\n //AddValue(codeValues,'location_accuracy', '3'); // para mostrar que si hay accuracy muestra como source GPS\\r\\n // AddValue(codeValues,'beacon_mac', mac);\\r\\n //AddValue(codeValues,'beacon_major', 0);\\r\\n //AddValue(codeValues,'beacon_minor', 0);\\r\\n //<<beacon_mac>>,<<beacon_major>>,<<beacon_minor>> \\r\\n if (mac2) {\\r\\n AddValue(codeValues, 'beacon_mac', mac2);\\r\\n var simpleQuery2 = [{\\r\\n 'code': 'Mac',\\r\\n 'value': mac2,\\r\\n }];\\r\\n var simpleQueryLabel2 = {\\r\\n 'table': 'beacons',\\r\\n 'select': 'Name',\\r\\n 'query': simpleQuery2\\r\\n };\\r\\n var labels2 = [];\\r\\n labels2.push(JSON.stringify(simpleQueryLabel2));\\r\\n AddValue(codeValues, 'oysta_labels', JSON.stringify(labels2));\\r\\n }\\r\\n if (params.beacon_major) {\\r\\n AddValue(codeValues, 'beacon_major', params.beacon_major);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_major', 0);\\r\\n }\\r\\n if (params.beacon_minor) {\\r\\n AddValue(codeValues, 'beacon_minor', params.beacon_minor);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_minor', 0);\\r\\n }\\r\\n //AddValue(codeValues,'oysta_labels', label);\\r\\n //AddValue(codeValues,'oysta_value', mac);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n /* meter mas tarde... \\r\\n if (params.smart_data !== 'undefined') {\\r\\n var gen_location = params.smart_data.split(',')\\r\\n var latitude = gen_location[0]\\r\\n var longitude = gen_location[1]\\r\\n var location_accuracy = gen_location[2]\\r\\n var altitude = gen_location[3]\\r\\n AddValue(codeValues,'latitude', latitude);\\r\\n AddValue(codeValues,'longitude', longitude);\\r\\n AddValue(codeValues,'altitude', altitude);\\r\\n AddValue(codeValues,'location_accuracy', location_accuracy);\\r\\n }\\r\\n */\\r\\n /*else if ((params.event_time) && (params.event_time == '')) {\\r\\n var event_time = moment.utc().unix();\\r\\n AddValue(codeValues,'event_time', event_time);\\r\\n } revisar mas adelante*/\\r\\n // to parse SMS info from the device\\r\\n switch (messageTypeLocalCode) {\\r\\n case 'COMM-SMS': // SMS message sent in\\r\\n if (params.data.startsWith('Device location request')) {\\r\\n configsToAck.push(configIds.Controls.RealTimeLocate);\\r\\n } else if (params.data.startsWith('Set IP ok')) {\\r\\n configsToAck.push(configIds.Controls.GetCurrentConfig);\\r\\n } else if (params.data.startsWith('IMEI:')) {\\r\\n configsToAck.push(configIds.Controls.GetFirmwareVersion);\\r\\n } else if (params.data.startsWith('Set IP ok')) {\\r\\n configsToAck.push(configIds.Controls.ClearBufferedMessages);\\r\\n } else if (params.data.startsWith('flush ok')) {\\r\\n configsToAck.push(configIds.Controls.GetCurrentConfig);\\r\\n } else if (params.data.startsWith('Set Roam-')) {\\r\\n configsToAck.push(configIds.SMSPrefix.SMSPrefix);\\r\\n } else if (params.data.startsWith('set live tracking')) {\\r\\n configsToAck.push(configIds.Controls.Trace);\\r\\n } else if (params.data.startsWith('reboot ok')) {\\r\\n configsToAck.push(configIds.Controls.Reboot);\\r\\n } else if (params.data.startsWith('GPS')) {\\r\\n configsToAck.push(configIds.Controls.RealTimeLocate);\\r\\n var i1 = params.data.search('Now:')\\r\\n var i2 = params.data.search('Loc Time:')\\r\\n var i3 = params.data.search('Speed:')\\r\\n var i4 = params.data.search('Altitude:')\\r\\n var i5 = params.data.search('Battery:')\\r\\n var i6 = params.data.search('google')\\r\\n var eventTime = params.data.substring(i2 + 9, i3)\\r\\n var Speed = params.data.substring(i3 + 6, i4 - 3)\\r\\n if (params.data.substring(i4 - 3, i4) == 'mph') {\\r\\n Speed = Speed * 0.44704\\r\\n } else if (params.data.substring(i4 - 3, i4) == 'kph') {\\r\\n Speed = Speed / 3.6\\r\\n }\\r\\n var latlong = params.data.substring(i6 + 18)\\r\\n location_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n messageForReceiver = (`Roam-RTL;${params.imei};${location_time};${location_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n //event_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n //messageForReceiver = (`CARE-RTL;${params.imei};${event_time};${event_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n case 'ACK-FIRM-SMS': // Firmware info sent by SMS\\r\\n //var i1 = params.data.search('IMEI:')\\r\\n //var i2 = params.data.search('GSM signal quality:')\\r\\n var i3 = params.data.search('Software version:')\\r\\n var sub = params.data.substring(i3 + 17, params.data.length)\\r\\n var i4 = sub.search('version:');\\r\\n var fwVersion = sub.substring(i4, sub.length);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n break;\\r\\n case 'ACK-FALLSENS-SMS': // Fall sensibility info sent by SMS\\r\\n var i1 = params.data.search('Fall alarm:');\\r\\n var sensibility = params.data.substring(i1 + 11, i1 + 14);\\r\\n var i2 = params.data.search('level:');\\r\\n sensibility = sensibility + ', ' + params.data.substring(i2 + 6, i2 + 7);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"sensibility\\\", sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadEmergencySettings.FallSensitivity, sensibility);\\r\\n configsToAck.push(configIds.ReadEmergencySettings.FallSensitivity);\\r\\n break;\\r\\n case 'ACK-BEAC-SMS': // Beacon list info sent by SMS\\r\\n var i1 = raw.search('1,');\\r\\n //var i2 = params.data.search('2,');\\r\\n //var homeBeacon = params.data.substring(i1+2, i2);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"homeBeacon\\\", raw.substring(i1, raw.length));\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.HomeBeacon, raw.substring(i1, raw.length));\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.HomeBeacon);\\r\\n break;\\r\\n case 'ACK-CONTAC-SMS': // Contact list info sent by SMS\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n var i1 = raw.search('A1:');\\r\\n if (raw.includes('A2:')) {\\r\\n var i2 = raw.search('A2:');\\r\\n } else {\\r\\n var i2 = raw.search('A10:');\\r\\n }\\r\\n var tel = raw.substring(i1 + 4, i2);\\r\\n AddValue(codeValues, \\\"EmergencyNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.EmergencyNumber, tel);\\r\\n configsToAck.push(configIds.ReadAlertSettings.EmergencyNumber);\\r\\n i2 = raw.search('A10:')\\r\\n tel = raw.substring(i2 + 4, raw.length);\\r\\n AddValue(codeValues, \\\"SMSGateway\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.SMSGateway, tel);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.SMSGateway);\\r\\n AddValue(codeValues, \\\"ApprovedContacts\\\", raw.substring(i1, raw.length));\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.ApprovedContacts, raw.substring(i1, raw.length));\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.ApprovedContacts);\\r\\n break;\\r\\n case 'ACK-SERV-SMS': // APN and Server info sent by SMS\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n var i1 = params.data.search('APN:')\\r\\n var i2 = params.data.search('IP:')\\r\\n var i3 = params.data.search('Move')\\r\\n var apn = params.data.substring(i1 + 4, i2);\\r\\n AddValue(codeValues, \\\"apn\\\", apn);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.APN, apn);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.APN);\\r\\n var serverDetails = params.data.substring(i2 + 3, i3);\\r\\n AddValue(codeValues, \\\"server\\\", serverDetails);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.Server, serverDetails);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.Server);\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case 'RTL-GPS': // SRTL sent in via SMS with no pre-code\\r\\n var i3 = params.data.search('Speed:')\\r\\n var i4 = params.data.search('Altitude:')\\r\\n var i5 = params.data.search('Battery:')\\r\\n var i6 = params.data.search('google')\\r\\n var eventTime = params.data.substring(0, i3)\\r\\n var Speed = params.data.substring(i3 + 6, i4 - 3)\\r\\n if (params.data.substring(i4 - 3, i4) == 'mph') {\\r\\n Speed = Speed * 0.44704\\r\\n } else if (params.data.substring(i4 - 3, i4) == 'kph') {\\r\\n Speed = Speed / 3.6\\r\\n }\\r\\n var latlong = params.data.substring(i6 + 18)\\r\\n location_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n messageForReceiver = (`Roam-RTL;${params.imei};${location_time};${location_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n }\\r\\n if (!params.event_time && !event_time) { // if params.event_time undefined - set it to now. \\r\\n var event_time = moment.utc().unix();\\r\\n AddValue(codeValues, 'event_time', event_time);\\r\\n }\\r\\n // if (!params.location_time && !location_time) { // if params.location_time undefined - set it to now. \\r\\n // var location_time = moment.utc().unix();\\r\\n // AddValue(codeValues, 'location_time', location_time);\\r\\n //}\\r\\n }\\r\\n var dataToReceiver = {\\r\\n 'values': codeValues\\r\\n };\\r\\n if (configsToAck.length > 0) {\\r\\n dataToReceiver.configsToAck = configsToAck\\r\\n };\\r\\n if (configsToUpdate.length > 0) {\\r\\n dataToReceiver.configsToUpdate = configsToUpdate\\r\\n };\\r\\n if (configsToSend.length > 0) {\\r\\n dataToReceiver.configsToSend = configsToSend\\r\\n };\\r\\n console.log(dataToReceiver);\\r\\n //}\\r\\n //return {\\r\\n // 'output': dataToReceiver\\r\\n //}\\r\\n // end of main operation\\r\\n // define functions used in operation\\r\\n function AddValue(codeValueArray, p1, p2) { // push code value pair into array\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n codeValueArray.push(cvpair);\\r\\n }\\r\\n\\r\\n function decoder(str) { // decode rawdata\\r\\n // CARE Decoder\\r\\n AddValue(codeValues, 'Message : ', str);\\r\\n var message = str;\\r\\n // need to check if checksum is correct for possible msg corruption 10/03/23\\r\\n var checksum = message.substring(8, 12);\\r\\n var messageBody = message.substring(16, message.length);\\r\\n debug('message =' + message);\\r\\n debug('checksum =' + checksum);\\r\\n debug('calculateCheckSum =' + calculateCheckSum(messageBody));\\r\\n if (calculateCheckSum(messageBody) == checksum) { // payload is valid\\r\\n debug(\\\"message has valid checksum\\\");\\r\\n var messageBody = command; // update value for the ACK\\r\\n debug('command =' + command);\\r\\n if (command == '01') {\\r\\n while (index < total_length + 16) {\\r\\n // gen_location = '0'; //cambiado 30/09\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n var keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n debug('key = ' + key);\\r\\n debug('value = ' + value);\\r\\n switch (key) {\\r\\n //Device ID\\r\\n case '01':\\r\\n var imei = hex_to_ascii(value);\\r\\n break;\\r\\n //Alarm code\\r\\n case '02':\\r\\n var alarm = 'CYC';\\r\\n var alarmCode = value.substring(0, 8);\\r\\n alarmCode = changeEndianness(alarmCode);\\r\\n var timestampHex = value.substring(8, 16);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n event_time = timestamp;\\r\\n var alarmCodeInt = hexToDecimal(alarmCode);\\r\\n var alarmCodeExt = value.substring(16, 24);\\r\\n alarmCodeExt = changeEndianness(alarmCodeExt);\\r\\n var alarmCodeExtInt = hexToDecimal(alarmCodeExt);\\r\\n //Extended Alerts\\r\\n // Fall off\\r\\n if ((alarmCodeExtInt & 1) == 1) {\\r\\n var alarm = 'ALF-C';\\r\\n }\\r\\n // Welfare Check-out\\r\\n else if ((alarmCodeExtInt & 2) == 2) {\\r\\n var alarm = 'ALA-C';\\r\\n }\\r\\n // Standard Alerts\\r\\n //Battery low\\r\\n else if ((alarmCodeInt & 1) == 1) {\\r\\n var alarm = 'BATL';\\r\\n }\\r\\n //Overspeed\\r\\n else if ((alarmCodeInt & 2) == 2) {\\r\\n var alarm = 'ALSP';\\r\\n }\\r\\n //Fall\\r\\n else if ((alarmCodeInt & 4) == 4) {\\r\\n var alarm = 'ALF';\\r\\n }\\r\\n //Tilt\\r\\n else if ((alarmCodeInt & 8) == 8) {\\r\\n var alarm = 'Tilt';\\r\\n } else if ((alarmCodeInt & 16) == 16) {\\r\\n if ((alarmCodeInt & 16777216) == 16777216) {\\r\\n var alarm = 'Geo1-IN';\\r\\n } else {\\r\\n var alarm = 'Geo1-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 32) == 32) {\\r\\n if ((alarmCodeInt & 33554432) == 33554432) {\\r\\n var alarm = 'Geo2-IN';\\r\\n } else {\\r\\n var alarm = 'Geo2-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 64) == 64) {\\r\\n if ((alarmCodeInt & 67108864) == 67108864) {\\r\\n var alarm = 'Geo3-IN';\\r\\n } else {\\r\\n var alarm = 'Geo3-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 128) == 128) {\\r\\n if ((alarmCodeInt & 134217728) == 134217728) {\\r\\n var alarm = 'Geo4-IN';\\r\\n } else {\\r\\n var alarm = 'Geo4-OUT';\\r\\n }\\r\\n }\\r\\n //Power Off\\r\\n else if ((alarmCodeInt & 256) == 256) {\\r\\n var alarm = 'PWRF';\\r\\n }\\r\\n //Power On\\r\\n else if ((alarmCodeInt & 512) == 512) {\\r\\n var alarm = 'PWRN';\\r\\n }\\r\\n //Motion\\r\\n else if ((alarmCodeInt & 1024) == 1024) {\\r\\n var alarm = 'ALMOV';\\r\\n }\\r\\n //No Motion\\r\\n else if ((alarmCodeInt & 2048) == 2048) {\\r\\n var alarm = 'ALNM';\\r\\n }\\r\\n //SOS\\r\\n else if ((alarmCodeInt & 4096) == 4096) {\\r\\n var alarm = 'ALSOS';\\r\\n } else if ((alarmCodeInt & 8192) == 8192) {\\r\\n var alarm = 'Side1';\\r\\n } else if ((alarmCodeInt & 16384) == 16384) {\\r\\n var alarm = 'Side2';\\r\\n }\\r\\n //Battery charging\\r\\n else if ((alarmCodeInt & 32768) == 32768) {\\r\\n var alarm = 'BATCN';\\r\\n }\\r\\n //Battery no charging\\r\\n else if ((alarmCodeInt & 65536) == 65536) {\\r\\n var alarm = 'BATCF';\\r\\n }\\r\\n //SOS Ending\\r\\n // Temporary Commented until we know exactly how it works. 22/09/2022\\r\\n else if ((alarmCodeInt & 131072) == 131072) {\\r\\n var alarm = 'SOSEnding';\\r\\n info = 'Alarm Finished';\\r\\n }\\r\\n //Amber Alert EC03 only\\r\\n else if ((alarmCodeInt & 262144) == 262144) {\\r\\n var alarm = 'ALAO';\\r\\n }\\r\\n // welfare Alert check-in ALA-O\\r\\n else if ((alarmCodeInt & 524288) == 524288) {\\r\\n var alarm = 'ALA-O';\\r\\n }\\r\\n // Amber alert Ending ALA-C\\r\\n else if ((alarmCodeInt & 1048576) == 1048576) {\\r\\n var alarm = 'ALA-C';\\r\\n }\\r\\n // Amber alert Ending ALA-C\\r\\n //else if ((alarmCodeInt & 1048576) == 1048576) {\\r\\n // var alarm = 'ALA-C';\\r\\n //}\\r\\n // Fall-Down Alert ending\\r\\n else if ((alarmCodeInt & 2097152) == 2097152) {\\r\\n var alarm = 'ALF-C';\\r\\n }\\r\\n // welfare Alert Ending ALA\\r\\n else if ((alarmCodeInt & 4194304) == 4194304) {\\r\\n var alarm = 'ALA';\\r\\n }\\r\\n // Beacon absent Alert 11/10/22. Need to be added in msg types\\r\\n //else if ((alarmCodeInt & 16777216) == 16777216) {\\r\\n // var alarm = 'BEA';\\r\\n //}\\r\\n general += 'alarm:' + alarm + ',';\\r\\n break;\\r\\n //Custom ID\\r\\n case '03':\\r\\n // in value is customID.... '06' for Watch Care\\r\\n // if ((imei != '860470063029395') && (imei != '860470063035947')) {\\r\\n //update customID to check if belongs to this type of device\\r\\n customID = value;\\r\\n if (value != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n } else {\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n general += 'customID:' + value + ',';\\r\\n break;\\r\\n }\\r\\n //Historical Data Completed\\r\\n case '10': // indica q se han terminado de enviar todos los datos historicos.\\r\\n var histData = true;\\r\\n break;\\r\\n //GPS location\\r\\n case '20':\\r\\n location_type = 'GPS';\\r\\n var latitudeHex = value.substring(0, 8);\\r\\n var longitudeHex = value.substring(8, 16);\\r\\n var speedHex = value.substring(16, 20);\\r\\n var directionHex = value.substring(20, 24);\\r\\n var altitudeHex = value.substring(24, 28);\\r\\n var location_accuracyHex = value.substring(28, 32);\\r\\n var mileageHex = value.substring(32, 40);\\r\\n var satellitesHex = value.substring(40, 42);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n speed = ((hexToDecimal(changeEndianness(speedHex))) / 3.6).toFixed(2); //date 14-02-2023 in m/s\\r\\n var direction = hexToDecimal(changeEndianness(directionHex));\\r\\n var altitude = hexToDecimal(changeEndianness(altitudeHex)); // in meters\\r\\n //location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex)) * 5;\\r\\n // Range: 0.5 to 99.9 \\r\\n location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex));\\r\\n //var mileage = hexToDecimal(changeEndianness(mileageHex)) this is in km/h we need m/s\\r\\n var mileage = hexToDecimal(changeEndianness(mileageHex)); // in meters date 14-02-2023\\r\\n var satellites = hexToDecimal(satellitesHex);\\r\\n // location_time = timestamp;\\r\\n //<<latitude>>,<<longitude>>,<<speed>>,<<altitude>>,<<location_time>>\\r\\n gps_data = `${latitude},${longitude},${location_accuracy},${speed},${direction},${altitude},${satellites},${mileage}`;\\r\\n general += 'gps location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //WIFI Towers\\r\\n case '22':\\r\\n location_type = 'WIFI';\\r\\n var numWifi = Math.round((hexToDecimal(keyLengthHex) - 1) / 7);\\r\\n //location_time = timestamp;\\r\\n var wifiTowers = value;\\r\\n general += 'wifiTowers:';\\r\\n var indexWifi = 0;\\r\\n var bssid_array = [];\\r\\n wifi_data = '';\\r\\n for (let i = 0; i < numWifi; i++) {\\r\\n wifi_data += hexToDecimalSigned(wifiTowers.substring(indexWifi, indexWifi + 2)) + ',' + wifiTowers.substring(indexWifi + 2, indexWifi + 14) + ',';\\r\\n indexWifi += 14;\\r\\n }\\r\\n wifi_data = wifi_data.slice(0, -1);\\r\\n general += wifi_data;\\r\\n break;\\r\\n //BLE Location Added 10/10/22\\r\\n case '23':\\r\\n location_type = 'BLE';\\r\\n var mac = value.substring(0, 12);\\r\\n var latitudeHex = value.substring(12, 20);\\r\\n var longitudeHex = value.substring(20, 28);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n var address = hex_to_ascii(value.substring(28, value.length));\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n // location_time = timestamp;\\r\\n ble_data = `${latitude},${longitude},${mac},${address}`;\\r\\n general += 'BLE location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //General Data , status_data\\r\\n case '24':\\r\\n //var general = 'true'\\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n }\\r\\n //else {\\r\\n // messageForReceiver = (`CareWatch-CYC;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};`);\\r\\n //}\\r\\n // reset variables\\r\\n //alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n location_time = timestamp;\\r\\n // HardCode to fix possible issue in protocol\\r\\n // event_time = timestamp; \\r\\n event_time = moment.utc().unix();\\r\\n // end of hard code\\r\\n var statusHex = changeEndianness(value.substring(8, 16));\\r\\n var statusInt = hexToDecimal(statusHex);\\r\\n var statusDevice = '';\\r\\n if ((statusInt & 1) == 1) {\\r\\n statusDevice += 'GPS,';\\r\\n }\\r\\n if ((statusInt & 2) == 2) {\\r\\n statusDevice += 'WIFISource,';\\r\\n }\\r\\n if ((statusInt & 4) == 4) {\\r\\n statusDevice += 'CellTower,';\\r\\n }\\r\\n if ((statusInt & 8) == 8) {\\r\\n statusDevice += 'BLELocation,';\\r\\n }\\r\\n //params.BatteryStatus.BatteryStatus = '1';\\r\\n if ((statusInt & 16) == 16) {\\r\\n statusDevice += 'Charging,';\\r\\n // var alarm = 'BATCN';\\r\\n //configs.BatteryStatus.BatteryStatus = '1';\\r\\n /* if (configs.BatteryStatus.BatteryStatus !== '1') {\\r\\n hasConfigs = true;\\r\\n var batteryStatus = '1';\\r\\n var alarm = 'BATCN';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }*/\\r\\n }\\r\\n if ((statusInt & 32) == 32) {\\r\\n statusDevice += 'FUllyCharged,';\\r\\n //var alarm = 'BATF';\\r\\n // configs.BatteryStatus.BatteryStatus = '3';\\r\\n /* if (configs.BatteryStatus.BatteryStatus !== '3') {\\r\\n hasConfigs = true;\\r\\n var batteryStatus = '3';\\r\\n var alarm = 'BATF';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }*/\\r\\n }\\r\\n /* if (!((statusInt & 32) == 32) & !((statusInt & 16) == 16)) {\\r\\n statusDevice += 'Not Charging,';\\r\\n var alarm = 'BATCF';\\r\\n //configs.BatteryStatus.BatteryStatus = '2';\\r\\n if (configs.BatteryStatus.BatteryStatus !== '2') {\\r\\n var batteryStatus = '2';\\r\\n var alarm = 'BATCF';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }\\r\\n }*/\\r\\n if ((statusInt & 64) == 64) {\\r\\n statusDevice += 'Reboot,';\\r\\n }\\r\\n if ((statusInt & 128) == 128) {\\r\\n statusDevice += 'HistoricalData,';\\r\\n }\\r\\n if ((statusInt & 256) == 256) {\\r\\n statusDevice += 'AGPSDataValid,';\\r\\n }\\r\\n if ((statusInt & 512) == 512) {\\r\\n statusDevice += 'Motion,';\\r\\n }\\r\\n if ((statusInt & 1024) == 1024) {\\r\\n statusDevice += 'SmartLocating,';\\r\\n }\\r\\n if ((statusInt & 2048) == 2048) { //isHome\\r\\n statusDevice += 'BeaconLocation,';\\r\\n }\\r\\n if ((statusInt & 4096) == 4096) {\\r\\n statusDevice += 'BLEConnected,';\\r\\n }\\r\\n if ((statusInt & 16384) == 16384) {\\r\\n statusDevice += 'HomeWiFi,';\\r\\n }\\r\\n statusDevice = statusDevice.slice(0, -1);\\r\\n status_data = statusDevice; //to oysta template\\r\\n //statusHex = (statusHex);\\r\\n statusHex = hex2bin(statusHex);\\r\\n statusHex = ('00000000000000000000000000000000' + statusHex).slice(-32);\\r\\n battery_percentage = parseInt(statusHex.substring(0, 8), 2);\\r\\n cellNetworkSignal = parseInt(statusHex.substring(8, 13), 2);\\r\\n workMode = parseInt(statusHex.substring(13, 16), 2);\\r\\n general += 'statusDevice:' + statusDevice + ',';\\r\\n if (battery_percentage) {\\r\\n general += 'battery:' + battery_percentage + ',';\\r\\n }\\r\\n if (cellNetworkSignal) {\\r\\n general += 'cellNetworkSignal:' + cellNetworkSignal + ',';\\r\\n }\\r\\n if (workMode) {\\r\\n general += 'workMode:' + workMode + ',';\\r\\n }\\r\\n //messageForReceiver = (`CareWatch-CYC;${imei};${i};${event_time};${battery_percentage}`);\\r\\n break;\\r\\n //Call Records\\r\\n case '25':\\r\\n //Needed?\\r\\n break;\\r\\n //BLE Location 2\\r\\n case '26':\\r\\n //I don't understand\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Smart Location\\r\\n case '27':\\r\\n location_type = 'SMART';\\r\\n var latitudeHex = value.substring(0, 8);\\r\\n var longitudeHex = value.substring(8, 16);\\r\\n var location_accuracyHex = value.substring(16, 20);\\r\\n var altitudeHex = value.substring(20, 24);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n var altitude = hexToDecimal(changeEndianness(altitudeHex));\\r\\n //location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex)) * 5;\\r\\n //04/08/2022 se quita el multiplicador por 5 pq ya viene el valor en metros\\r\\n location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex));\\r\\n //location_time = timestamp;\\r\\n smart_data = `${latitude},${longitude},${location_accuracy},${altitude}`;\\r\\n general += 'smart location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //Beacon Location Added 11/10/22\\r\\n case '28':\\r\\n location_type = 'BEACON';\\r\\n // var alarm = 'EBZI';\\r\\n var latitudeHex = '00';\\r\\n var longitudeHex = '00';\\r\\n var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 1));\\r\\n var beacId = hexToDecimal(value.substring(1, 2));\\r\\n // msg includes descrip\\r\\n if ((flag & 4) == 4) {\\r\\n descr = hex_to_ascii(value.substring(18, value.length));\\r\\n }\\r\\n // msg includes lat/lon\\r\\n if ((flag & 8) == 8) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n }\\r\\n // msg includes lat/lon and description\\r\\n if ((flag & 12) == 12) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n descr = hex_to_ascii(value.substring(34, value.length));\\r\\n }\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var rssiHex = value.substring(14, 16);\\r\\n var rssi1Hex = value.substring(16, 18);\\r\\n rssi = hexToDecimalSigned(changeEndianness(rssiHex));\\r\\n rssi1 = hexToDecimalSigned(changeEndianness(rssi1Hex));\\r\\n // var latitudeHex = value.substring(18, 26);\\r\\n // var longitudeHex = value.substring(26, 34);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n //location_time = timestamp;\\r\\n beacon_data = `${latitude},${longitude},${mac},${descr}`;\\r\\n general += 'BEACON location (lat):' + latitude + ', (long):' + longitude + ', (mac):' + mac + ', (description):' + descr + ', (rssi):' + rssi + ', (listIndex):' + beacId + ',';\\r\\n break;\\r\\n // Beacon V2\\r\\n case '2C':\\r\\n location_type = 'BEACON';\\r\\n // var alarm = 'EBZI';\\r\\n var latitudeHex = '00';\\r\\n var longitudeHex = '00';\\r\\n var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 1));\\r\\n var beacId = hexToDecimal(value.substring(1, 2));\\r\\n // msg includes descrip\\r\\n if ((flag & 4) == 4) {\\r\\n let desc_leng = hexToDecimal(value.substring(20, 22));\\r\\n descr = hex_to_ascii(value.substring(22, 22 + (2 * desc_leng)));\\r\\n //descr = hex_to_ascii(value.substring(18, value.length));\\r\\n }\\r\\n // msg includes lat/lon\\r\\n if ((flag & 8) == 8) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n }\\r\\n // msg includes lat/lon and description\\r\\n if ((flag & 12) == 12) {\\r\\n latitudeHex = value.substring(20, 28);\\r\\n longitudeHex = value.substring(28, 36);\\r\\n let desc_leng = hexToDecimal(value.substring(36, 38));\\r\\n descr = hex_to_ascii(value.substring(38, 38 + (2 * desc_leng)));\\r\\n }\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var rssiHex = value.substring(14, 16);\\r\\n var rssi1Hex = value.substring(16, 18);\\r\\n rssi = hexToDecimalSigned(changeEndianness(rssiHex));\\r\\n rssi1 = hexToDecimalSigned(changeEndianness(rssi1Hex));\\r\\n var battery_beacon = hexToDecimal(value.substring(18, 20));\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n //location_time = timestamp;\\r\\n beacon_data = `${latitude},${longitude},${mac},${descr}`;\\r\\n general += 'BEACON location (lat):' + latitude + ', (long):' + longitude + ', (mac):' + mac + ', (description):' + descr + ', (rssi):' + rssi + ', (battery):' + battery_beacon + ', (listIndex):' + beacId + ',';\\r\\n break;\\r\\n //Cell Towers Note\\r\\n case '29':\\r\\n location_type = 'LBS';\\r\\n lbs_data = '';\\r\\n var mccHex = changeEndianness(value.substring(0, 4));\\r\\n var mncHex = value.substring(4, 6);\\r\\n var mcc = hexToDecimal(mccHex);\\r\\n lbs_data += mcc + ',';\\r\\n var mnc = hexToDecimal(mncHex);\\r\\n lbs_data += mnc + ',';\\r\\n var indexLbs = 6;\\r\\n var numTowers = (hexToDecimal(keyLengthHex) - 4) / 7;\\r\\n for (let i = 0; i < numTowers; i++) {\\r\\n var rxlHex = changeEndianness(value.substring(indexLbs, indexLbs + 2));\\r\\n var rxl = hexToDecimal(rxlHex);\\r\\n var lacHex = changeEndianness(value.substring(indexLbs + 2, indexLbs + 6));\\r\\n var lac = hexToDecimal(lacHex);\\r\\n var cellTowers = hexToDecimal(changeEndianness(value.substring(indexLbs + 6, indexLbs + 14)));\\r\\n lbs_data += rxl + ',' + lac + ',' + cellTowers + ',';\\r\\n indexLbs += 14;\\r\\n }\\r\\n lbs_data = lbs_data.slice(0, -1);\\r\\n general += lbs_data;\\r\\n break;\\r\\n case '30':\\r\\n //G-sensor. \\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n var numStep = (keyLength - 2) / 16;\\r\\n for (let j = 0; j < numStep; j++) {\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n //timestamp = hexToDecimalSigned(timestampHex);\\r\\n var stepHex = value.substring(8, 16);\\r\\n stepHex = changeEndianness(stepHex);\\r\\n var stepRate = hexToDecimal(stepHex);\\r\\n info = stepRate;\\r\\n //var alarmCode = 'True';\\r\\n var alarm = 'STP';\\r\\n general += ' step counting' + j + ':' + stepRate + ',';\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};STP=${info};LABEL=steps`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n //Activity\\r\\n case '31':\\r\\n //I don't understand\\r\\n break;\\r\\n //BLE MAC list\\r\\n case '32':\\r\\n //I don't understand\\r\\n break;\\r\\n //Beacon List\\r\\n case '33':\\r\\n //I don't understand\\r\\n break;\\r\\n //Heart Rate Data\\r\\n case '40':\\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n var numHeartRate = (keyLength - 2) / 12;\\r\\n for (let j = 0; j < numHeartRate; j++) {\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n //timestamp = hexToDecimalSigned(timestampHex);\\r\\n var heartRateHex = value.substring(8, 10);\\r\\n var heartRate = hexToDecimal(heartRateHex);\\r\\n var trustLevelHex = value.substring(10, 12);\\r\\n var trustLevel = hexToDecimal(trustLevelHex);\\r\\n info = heartRate;\\r\\n //var alarmCode = 'True';\\r\\n var alarm = 'HRT';\\r\\n general += ' heart rate' + j + ':' + heartRate + ',';\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};HRT=${info};TLEVEL=${trustLevel};LABEL=bpm`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n //BLE Connected . For Flic button\\r\\n case '62':\\r\\n location_type = 'BLE';\\r\\n //var alarm = 'EBZI'; \\r\\n //var latitudeHex = '00';\\r\\n //var longitudeHex = '00';\\r\\n //var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 2)); // 0= Disconnected, 1= Connected\\r\\n var mac = value.substring(2, 14); // No hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var batLevel = hexToDecimal(value.substring(14, 16)); // 0-100\\r\\n //location_time = timestamp;\\r\\n ble_data = `${flag},${batLevel},${mac}`;\\r\\n general += 'BLE location (State):' + flag + ', (bat):' + batLevel + ', (mac):' + mac + ',';\\r\\n break;\\r\\n }\\r\\n }\\r\\n // CareWatch-CYC;<<imei>>;STATUS=<<status_data>>;TIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;\\r\\n // \\\"CareWatch-CYC;861629050193550;STATUS=WIFISource,CellTower;TIME=1673950279;BATP=84;LGPS=undefined;LWIF=-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369;LLBS=214,1,13,768,38529798;LBEACON=undefined;BLE=undefined;GENERAL=statusDevice:WIFISource,CellTower,battery:84,cellNetworkSignal:14,workMode:6,wifiTowers:-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369,214,1,13,768,38529798,;\\\",\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n /*else if (alarm === 'HRT') {\\r\\n messageForReceiver = (`CareWatch-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};HRT=${info};TLEVEL=${trustLevel};LABEL=bpm`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (alarm === 'STP') {\\r\\n messageForReceiver = (`CareWatch-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};STP=${info};LABEL=steps`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else {\\r\\n messageForReceiver = (`CareWatch-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }*/\\r\\n // rest the alarm value\\r\\n alarm = '';\\r\\n }\\r\\n if (command == '02') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n switch (key) {\\r\\n //Module Number\\r\\n case '01':\\r\\n var date = value.substring(6, 8) + value.substring(4, 6) + '-' + value.substring(2, 4) + '-' + value.substring(0, 2);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Firmware version\\r\\n case '02':\\r\\n //no ACK need\\r\\n var fwVersion = 'v' + hexToDecimal(value.substring(6, 8)) + '.' + hexToDecimal(value.substring(4, 6)) + '.' + hexToDecimal(value.substring(2, 4)) + '.' + hexToDecimal(value.substring(0, 2));\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '1A':\\r\\n //no ACK need\\r\\n var fwVersion = hex_to_ascii(value);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n break;\\r\\n //IMEI\\r\\n case '03':\\r\\n var imei = hexToDecimal(value);\\r\\n // harcode to avoid conflicts with Rio protocol\\r\\n //if ((imei != '860470063029395') && (imei != '860470063035947')) {\\r\\n // AddValue(codeValues, \\\"error\\\", \\\"device imei is not in this protocol\\\");\\r\\n // AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n //AddValue(codeValues, \\\"IMEI\\\", imei);\\r\\n // return\\r\\n //}\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //ICCID\\r\\n case '04':\\r\\n var iccid = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //BLE-MAC\\r\\n case '05':\\r\\n var bleMac = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Run Time\\r\\n case '07':\\r\\n var runTime = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '10': // Ringer Volume\\r\\n var volume = hexToDecimal(value);\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-VOL;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"Volume\\\", volume);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.Volume, volume);\\r\\n configsToAck.push(configIds.ReadSystemSettings.Volume);\\r\\n break;\\r\\n case '0A': //Performance mode\\r\\n //var workMode = hexToDecimal(value);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n //AddValue(codeValues, \\\"WorkMode\\\", workMode);\\r\\n //AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n //configsToAck.push(configIds.ReadPerformance`Settings.Mode);\\r\\n //var workMode = hex_to_ascii(value.substring(0, value.length));\\r\\n //var workMode = hexToDecimal(value);\\r\\n //var workMode = hex_to_ascii(value.substring(0, value.length));\\r\\n var workMode = 1234; // + value + \\\"end\\\";\\r\\n //var workModeVal = 9;\\r\\n //workMode = 'test10';\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-MODE;${imei};`);\\r\\n AddValue(codeValues, \\\"Mode\\\", workMode);\\r\\n AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n //AddValue(codeValues, \\\"performanceMode\\\", performanceMode);\\r\\n //AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, performanceMode);\\r\\n // configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n break;\\r\\n case '1B':\\r\\n //Decimal o ascii?\\r\\n var gsmModule = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '1F':\\r\\n //System Language\\r\\n var systemLanguage = hex_to_ascii(value.substring(0, value.length));\\r\\n imei = serverParams.Imei;\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n messageForReceiver = (`Roam;ACK-LANG;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"SystemLanguage\\\", systemLanguage);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.SystemLanguage, systemLanguage);\\r\\n configsToAck.push(configIds.ReadSystemSettings.SystemLanguage);\\r\\n break;\\r\\n case '33': // phone option\\r\\n // [Value]:83 0B 00 00 {\\\"phoneOption\\\":{\\\"flag_value\\\":2947,\\\"s3\\\":1,\\\"s4\\\":0,\\\"s5\\\":1,\\\"s6\\\":0,\\\"callIncoming\\\":0,\\\"rings\\\":3,\\\"s7\\\":0,\\\"toneID\\\":0,\\\"s1\\\":1,\\\"s2\\\":1}}\\r\\n var statusPhone = hex2bin(value.substring(0, 2)); // To find autoanswer setup\\r\\n if (statusPhone.substring(0, 1) == '1') { // 1 Enable\\r\\n var auto = 'true';\\r\\n } else var auto = 'false';\\r\\n statusPhone = hex2bin(value.substring(2, 4)); // To find allow list setup\\r\\n if (statusPhone.substring(7, 8) == '1') { // 1 Enable\\r\\n allow = 'true';\\r\\n } else var allow = 'false';\\r\\n //statusPhone = hex2bin(value.substring(0, 2)) + hex2bin(value.substring(2, 4));\\r\\n //AddValue(configsToUpdate, configIds.ReadSystemSettings.Statusphone, statusPhone);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.AllowList, allow);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.AutoAnswer, auto);\\r\\n //configsToAck.push(configIds.ReadSystemSettings.Statusphone);\\r\\n configsToAck.push(configIds.ReadSystemSettings.AllowList);\\r\\n configsToAck.push(configIds.ReadSystemSettings.AutoAnswer);\\r\\n break;\\r\\n case '30': //ContactList\\r\\n var contactNumber = value.substring(1, 2);\\r\\n var telLength = hexToDecimal(value.substring(2, 4));\\r\\n var tel = '';\\r\\n switch (contactNumber) {\\r\\n // Emergency Number\\r\\n case '0':\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n AddValue(codeValues, \\\"EmergencyNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.EmergencyNumber, tel);\\r\\n configsToAck.push(configIds.ReadAlertSettings.EmergencyNumber);\\r\\n break;\\r\\n // Speed Dial Number\\r\\n case '1':\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n AddValue(codeValues, \\\"SpeedDialNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadSpeedDialSettings.SpeedDialNumber, tel);\\r\\n configsToAck.push(configIds.ReadSpeedDialSettings.SpeedDialNumber);\\r\\n AddValue(configsToUpdate, configIds.ReadSpeedDialSettings.EnableDisableReadSpeedDialSettings, '1');\\r\\n configsToAck.push(configIds.ReadSpeedDialSettings.EnableDisableReadSpeedDialSettings);\\r\\n //configIds.SpeedDialSettings.EnableDisableSpeedDial\\r\\n break;\\r\\n // Gateway Number\\r\\n case '9': //00447781482635,Esendex UK 0034627177148,Esendex Spain 00447507288240,Esendex UK Acceptance\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n if (tel.includes('447781482635') || tel.includes('00447781482635')) {\\r\\n tel = 'Esendex UK'\\r\\n } else if (tel.includes('34627177148') || tel.includes('0034627177148')) {\\r\\n tel = 'Esendex Spain'\\r\\n } else if (tel.includes('447507288240') || tel.includes('00447507288240')) {\\r\\n tel = 'Esendex UK Acceptance'\\r\\n } else {\\r\\n tel = 'Default'\\r\\n }\\r\\n AddValue(codeValues, \\\"SMSGateway\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.SMSGateway, tel);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.SMSGateway);\\r\\n break;\\r\\n default:\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n if (tel.length < 6) {\\r\\n break;\\r\\n }\\r\\n contacts += 'A' + (contactNumber - 1) + ': ' + tel + ', ';\\r\\n AddValue(codeValues, \\\"ApprovedContacts\\\", contacts);\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.ApprovedContacts, contacts);\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.ApprovedContacts);\\r\\n break;\\r\\n }\\r\\n break;\\r\\n case '40': // APN\\r\\n //no ACK need\\r\\n var apn = hex_to_ascii(value.substring(0, value.length));\\r\\n imei = serverParams.Imei;\\r\\n break;\\r\\n case '41': // APN Username\\r\\n //no ACK need\\r\\n //apn = apn + ',' + hex_to_ascii(value.substring(0, value.length));\\r\\n break;\\r\\n case '42': // APN Password\\r\\n //no ACK need\\r\\n //apn = apn + ',' + hex_to_ascii(value.substring(0, value.length));\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"apn\\\", apn);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.APN, apn);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.APN);\\r\\n break;\\r\\n case '43': //Server Details\\r\\n //52.232.85.255,5678 production 52.174.17.77,5678 acceptance\\r\\n var serverDetails = hex_to_ascii(value.substring(6, value.length)) + ':' + hexToDecimal(value.substring(4, 6) + value.substring(2, 4));\\r\\n if (serverDetails.includes('52.232.85.255:5678')) {\\r\\n serverDetails = 'Production'\\r\\n } else if (serverDetails.includes('52.174.17.77:5678')) {\\r\\n serverDetails = 'Acceptance'\\r\\n } else if (serverDetails.includes('52.174.17.77:5778')) {\\r\\n serverDetails = 'Protocol-Import'\\r\\n } else {\\r\\n serverDetails = 'Default'\\r\\n }\\r\\n AddValue(codeValues, \\\"server\\\", serverDetails);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.Server, serverDetails);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.Server);\\r\\n break;\\r\\n case '44': //time interval - work mode intervals\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-MODE;${imei};`);\\r\\n var workMode = 0;\\r\\n var cycle = hexToDecimal(value.substring(10, 12) + value.substring(8, 10));\\r\\n var lazyCycle = hexToDecimal(value.substring(18, 20) + value.substring(16, 18));\\r\\n if (cycle == 240 && lazyCycle == 3600) { // 4 mins and 1 hour\\r\\n //workMode = 'High Frequency';\\r\\n workMode = 3;\\r\\n }\\r\\n if (cycle == 600 && lazyCycle == 3600) { // 10 mins and 1 hour\\r\\n //workMode = 'Balanced';\\r\\n workMode = 2;\\r\\n }\\r\\n if (cycle == 28800 && lazyCycle == 43200) { // 6 hour and 12 hours\\r\\n //workMode = 'Power Saving';\\r\\n workMode = 1;\\r\\n }\\r\\n if (cycle == 86400 && lazyCycle == 86400) { // 24 hours and 24 hours\\r\\n //workMode = 'No Reporting';\\r\\n workMode = 0;\\r\\n }\\r\\n AddValue(codeValues, \\\"Mode\\\", workMode);\\r\\n AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case '47': // Custom Id\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-CUSTID;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"customeid\\\", value);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CustomId, value);\\r\\n configsToAck.push(configIds.ReadState.CustomId);\\r\\n break;\\r\\n case '53': // Non motion alert\\r\\n //2B020080\\r\\n var status = hex2bin(value.substring(6, 8));\\r\\n var alertSetting = '';\\r\\n var enableDisable = '';\\r\\n if (status.substring(0, 1) == '1') {\\r\\n alertSetting = 'Enable, '\\r\\n enableDisable = '1';\\r\\n } else {\\r\\n alertSetting = 'Disable, '\\r\\n };\\r\\n //if (status.substring(5, 6) == '1') {\\r\\n // alertSetting += 'Dial, '\\r\\n //} else {\\r\\n // alertSetting += 'No Dial, '\\r\\n //};\\r\\n var time = hexToDecimal(value.substring(2, 4) + value.substring(0, 2));\\r\\n alertSetting += time;\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-NOMOTION;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"nomotion\\\", alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.NoMotionAlert, value + '-' + alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadNonMovementSettings.EnableDisableNonMovementSettings, enableDisable);\\r\\n AddValue(configsToUpdate, configIds.ReadNonMovementSettings.Time, time);\\r\\n configsToAck.push(configIds.ReadAlertSettings.NoMotionAlert);\\r\\n configsToAck.push(configIds.ReadNonMovementSettings.EnableDisableNonMovementSettings);\\r\\n configsToAck.push(configIds.ReadNonMovementSettings.Time);\\r\\n break;\\r\\n case '56': //Fall down sensibility\\r\\n // '00001100'\\r\\n var fallStatus = hex2bin(value.substring(0, 2));\\r\\n var enalbleDisable = '';\\r\\n //if (fallStatus.substring(4, 5) == '1') {\\r\\n if (fallStatus.substring(0, 1) == '1') {\\r\\n var sensibility = 'Enable, '\\r\\n enalbleDisable = '1'\\r\\n } else {\\r\\n var sensibility = 'Disable, '\\r\\n };\\r\\n if (fallStatus.substring(5, 6) == '1') {\\r\\n sensibility += 'Dial, '\\r\\n } else {\\r\\n sensibility += 'No Dial, '\\r\\n };\\r\\n var imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-FALLALERT;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n var sesibityOptionValue = hexToDecimal(value.substring(1, 2));\\r\\n sensibility += sesibityOptionValue;\\r\\n AddValue(codeValues, \\\"sensibility\\\", sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.FallSettings, sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadFallSettings.EnableDisableFallSettings, enalbleDisable);\\r\\n AddValue(configsToUpdate, configIds.ReadFallSettings.Sensitivity, sesibityOptionValue);\\r\\n configsToAck.push(configIds.ReadAlertSettings.FallSettings);\\r\\n configsToAck.push(configIds.ReadFallSettings.EnableDisableFallSettings);\\r\\n configsToAck.push(configIds.ReadFallSettings.Sensitivity);\\r\\n break;\\r\\n case '73': //BeaconList\\r\\n var beaconNumber = hexToDecimal(value.substring(1, 2));\\r\\n var beaconStatus = hex2bin(value.substring(0, 1));\\r\\n //if (beaconStatus.substring(4, 5) == '1') {\\r\\n // homeBeacon += ' Enable, '\\r\\n //} else {\\r\\n // homeBeacon += ' Disable, '\\r\\n //};\\r\\n beaconStatus = hex_to_ascii(value.substring(30, value.length));\\r\\n //beaconStatus = changeEndianness(value.substring(30, value.length));\\r\\n homeBeacon += 'B' + (beaconNumber + 1) + ': ' + beaconStatus + ', ';\\r\\n AddValue(codeValues, \\\"homeBeacon\\\", homeBeacon);\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.HomeBeacon, homeBeacon);\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.HomeBeacon);\\r\\n break;\\r\\n case '4A': //Wifi Network List\\r\\n var wifiSSIDLenght = hexToDecimal(value.substring(2, 4));\\r\\n var wifiPasswordLenght = hexToDecimal(value.substring(4, 6));\\r\\n var wifiIndex = hexToDecimal(value.substring(1, 2));\\r\\n var wifiStatus = hexToDecimal(value.substring(0, 1));\\r\\n /*var enalbleDisable = wifiSSID = wifiPassword = homeWifi = '';\\r\\n /var homeWifi = '';\\r\\n if (wifiIndex == '0') { // Only first Wifi of the list\\r\\n if (wifiStatus == '8') {\\r\\n homeWifi += ' Enable, '\\r\\n enalbleDisable = '1';\\r\\n } else {\\r\\n homeWifi += ' Disable, '\\r\\n //enalbleDisable = '0';\\r\\n };*/\\r\\n if (wifiStatus == '8') {\\r\\n var wifiSSID = hex_to_ascii(value.substring(6, 6 + 2 * (wifiSSIDLenght)));\\r\\n var wifiPassword = hex_to_ascii(value.substring(6 + 2 * (wifiSSIDLenght), 6 + 2 * (wifiSSIDLenght + wifiPasswordLenght)));\\r\\n var imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-WIFI;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n homeWiFi += 'W' + (wifiIndex + 1) + ': ' + wifiSSID + ', ' + wifiPassword + ';';\\r\\n AddValue(codeValues, \\\"wifi\\\", homeWiFi);\\r\\n AddValue(configsToUpdate, configIds.ReadWiFiList.WiFiList, homeWiFi);\\r\\n configsToAck.push(configIds.ReadWiFiList.WiFiList);\\r\\n }\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.EnableDisableReadWiFiSettings, enalbleDisable);\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.SSID, wifiSSID);\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.Password, wifiPassword);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.EnableDisableReadWiFiSettings);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.SSID);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.Password);\\r\\n break;\\r\\n case '21': // Speed Dial Settings\\r\\n // [Value]:53 84 {\\\"call1Button\\\":{\\\"mode\\\":0,\\\"feedBack\\\":3,\\\"task\\\":2,\\\"time\\\":20,\\\"status\\\":1}}\\r\\n var status = hex2bin(value.substring(2, 3));\\r\\n var alertSetting = '';\\r\\n var enableDisable = '';\\r\\n if (status.substring(0, 1) == '1') {\\r\\n alertSetting = 'Enable, '\\r\\n enableDisable = '1';\\r\\n } else {\\r\\n alertSetting = 'Disable, '\\r\\n //enableDisable = '0';\\r\\n };\\r\\n //var time = hexToDecimal(value.substring(2, 4) + value.substring(0, 2));\\r\\n //alertSetting += time;\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-SPEED;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"speed\\\", alertSetting);\\r\\n //AddValue(configsToUpdate, configIds.ReadAlertSettings.NoMotionAlert, value + '-' + alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadSpeedDialSettings.EnableDisableReadSpeedDialSettings, enableDisable);\\r\\n //AddValue(configsToUpdate, configIds.ReadNonMovementSettings.Time, time);\\r\\n //configsToAck.push(configIds.ReadAlertSettings.NoMotionAlert);\\r\\n configsToAck.push(configIds.ReadSpeedDialSettings.EnableDisableReadSpeedDialSettings);\\r\\n //configsToAck.push(configIds.ReadNonMovementSettings.Time);\\r\\n break;\\r\\n }\\r\\n }\\r\\n }\\r\\n if (command == '03') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n var keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n debug('key = ' + key);\\r\\n debug('value = ' + value);\\r\\n switch (key) {\\r\\n case '01': // Device ID\\r\\n var imei = hex_to_ascii(value);\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n break;\\r\\n //CustomID is not provided so far with command type 03.. commented in the mean time\\r\\n /* case '03':\\r\\n //update customID to check if belongs to this type of device\\r\\n customID = value;\\r\\n if (value != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n } else {\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n general += 'customID:' + value + ',';\\r\\n break;\\r\\n }\\r\\n break; */\\r\\n case '10': // Heartbeat\\r\\n var heartbeat = hex_to_ascii(value);\\r\\n event_time = moment.utc().unix();\\r\\n if (index < total_length + 16) {\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n key = message.substring(index, index = index + 2);\\r\\n if (key == '24') {\\r\\n // debug('key: ' + key) //comment those out\\r\\n value = message.substring(index, index = index + keyLength - 2);\\r\\n // debug(value)\\r\\n var timestampHex = value.substring(0, 8);\\r\\n // debug('timestampt hex: ' + timestampHex)\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n event_time = timestamp;\\r\\n // debug(event_time)\\r\\n var statusHex = changeEndianness(value.substring(8, 16));\\r\\n // debug(statusHex)\\r\\n var statusInt = hexToDecimal(statusHex);\\r\\n var statusDevice = '';\\r\\n if ((statusInt & 1) == 1) {\\r\\n statusDevice += 'GPS,';\\r\\n }\\r\\n if ((statusInt & 2) == 2) {\\r\\n statusDevice += 'WIFISource,';\\r\\n }\\r\\n if ((statusInt & 4) == 4) {\\r\\n statusDevice += 'CellTower,';\\r\\n }\\r\\n if ((statusInt & 8) == 8) {\\r\\n statusDevice += 'BLELocation,';\\r\\n }\\r\\n if ((statusInt & 16) == 16) {\\r\\n statusDevice += 'Charging,';\\r\\n }\\r\\n if ((statusInt & 32) == 32) {\\r\\n statusDevice += 'FUllyCharged,';\\r\\n }\\r\\n if ((statusInt & 64) == 64) {\\r\\n statusDevice += 'Reboot,';\\r\\n }\\r\\n if ((statusInt & 128) == 128) {\\r\\n statusDevice += 'HistoricalData,';\\r\\n }\\r\\n if ((statusInt & 256) == 256) {\\r\\n statusDevice += 'AGPSDataValid,';\\r\\n }\\r\\n if ((statusInt & 512) == 512) {\\r\\n statusDevice += 'Motion,';\\r\\n }\\r\\n if ((statusInt & 1024) == 1024) {\\r\\n statusDevice += 'SmartLocating,';\\r\\n }\\r\\n if ((statusInt & 2048) == 2048) {\\r\\n statusDevice += 'BeaconLocation,';\\r\\n }\\r\\n if ((statusInt & 4096) == 4096) {\\r\\n statusDevice += 'BLEConnected,';\\r\\n }\\r\\n statusDevice = statusDevice.slice(0, -1);\\r\\n // debug('statusHex:' + statusHex)\\r\\n statusHex = (statusHex);\\r\\n statusHex = hex2bin(statusHex);\\r\\n statusHex = ('00000000000000000000000000000000' + statusHex).slice(-32);\\r\\n // debug(statusHex)\\r\\n battery_percentage = parseInt(statusHex.substring(0, 8), 2);\\r\\n // debug(battery_percentage)\\r\\n // debug(battery_percentage)\\r\\n // debug(statusHex.substring(8, 13))\\r\\n cellNetworkSignal = parseInt(statusHex.substring(8, 13), 2);\\r\\n // debug(cellNetworkSignal)\\r\\n workMode = parseInt(statusHex.substring(13, 16), 2);\\r\\n // debug(workMode)\\r\\n general += 'statusDevice:' + statusDevice + ';';\\r\\n if (battery_percentage) {\\r\\n general += 'battery:' + battery_percentage + ';';\\r\\n }\\r\\n if (cellNetworkSignal) {\\r\\n general += 'cellNetworkSignal:' + cellNetworkSignal + ';';\\r\\n }\\r\\n if (workMode) {\\r\\n general += 'workMode:' + workMode + ';';\\r\\n }\\r\\n }\\r\\n }\\r\\n // revisar\\r\\n var gen_location = '0';\\r\\n //CustomID is not provided so far with command type 03.. commented in the mean time\\r\\n /*if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }*/\\r\\n //messageForReceiver = (`Eview-HTB;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};SIGNAL=${cellNetworkSignal};WM=${workMode};SL=${systemLanguage};GENERAL=${general}`);\\r\\n messageForReceiver = (`Eview-HTB;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '12': // Device requesting timestamp\\r\\n timestamp = moment.utc().unix();\\r\\n timestampHex = decimalToHex(timestamp);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n keyLengthHex = ('00' + decimalToHex(1 + (timestampHex.length) / 2)).slice(-2);\\r\\n // respond to device with the timestamp of the server\\r\\n messageBody = messageBody + keyLengthHex + key + timestampHex;\\r\\n messageForReceiver = `Eview;${imei};${sequenceID};Get timestamp`;\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case '21': //Cell Towers\\r\\n var mccHex = value.substring(0, 2);\\r\\n var mncHex = value.substring(2, 3);\\r\\n var mcc = hexToDecimal(mccHex);\\r\\n var mnc = hexToDecimal(mncHex);\\r\\n var numTowers = (keyLength - 4) / 5;\\r\\n var cellTowers = hex_to_ascii(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '22': // WIFI locations \\r\\n location_type = 'WIFI';\\r\\n var numWifi = Math.round((hexToDecimal(keyLengthHex) - 1) / 7);\\r\\n //location_time = timestamp;\\r\\n var wifiTowers = value;\\r\\n general += 'wifiTowers:';\\r\\n var indexWifi = 0;\\r\\n var bssid_array = [];\\r\\n gen_location = '';\\r\\n for (let i = 0; i < numWifi; i++) {\\r\\n gen_location += wifiTowers.substring(indexWifi + 2, indexWifi + 14) + ',';\\r\\n indexWifi += 14;\\r\\n }\\r\\n gen_location = gen_location.slice(0, -1);\\r\\n general += gen_location;\\r\\n //CustomID is not provided so far with command type 03\\r\\n /*if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }*/\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n alarmCode = '';\\r\\n break;\\r\\n }\\r\\n }\\r\\n }\\r\\n if (command == '04') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n if (command == '7E') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n if (command == '7F') {\\r\\n // while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n messageForReceiver = (`Roam-ACK;${imei};${message}`); // ${sequenceID}; add ${sequenceID}; 19-07\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n AddValue(configsToUpdate, configIds.ConfigureDevice.LastConfigured, moment().format('YYYY/MM/DD, HH:mm:ss'));\\r\\n configsToAck.push(configIds.ConfigureDevice.LastConfigured);\\r\\n //}\\r\\n }\\r\\n if (command == 'FE') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n // prepare the ACK msg and change config if it is needed\\r\\n lengthAck = messageBody.length / 2;\\r\\n lengthAck = ('0000' + decimalToHex(lengthAck)).slice(-4);\\r\\n lengthAck = lengthAck.toString().substring(2, 4) + lengthAck.toString().substring(0, 2);\\r\\n ////////////checksum CRC 16\\r\\n var checksumAck = byteStringToByteArray(messageBody);\\r\\n checksumAck = crc16byte(checksumAck);\\r\\n checksumAck = decimalToHex(checksumAck);\\r\\n checksumAck = ('0000' + checksumAck).slice(-4);\\r\\n checksumAck = checksumAck.toString().substring(2, 4) + checksumAck.toString().substring(0, 2);\\r\\n prefix = prefix + lengthAck + checksumAck + sequenceID;\\r\\n // To send ACK to the device previous to internal msg with parts\\r\\n if (needsAck == true) {\\r\\n if (messageBody.length <= 2) {\\r\\n ack = 'AB00030008C7' + sequenceID + '7F0100'; // change AB10030008C7 to AB00030008C7\\r\\n } else {\\r\\n ack = prefix + messageBody;\\r\\n }\\r\\n AddValue(codeValues, 'imei', imei);\\r\\n AddValue(codeValues, 'ack', ack);\\r\\n }\\r\\n } else { // checksum was invalid - print out useful debug info and bet quess at imei \\r\\n AddValue(codeValues, \\\"error\\\", \\\"checksum failed for message\\\");\\r\\n AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n i = rawFromBytes.search('3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]');\\r\\n if (i >= 0) {\\r\\n imei = hex_to_ascii(rawFromBytes.substring(i, i + 30));\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n function ascii_to_hexa(str) { // ascii to hex \\r\\n var arr1 = [];\\r\\n for (var n = 0, l = str.length; n < l; n++) {\\r\\n var hex = Number(str.charCodeAt(n)).toString(16);\\r\\n arr1.push(hex);\\r\\n }\\r\\n return arr1.join('');\\r\\n }\\r\\n\\r\\n function byteStringToByteArray(str) { //\\r\\n var splitStr = [];\\r\\n var j = 0;\\r\\n for (let i = 0; i < str.length; i += 2) {\\r\\n splitStr[j] = str.substring(i, i + 2);\\r\\n j++;\\r\\n }\\r\\n var bytes = [];\\r\\n var bytePos = 0;\\r\\n for (let i = 0; i < splitStr.length; i++) {\\r\\n var byteStr = splitStr[i];\\r\\n var b = parseInt(byteStr, 16);\\r\\n if (b < 256) {\\r\\n bytes[bytePos] = b;\\r\\n bytePos++;\\r\\n }\\r\\n }\\r\\n return bytes;\\r\\n }\\r\\n\\r\\n function changeEndianness(string) { //\\r\\n const result = [];\\r\\n let len = string.length - 2;\\r\\n while (len >= 0) {\\r\\n result.push(string.substr(len, 2));\\r\\n len -= 2;\\r\\n }\\r\\n return result.join('');\\r\\n }\\r\\n\\r\\n function hex2bin(hex) { //\\r\\n return (parseInt(hex, 16).toString(2)).padStart(8, '0');\\r\\n }\\r\\n\\r\\n function calculateCheckSum(payloadData) { // check if payload checksum is valid\\r\\n var checksum = byteStringToByteArray(payloadData);\\r\\n checksum = crc16byte(checksum);\\r\\n checksum = decimalToHex(checksum);\\r\\n checksum = ('0000' + checksum).slice(-4).toUpperCase();\\r\\n return changeEndianness(checksum);\\r\\n }\\r\\n\\r\\n function crc16byte(s) { //\\r\\n var crc = 0x0000;\\r\\n var j, i;\\r\\n for (i = 0; i < s.length; i++) {\\r\\n c = s[i];\\r\\n if (c > 255) {\\r\\n throw new RangeError();\\r\\n }\\r\\n j = (c ^ (crc >> 8)) & 0xFF;\\r\\n crc = crcTable[j] ^ (crc << 8);\\r\\n }\\r\\n return ((crc ^ 0) & 0xFFFF);\\r\\n }\\r\\n\\r\\n function debug(str) { // write debug info to console log, if localTesting\\r\\n if (localTesting === \\\"True\\\") {\\r\\n console.log(str);\\r\\n }\\r\\n }\\r\\n\\r\\n function decimalToHex(x) { // decimal to hex\\r\\n x = x.toString(16).toUpperCase();\\r\\n return x;\\r\\n }\\r\\n\\r\\n function hex_to_ascii(str1) { // Hex to Ascii \\r\\n var hex = str1.toString();\\r\\n var str = '';\\r\\n for (var n = 0; n < hex.length; n += 2) {\\r\\n str += String.fromCharCode(parseInt(hex.substr(n, 2), 16));\\r\\n }\\r\\n return str;\\r\\n }\\r\\n\\r\\n function hexToDecimalSigned(hex) { // hex to decimal\\r\\n if (hex.length % 2 != 0) {\\r\\n hex = \\\"0\\\" + hex;\\r\\n }\\r\\n var num = parseInt(hex, 16);\\r\\n var maxVal = Math.pow(2, hex.length / 2 * 8);\\r\\n if (num > maxVal / 2 - 1) {\\r\\n num = num - maxVal;\\r\\n }\\r\\n return num;\\r\\n }\\r\\n\\r\\n function hexToDecimal(x) {\\r\\n x = parseInt(x, 16);\\r\\n return x;\\r\\n }\\r\\n\\r\\n function sendMessageToLocalhostNoWait(str) { // sends message to system, closing connection after\\r\\n var server;\\r\\n if (localTesting) {\\r\\n console.log('local testing - sending to acceptance server the message ... ');\\r\\n console.log(str);\\r\\n server = '52.174.17.77';\\r\\n } else {\\r\\n server = '127.0.0.1';\\r\\n }\\r\\n var c = net.createConnection(5678, server);\\r\\n c.on('error', function(error) {\\r\\n c = net.createConnection(5678, server);\\r\\n });\\r\\n c.write(`${str}`);\\r\\n c.end();\\r\\n }\\r\\n // modify to return the object that contains your data\\r\\n return dataToReceiver;\\r\\n}\\r\\n// params is not defined locally -> export as module\\r\\nif (typeof(params) === 'undefined') {\\r\\n module.exports = {\\r\\n execute_ops\\r\\n }\\r\\n} else { // on server use local defined vars\\r\\n let return_values = execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, false)\\r\\n // define global returns\\r\\n msg = return_values;\\r\\n}\",\"Type\":0,\"ProtocolActionObjects\":[]}","Timestamp":1734424064},{"Type":1,"NewValue":"{\"Id\":313,\"Name\":\"Access TEC Roam\",\"Operation\":\"function execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, localTesting) {\\r\\n ///////////////////////////////////////////////////////////////////////////////\\r\\n //\\r\\n // Roam protocol - please see variables and typical values in order below\\r\\n // TECRoam-CYC;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;SIGNAL=<<signal_strength>>;WM=<<work_mode>>;GENERAL=<<general>>\\r\\n // TECRoam-CYC;861629050193550;STATUS=WIFISource,CellTower;TIME=1673950279;BATP=84;LGPS=undefined;LWIF=-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369;LLBS=214,1,13,768,38529798;LBEACON=undefined;BLE=undefined;GENERAL=statusDevice:WIFISource,CellTower,battery:84,cellNetworkSignal:14,workMode:6,wifiTowers:-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369,214,1,13,768,38529798,;\\\",\\r\\n //\\r\\n // Author: Joe Bloggs\\r\\n // Created: 01/01/0000\\r\\n // Last modified: 12/04/2024\\r\\n //\\r\\n ///////////////////////////////////////////////////////////////////////////////\\r\\n if (typeof localTesting === \\\"undefined\\\") {\\r\\n var localTesting = \\\"False\\\";\\r\\n }\\r\\n const crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,\\r\\n 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,\\r\\n 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\\r\\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,\\r\\n 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,\\r\\n 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\\r\\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,\\r\\n 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,\\r\\n 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\\r\\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,\\r\\n 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,\\r\\n 0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\\r\\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,\\r\\n 0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,\\r\\n 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\\r\\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,\\r\\n 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,\\r\\n 0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\\r\\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,\\r\\n 0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,\\r\\n 0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\\r\\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,\\r\\n 0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,\\r\\n 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\\r\\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,\\r\\n 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,\\r\\n 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\\r\\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,\\r\\n 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,\\r\\n 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\\r\\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,\\r\\n 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\\r\\n ];\\r\\n var codeValues = [];\\r\\n AddValue(codeValues, 'protocol_template', 'Roam');\\r\\n AddValue(codeValues, 'product', serverParams.ProductName);\\r\\n var dataToReceiver = [];\\r\\n var configsToAck = [];\\r\\n var configsToUpdate = [];\\r\\n var configsToSend = [];\\r\\n if (globalTemplate == \\\"True\\\") {\\r\\n if (raw.startsWith('esendex')) {\\r\\n AddValue(codeValues, 'rawMsg', raw);\\r\\n //general SMS message\\r\\n messageForReceiver = (`Roam-SMS;${serverParams.Imei};${raw}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n return;\\r\\n }\\r\\n AddValue(codeValues, 'raw', raw);\\r\\n AddValue(codeValues, 'rawMsg', rawFromBytes);\\r\\n var event_time, location_time, location_accuracy, speed, fix_state, latitude, longitude;\\r\\n var homeBeacon = '';\\r\\n var homeWiFi = '';\\r\\n var contacts = '';\\r\\n var gps_data = '';\\r\\n var wifi_data = '';\\r\\n var status_data = '';\\r\\n var lbs_data = '';\\r\\n var beacon_data = '';\\r\\n var ble_data = '';\\r\\n var smart_data = '';\\r\\n //parse header & properties\\r\\n var message = rawFromBytes;\\r\\n var properties = message.substring(2, 4);\\r\\n var lengthLittleEndian = message.substring(4, 8);\\r\\n var total_length = lengthLittleEndian.substring(2, 4) + lengthLittleEndian.substring(0, 2);\\r\\n total_length = 2 * hexToDecimal(total_length.substring(0, 4));\\r\\n var messageForReceiver;\\r\\n var sequenceID = message.substring(12, 16);\\r\\n var command = message.substring(16, 18);\\r\\n var index = 18;\\r\\n var prefix = 'AB' + '00';\\r\\n var lengthAck = 0;\\r\\n var ack = '';\\r\\n var needsAck = false;\\r\\n var hasConfigs = false;\\r\\n var general = '';\\r\\n var timestamp = '';\\r\\n var info = '';\\r\\n var customID = '';\\r\\n latitude = 0;\\r\\n longitude = 0;\\r\\n location_accuracy = 0; // GPS location adds the accuracy\\r\\n location_time = event_time = '';\\r\\n speed = 0.0;\\r\\n var location_type = '0';\\r\\n //var gen_location = '0'; \\r\\n var i; // general loop counter\\r\\n var battery_percentage = '';\\r\\n var cellNetworkSignal = '';\\r\\n var workMode = '';\\r\\n //mask bitwise (properties should be '10')\\r\\n if ((parseInt(properties) & 8) == 8) { // 22/7 change ((parseInt(properties) & 16) == 16)\\r\\n needsAck = true;\\r\\n }\\r\\n // Loop to decode multi-ACK msg\\r\\n if (message.includes('AB00030008C7')) {\\r\\n const multiack = message.split('AB00');\\r\\n for (let i = 1; i < multiack.length; i++) {\\r\\n message = 'AB00' + multiack[i];\\r\\n debug(message);\\r\\n decoder(message);\\r\\n } // FOR multiACK\\r\\n } else decoder(message); // IF multiACK\\r\\n } else if (oystaTemplate == 'True') { // Oysta Template \\r\\n AddValue(codeValues, 'rawMsg', raw);\\r\\n if ((params.gps_data) && (params.gps_data !== '')) { // decode gps data if exists\\r\\n var gen_location = params.gps_data.split(',');\\r\\n var latitude = gen_location[0];\\r\\n var longitude = gen_location[1];\\r\\n var location_accuracy = gen_location[2];\\r\\n var speed = gen_location[3];\\r\\n var direction = gen_location[4];\\r\\n var altitude = gen_location[5];\\r\\n var satellites = gen_location[6];\\r\\n var mileage = gen_location[7];\\r\\n if (location_accuracy !== 0) {\\r\\n var fix_state = 1;\\r\\n } else {\\r\\n var fix_state = 0;\\r\\n }\\r\\n AddValue(codeValues, 'latitude', latitude);\\r\\n AddValue(codeValues, 'longitude', longitude);\\r\\n AddValue(codeValues, 'speed', speed);\\r\\n AddValue(codeValues, 'direction', direction);\\r\\n AddValue(codeValues, 'altitude', altitude);\\r\\n AddValue(codeValues, 'location_accuracy', location_accuracy);\\r\\n AddValue(codeValues, 'mileage', mileage);\\r\\n AddValue(codeValues, 'satellites', satellites);\\r\\n AddValue(codeValues, 'fix_state', fix_state);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.lbs_data) && (params.lbs_data !== '')) { // decode lbs data if exists\\r\\n var variables = []; //Define array\\r\\n variables = params.lbs_data.split(',');\\r\\n var index = 2;\\r\\n for (i = 0; i < ((variables.length - 2) / 3); i++) { //loop for number of LBS sets on incoming data.\\r\\n if (variables[i] !== '0') { //Check if LBS data is present (device sends 0 if data not present)/actually exists.\\r\\n AddValue(codeValues, 'mcc', variables[0]);\\r\\n AddValue(codeValues, 'mnc', variables[1]);\\r\\n AddValue(codeValues, 'lac', variables[index]);\\r\\n AddValue(codeValues, 'signal_lbs', variables[index + 1]);\\r\\n AddValue(codeValues, 'cellid', variables[index + 2]);\\r\\n }\\r\\n index += 3;\\r\\n }\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.wifi_data) && (params.wifi_data !== '')) { // decode wifi data if exists\\r\\n var bssid_array = params.wifi_data.split(',');\\r\\n var index = 0;\\r\\n for (let i = 0; i < (bssid_array.length / 2); i++) {\\r\\n if (bssid_array[index + 1] != '000000000000') { //Check if MAC address is not 000000000000 - seems to be the default MAC of the device itself\\r\\n AddValue(codeValues, 'bssid', bssid_array[index + 1]);\\r\\n AddValue(codeValues, 'signal_wifi', bssid_array[index]);\\r\\n }\\r\\n index += 2;\\r\\n }\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n // when Beacon is detected and it isn't flic BLE detected\\r\\n if (((params.beacon_data) && (params.beacon_data !== '')) && !((params.ble_data) && (params.ble_data !== ''))) {\\r\\n var gen_location = params.beacon_data.split(',');\\r\\n var latitude = gen_location[0];\\r\\n var longitude = gen_location[1];\\r\\n var mac = gen_location[2];\\r\\n var label = gen_location[3];\\r\\n AddValue(codeValues, 'latitude', latitude);\\r\\n AddValue(codeValues, 'longitude', longitude);\\r\\n //AddValue(codeValues,'location_accuracy', '3'); // para mostrar que si hay accuracy muestra como source GPS\\r\\n // AddValue(codeValues,'beacon_mac', mac);\\r\\n //AddValue(codeValues,'beacon_major', 0);\\r\\n //AddValue(codeValues,'beacon_minor', 0);\\r\\n //<<beacon_mac>>,<<beacon_major>>,<<beacon_minor>> \\r\\n if (mac) {\\r\\n AddValue(codeValues, 'beacon_mac', mac);\\r\\n var simpleQuery = [{\\r\\n 'code': 'Mac',\\r\\n 'value': mac,\\r\\n }];\\r\\n var simpleQueryLabel = {\\r\\n 'table': 'beacons',\\r\\n 'select': 'Name',\\r\\n 'query': simpleQuery\\r\\n };\\r\\n var labels = [];\\r\\n labels.push(JSON.stringify(simpleQueryLabel));\\r\\n AddValue(codeValues, 'oysta_labels', JSON.stringify(labels));\\r\\n }\\r\\n if (params.beacon_major) {\\r\\n AddValue(codeValues, 'beacon_major', params.beacon_major);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_major', 0);\\r\\n }\\r\\n if (params.beacon_minor) {\\r\\n AddValue(codeValues, 'beacon_minor', params.beacon_minor);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_minor', 0);\\r\\n }\\r\\n //AddValue(codeValues,'oysta_labels', label);\\r\\n //AddValue(codeValues,'oysta_value', mac);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.ble_data) && (params.ble_data !== '')) { // decode ble data if exists\\r\\n var gen_location = params.ble_data.split(',');\\r\\n var flag = gen_location[0];\\r\\n var batLevel = gen_location[1];\\r\\n var mac2 = gen_location[2];\\r\\n //var label = gen_location[3];\\r\\n AddValue(codeValues, 'flagBLE', flag);\\r\\n AddValue(codeValues, 'batBLE', batLevel);\\r\\n //AddValue(codeValues,'location_accuracy', '3'); // para mostrar que si hay accuracy muestra como source GPS\\r\\n // AddValue(codeValues,'beacon_mac', mac);\\r\\n //AddValue(codeValues,'beacon_major', 0);\\r\\n //AddValue(codeValues,'beacon_minor', 0);\\r\\n //<<beacon_mac>>,<<beacon_major>>,<<beacon_minor>> \\r\\n if (mac2) {\\r\\n AddValue(codeValues, 'beacon_mac', mac2);\\r\\n var simpleQuery2 = [{\\r\\n 'code': 'Mac',\\r\\n 'value': mac2,\\r\\n }];\\r\\n var simpleQueryLabel2 = {\\r\\n 'table': 'beacons',\\r\\n 'select': 'Name',\\r\\n 'query': simpleQuery2\\r\\n };\\r\\n var labels2 = [];\\r\\n labels2.push(JSON.stringify(simpleQueryLabel2));\\r\\n AddValue(codeValues, 'oysta_labels', JSON.stringify(labels2));\\r\\n }\\r\\n if (params.beacon_major) {\\r\\n AddValue(codeValues, 'beacon_major', params.beacon_major);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_major', 0);\\r\\n }\\r\\n if (params.beacon_minor) {\\r\\n AddValue(codeValues, 'beacon_minor', params.beacon_minor);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_minor', 0);\\r\\n }\\r\\n //AddValue(codeValues,'oysta_labels', label);\\r\\n //AddValue(codeValues,'oysta_value', mac);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n /* meter mas tarde... \\r\\n if (params.smart_data !== 'undefined') {\\r\\n var gen_location = params.smart_data.split(',')\\r\\n var latitude = gen_location[0]\\r\\n var longitude = gen_location[1]\\r\\n var location_accuracy = gen_location[2]\\r\\n var altitude = gen_location[3]\\r\\n AddValue(codeValues,'latitude', latitude);\\r\\n AddValue(codeValues,'longitude', longitude);\\r\\n AddValue(codeValues,'altitude', altitude);\\r\\n AddValue(codeValues,'location_accuracy', location_accuracy);\\r\\n }\\r\\n */\\r\\n /*else if ((params.event_time) && (params.event_time == '')) {\\r\\n var event_time = moment.utc().unix();\\r\\n AddValue(codeValues,'event_time', event_time);\\r\\n } revisar mas adelante*/\\r\\n // to parse SMS info from the device\\r\\n switch (messageTypeLocalCode) {\\r\\n case 'COMM-SMS': // SMS message sent in\\r\\n if (params.data.startsWith('Device location request')) {\\r\\n configsToAck.push(configIds.Controls.RealTimeLocate);\\r\\n } else if (params.data.startsWith('Set IP ok')) {\\r\\n configsToAck.push(configIds.Controls.GetCurrentConfig);\\r\\n } else if (params.data.startsWith('IMEI:')) {\\r\\n configsToAck.push(configIds.Controls.GetFirmwareVersion);\\r\\n } else if (params.data.startsWith('Set IP ok')) {\\r\\n configsToAck.push(configIds.Controls.ClearBufferedMessages);\\r\\n } else if (params.data.startsWith('flush ok')) {\\r\\n configsToAck.push(configIds.Controls.GetCurrentConfig);\\r\\n } else if (params.data.startsWith('Set Roam-')) {\\r\\n configsToAck.push(configIds.SMSPrefix.SMSPrefix);\\r\\n } else if (params.data.startsWith('set live tracking')) {\\r\\n configsToAck.push(configIds.Controls.Trace);\\r\\n } else if (params.data.startsWith('reboot ok')) {\\r\\n configsToAck.push(configIds.Controls.Reboot);\\r\\n } else if (params.data.startsWith('GPS')) {\\r\\n configsToAck.push(configIds.Controls.RealTimeLocate);\\r\\n var i1 = params.data.search('Now:')\\r\\n var i2 = params.data.search('Loc Time:')\\r\\n var i3 = params.data.search('Speed:')\\r\\n var i4 = params.data.search('Altitude:')\\r\\n var i5 = params.data.search('Battery:')\\r\\n var i6 = params.data.search('google')\\r\\n var eventTime = params.data.substring(i2 + 9, i3)\\r\\n var Speed = params.data.substring(i3 + 6, i4 - 3)\\r\\n if (params.data.substring(i4 - 3, i4) == 'mph') {\\r\\n Speed = Speed * 0.44704\\r\\n } else if (params.data.substring(i4 - 3, i4) == 'kph') {\\r\\n Speed = Speed / 3.6\\r\\n }\\r\\n var latlong = params.data.substring(i6 + 18)\\r\\n location_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n messageForReceiver = (`Roam-RTL;${params.imei};${location_time};${location_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n //event_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n //messageForReceiver = (`CARE-RTL;${params.imei};${event_time};${event_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n case 'ACK-FIRM-SMS': // Firmware info sent by SMS\\r\\n //var i1 = params.data.search('IMEI:')\\r\\n //var i2 = params.data.search('GSM signal quality:')\\r\\n var i3 = params.data.search('Software version:')\\r\\n var sub = params.data.substring(i3 + 17, params.data.length)\\r\\n var i4 = sub.search('version:');\\r\\n var fwVersion = sub.substring(i4, sub.length);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n break;\\r\\n case 'ACK-FALLSENS-SMS': // Fall sensibility info sent by SMS\\r\\n var i1 = params.data.search('Fall alarm:');\\r\\n var sensibility = params.data.substring(i1 + 11, i1 + 14);\\r\\n var i2 = params.data.search('level:');\\r\\n sensibility = sensibility + ', ' + params.data.substring(i2 + 6, i2 + 7);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"sensibility\\\", sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadEmergencySettings.FallSensitivity, sensibility);\\r\\n configsToAck.push(configIds.ReadEmergencySettings.FallSensitivity);\\r\\n break;\\r\\n case 'ACK-BEAC-SMS': // Beacon list info sent by SMS\\r\\n var i1 = raw.search('1,');\\r\\n //var i2 = params.data.search('2,');\\r\\n //var homeBeacon = params.data.substring(i1+2, i2);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"homeBeacon\\\", raw.substring(i1, raw.length));\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.HomeBeacon, raw.substring(i1, raw.length));\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.HomeBeacon);\\r\\n break;\\r\\n case 'ACK-CONTAC-SMS': // Contact list info sent by SMS\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n var i1 = raw.search('A1:');\\r\\n if (raw.includes('A2:')) {\\r\\n var i2 = raw.search('A2:');\\r\\n } else {\\r\\n var i2 = raw.search('A10:');\\r\\n }\\r\\n var tel = raw.substring(i1 + 4, i2);\\r\\n AddValue(codeValues, \\\"EmergencyNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.EmergencyNumber, tel);\\r\\n configsToAck.push(configIds.ReadAlertSettings.EmergencyNumber);\\r\\n i2 = raw.search('A10:')\\r\\n tel = raw.substring(i2 + 4, raw.length);\\r\\n AddValue(codeValues, \\\"SMSGateway\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.SMSGateway, tel);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.SMSGateway);\\r\\n AddValue(codeValues, \\\"ApprovedContacts\\\", raw.substring(i1, raw.length));\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.ApprovedContacts, raw.substring(i1, raw.length));\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.ApprovedContacts);\\r\\n break;\\r\\n case 'ACK-SERV-SMS': // APN and Server info sent by SMS\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n var i1 = params.data.search('APN:')\\r\\n var i2 = params.data.search('IP:')\\r\\n var i3 = params.data.search('Move')\\r\\n var apn = params.data.substring(i1 + 4, i2);\\r\\n AddValue(codeValues, \\\"apn\\\", apn);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.APN, apn);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.APN);\\r\\n var serverDetails = params.data.substring(i2 + 3, i3);\\r\\n AddValue(codeValues, \\\"server\\\", serverDetails);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.Server, serverDetails);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.Server);\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case 'RTL-GPS': // SRTL sent in via SMS with no pre-code\\r\\n var i3 = params.data.search('Speed:')\\r\\n var i4 = params.data.search('Altitude:')\\r\\n var i5 = params.data.search('Battery:')\\r\\n var i6 = params.data.search('google')\\r\\n var eventTime = params.data.substring(0, i3)\\r\\n var Speed = params.data.substring(i3 + 6, i4 - 3)\\r\\n if (params.data.substring(i4 - 3, i4) == 'mph') {\\r\\n Speed = Speed * 0.44704\\r\\n } else if (params.data.substring(i4 - 3, i4) == 'kph') {\\r\\n Speed = Speed / 3.6\\r\\n }\\r\\n var latlong = params.data.substring(i6 + 18)\\r\\n location_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n messageForReceiver = (`Roam-RTL;${params.imei};${location_time};${location_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n }\\r\\n if (!params.event_time && !event_time) { // if params.event_time undefined - set it to now. \\r\\n var event_time = moment.utc().unix();\\r\\n AddValue(codeValues, 'event_time', event_time);\\r\\n }\\r\\n // if (!params.location_time && !location_time) { // if params.location_time undefined - set it to now. \\r\\n // var location_time = moment.utc().unix();\\r\\n // AddValue(codeValues, 'location_time', location_time);\\r\\n //}\\r\\n }\\r\\n var dataToReceiver = {\\r\\n 'values': codeValues\\r\\n };\\r\\n if (configsToAck.length > 0) {\\r\\n dataToReceiver.configsToAck = configsToAck\\r\\n };\\r\\n if (configsToUpdate.length > 0) {\\r\\n dataToReceiver.configsToUpdate = configsToUpdate\\r\\n };\\r\\n if (configsToSend.length > 0) {\\r\\n dataToReceiver.configsToSend = configsToSend\\r\\n };\\r\\n console.log(dataToReceiver);\\r\\n //}\\r\\n //return {\\r\\n // 'output': dataToReceiver\\r\\n //}\\r\\n // end of main operation\\r\\n // define functions used in operation\\r\\n function AddValue(codeValueArray, p1, p2) { // push code value pair into array\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n codeValueArray.push(cvpair);\\r\\n }\\r\\n\\r\\n function decoder(str) { // decode rawdata\\r\\n // CARE Decoder\\r\\n AddValue(codeValues, 'Message : ', str);\\r\\n var message = str;\\r\\n // need to check if checksum is correct for possible msg corruption 10/03/23\\r\\n var checksum = message.substring(8, 12);\\r\\n var messageBody = message.substring(16, message.length);\\r\\n debug('message =' + message);\\r\\n debug('checksum =' + checksum);\\r\\n debug('calculateCheckSum =' + calculateCheckSum(messageBody));\\r\\n if (calculateCheckSum(messageBody) == checksum) { // payload is valid\\r\\n debug(\\\"message has valid checksum\\\");\\r\\n var messageBody = command; // update value for the ACK\\r\\n debug('command =' + command);\\r\\n if (command == '01') {\\r\\n while (index < total_length + 16) {\\r\\n // gen_location = '0'; //cambiado 30/09\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n var keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n debug('key = ' + key);\\r\\n debug('value = ' + value);\\r\\n switch (key) {\\r\\n //Device ID\\r\\n case '01':\\r\\n var imei = hex_to_ascii(value);\\r\\n break;\\r\\n //Alarm code\\r\\n case '02':\\r\\n var alarm = 'CYC';\\r\\n var alarmCode = value.substring(0, 8);\\r\\n alarmCode = changeEndianness(alarmCode);\\r\\n var timestampHex = value.substring(8, 16);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n event_time = timestamp;\\r\\n var alarmCodeInt = hexToDecimal(alarmCode);\\r\\n var alarmCodeExt = value.substring(16, 24);\\r\\n alarmCodeExt = changeEndianness(alarmCodeExt);\\r\\n var alarmCodeExtInt = hexToDecimal(alarmCodeExt);\\r\\n //Extended Alerts\\r\\n // Fall off\\r\\n if ((alarmCodeExtInt & 1) == 1) {\\r\\n var alarm = 'ALF-C';\\r\\n }\\r\\n // Welfare Check-out\\r\\n else if ((alarmCodeExtInt & 2) == 2) {\\r\\n var alarm = 'ALA-C';\\r\\n }\\r\\n // Standard Alerts\\r\\n //Battery low\\r\\n else if ((alarmCodeInt & 1) == 1) {\\r\\n var alarm = 'BATL';\\r\\n }\\r\\n //Overspeed\\r\\n else if ((alarmCodeInt & 2) == 2) {\\r\\n var alarm = 'ALSP';\\r\\n }\\r\\n //Fall\\r\\n else if ((alarmCodeInt & 4) == 4) {\\r\\n var alarm = 'ALF';\\r\\n }\\r\\n //Tilt\\r\\n else if ((alarmCodeInt & 8) == 8) {\\r\\n var alarm = 'Tilt';\\r\\n } else if ((alarmCodeInt & 16) == 16) {\\r\\n if ((alarmCodeInt & 16777216) == 16777216) {\\r\\n var alarm = 'Geo1-IN';\\r\\n } else {\\r\\n var alarm = 'Geo1-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 32) == 32) {\\r\\n if ((alarmCodeInt & 33554432) == 33554432) {\\r\\n var alarm = 'Geo2-IN';\\r\\n } else {\\r\\n var alarm = 'Geo2-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 64) == 64) {\\r\\n if ((alarmCodeInt & 67108864) == 67108864) {\\r\\n var alarm = 'Geo3-IN';\\r\\n } else {\\r\\n var alarm = 'Geo3-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 128) == 128) {\\r\\n if ((alarmCodeInt & 134217728) == 134217728) {\\r\\n var alarm = 'Geo4-IN';\\r\\n } else {\\r\\n var alarm = 'Geo4-OUT';\\r\\n }\\r\\n }\\r\\n //Power Off\\r\\n else if ((alarmCodeInt & 256) == 256) {\\r\\n var alarm = 'PWRF';\\r\\n }\\r\\n //Power On\\r\\n else if ((alarmCodeInt & 512) == 512) {\\r\\n var alarm = 'PWRN';\\r\\n }\\r\\n //Motion\\r\\n else if ((alarmCodeInt & 1024) == 1024) {\\r\\n var alarm = 'ALMOV';\\r\\n }\\r\\n //No Motion\\r\\n else if ((alarmCodeInt & 2048) == 2048) {\\r\\n var alarm = 'ALNM';\\r\\n }\\r\\n //SOS\\r\\n else if ((alarmCodeInt & 4096) == 4096) {\\r\\n var alarm = 'ALSOS';\\r\\n } else if ((alarmCodeInt & 8192) == 8192) {\\r\\n var alarm = 'Side1';\\r\\n } else if ((alarmCodeInt & 16384) == 16384) {\\r\\n var alarm = 'Side2';\\r\\n }\\r\\n //Battery charging\\r\\n else if ((alarmCodeInt & 32768) == 32768) {\\r\\n var alarm = 'BATCN';\\r\\n }\\r\\n //Battery no charging\\r\\n else if ((alarmCodeInt & 65536) == 65536) {\\r\\n var alarm = 'BATCF';\\r\\n }\\r\\n //SOS Ending\\r\\n // Temporary Commented until we know exactly how it works. 22/09/2022\\r\\n else if ((alarmCodeInt & 131072) == 131072) {\\r\\n var alarm = 'SOSEnding';\\r\\n info = 'Alarm Finished';\\r\\n }\\r\\n //Amber Alert EC03 only\\r\\n else if ((alarmCodeInt & 262144) == 262144) {\\r\\n var alarm = 'ALAO';\\r\\n }\\r\\n // welfare Alert check-in ALA-O\\r\\n else if ((alarmCodeInt & 524288) == 524288) {\\r\\n var alarm = 'ALA-O';\\r\\n }\\r\\n // Amber alert Ending ALA-C\\r\\n else if ((alarmCodeInt & 1048576) == 1048576) {\\r\\n var alarm = 'ALA-C';\\r\\n }\\r\\n // Amber alert Ending ALA-C\\r\\n //else if ((alarmCodeInt & 1048576) == 1048576) {\\r\\n // var alarm = 'ALA-C';\\r\\n //}\\r\\n // Fall-Down Alert ending\\r\\n else if ((alarmCodeInt & 2097152) == 2097152) {\\r\\n var alarm = 'ALF-C';\\r\\n }\\r\\n // welfare Alert Ending ALA\\r\\n else if ((alarmCodeInt & 4194304) == 4194304) {\\r\\n var alarm = 'ALA';\\r\\n }\\r\\n // Beacon absent Alert 11/10/22. Need to be added in msg types\\r\\n //else if ((alarmCodeInt & 16777216) == 16777216) {\\r\\n // var alarm = 'BEA';\\r\\n //}\\r\\n general += 'alarm:' + alarm + ',';\\r\\n break;\\r\\n //Custom ID\\r\\n case '03':\\r\\n // in value is customID.... '06' for Watch Care\\r\\n // if ((imei != '860470063029395') && (imei != '860470063035947')) {\\r\\n //update customID to check if belongs to this type of device\\r\\n customID = value;\\r\\n if (value != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n } else {\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n general += 'customID:' + value + ',';\\r\\n break;\\r\\n }\\r\\n //Historical Data Completed\\r\\n case '10': // indica q se han terminado de enviar todos los datos historicos.\\r\\n var histData = true;\\r\\n break;\\r\\n //GPS location\\r\\n case '20':\\r\\n location_type = 'GPS';\\r\\n var latitudeHex = value.substring(0, 8);\\r\\n var longitudeHex = value.substring(8, 16);\\r\\n var speedHex = value.substring(16, 20);\\r\\n var directionHex = value.substring(20, 24);\\r\\n var altitudeHex = value.substring(24, 28);\\r\\n var location_accuracyHex = value.substring(28, 32);\\r\\n var mileageHex = value.substring(32, 40);\\r\\n var satellitesHex = value.substring(40, 42);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n speed = ((hexToDecimal(changeEndianness(speedHex))) / 3.6).toFixed(2); //date 14-02-2023 in m/s\\r\\n var direction = hexToDecimal(changeEndianness(directionHex));\\r\\n var altitude = hexToDecimal(changeEndianness(altitudeHex)); // in meters\\r\\n //location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex)) * 5;\\r\\n // Range: 0.5 to 99.9 \\r\\n location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex));\\r\\n //var mileage = hexToDecimal(changeEndianness(mileageHex)) this is in km/h we need m/s\\r\\n var mileage = hexToDecimal(changeEndianness(mileageHex)); // in meters date 14-02-2023\\r\\n var satellites = hexToDecimal(satellitesHex);\\r\\n // location_time = timestamp;\\r\\n //<<latitude>>,<<longitude>>,<<speed>>,<<altitude>>,<<location_time>>\\r\\n gps_data = `${latitude},${longitude},${location_accuracy},${speed},${direction},${altitude},${satellites},${mileage}`;\\r\\n general += 'gps location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //WIFI Towers\\r\\n case '22':\\r\\n location_type = 'WIFI';\\r\\n var numWifi = Math.round((hexToDecimal(keyLengthHex) - 1) / 7);\\r\\n //location_time = timestamp;\\r\\n var wifiTowers = value;\\r\\n general += 'wifiTowers:';\\r\\n var indexWifi = 0;\\r\\n var bssid_array = [];\\r\\n wifi_data = '';\\r\\n for (let i = 0; i < numWifi; i++) {\\r\\n wifi_data += hexToDecimalSigned(wifiTowers.substring(indexWifi, indexWifi + 2)) + ',' + wifiTowers.substring(indexWifi + 2, indexWifi + 14) + ',';\\r\\n indexWifi += 14;\\r\\n }\\r\\n wifi_data = wifi_data.slice(0, -1);\\r\\n general += wifi_data;\\r\\n break;\\r\\n //BLE Location Added 10/10/22\\r\\n case '23':\\r\\n location_type = 'BLE';\\r\\n var mac = value.substring(0, 12);\\r\\n var latitudeHex = value.substring(12, 20);\\r\\n var longitudeHex = value.substring(20, 28);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n var address = hex_to_ascii(value.substring(28, value.length));\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n // location_time = timestamp;\\r\\n ble_data = `${latitude},${longitude},${mac},${address}`;\\r\\n general += 'BLE location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //General Data , status_data\\r\\n case '24':\\r\\n //var general = 'true'\\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n }\\r\\n //else {\\r\\n // messageForReceiver = (`CareWatch-CYC;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};`);\\r\\n //}\\r\\n // reset variables\\r\\n //alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n location_time = timestamp;\\r\\n // HardCode to fix possible issue in protocol\\r\\n // event_time = timestamp; \\r\\n event_time = moment.utc().unix();\\r\\n // end of hard code\\r\\n var statusHex = changeEndianness(value.substring(8, 16));\\r\\n var statusInt = hexToDecimal(statusHex);\\r\\n var statusDevice = '';\\r\\n if ((statusInt & 1) == 1) {\\r\\n statusDevice += 'GPS,';\\r\\n }\\r\\n if ((statusInt & 2) == 2) {\\r\\n statusDevice += 'WIFISource,';\\r\\n }\\r\\n if ((statusInt & 4) == 4) {\\r\\n statusDevice += 'CellTower,';\\r\\n }\\r\\n if ((statusInt & 8) == 8) {\\r\\n statusDevice += 'BLELocation,';\\r\\n }\\r\\n //params.BatteryStatus.BatteryStatus = '1';\\r\\n if ((statusInt & 16) == 16) {\\r\\n statusDevice += 'Charging,';\\r\\n // var alarm = 'BATCN';\\r\\n //configs.BatteryStatus.BatteryStatus = '1';\\r\\n /* if (configs.BatteryStatus.BatteryStatus !== '1') {\\r\\n hasConfigs = true;\\r\\n var batteryStatus = '1';\\r\\n var alarm = 'BATCN';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }*/\\r\\n }\\r\\n if ((statusInt & 32) == 32) {\\r\\n statusDevice += 'FUllyCharged,';\\r\\n //var alarm = 'BATF';\\r\\n // configs.BatteryStatus.BatteryStatus = '3';\\r\\n /* if (configs.BatteryStatus.BatteryStatus !== '3') {\\r\\n hasConfigs = true;\\r\\n var batteryStatus = '3';\\r\\n var alarm = 'BATF';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }*/\\r\\n }\\r\\n /* if (!((statusInt & 32) == 32) & !((statusInt & 16) == 16)) {\\r\\n statusDevice += 'Not Charging,';\\r\\n var alarm = 'BATCF';\\r\\n //configs.BatteryStatus.BatteryStatus = '2';\\r\\n if (configs.BatteryStatus.BatteryStatus !== '2') {\\r\\n var batteryStatus = '2';\\r\\n var alarm = 'BATCF';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }\\r\\n }*/\\r\\n if ((statusInt & 64) == 64) {\\r\\n statusDevice += 'Reboot,';\\r\\n }\\r\\n if ((statusInt & 128) == 128) {\\r\\n statusDevice += 'HistoricalData,';\\r\\n }\\r\\n if ((statusInt & 256) == 256) {\\r\\n statusDevice += 'AGPSDataValid,';\\r\\n }\\r\\n if ((statusInt & 512) == 512) {\\r\\n statusDevice += 'Motion,';\\r\\n }\\r\\n if ((statusInt & 1024) == 1024) {\\r\\n statusDevice += 'SmartLocating,';\\r\\n }\\r\\n if ((statusInt & 2048) == 2048) { //isHome\\r\\n statusDevice += 'BeaconLocation,';\\r\\n }\\r\\n if ((statusInt & 4096) == 4096) {\\r\\n statusDevice += 'BLEConnected,';\\r\\n }\\r\\n if ((statusInt & 16384) == 16384) {\\r\\n statusDevice += 'HomeWiFi,';\\r\\n }\\r\\n statusDevice = statusDevice.slice(0, -1);\\r\\n status_data = statusDevice; //to oysta template\\r\\n //statusHex = (statusHex);\\r\\n statusHex = hex2bin(statusHex);\\r\\n statusHex = ('00000000000000000000000000000000' + statusHex).slice(-32);\\r\\n battery_percentage = parseInt(statusHex.substring(0, 8), 2);\\r\\n cellNetworkSignal = parseInt(statusHex.substring(8, 13), 2);\\r\\n workMode = parseInt(statusHex.substring(13, 16), 2);\\r\\n general += 'statusDevice:' + statusDevice + ',';\\r\\n if (battery_percentage) {\\r\\n general += 'battery:' + battery_percentage + ',';\\r\\n }\\r\\n if (cellNetworkSignal) {\\r\\n general += 'cellNetworkSignal:' + cellNetworkSignal + ',';\\r\\n }\\r\\n if (workMode) {\\r\\n general += 'workMode:' + workMode + ',';\\r\\n }\\r\\n //messageForReceiver = (`CareWatch-CYC;${imei};${i};${event_time};${battery_percentage}`);\\r\\n break;\\r\\n //Call Records\\r\\n case '25':\\r\\n //Needed?\\r\\n break;\\r\\n //BLE Location 2\\r\\n case '26':\\r\\n //I don't understand\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Smart Location\\r\\n case '27':\\r\\n location_type = 'SMART';\\r\\n var latitudeHex = value.substring(0, 8);\\r\\n var longitudeHex = value.substring(8, 16);\\r\\n var location_accuracyHex = value.substring(16, 20);\\r\\n var altitudeHex = value.substring(20, 24);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n var altitude = hexToDecimal(changeEndianness(altitudeHex));\\r\\n //location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex)) * 5;\\r\\n //04/08/2022 se quita el multiplicador por 5 pq ya viene el valor en metros\\r\\n location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex));\\r\\n //location_time = timestamp;\\r\\n smart_data = `${latitude},${longitude},${location_accuracy},${altitude}`;\\r\\n general += 'smart location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //Beacon Location Added 11/10/22\\r\\n case '28':\\r\\n location_type = 'BEACON';\\r\\n // var alarm = 'EBZI';\\r\\n var latitudeHex = '00';\\r\\n var longitudeHex = '00';\\r\\n var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 1));\\r\\n var beacId = hexToDecimal(value.substring(1, 2));\\r\\n // msg includes descrip\\r\\n if ((flag & 4) == 4) {\\r\\n descr = hex_to_ascii(value.substring(18, value.length));\\r\\n }\\r\\n // msg includes lat/lon\\r\\n if ((flag & 8) == 8) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n }\\r\\n // msg includes lat/lon and description\\r\\n if ((flag & 12) == 12) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n descr = hex_to_ascii(value.substring(34, value.length));\\r\\n }\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var rssiHex = value.substring(14, 16);\\r\\n var rssi1Hex = value.substring(16, 18);\\r\\n rssi = hexToDecimalSigned(changeEndianness(rssiHex));\\r\\n rssi1 = hexToDecimalSigned(changeEndianness(rssi1Hex));\\r\\n // var latitudeHex = value.substring(18, 26);\\r\\n // var longitudeHex = value.substring(26, 34);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n //location_time = timestamp;\\r\\n beacon_data = `${latitude},${longitude},${mac},${descr}`;\\r\\n general += 'BEACON location (lat):' + latitude + ', (long):' + longitude + ', (mac):' + mac + ', (description):' + descr + ', (rssi):' + rssi + ', (listIndex):' + beacId + ',';\\r\\n break;\\r\\n // Beacon V2\\r\\n case '2C':\\r\\n location_type = 'BEACON';\\r\\n // var alarm = 'EBZI';\\r\\n var latitudeHex = '00';\\r\\n var longitudeHex = '00';\\r\\n var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 1));\\r\\n var beacId = hexToDecimal(value.substring(1, 2));\\r\\n // msg includes descrip\\r\\n if ((flag & 4) == 4) {\\r\\n let desc_leng = hexToDecimal(value.substring(20, 22));\\r\\n descr = hex_to_ascii(value.substring(22, 22 + (2 * desc_leng)));\\r\\n //descr = hex_to_ascii(value.substring(18, value.length));\\r\\n }\\r\\n // msg includes lat/lon\\r\\n if ((flag & 8) == 8) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n }\\r\\n // msg includes lat/lon and description\\r\\n if ((flag & 12) == 12) {\\r\\n latitudeHex = value.substring(20, 28);\\r\\n longitudeHex = value.substring(28, 36);\\r\\n let desc_leng = hexToDecimal(value.substring(36, 38));\\r\\n descr = hex_to_ascii(value.substring(38, 38 + (2 * desc_leng)));\\r\\n }\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var rssiHex = value.substring(14, 16);\\r\\n var rssi1Hex = value.substring(16, 18);\\r\\n rssi = hexToDecimalSigned(changeEndianness(rssiHex));\\r\\n rssi1 = hexToDecimalSigned(changeEndianness(rssi1Hex));\\r\\n var battery_beacon = hexToDecimal(value.substring(18, 20));\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n //location_time = timestamp;\\r\\n beacon_data = `${latitude},${longitude},${mac},${descr}`;\\r\\n general += 'BEACON location (lat):' + latitude + ', (long):' + longitude + ', (mac):' + mac + ', (description):' + descr + ', (rssi):' + rssi + ', (battery):' + battery_beacon + ', (listIndex):' + beacId + ',';\\r\\n break;\\r\\n //Cell Towers Note\\r\\n case '29':\\r\\n location_type = 'LBS';\\r\\n lbs_data = '';\\r\\n var mccHex = changeEndianness(value.substring(0, 4));\\r\\n var mncHex = value.substring(4, 6);\\r\\n var mcc = hexToDecimal(mccHex);\\r\\n lbs_data += mcc + ',';\\r\\n var mnc = hexToDecimal(mncHex);\\r\\n lbs_data += mnc + ',';\\r\\n var indexLbs = 6;\\r\\n var numTowers = (hexToDecimal(keyLengthHex) - 4) / 7;\\r\\n for (let i = 0; i < numTowers; i++) {\\r\\n var rxlHex = changeEndianness(value.substring(indexLbs, indexLbs + 2));\\r\\n var rxl = hexToDecimal(rxlHex);\\r\\n var lacHex = changeEndianness(value.substring(indexLbs + 2, indexLbs + 6));\\r\\n var lac = hexToDecimal(lacHex);\\r\\n var cellTowers = hexToDecimal(changeEndianness(value.substring(indexLbs + 6, indexLbs + 14)));\\r\\n lbs_data += rxl + ',' + lac + ',' + cellTowers + ',';\\r\\n indexLbs += 14;\\r\\n }\\r\\n lbs_data = lbs_data.slice(0, -1);\\r\\n general += lbs_data;\\r\\n break;\\r\\n case '30':\\r\\n //G-sensor. \\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n var numStep = (keyLength - 2) / 16;\\r\\n for (let j = 0; j < numStep; j++) {\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n //timestamp = hexToDecimalSigned(timestampHex);\\r\\n var stepHex = value.substring(8, 16);\\r\\n stepHex = changeEndianness(stepHex);\\r\\n var stepRate = hexToDecimal(stepHex);\\r\\n info = stepRate;\\r\\n //var alarmCode = 'True';\\r\\n var alarm = 'STP';\\r\\n general += ' step counting' + j + ':' + stepRate + ',';\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};STP=${info};LABEL=steps`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n //Activity\\r\\n case '31':\\r\\n //I don't understand\\r\\n break;\\r\\n //BLE MAC list\\r\\n case '32':\\r\\n //I don't understand\\r\\n break;\\r\\n //Beacon List\\r\\n case '33':\\r\\n //I don't understand\\r\\n break;\\r\\n //Heart Rate Data\\r\\n case '40':\\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n var numHeartRate = (keyLength - 2) / 12;\\r\\n for (let j = 0; j < numHeartRate; j++) {\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n //timestamp = hexToDecimalSigned(timestampHex);\\r\\n var heartRateHex = value.substring(8, 10);\\r\\n var heartRate = hexToDecimal(heartRateHex);\\r\\n var trustLevelHex = value.substring(10, 12);\\r\\n var trustLevel = hexToDecimal(trustLevelHex);\\r\\n info = heartRate;\\r\\n //var alarmCode = 'True';\\r\\n var alarm = 'HRT';\\r\\n general += ' heart rate' + j + ':' + heartRate + ',';\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};HRT=${info};TLEVEL=${trustLevel};LABEL=bpm`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n //BLE Connected . For Flic button\\r\\n case '62':\\r\\n location_type = 'BLE';\\r\\n //var alarm = 'EBZI'; \\r\\n //var latitudeHex = '00';\\r\\n //var longitudeHex = '00';\\r\\n //var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 2)); // 0= Disconnected, 1= Connected\\r\\n var mac = value.substring(2, 14); // No hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var batLevel = hexToDecimal(value.substring(14, 16)); // 0-100\\r\\n //location_time = timestamp;\\r\\n ble_data = `${flag},${batLevel},${mac}`;\\r\\n general += 'BLE location (State):' + flag + ', (bat):' + batLevel + ', (mac):' + mac + ',';\\r\\n break;\\r\\n }\\r\\n }\\r\\n // CareWatch-CYC;<<imei>>;STATUS=<<status_data>>;TIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;\\r\\n // \\\"CareWatch-CYC;861629050193550;STATUS=WIFISource,CellTower;TIME=1673950279;BATP=84;LGPS=undefined;LWIF=-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369;LLBS=214,1,13,768,38529798;LBEACON=undefined;BLE=undefined;GENERAL=statusDevice:WIFISource,CellTower,battery:84,cellNetworkSignal:14,workMode:6,wifiTowers:-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369,214,1,13,768,38529798,;\\\",\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n /*else if (alarm === 'HRT') {\\r\\n messageForReceiver = (`CareWatch-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};HRT=${info};TLEVEL=${trustLevel};LABEL=bpm`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (alarm === 'STP') {\\r\\n messageForReceiver = (`CareWatch-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};STP=${info};LABEL=steps`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else {\\r\\n messageForReceiver = (`CareWatch-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }*/\\r\\n // rest the alarm value\\r\\n alarm = '';\\r\\n }\\r\\n if (command == '02') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n switch (key) {\\r\\n //Module Number\\r\\n case '01':\\r\\n var date = value.substring(6, 8) + value.substring(4, 6) + '-' + value.substring(2, 4) + '-' + value.substring(0, 2);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Firmware version\\r\\n case '02':\\r\\n //no ACK need\\r\\n var fwVersion = 'v' + hexToDecimal(value.substring(6, 8)) + '.' + hexToDecimal(value.substring(4, 6)) + '.' + hexToDecimal(value.substring(2, 4)) + '.' + hexToDecimal(value.substring(0, 2));\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '1A':\\r\\n //no ACK need\\r\\n var fwVersion = hex_to_ascii(value);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n break;\\r\\n //IMEI\\r\\n case '03':\\r\\n var imei = hexToDecimal(value);\\r\\n // harcode to avoid conflicts with Rio protocol\\r\\n //if ((imei != '860470063029395') && (imei != '860470063035947')) {\\r\\n // AddValue(codeValues, \\\"error\\\", \\\"device imei is not in this protocol\\\");\\r\\n // AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n //AddValue(codeValues, \\\"IMEI\\\", imei);\\r\\n // return\\r\\n //}\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //ICCID\\r\\n case '04':\\r\\n var iccid = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //BLE-MAC\\r\\n case '05':\\r\\n var bleMac = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Run Time\\r\\n case '07':\\r\\n var runTime = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '10': // Ringer Volume\\r\\n var volume = hexToDecimal(value);\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-VOL;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"Volume\\\", volume);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.Volume, volume);\\r\\n configsToAck.push(configIds.ReadSystemSettings.Volume);\\r\\n break;\\r\\n case '0A': //Performance mode\\r\\n //var workMode = hexToDecimal(value);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n //AddValue(codeValues, \\\"WorkMode\\\", workMode);\\r\\n //AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n //configsToAck.push(configIds.ReadPerformance`Settings.Mode);\\r\\n //var workMode = hex_to_ascii(value.substring(0, value.length));\\r\\n //var workMode = hexToDecimal(value);\\r\\n //var workMode = hex_to_ascii(value.substring(0, value.length));\\r\\n var workMode = 1234; // + value + \\\"end\\\";\\r\\n //var workModeVal = 9;\\r\\n //workMode = 'test10';\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-MODE;${imei};`);\\r\\n AddValue(codeValues, \\\"Mode\\\", workMode);\\r\\n AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n //AddValue(codeValues, \\\"performanceMode\\\", performanceMode);\\r\\n //AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, performanceMode);\\r\\n // configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n break;\\r\\n case '1B':\\r\\n //Decimal o ascii?\\r\\n var gsmModule = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '1F':\\r\\n //System Language\\r\\n var systemLanguage = hex_to_ascii(value.substring(0, value.length));\\r\\n imei = serverParams.Imei;\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n messageForReceiver = (`Roam;ACK-LANG;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"SystemLanguage\\\", systemLanguage);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.SystemLanguage, systemLanguage);\\r\\n configsToAck.push(configIds.ReadSystemSettings.SystemLanguage);\\r\\n break;\\r\\n case '33': // phone option\\r\\n // [Value]:83 0B 00 00 {\\\"phoneOption\\\":{\\\"flag_value\\\":2947,\\\"s3\\\":1,\\\"s4\\\":0,\\\"s5\\\":1,\\\"s6\\\":0,\\\"callIncoming\\\":0,\\\"rings\\\":3,\\\"s7\\\":0,\\\"toneID\\\":0,\\\"s1\\\":1,\\\"s2\\\":1}}\\r\\n var statusPhone = hex2bin(value.substring(0, 2)); // To find autoanswer setup\\r\\n if (statusPhone.substring(0, 1) == '1') { // 1 Enable\\r\\n var auto = 'true';\\r\\n } else var auto = 'false';\\r\\n statusPhone = hex2bin(value.substring(2, 4)); // To find allow list setup\\r\\n if (statusPhone.substring(7, 8) == '1') { // 1 Enable\\r\\n allow = 'true';\\r\\n } else var allow = 'false';\\r\\n //statusPhone = hex2bin(value.substring(0, 2)) + hex2bin(value.substring(2, 4));\\r\\n //AddValue(configsToUpdate, configIds.ReadSystemSettings.Statusphone, statusPhone);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.AllowList, allow);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.AutoAnswer, auto);\\r\\n //configsToAck.push(configIds.ReadSystemSettings.Statusphone);\\r\\n configsToAck.push(configIds.ReadSystemSettings.AllowList);\\r\\n configsToAck.push(configIds.ReadSystemSettings.AutoAnswer);\\r\\n break;\\r\\n case '30': //ContactList\\r\\n var enablePhone = hex2bin(value.substring(0, 1)).substring(0, 1);\\r\\n var contactNumber = value.substring(1, 2);\\r\\n var telLength = hexToDecimal(value.substring(2, 4));\\r\\n var tel = '';\\r\\n switch (contactNumber) {\\r\\n // Emergency Number\\r\\n case '0':\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n AddValue(codeValues, \\\"EmergencyNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.EmergencyNumber, tel);\\r\\n configsToAck.push(configIds.ReadAlertSettings.EmergencyNumber);\\r\\n break;\\r\\n // Speed Dial Number\\r\\n case '1':\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n AddValue(codeValues, \\\"SpeedDialNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadSpeedDialSettings.SpeedDialNumber, tel);\\r\\n configsToAck.push(configIds.ReadSpeedDialSettings.SpeedDialNumber);\\r\\n AddValue(configsToUpdate, configIds.ReadSpeedDialSettings.EnableDisableReadSpeedDialSettings, enablePhone);\\r\\n configsToAck.push(configIds.ReadSpeedDialSettings.EnableDisableReadSpeedDialSettings);\\r\\n //configIds.SpeedDialSettings.EnableDisableSpeedDial\\r\\n break;\\r\\n // Gateway Number\\r\\n case '9': //00447781482635,Esendex UK 0034627177148,Esendex Spain 00447507288240,Esendex UK Acceptance\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n if (tel.includes('447781482635') || tel.includes('00447781482635')) {\\r\\n tel = 'Esendex UK'\\r\\n } else if (tel.includes('34627177148') || tel.includes('0034627177148')) {\\r\\n tel = 'Esendex Spain'\\r\\n } else if (tel.includes('447507288240') || tel.includes('00447507288240')) {\\r\\n tel = 'Esendex UK Acceptance'\\r\\n } else {\\r\\n tel = 'Default'\\r\\n }\\r\\n AddValue(codeValues, \\\"SMSGateway\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.SMSGateway, tel);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.SMSGateway);\\r\\n break;\\r\\n default:\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n if (tel.length < 6) {\\r\\n break;\\r\\n }\\r\\n contacts += 'A' + (contactNumber - 1) + ': ' + tel + ', ';\\r\\n AddValue(codeValues, \\\"ApprovedContacts\\\", contacts);\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.ApprovedContacts, contacts);\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.ApprovedContacts);\\r\\n break;\\r\\n }\\r\\n break;\\r\\n case '40': // APN\\r\\n //no ACK need\\r\\n var apn = hex_to_ascii(value.substring(0, value.length));\\r\\n imei = serverParams.Imei;\\r\\n break;\\r\\n case '41': // APN Username\\r\\n //no ACK need\\r\\n //apn = apn + ',' + hex_to_ascii(value.substring(0, value.length));\\r\\n break;\\r\\n case '42': // APN Password\\r\\n //no ACK need\\r\\n //apn = apn + ',' + hex_to_ascii(value.substring(0, value.length));\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"apn\\\", apn);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.APN, apn);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.APN);\\r\\n break;\\r\\n case '43': //Server Details\\r\\n //52.232.85.255,5678 production 52.174.17.77,5678 acceptance\\r\\n var serverDetails = hex_to_ascii(value.substring(6, value.length)) + ':' + hexToDecimal(value.substring(4, 6) + value.substring(2, 4));\\r\\n if (serverDetails.includes('52.232.85.255:5678')) {\\r\\n serverDetails = 'Production'\\r\\n } else if (serverDetails.includes('52.174.17.77:5678')) {\\r\\n serverDetails = 'Acceptance'\\r\\n } else if (serverDetails.includes('52.174.17.77:5778')) {\\r\\n serverDetails = 'Protocol-Import'\\r\\n } else {\\r\\n serverDetails = 'Default'\\r\\n }\\r\\n AddValue(codeValues, \\\"server\\\", serverDetails);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.Server, serverDetails);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.Server);\\r\\n break;\\r\\n case '44': //time interval - work mode intervals\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-MODE;${imei};`);\\r\\n var workMode = 0;\\r\\n var cycle = hexToDecimal(value.substring(10, 12) + value.substring(8, 10));\\r\\n var lazyCycle = hexToDecimal(value.substring(18, 20) + value.substring(16, 18));\\r\\n if (cycle == 240 && lazyCycle == 3600) { // 4 mins and 1 hour\\r\\n //workMode = 'High Frequency';\\r\\n workMode = 3;\\r\\n }\\r\\n if (cycle == 600 && lazyCycle == 3600) { // 10 mins and 1 hour\\r\\n //workMode = 'Balanced';\\r\\n workMode = 2;\\r\\n }\\r\\n if (cycle == 28800 && lazyCycle == 43200) { // 6 hour and 12 hours\\r\\n //workMode = 'Power Saving';\\r\\n workMode = 1;\\r\\n }\\r\\n if (cycle == 86400 && lazyCycle == 86400) { // 24 hours and 24 hours\\r\\n //workMode = 'No Reporting';\\r\\n workMode = 0;\\r\\n }\\r\\n AddValue(codeValues, \\\"Mode\\\", workMode);\\r\\n AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case '47': // Custom Id\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-CUSTID;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"customeid\\\", value);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CustomId, value);\\r\\n configsToAck.push(configIds.ReadState.CustomId);\\r\\n break;\\r\\n case '53': // Non motion alert\\r\\n //2B020080\\r\\n var status = hex2bin(value.substring(6, 8));\\r\\n var alertSetting = '';\\r\\n var enableDisable = '';\\r\\n if (status.substring(0, 1) == '1') {\\r\\n alertSetting = 'Enable, '\\r\\n enableDisable = '1';\\r\\n } else {\\r\\n alertSetting = 'Disable, '\\r\\n };\\r\\n //if (status.substring(5, 6) == '1') {\\r\\n // alertSetting += 'Dial, '\\r\\n //} else {\\r\\n // alertSetting += 'No Dial, '\\r\\n //};\\r\\n var time = hexToDecimal(value.substring(2, 4) + value.substring(0, 2));\\r\\n alertSetting += time;\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-NOMOTION;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"nomotion\\\", alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.NoMotionAlert, value + '-' + alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadNonMovementSettings.EnableDisableNonMovementSettings, enableDisable);\\r\\n AddValue(configsToUpdate, configIds.ReadNonMovementSettings.Time, time);\\r\\n configsToAck.push(configIds.ReadAlertSettings.NoMotionAlert);\\r\\n configsToAck.push(configIds.ReadNonMovementSettings.EnableDisableNonMovementSettings);\\r\\n configsToAck.push(configIds.ReadNonMovementSettings.Time);\\r\\n break;\\r\\n case '56': //Fall down sensibility\\r\\n // '00001100'\\r\\n var fallStatus = hex2bin(value.substring(0, 2));\\r\\n var enalbleDisable = '';\\r\\n //if (fallStatus.substring(4, 5) == '1') {\\r\\n if (fallStatus.substring(0, 1) == '1') {\\r\\n var sensibility = 'Enable, '\\r\\n enalbleDisable = '1'\\r\\n } else {\\r\\n var sensibility = 'Disable, '\\r\\n };\\r\\n if (fallStatus.substring(5, 6) == '1') {\\r\\n sensibility += 'Dial, '\\r\\n } else {\\r\\n sensibility += 'No Dial, '\\r\\n };\\r\\n var imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-FALLALERT;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n var sesibityOptionValue = hexToDecimal(value.substring(1, 2));\\r\\n sensibility += sesibityOptionValue;\\r\\n AddValue(codeValues, \\\"sensibility\\\", sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.FallSettings, sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadFallSettings.EnableDisableFallSettings, enalbleDisable);\\r\\n AddValue(configsToUpdate, configIds.ReadFallSettings.Sensitivity, sesibityOptionValue);\\r\\n configsToAck.push(configIds.ReadAlertSettings.FallSettings);\\r\\n configsToAck.push(configIds.ReadFallSettings.EnableDisableFallSettings);\\r\\n configsToAck.push(configIds.ReadFallSettings.Sensitivity);\\r\\n break;\\r\\n case '73': //BeaconList\\r\\n var beaconNumber = hexToDecimal(value.substring(1, 2));\\r\\n var beaconStatus = hex2bin(value.substring(0, 1));\\r\\n //if (beaconStatus.substring(4, 5) == '1') {\\r\\n // homeBeacon += ' Enable, '\\r\\n //} else {\\r\\n // homeBeacon += ' Disable, '\\r\\n //};\\r\\n beaconStatus = hex_to_ascii(value.substring(30, value.length));\\r\\n //beaconStatus = changeEndianness(value.substring(30, value.length));\\r\\n homeBeacon += 'B' + (beaconNumber + 1) + ': ' + beaconStatus + ', ';\\r\\n AddValue(codeValues, \\\"homeBeacon\\\", homeBeacon);\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.HomeBeacon, homeBeacon);\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.HomeBeacon);\\r\\n break;\\r\\n case '4A': //Wifi Network List\\r\\n var wifiSSIDLenght = hexToDecimal(value.substring(2, 4));\\r\\n var wifiPasswordLenght = hexToDecimal(value.substring(4, 6));\\r\\n var wifiIndex = hexToDecimal(value.substring(1, 2));\\r\\n var wifiStatus = hexToDecimal(value.substring(0, 1));\\r\\n /*var enalbleDisable = wifiSSID = wifiPassword = homeWifi = '';\\r\\n /var homeWifi = '';\\r\\n if (wifiIndex == '0') { // Only first Wifi of the list\\r\\n if (wifiStatus == '8') {\\r\\n homeWifi += ' Enable, '\\r\\n enalbleDisable = '1';\\r\\n } else {\\r\\n homeWifi += ' Disable, '\\r\\n //enalbleDisable = '0';\\r\\n };*/\\r\\n if (wifiStatus == '8') {\\r\\n var wifiSSID = hex_to_ascii(value.substring(6, 6 + 2 * (wifiSSIDLenght)));\\r\\n var wifiPassword = hex_to_ascii(value.substring(6 + 2 * (wifiSSIDLenght), 6 + 2 * (wifiSSIDLenght + wifiPasswordLenght)));\\r\\n var imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-WIFI;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n homeWiFi += 'W' + (wifiIndex + 1) + ': ' + wifiSSID + ', ' + wifiPassword + ';';\\r\\n AddValue(codeValues, \\\"wifi\\\", homeWiFi);\\r\\n AddValue(configsToUpdate, configIds.ReadWiFiList.WiFiList, homeWiFi);\\r\\n configsToAck.push(configIds.ReadWiFiList.WiFiList);\\r\\n }\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.EnableDisableReadWiFiSettings, enalbleDisable);\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.SSID, wifiSSID);\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.Password, wifiPassword);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.EnableDisableReadWiFiSettings);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.SSID);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.Password);\\r\\n break;\\r\\n case '21': // Speed Dial Settings\\r\\n // [Value]:53 84 {\\\"call1Button\\\":{\\\"mode\\\":0,\\\"feedBack\\\":3,\\\"task\\\":2,\\\"time\\\":20,\\\"status\\\":1}}\\r\\n var status = hex2bin(value.substring(2, 3));\\r\\n var alertSetting = '';\\r\\n var enableDisable = '';\\r\\n if (status.substring(0, 1) == '1') {\\r\\n alertSetting = 'Enable, '\\r\\n enableDisable = '1';\\r\\n } else {\\r\\n alertSetting = 'Disable, '\\r\\n //enableDisable = '0';\\r\\n };\\r\\n //var time = hexToDecimal(value.substring(2, 4) + value.substring(0, 2));\\r\\n //alertSetting += time;\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-SPEED;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"speed\\\", alertSetting);\\r\\n //AddValue(configsToUpdate, configIds.ReadAlertSettings.NoMotionAlert, value + '-' + alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadSpeedDialSettings.EnableDisableReadSpeedDialSettings, enableDisable);\\r\\n //AddValue(configsToUpdate, configIds.ReadNonMovementSettings.Time, time);\\r\\n //configsToAck.push(configIds.ReadAlertSettings.NoMotionAlert);\\r\\n configsToAck.push(configIds.ReadSpeedDialSettings.EnableDisableReadSpeedDialSettings);\\r\\n //configsToAck.push(configIds.ReadNonMovementSettings.Time);\\r\\n break;\\r\\n }\\r\\n }\\r\\n }\\r\\n if (command == '03') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n var keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n debug('key = ' + key);\\r\\n debug('value = ' + value);\\r\\n switch (key) {\\r\\n case '01': // Device ID\\r\\n var imei = hex_to_ascii(value);\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n break;\\r\\n //CustomID is not provided so far with command type 03.. commented in the mean time\\r\\n /* case '03':\\r\\n //update customID to check if belongs to this type of device\\r\\n customID = value;\\r\\n if (value != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n } else {\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n general += 'customID:' + value + ',';\\r\\n break;\\r\\n }\\r\\n break; */\\r\\n case '10': // Heartbeat\\r\\n var heartbeat = hex_to_ascii(value);\\r\\n event_time = moment.utc().unix();\\r\\n if (index < total_length + 16) {\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n key = message.substring(index, index = index + 2);\\r\\n if (key == '24') {\\r\\n // debug('key: ' + key) //comment those out\\r\\n value = message.substring(index, index = index + keyLength - 2);\\r\\n // debug(value)\\r\\n var timestampHex = value.substring(0, 8);\\r\\n // debug('timestampt hex: ' + timestampHex)\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n event_time = timestamp;\\r\\n // debug(event_time)\\r\\n var statusHex = changeEndianness(value.substring(8, 16));\\r\\n // debug(statusHex)\\r\\n var statusInt = hexToDecimal(statusHex);\\r\\n var statusDevice = '';\\r\\n if ((statusInt & 1) == 1) {\\r\\n statusDevice += 'GPS,';\\r\\n }\\r\\n if ((statusInt & 2) == 2) {\\r\\n statusDevice += 'WIFISource,';\\r\\n }\\r\\n if ((statusInt & 4) == 4) {\\r\\n statusDevice += 'CellTower,';\\r\\n }\\r\\n if ((statusInt & 8) == 8) {\\r\\n statusDevice += 'BLELocation,';\\r\\n }\\r\\n if ((statusInt & 16) == 16) {\\r\\n statusDevice += 'Charging,';\\r\\n }\\r\\n if ((statusInt & 32) == 32) {\\r\\n statusDevice += 'FUllyCharged,';\\r\\n }\\r\\n if ((statusInt & 64) == 64) {\\r\\n statusDevice += 'Reboot,';\\r\\n }\\r\\n if ((statusInt & 128) == 128) {\\r\\n statusDevice += 'HistoricalData,';\\r\\n }\\r\\n if ((statusInt & 256) == 256) {\\r\\n statusDevice += 'AGPSDataValid,';\\r\\n }\\r\\n if ((statusInt & 512) == 512) {\\r\\n statusDevice += 'Motion,';\\r\\n }\\r\\n if ((statusInt & 1024) == 1024) {\\r\\n statusDevice += 'SmartLocating,';\\r\\n }\\r\\n if ((statusInt & 2048) == 2048) {\\r\\n statusDevice += 'BeaconLocation,';\\r\\n }\\r\\n if ((statusInt & 4096) == 4096) {\\r\\n statusDevice += 'BLEConnected,';\\r\\n }\\r\\n statusDevice = statusDevice.slice(0, -1);\\r\\n // debug('statusHex:' + statusHex)\\r\\n statusHex = (statusHex);\\r\\n statusHex = hex2bin(statusHex);\\r\\n statusHex = ('00000000000000000000000000000000' + statusHex).slice(-32);\\r\\n // debug(statusHex)\\r\\n battery_percentage = parseInt(statusHex.substring(0, 8), 2);\\r\\n // debug(battery_percentage)\\r\\n // debug(battery_percentage)\\r\\n // debug(statusHex.substring(8, 13))\\r\\n cellNetworkSignal = parseInt(statusHex.substring(8, 13), 2);\\r\\n // debug(cellNetworkSignal)\\r\\n workMode = parseInt(statusHex.substring(13, 16), 2);\\r\\n // debug(workMode)\\r\\n general += 'statusDevice:' + statusDevice + ';';\\r\\n if (battery_percentage) {\\r\\n general += 'battery:' + battery_percentage + ';';\\r\\n }\\r\\n if (cellNetworkSignal) {\\r\\n general += 'cellNetworkSignal:' + cellNetworkSignal + ';';\\r\\n }\\r\\n if (workMode) {\\r\\n general += 'workMode:' + workMode + ';';\\r\\n }\\r\\n }\\r\\n }\\r\\n // revisar\\r\\n var gen_location = '0';\\r\\n //CustomID is not provided so far with command type 03.. commented in the mean time\\r\\n /*if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }*/\\r\\n //messageForReceiver = (`Eview-HTB;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};SIGNAL=${cellNetworkSignal};WM=${workMode};SL=${systemLanguage};GENERAL=${general}`);\\r\\n messageForReceiver = (`Eview-HTB;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '12': // Device requesting timestamp\\r\\n timestamp = moment.utc().unix();\\r\\n timestampHex = decimalToHex(timestamp);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n keyLengthHex = ('00' + decimalToHex(1 + (timestampHex.length) / 2)).slice(-2);\\r\\n // respond to device with the timestamp of the server\\r\\n messageBody = messageBody + keyLengthHex + key + timestampHex;\\r\\n messageForReceiver = `Eview;${imei};${sequenceID};Get timestamp`;\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case '21': //Cell Towers\\r\\n var mccHex = value.substring(0, 2);\\r\\n var mncHex = value.substring(2, 3);\\r\\n var mcc = hexToDecimal(mccHex);\\r\\n var mnc = hexToDecimal(mncHex);\\r\\n var numTowers = (keyLength - 4) / 5;\\r\\n var cellTowers = hex_to_ascii(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '22': // WIFI locations \\r\\n location_type = 'WIFI';\\r\\n var numWifi = Math.round((hexToDecimal(keyLengthHex) - 1) / 7);\\r\\n //location_time = timestamp;\\r\\n var wifiTowers = value;\\r\\n general += 'wifiTowers:';\\r\\n var indexWifi = 0;\\r\\n var bssid_array = [];\\r\\n gen_location = '';\\r\\n for (let i = 0; i < numWifi; i++) {\\r\\n gen_location += wifiTowers.substring(indexWifi + 2, indexWifi + 14) + ',';\\r\\n indexWifi += 14;\\r\\n }\\r\\n gen_location = gen_location.slice(0, -1);\\r\\n general += gen_location;\\r\\n //CustomID is not provided so far with command type 03\\r\\n /*if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }*/\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n alarmCode = '';\\r\\n break;\\r\\n }\\r\\n }\\r\\n }\\r\\n if (command == '04') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n if (command == '7E') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n if (command == '7F') {\\r\\n // while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n messageForReceiver = (`Roam-ACK;${imei};${message}`); // ${sequenceID}; add ${sequenceID}; 19-07\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n AddValue(configsToUpdate, configIds.ConfigureDevice.LastConfigured, moment().format('YYYY/MM/DD, HH:mm:ss'));\\r\\n configsToAck.push(configIds.ConfigureDevice.LastConfigured);\\r\\n //}\\r\\n }\\r\\n if (command == 'FE') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n // prepare the ACK msg and change config if it is needed\\r\\n lengthAck = messageBody.length / 2;\\r\\n lengthAck = ('0000' + decimalToHex(lengthAck)).slice(-4);\\r\\n lengthAck = lengthAck.toString().substring(2, 4) + lengthAck.toString().substring(0, 2);\\r\\n ////////////checksum CRC 16\\r\\n var checksumAck = byteStringToByteArray(messageBody);\\r\\n checksumAck = crc16byte(checksumAck);\\r\\n checksumAck = decimalToHex(checksumAck);\\r\\n checksumAck = ('0000' + checksumAck).slice(-4);\\r\\n checksumAck = checksumAck.toString().substring(2, 4) + checksumAck.toString().substring(0, 2);\\r\\n prefix = prefix + lengthAck + checksumAck + sequenceID;\\r\\n // To send ACK to the device previous to internal msg with parts\\r\\n if (needsAck == true) {\\r\\n if (messageBody.length <= 2) {\\r\\n ack = 'AB00030008C7' + sequenceID + '7F0100'; // change AB10030008C7 to AB00030008C7\\r\\n } else {\\r\\n ack = prefix + messageBody;\\r\\n }\\r\\n AddValue(codeValues, 'imei', imei);\\r\\n AddValue(codeValues, 'ack', ack);\\r\\n }\\r\\n } else { // checksum was invalid - print out useful debug info and bet quess at imei \\r\\n AddValue(codeValues, \\\"error\\\", \\\"checksum failed for message\\\");\\r\\n AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n i = rawFromBytes.search('3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]');\\r\\n if (i >= 0) {\\r\\n imei = hex_to_ascii(rawFromBytes.substring(i, i + 30));\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n function ascii_to_hexa(str) { // ascii to hex \\r\\n var arr1 = [];\\r\\n for (var n = 0, l = str.length; n < l; n++) {\\r\\n var hex = Number(str.charCodeAt(n)).toString(16);\\r\\n arr1.push(hex);\\r\\n }\\r\\n return arr1.join('');\\r\\n }\\r\\n\\r\\n function byteStringToByteArray(str) { //\\r\\n var splitStr = [];\\r\\n var j = 0;\\r\\n for (let i = 0; i < str.length; i += 2) {\\r\\n splitStr[j] = str.substring(i, i + 2);\\r\\n j++;\\r\\n }\\r\\n var bytes = [];\\r\\n var bytePos = 0;\\r\\n for (let i = 0; i < splitStr.length; i++) {\\r\\n var byteStr = splitStr[i];\\r\\n var b = parseInt(byteStr, 16);\\r\\n if (b < 256) {\\r\\n bytes[bytePos] = b;\\r\\n bytePos++;\\r\\n }\\r\\n }\\r\\n return bytes;\\r\\n }\\r\\n\\r\\n function changeEndianness(string) { //\\r\\n const result = [];\\r\\n let len = string.length - 2;\\r\\n while (len >= 0) {\\r\\n result.push(string.substr(len, 2));\\r\\n len -= 2;\\r\\n }\\r\\n return result.join('');\\r\\n }\\r\\n\\r\\n function hex2bin(hex) { //\\r\\n return (parseInt(hex, 16).toString(2)).padStart(8, '0');\\r\\n }\\r\\n\\r\\n function calculateCheckSum(payloadData) { // check if payload checksum is valid\\r\\n var checksum = byteStringToByteArray(payloadData);\\r\\n checksum = crc16byte(checksum);\\r\\n checksum = decimalToHex(checksum);\\r\\n checksum = ('0000' + checksum).slice(-4).toUpperCase();\\r\\n return changeEndianness(checksum);\\r\\n }\\r\\n\\r\\n function crc16byte(s) { //\\r\\n var crc = 0x0000;\\r\\n var j, i;\\r\\n for (i = 0; i < s.length; i++) {\\r\\n c = s[i];\\r\\n if (c > 255) {\\r\\n throw new RangeError();\\r\\n }\\r\\n j = (c ^ (crc >> 8)) & 0xFF;\\r\\n crc = crcTable[j] ^ (crc << 8);\\r\\n }\\r\\n return ((crc ^ 0) & 0xFFFF);\\r\\n }\\r\\n\\r\\n function debug(str) { // write debug info to console log, if localTesting\\r\\n if (localTesting === \\\"True\\\") {\\r\\n console.log(str);\\r\\n }\\r\\n }\\r\\n\\r\\n function decimalToHex(x) { // decimal to hex\\r\\n x = x.toString(16).toUpperCase();\\r\\n return x;\\r\\n }\\r\\n\\r\\n function hex_to_ascii(str1) { // Hex to Ascii \\r\\n var hex = str1.toString();\\r\\n var str = '';\\r\\n for (var n = 0; n < hex.length; n += 2) {\\r\\n str += String.fromCharCode(parseInt(hex.substr(n, 2), 16));\\r\\n }\\r\\n return str;\\r\\n }\\r\\n\\r\\n function hexToDecimalSigned(hex) { // hex to decimal\\r\\n if (hex.length % 2 != 0) {\\r\\n hex = \\\"0\\\" + hex;\\r\\n }\\r\\n var num = parseInt(hex, 16);\\r\\n var maxVal = Math.pow(2, hex.length / 2 * 8);\\r\\n if (num > maxVal / 2 - 1) {\\r\\n num = num - maxVal;\\r\\n }\\r\\n return num;\\r\\n }\\r\\n\\r\\n function hexToDecimal(x) {\\r\\n x = parseInt(x, 16);\\r\\n return x;\\r\\n }\\r\\n\\r\\n function sendMessageToLocalhostNoWait(str) { // sends message to system, closing connection after\\r\\n var server;\\r\\n if (localTesting) {\\r\\n console.log('local testing - sending to acceptance server the message ... ');\\r\\n console.log(str);\\r\\n server = '52.174.17.77';\\r\\n } else {\\r\\n server = '127.0.0.1';\\r\\n }\\r\\n var c = net.createConnection(5678, server);\\r\\n c.on('error', function(error) {\\r\\n c = net.createConnection(5678, server);\\r\\n });\\r\\n c.write(`${str}`);\\r\\n c.end();\\r\\n }\\r\\n // modify to return the object that contains your data\\r\\n return dataToReceiver;\\r\\n}\\r\\n// params is not defined locally -> export as module\\r\\nif (typeof(params) === 'undefined') {\\r\\n module.exports = {\\r\\n execute_ops\\r\\n }\\r\\n} else { // on server use local defined vars\\r\\n let return_values = execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, false)\\r\\n // define global returns\\r\\n msg = return_values;\\r\\n}\",\"Type\":0,\"ProtocolActionObjects\":[]}","Timestamp":1734461682},{"Type":1,"NewValue":"{\"Id\":313,\"Name\":\"Access TEC Roam\",\"Operation\":\"function execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, localTesting) {\\r\\n ///////////////////////////////////////////////////////////////////////////////\\r\\n //\\r\\n // Roam protocol - please see variables and typical values in order below\\r\\n // TECRoam-CYC;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;SIGNAL=<<signal_strength>>;WM=<<work_mode>>;GENERAL=<<general>>\\r\\n // TECRoam-CYC;861629050193550;STATUS=WIFISource,CellTower;TIME=1673950279;BATP=84;LGPS=undefined;LWIF=-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369;LLBS=214,1,13,768,38529798;LBEACON=undefined;BLE=undefined;GENERAL=statusDevice:WIFISource,CellTower,battery:84,cellNetworkSignal:14,workMode:6,wifiTowers:-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369,214,1,13,768,38529798,;\\\",\\r\\n //\\r\\n // Author: Joe Bloggs\\r\\n // Created: 01/01/0000\\r\\n // Last modified: 12/04/2024\\r\\n //\\r\\n ///////////////////////////////////////////////////////////////////////////////\\r\\n if (typeof localTesting === \\\"undefined\\\") {\\r\\n var localTesting = \\\"False\\\";\\r\\n }\\r\\n const crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,\\r\\n 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,\\r\\n 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\\r\\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,\\r\\n 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,\\r\\n 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\\r\\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,\\r\\n 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,\\r\\n 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\\r\\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,\\r\\n 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,\\r\\n 0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\\r\\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,\\r\\n 0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,\\r\\n 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\\r\\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,\\r\\n 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,\\r\\n 0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\\r\\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,\\r\\n 0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,\\r\\n 0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\\r\\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,\\r\\n 0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,\\r\\n 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\\r\\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,\\r\\n 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,\\r\\n 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\\r\\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,\\r\\n 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,\\r\\n 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\\r\\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,\\r\\n 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\\r\\n ];\\r\\n var codeValues = [];\\r\\n AddValue(codeValues, 'protocol_template', 'Roam');\\r\\n AddValue(codeValues, 'product', serverParams.ProductName);\\r\\n var dataToReceiver = [];\\r\\n var configsToAck = [];\\r\\n var configsToUpdate = [];\\r\\n var configsToSend = [];\\r\\n if (globalTemplate == \\\"True\\\") {\\r\\n if (raw.startsWith('esendex')) {\\r\\n AddValue(codeValues, 'rawMsg', raw);\\r\\n //general SMS message\\r\\n messageForReceiver = (`Roam-SMS;${serverParams.Imei};${raw}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n return;\\r\\n }\\r\\n AddValue(codeValues, 'raw', raw);\\r\\n AddValue(codeValues, 'rawMsg', rawFromBytes);\\r\\n var event_time, location_time, location_accuracy, speed, fix_state, latitude, longitude;\\r\\n var homeBeacon = '';\\r\\n var homeWiFi = '';\\r\\n var contacts = '';\\r\\n var gps_data = '';\\r\\n var wifi_data = '';\\r\\n var status_data = '';\\r\\n var lbs_data = '';\\r\\n var beacon_data = '';\\r\\n var ble_data = '';\\r\\n var smart_data = '';\\r\\n //parse header & properties\\r\\n var message = rawFromBytes;\\r\\n var properties = message.substring(2, 4);\\r\\n var lengthLittleEndian = message.substring(4, 8);\\r\\n var total_length = lengthLittleEndian.substring(2, 4) + lengthLittleEndian.substring(0, 2);\\r\\n total_length = 2 * hexToDecimal(total_length.substring(0, 4));\\r\\n var messageForReceiver;\\r\\n var sequenceID = message.substring(12, 16);\\r\\n var command = message.substring(16, 18);\\r\\n var index = 18;\\r\\n var prefix = 'AB' + '00';\\r\\n var lengthAck = 0;\\r\\n var ack = '';\\r\\n var needsAck = false;\\r\\n var hasConfigs = false;\\r\\n var general = '';\\r\\n var timestamp = '';\\r\\n var info = '';\\r\\n var customID = '';\\r\\n latitude = 0;\\r\\n longitude = 0;\\r\\n location_accuracy = 0; // GPS location adds the accuracy\\r\\n location_time = event_time = '';\\r\\n speed = 0.0;\\r\\n var location_type = '0';\\r\\n //var gen_location = '0'; \\r\\n var i; // general loop counter\\r\\n var battery_percentage = '';\\r\\n var cellNetworkSignal = '';\\r\\n var workMode = '';\\r\\n //mask bitwise (properties should be '10')\\r\\n if ((parseInt(properties) & 8) == 8) { // 22/7 change ((parseInt(properties) & 16) == 16)\\r\\n needsAck = true;\\r\\n }\\r\\n // Loop to decode multi-ACK msg\\r\\n if (message.includes('AB00030008C7')) {\\r\\n const multiack = message.split('AB00');\\r\\n for (let i = 1; i < multiack.length; i++) {\\r\\n message = 'AB00' + multiack[i];\\r\\n debug(message);\\r\\n decoder(message);\\r\\n } // FOR multiACK\\r\\n } else decoder(message); // IF multiACK\\r\\n } else if (oystaTemplate == 'True') { // Oysta Template \\r\\n AddValue(codeValues, 'rawMsg', raw);\\r\\n if ((params.gps_data) && (params.gps_data !== '')) { // decode gps data if exists\\r\\n var gen_location = params.gps_data.split(',');\\r\\n var latitude = gen_location[0];\\r\\n var longitude = gen_location[1];\\r\\n var location_accuracy = gen_location[2];\\r\\n var speed = gen_location[3];\\r\\n var direction = gen_location[4];\\r\\n var altitude = gen_location[5];\\r\\n var satellites = gen_location[6];\\r\\n var mileage = gen_location[7];\\r\\n if (location_accuracy !== 0) {\\r\\n var fix_state = 1;\\r\\n } else {\\r\\n var fix_state = 0;\\r\\n }\\r\\n AddValue(codeValues, 'latitude', latitude);\\r\\n AddValue(codeValues, 'longitude', longitude);\\r\\n AddValue(codeValues, 'speed', speed);\\r\\n AddValue(codeValues, 'direction', direction);\\r\\n AddValue(codeValues, 'altitude', altitude);\\r\\n AddValue(codeValues, 'location_accuracy', location_accuracy);\\r\\n AddValue(codeValues, 'mileage', mileage);\\r\\n AddValue(codeValues, 'satellites', satellites);\\r\\n AddValue(codeValues, 'fix_state', fix_state);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.lbs_data) && (params.lbs_data !== '')) { // decode lbs data if exists\\r\\n var variables = []; //Define array\\r\\n variables = params.lbs_data.split(',');\\r\\n var index = 2;\\r\\n for (i = 0; i < ((variables.length - 2) / 3); i++) { //loop for number of LBS sets on incoming data.\\r\\n if (variables[i] !== '0') { //Check if LBS data is present (device sends 0 if data not present)/actually exists.\\r\\n AddValue(codeValues, 'mcc', variables[0]);\\r\\n AddValue(codeValues, 'mnc', variables[1]);\\r\\n AddValue(codeValues, 'lac', variables[index]);\\r\\n AddValue(codeValues, 'signal_lbs', variables[index + 1]);\\r\\n AddValue(codeValues, 'cellid', variables[index + 2]);\\r\\n }\\r\\n index += 3;\\r\\n }\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.wifi_data) && (params.wifi_data !== '')) { // decode wifi data if exists\\r\\n var bssid_array = params.wifi_data.split(',');\\r\\n var index = 0;\\r\\n for (let i = 0; i < (bssid_array.length / 2); i++) {\\r\\n if (bssid_array[index + 1] != '000000000000') { //Check if MAC address is not 000000000000 - seems to be the default MAC of the device itself\\r\\n AddValue(codeValues, 'bssid', bssid_array[index + 1]);\\r\\n AddValue(codeValues, 'signal_wifi', bssid_array[index]);\\r\\n }\\r\\n index += 2;\\r\\n }\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n // when Beacon is detected and it isn't flic BLE detected\\r\\n if (((params.beacon_data) && (params.beacon_data !== '')) && !((params.ble_data) && (params.ble_data !== ''))) {\\r\\n var gen_location = params.beacon_data.split(',');\\r\\n var latitude = gen_location[0];\\r\\n var longitude = gen_location[1];\\r\\n var mac = gen_location[2];\\r\\n var label = gen_location[3];\\r\\n AddValue(codeValues, 'latitude', latitude);\\r\\n AddValue(codeValues, 'longitude', longitude);\\r\\n //AddValue(codeValues,'location_accuracy', '3'); // para mostrar que si hay accuracy muestra como source GPS\\r\\n // AddValue(codeValues,'beacon_mac', mac);\\r\\n //AddValue(codeValues,'beacon_major', 0);\\r\\n //AddValue(codeValues,'beacon_minor', 0);\\r\\n //<<beacon_mac>>,<<beacon_major>>,<<beacon_minor>> \\r\\n if (mac) {\\r\\n AddValue(codeValues, 'beacon_mac', mac);\\r\\n var simpleQuery = [{\\r\\n 'code': 'Mac',\\r\\n 'value': mac,\\r\\n }];\\r\\n var simpleQueryLabel = {\\r\\n 'table': 'beacons',\\r\\n 'select': 'Name',\\r\\n 'query': simpleQuery\\r\\n };\\r\\n var labels = [];\\r\\n labels.push(JSON.stringify(simpleQueryLabel));\\r\\n AddValue(codeValues, 'oysta_labels', JSON.stringify(labels));\\r\\n }\\r\\n if (params.beacon_major) {\\r\\n AddValue(codeValues, 'beacon_major', params.beacon_major);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_major', 0);\\r\\n }\\r\\n if (params.beacon_minor) {\\r\\n AddValue(codeValues, 'beacon_minor', params.beacon_minor);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_minor', 0);\\r\\n }\\r\\n //AddValue(codeValues,'oysta_labels', label);\\r\\n //AddValue(codeValues,'oysta_value', mac);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.ble_data) && (params.ble_data !== '')) { // decode ble data if exists\\r\\n var gen_location = params.ble_data.split(',');\\r\\n var flag = gen_location[0];\\r\\n var batLevel = gen_location[1];\\r\\n var mac2 = gen_location[2];\\r\\n //var label = gen_location[3];\\r\\n AddValue(codeValues, 'flagBLE', flag);\\r\\n AddValue(codeValues, 'batBLE', batLevel);\\r\\n //AddValue(codeValues,'location_accuracy', '3'); // para mostrar que si hay accuracy muestra como source GPS\\r\\n // AddValue(codeValues,'beacon_mac', mac);\\r\\n //AddValue(codeValues,'beacon_major', 0);\\r\\n //AddValue(codeValues,'beacon_minor', 0);\\r\\n //<<beacon_mac>>,<<beacon_major>>,<<beacon_minor>> \\r\\n if (mac2) {\\r\\n AddValue(codeValues, 'beacon_mac', mac2);\\r\\n var simpleQuery2 = [{\\r\\n 'code': 'Mac',\\r\\n 'value': mac2,\\r\\n }];\\r\\n var simpleQueryLabel2 = {\\r\\n 'table': 'beacons',\\r\\n 'select': 'Name',\\r\\n 'query': simpleQuery2\\r\\n };\\r\\n var labels2 = [];\\r\\n labels2.push(JSON.stringify(simpleQueryLabel2));\\r\\n AddValue(codeValues, 'oysta_labels', JSON.stringify(labels2));\\r\\n }\\r\\n if (params.beacon_major) {\\r\\n AddValue(codeValues, 'beacon_major', params.beacon_major);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_major', 0);\\r\\n }\\r\\n if (params.beacon_minor) {\\r\\n AddValue(codeValues, 'beacon_minor', params.beacon_minor);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_minor', 0);\\r\\n }\\r\\n //AddValue(codeValues,'oysta_labels', label);\\r\\n //AddValue(codeValues,'oysta_value', mac);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n /* meter mas tarde... \\r\\n if (params.smart_data !== 'undefined') {\\r\\n var gen_location = params.smart_data.split(',')\\r\\n var latitude = gen_location[0]\\r\\n var longitude = gen_location[1]\\r\\n var location_accuracy = gen_location[2]\\r\\n var altitude = gen_location[3]\\r\\n AddValue(codeValues,'latitude', latitude);\\r\\n AddValue(codeValues,'longitude', longitude);\\r\\n AddValue(codeValues,'altitude', altitude);\\r\\n AddValue(codeValues,'location_accuracy', location_accuracy);\\r\\n }\\r\\n */\\r\\n /*else if ((params.event_time) && (params.event_time == '')) {\\r\\n var event_time = moment.utc().unix();\\r\\n AddValue(codeValues,'event_time', event_time);\\r\\n } revisar mas adelante*/\\r\\n // to parse SMS info from the device\\r\\n switch (messageTypeLocalCode) {\\r\\n case 'COMM-SMS': // SMS message sent in\\r\\n if (params.data.startsWith('Device location request')) {\\r\\n configsToAck.push(configIds.Controls.RealTimeLocate);\\r\\n } else if (params.data.startsWith('Set IP ok')) {\\r\\n configsToAck.push(configIds.Controls.GetCurrentConfig);\\r\\n } else if (params.data.startsWith('IMEI:')) {\\r\\n configsToAck.push(configIds.Controls.GetFirmwareVersion);\\r\\n } else if (params.data.startsWith('Set IP ok')) {\\r\\n configsToAck.push(configIds.Controls.ClearBufferedMessages);\\r\\n } else if (params.data.startsWith('flush ok')) {\\r\\n configsToAck.push(configIds.Controls.GetCurrentConfig);\\r\\n } else if (params.data.startsWith('Set Roam-')) {\\r\\n configsToAck.push(configIds.SMSPrefix.SMSPrefix);\\r\\n } else if (params.data.startsWith('set live tracking')) {\\r\\n configsToAck.push(configIds.Controls.Trace);\\r\\n } else if (params.data.startsWith('reboot ok')) {\\r\\n configsToAck.push(configIds.Controls.Reboot);\\r\\n } else if (params.data.startsWith('GPS')) {\\r\\n configsToAck.push(configIds.Controls.RealTimeLocate);\\r\\n var i1 = params.data.search('Now:')\\r\\n var i2 = params.data.search('Loc Time:')\\r\\n var i3 = params.data.search('Speed:')\\r\\n var i4 = params.data.search('Altitude:')\\r\\n var i5 = params.data.search('Battery:')\\r\\n var i6 = params.data.search('google')\\r\\n var eventTime = params.data.substring(i2 + 9, i3)\\r\\n var Speed = params.data.substring(i3 + 6, i4 - 3)\\r\\n if (params.data.substring(i4 - 3, i4) == 'mph') {\\r\\n Speed = Speed * 0.44704\\r\\n } else if (params.data.substring(i4 - 3, i4) == 'kph') {\\r\\n Speed = Speed / 3.6\\r\\n }\\r\\n var latlong = params.data.substring(i6 + 18)\\r\\n location_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n messageForReceiver = (`Roam-RTL;${params.imei};${location_time};${location_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n //event_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n //messageForReceiver = (`CARE-RTL;${params.imei};${event_time};${event_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n case 'ACK-FIRM-SMS': // Firmware info sent by SMS\\r\\n //var i1 = params.data.search('IMEI:')\\r\\n //var i2 = params.data.search('GSM signal quality:')\\r\\n var i3 = params.data.search('Software version:')\\r\\n var sub = params.data.substring(i3 + 17, params.data.length)\\r\\n var i4 = sub.search('version:');\\r\\n var fwVersion = sub.substring(i4, sub.length);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n break;\\r\\n case 'ACK-FALLSENS-SMS': // Fall sensibility info sent by SMS\\r\\n var i1 = params.data.search('Fall alarm:');\\r\\n var sensibility = params.data.substring(i1 + 11, i1 + 14);\\r\\n var i2 = params.data.search('level:');\\r\\n sensibility = sensibility + ', ' + params.data.substring(i2 + 6, i2 + 7);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"sensibility\\\", sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadEmergencySettings.FallSensitivity, sensibility);\\r\\n configsToAck.push(configIds.ReadEmergencySettings.FallSensitivity);\\r\\n break;\\r\\n case 'ACK-BEAC-SMS': // Beacon list info sent by SMS\\r\\n var i1 = raw.search('1,');\\r\\n //var i2 = params.data.search('2,');\\r\\n //var homeBeacon = params.data.substring(i1+2, i2);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"homeBeacon\\\", raw.substring(i1, raw.length));\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.HomeBeacon, raw.substring(i1, raw.length));\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.HomeBeacon);\\r\\n break;\\r\\n case 'ACK-CONTAC-SMS': // Contact list info sent by SMS\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n var i1 = raw.search('A1:');\\r\\n if (raw.includes('A2:')) {\\r\\n var i2 = raw.search('A2:');\\r\\n } else {\\r\\n var i2 = raw.search('A10:');\\r\\n }\\r\\n var tel = raw.substring(i1 + 4, i2);\\r\\n AddValue(codeValues, \\\"EmergencyNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.EmergencyNumber, tel);\\r\\n configsToAck.push(configIds.ReadAlertSettings.EmergencyNumber);\\r\\n i2 = raw.search('A10:')\\r\\n tel = raw.substring(i2 + 4, raw.length);\\r\\n AddValue(codeValues, \\\"SMSGateway\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.SMSGateway, tel);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.SMSGateway);\\r\\n AddValue(codeValues, \\\"ApprovedContacts\\\", raw.substring(i1, raw.length));\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.ApprovedContacts, raw.substring(i1, raw.length));\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.ApprovedContacts);\\r\\n break;\\r\\n case 'ACK-SERV-SMS': // APN and Server info sent by SMS\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n var i1 = params.data.search('APN:')\\r\\n var i2 = params.data.search('IP:')\\r\\n var i3 = params.data.search('Move')\\r\\n var apn = params.data.substring(i1 + 4, i2);\\r\\n AddValue(codeValues, \\\"apn\\\", apn);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.APN, apn);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.APN);\\r\\n var serverDetails = params.data.substring(i2 + 3, i3);\\r\\n AddValue(codeValues, \\\"server\\\", serverDetails);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.Server, serverDetails);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.Server);\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case 'RTL-GPS': // SRTL sent in via SMS with no pre-code\\r\\n var i3 = params.data.search('Speed:')\\r\\n var i4 = params.data.search('Altitude:')\\r\\n var i5 = params.data.search('Battery:')\\r\\n var i6 = params.data.search('google')\\r\\n var eventTime = params.data.substring(0, i3)\\r\\n var Speed = params.data.substring(i3 + 6, i4 - 3)\\r\\n if (params.data.substring(i4 - 3, i4) == 'mph') {\\r\\n Speed = Speed * 0.44704\\r\\n } else if (params.data.substring(i4 - 3, i4) == 'kph') {\\r\\n Speed = Speed / 3.6\\r\\n }\\r\\n var latlong = params.data.substring(i6 + 18)\\r\\n location_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n messageForReceiver = (`Roam-RTL;${params.imei};${location_time};${location_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n }\\r\\n if (!params.event_time && !event_time) { // if params.event_time undefined - set it to now. \\r\\n var event_time = moment.utc().unix();\\r\\n AddValue(codeValues, 'event_time', event_time);\\r\\n }\\r\\n // if (!params.location_time && !location_time) { // if params.location_time undefined - set it to now. \\r\\n // var location_time = moment.utc().unix();\\r\\n // AddValue(codeValues, 'location_time', location_time);\\r\\n //}\\r\\n }\\r\\n var dataToReceiver = {\\r\\n 'values': codeValues\\r\\n };\\r\\n if (configsToAck.length > 0) {\\r\\n dataToReceiver.configsToAck = configsToAck\\r\\n };\\r\\n if (configsToUpdate.length > 0) {\\r\\n dataToReceiver.configsToUpdate = configsToUpdate\\r\\n };\\r\\n if (configsToSend.length > 0) {\\r\\n dataToReceiver.configsToSend = configsToSend\\r\\n };\\r\\n console.log(dataToReceiver);\\r\\n //}\\r\\n //return {\\r\\n // 'output': dataToReceiver\\r\\n //}\\r\\n // end of main operation\\r\\n // define functions used in operation\\r\\n function AddValue(codeValueArray, p1, p2) { // push code value pair into array\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n codeValueArray.push(cvpair);\\r\\n }\\r\\n\\r\\n function decoder(str) { // decode rawdata\\r\\n // CARE Decoder\\r\\n AddValue(codeValues, 'Message : ', str);\\r\\n var message = str;\\r\\n // need to check if checksum is correct for possible msg corruption 10/03/23\\r\\n var checksum = message.substring(8, 12);\\r\\n var messageBody = message.substring(16, message.length);\\r\\n debug('message =' + message);\\r\\n debug('checksum =' + checksum);\\r\\n debug('calculateCheckSum =' + calculateCheckSum(messageBody));\\r\\n if (calculateCheckSum(messageBody) == checksum) { // payload is valid\\r\\n debug(\\\"message has valid checksum\\\");\\r\\n var messageBody = command; // update value for the ACK\\r\\n debug('command =' + command);\\r\\n if (command == '01') {\\r\\n while (index < total_length + 16) {\\r\\n // gen_location = '0'; //cambiado 30/09\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n var keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n debug('key = ' + key);\\r\\n debug('value = ' + value);\\r\\n switch (key) {\\r\\n //Device ID\\r\\n case '01':\\r\\n var imei = hex_to_ascii(value);\\r\\n break;\\r\\n //Alarm code\\r\\n case '02':\\r\\n var alarm = 'CYC';\\r\\n var alarmCode = value.substring(0, 8);\\r\\n alarmCode = changeEndianness(alarmCode);\\r\\n var timestampHex = value.substring(8, 16);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n event_time = timestamp;\\r\\n var alarmCodeInt = hexToDecimal(alarmCode);\\r\\n var alarmCodeExt = value.substring(16, 24);\\r\\n alarmCodeExt = changeEndianness(alarmCodeExt);\\r\\n var alarmCodeExtInt = hexToDecimal(alarmCodeExt);\\r\\n //Extended Alerts\\r\\n // Fall off\\r\\n if ((alarmCodeExtInt & 1) == 1) {\\r\\n var alarm = 'ALF-C';\\r\\n }\\r\\n // Welfare Check-out\\r\\n else if ((alarmCodeExtInt & 2) == 2) {\\r\\n var alarm = 'ALA-C';\\r\\n }\\r\\n // Standard Alerts\\r\\n //Battery low\\r\\n else if ((alarmCodeInt & 1) == 1) {\\r\\n var alarm = 'BATL';\\r\\n }\\r\\n //Overspeed\\r\\n else if ((alarmCodeInt & 2) == 2) {\\r\\n var alarm = 'ALSP';\\r\\n }\\r\\n //Fall\\r\\n else if ((alarmCodeInt & 4) == 4) {\\r\\n var alarm = 'ALF';\\r\\n }\\r\\n //Tilt\\r\\n else if ((alarmCodeInt & 8) == 8) {\\r\\n var alarm = 'Tilt';\\r\\n } else if ((alarmCodeInt & 16) == 16) {\\r\\n if ((alarmCodeInt & 16777216) == 16777216) {\\r\\n var alarm = 'Geo1-IN';\\r\\n } else {\\r\\n var alarm = 'Geo1-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 32) == 32) {\\r\\n if ((alarmCodeInt & 33554432) == 33554432) {\\r\\n var alarm = 'Geo2-IN';\\r\\n } else {\\r\\n var alarm = 'Geo2-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 64) == 64) {\\r\\n if ((alarmCodeInt & 67108864) == 67108864) {\\r\\n var alarm = 'Geo3-IN';\\r\\n } else {\\r\\n var alarm = 'Geo3-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 128) == 128) {\\r\\n if ((alarmCodeInt & 134217728) == 134217728) {\\r\\n var alarm = 'Geo4-IN';\\r\\n } else {\\r\\n var alarm = 'Geo4-OUT';\\r\\n }\\r\\n }\\r\\n //Power Off\\r\\n else if ((alarmCodeInt & 256) == 256) {\\r\\n var alarm = 'PWRF';\\r\\n }\\r\\n //Power On\\r\\n else if ((alarmCodeInt & 512) == 512) {\\r\\n var alarm = 'PWRN';\\r\\n }\\r\\n //Motion\\r\\n else if ((alarmCodeInt & 1024) == 1024) {\\r\\n var alarm = 'ALMOV';\\r\\n }\\r\\n //No Motion\\r\\n else if ((alarmCodeInt & 2048) == 2048) {\\r\\n var alarm = 'ALNM';\\r\\n }\\r\\n //SOS\\r\\n else if ((alarmCodeInt & 4096) == 4096) {\\r\\n var alarm = 'ALSOS';\\r\\n } else if ((alarmCodeInt & 8192) == 8192) {\\r\\n var alarm = 'Side1';\\r\\n } else if ((alarmCodeInt & 16384) == 16384) {\\r\\n var alarm = 'Side2';\\r\\n }\\r\\n //Battery charging\\r\\n else if ((alarmCodeInt & 32768) == 32768) {\\r\\n var alarm = 'BATCN';\\r\\n }\\r\\n //Battery no charging\\r\\n else if ((alarmCodeInt & 65536) == 65536) {\\r\\n var alarm = 'BATCF';\\r\\n }\\r\\n //SOS Ending\\r\\n // Temporary Commented until we know exactly how it works. 22/09/2022\\r\\n else if ((alarmCodeInt & 131072) == 131072) {\\r\\n var alarm = 'SOSEnding';\\r\\n info = 'Alarm Finished';\\r\\n }\\r\\n //Amber Alert EC03 only\\r\\n else if ((alarmCodeInt & 262144) == 262144) {\\r\\n var alarm = 'ALAO';\\r\\n }\\r\\n // welfare Alert check-in ALA-O\\r\\n else if ((alarmCodeInt & 524288) == 524288) {\\r\\n var alarm = 'ALA-O';\\r\\n }\\r\\n // Amber alert Ending ALA-C\\r\\n else if ((alarmCodeInt & 1048576) == 1048576) {\\r\\n var alarm = 'ALA-C';\\r\\n }\\r\\n // Amber alert Ending ALA-C\\r\\n //else if ((alarmCodeInt & 1048576) == 1048576) {\\r\\n // var alarm = 'ALA-C';\\r\\n //}\\r\\n // Fall-Down Alert ending\\r\\n else if ((alarmCodeInt & 2097152) == 2097152) {\\r\\n var alarm = 'ALF-C';\\r\\n }\\r\\n // welfare Alert Ending ALA\\r\\n else if ((alarmCodeInt & 4194304) == 4194304) {\\r\\n var alarm = 'ALA';\\r\\n }\\r\\n // Beacon absent Alert 11/10/22. Need to be added in msg types\\r\\n //else if ((alarmCodeInt & 16777216) == 16777216) {\\r\\n // var alarm = 'BEA';\\r\\n //}\\r\\n general += 'alarm:' + alarm + ',';\\r\\n break;\\r\\n //Custom ID\\r\\n case '03':\\r\\n // in value is customID.... '06' for Watch Care\\r\\n // if ((imei != '860470063029395') && (imei != '860470063035947')) {\\r\\n //update customID to check if belongs to this type of device\\r\\n customID = value;\\r\\n if (value != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n } else {\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n general += 'customID:' + value + ',';\\r\\n break;\\r\\n }\\r\\n //Historical Data Completed\\r\\n case '10': // indica q se han terminado de enviar todos los datos historicos.\\r\\n var histData = true;\\r\\n break;\\r\\n //GPS location\\r\\n case '20':\\r\\n location_type = 'GPS';\\r\\n var latitudeHex = value.substring(0, 8);\\r\\n var longitudeHex = value.substring(8, 16);\\r\\n var speedHex = value.substring(16, 20);\\r\\n var directionHex = value.substring(20, 24);\\r\\n var altitudeHex = value.substring(24, 28);\\r\\n var location_accuracyHex = value.substring(28, 32);\\r\\n var mileageHex = value.substring(32, 40);\\r\\n var satellitesHex = value.substring(40, 42);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n speed = ((hexToDecimal(changeEndianness(speedHex))) / 3.6).toFixed(2); //date 14-02-2023 in m/s\\r\\n var direction = hexToDecimal(changeEndianness(directionHex));\\r\\n var altitude = hexToDecimal(changeEndianness(altitudeHex)); // in meters\\r\\n //location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex)) * 5;\\r\\n // Range: 0.5 to 99.9 \\r\\n location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex));\\r\\n //var mileage = hexToDecimal(changeEndianness(mileageHex)) this is in km/h we need m/s\\r\\n var mileage = hexToDecimal(changeEndianness(mileageHex)); // in meters date 14-02-2023\\r\\n var satellites = hexToDecimal(satellitesHex);\\r\\n // location_time = timestamp;\\r\\n //<<latitude>>,<<longitude>>,<<speed>>,<<altitude>>,<<location_time>>\\r\\n gps_data = `${latitude},${longitude},${location_accuracy},${speed},${direction},${altitude},${satellites},${mileage}`;\\r\\n general += 'gps location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //WIFI Towers\\r\\n case '22':\\r\\n location_type = 'WIFI';\\r\\n var numWifi = Math.round((hexToDecimal(keyLengthHex) - 1) / 7);\\r\\n //location_time = timestamp;\\r\\n var wifiTowers = value;\\r\\n general += 'wifiTowers:';\\r\\n var indexWifi = 0;\\r\\n var bssid_array = [];\\r\\n wifi_data = '';\\r\\n for (let i = 0; i < numWifi; i++) {\\r\\n wifi_data += hexToDecimalSigned(wifiTowers.substring(indexWifi, indexWifi + 2)) + ',' + wifiTowers.substring(indexWifi + 2, indexWifi + 14) + ',';\\r\\n indexWifi += 14;\\r\\n }\\r\\n wifi_data = wifi_data.slice(0, -1);\\r\\n general += wifi_data;\\r\\n break;\\r\\n //BLE Location Added 10/10/22\\r\\n case '23':\\r\\n location_type = 'BLE';\\r\\n var mac = value.substring(0, 12);\\r\\n var latitudeHex = value.substring(12, 20);\\r\\n var longitudeHex = value.substring(20, 28);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n var address = hex_to_ascii(value.substring(28, value.length));\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n // location_time = timestamp;\\r\\n ble_data = `${latitude},${longitude},${mac},${address}`;\\r\\n general += 'BLE location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //General Data , status_data\\r\\n case '24':\\r\\n //var general = 'true'\\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n }\\r\\n //else {\\r\\n // messageForReceiver = (`CareWatch-CYC;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};`);\\r\\n //}\\r\\n // reset variables\\r\\n //alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n location_time = timestamp;\\r\\n // HardCode to fix possible issue in protocol\\r\\n // event_time = timestamp; \\r\\n event_time = moment.utc().unix();\\r\\n // end of hard code\\r\\n var statusHex = changeEndianness(value.substring(8, 16));\\r\\n var statusInt = hexToDecimal(statusHex);\\r\\n var statusDevice = '';\\r\\n if ((statusInt & 1) == 1) {\\r\\n statusDevice += 'GPS,';\\r\\n }\\r\\n if ((statusInt & 2) == 2) {\\r\\n statusDevice += 'WIFISource,';\\r\\n }\\r\\n if ((statusInt & 4) == 4) {\\r\\n statusDevice += 'CellTower,';\\r\\n }\\r\\n if ((statusInt & 8) == 8) {\\r\\n statusDevice += 'BLELocation,';\\r\\n }\\r\\n //params.BatteryStatus.BatteryStatus = '1';\\r\\n if ((statusInt & 16) == 16) {\\r\\n statusDevice += 'Charging,';\\r\\n // var alarm = 'BATCN';\\r\\n //configs.BatteryStatus.BatteryStatus = '1';\\r\\n /* if (configs.BatteryStatus.BatteryStatus !== '1') {\\r\\n hasConfigs = true;\\r\\n var batteryStatus = '1';\\r\\n var alarm = 'BATCN';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }*/\\r\\n }\\r\\n if ((statusInt & 32) == 32) {\\r\\n statusDevice += 'FUllyCharged,';\\r\\n //var alarm = 'BATF';\\r\\n // configs.BatteryStatus.BatteryStatus = '3';\\r\\n /* if (configs.BatteryStatus.BatteryStatus !== '3') {\\r\\n hasConfigs = true;\\r\\n var batteryStatus = '3';\\r\\n var alarm = 'BATF';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }*/\\r\\n }\\r\\n /* if (!((statusInt & 32) == 32) & !((statusInt & 16) == 16)) {\\r\\n statusDevice += 'Not Charging,';\\r\\n var alarm = 'BATCF';\\r\\n //configs.BatteryStatus.BatteryStatus = '2';\\r\\n if (configs.BatteryStatus.BatteryStatus !== '2') {\\r\\n var batteryStatus = '2';\\r\\n var alarm = 'BATCF';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }\\r\\n }*/\\r\\n if ((statusInt & 64) == 64) {\\r\\n statusDevice += 'Reboot,';\\r\\n }\\r\\n if ((statusInt & 128) == 128) {\\r\\n statusDevice += 'HistoricalData,';\\r\\n }\\r\\n if ((statusInt & 256) == 256) {\\r\\n statusDevice += 'AGPSDataValid,';\\r\\n }\\r\\n if ((statusInt & 512) == 512) {\\r\\n statusDevice += 'Motion,';\\r\\n }\\r\\n if ((statusInt & 1024) == 1024) {\\r\\n statusDevice += 'SmartLocating,';\\r\\n }\\r\\n if ((statusInt & 2048) == 2048) { //isHome\\r\\n statusDevice += 'BeaconLocation,';\\r\\n }\\r\\n if ((statusInt & 4096) == 4096) {\\r\\n statusDevice += 'BLEConnected,';\\r\\n }\\r\\n if ((statusInt & 16384) == 16384) {\\r\\n statusDevice += 'HomeWiFi,';\\r\\n }\\r\\n statusDevice = statusDevice.slice(0, -1);\\r\\n status_data = statusDevice; //to oysta template\\r\\n //statusHex = (statusHex);\\r\\n statusHex = hex2bin(statusHex);\\r\\n statusHex = ('00000000000000000000000000000000' + statusHex).slice(-32);\\r\\n battery_percentage = parseInt(statusHex.substring(0, 8), 2);\\r\\n cellNetworkSignal = parseInt(statusHex.substring(8, 13), 2);\\r\\n workMode = parseInt(statusHex.substring(13, 16), 2);\\r\\n general += 'statusDevice:' + statusDevice + ',';\\r\\n if (battery_percentage) {\\r\\n general += 'battery:' + battery_percentage + ',';\\r\\n }\\r\\n if (cellNetworkSignal) {\\r\\n general += 'cellNetworkSignal:' + cellNetworkSignal + ',';\\r\\n }\\r\\n if (workMode) {\\r\\n general += 'workMode:' + workMode + ',';\\r\\n }\\r\\n //messageForReceiver = (`CareWatch-CYC;${imei};${i};${event_time};${battery_percentage}`);\\r\\n break;\\r\\n //Call Records\\r\\n case '25':\\r\\n //Needed?\\r\\n break;\\r\\n //BLE Location 2\\r\\n case '26':\\r\\n //I don't understand\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Smart Location\\r\\n case '27':\\r\\n location_type = 'SMART';\\r\\n var latitudeHex = value.substring(0, 8);\\r\\n var longitudeHex = value.substring(8, 16);\\r\\n var location_accuracyHex = value.substring(16, 20);\\r\\n var altitudeHex = value.substring(20, 24);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n var altitude = hexToDecimal(changeEndianness(altitudeHex));\\r\\n //location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex)) * 5;\\r\\n //04/08/2022 se quita el multiplicador por 5 pq ya viene el valor en metros\\r\\n location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex));\\r\\n //location_time = timestamp;\\r\\n smart_data = `${latitude},${longitude},${location_accuracy},${altitude}`;\\r\\n general += 'smart location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //Beacon Location Added 11/10/22\\r\\n case '28':\\r\\n location_type = 'BEACON';\\r\\n // var alarm = 'EBZI';\\r\\n var latitudeHex = '00';\\r\\n var longitudeHex = '00';\\r\\n var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 1));\\r\\n var beacId = hexToDecimal(value.substring(1, 2));\\r\\n // msg includes descrip\\r\\n if ((flag & 4) == 4) {\\r\\n descr = hex_to_ascii(value.substring(18, value.length));\\r\\n }\\r\\n // msg includes lat/lon\\r\\n if ((flag & 8) == 8) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n }\\r\\n // msg includes lat/lon and description\\r\\n if ((flag & 12) == 12) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n descr = hex_to_ascii(value.substring(34, value.length));\\r\\n }\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var rssiHex = value.substring(14, 16);\\r\\n var rssi1Hex = value.substring(16, 18);\\r\\n rssi = hexToDecimalSigned(changeEndianness(rssiHex));\\r\\n rssi1 = hexToDecimalSigned(changeEndianness(rssi1Hex));\\r\\n // var latitudeHex = value.substring(18, 26);\\r\\n // var longitudeHex = value.substring(26, 34);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n //location_time = timestamp;\\r\\n beacon_data = `${latitude},${longitude},${mac},${descr}`;\\r\\n general += 'BEACON location (lat):' + latitude + ', (long):' + longitude + ', (mac):' + mac + ', (description):' + descr + ', (rssi):' + rssi + ', (listIndex):' + beacId + ',';\\r\\n break;\\r\\n // Beacon V2\\r\\n case '2C':\\r\\n location_type = 'BEACON';\\r\\n // var alarm = 'EBZI';\\r\\n var latitudeHex = '00';\\r\\n var longitudeHex = '00';\\r\\n var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 1));\\r\\n var beacId = hexToDecimal(value.substring(1, 2));\\r\\n // msg includes descrip\\r\\n if ((flag & 4) == 4) {\\r\\n let desc_leng = hexToDecimal(value.substring(20, 22));\\r\\n descr = hex_to_ascii(value.substring(22, 22 + (2 * desc_leng)));\\r\\n //descr = hex_to_ascii(value.substring(18, value.length));\\r\\n }\\r\\n // msg includes lat/lon\\r\\n if ((flag & 8) == 8) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n }\\r\\n // msg includes lat/lon and description\\r\\n if ((flag & 12) == 12) {\\r\\n latitudeHex = value.substring(20, 28);\\r\\n longitudeHex = value.substring(28, 36);\\r\\n let desc_leng = hexToDecimal(value.substring(36, 38));\\r\\n descr = hex_to_ascii(value.substring(38, 38 + (2 * desc_leng)));\\r\\n }\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var rssiHex = value.substring(14, 16);\\r\\n var rssi1Hex = value.substring(16, 18);\\r\\n rssi = hexToDecimalSigned(changeEndianness(rssiHex));\\r\\n rssi1 = hexToDecimalSigned(changeEndianness(rssi1Hex));\\r\\n var battery_beacon = hexToDecimal(value.substring(18, 20));\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n //location_time = timestamp;\\r\\n beacon_data = `${latitude},${longitude},${mac},${descr}`;\\r\\n general += 'BEACON location (lat):' + latitude + ', (long):' + longitude + ', (mac):' + mac + ', (description):' + descr + ', (rssi):' + rssi + ', (battery):' + battery_beacon + ', (listIndex):' + beacId + ',';\\r\\n break;\\r\\n //Cell Towers Note\\r\\n case '29':\\r\\n location_type = 'LBS';\\r\\n lbs_data = '';\\r\\n var mccHex = changeEndianness(value.substring(0, 4));\\r\\n var mncHex = value.substring(4, 6);\\r\\n var mcc = hexToDecimal(mccHex);\\r\\n lbs_data += mcc + ',';\\r\\n var mnc = hexToDecimal(mncHex);\\r\\n lbs_data += mnc + ',';\\r\\n var indexLbs = 6;\\r\\n var numTowers = (hexToDecimal(keyLengthHex) - 4) / 7;\\r\\n for (let i = 0; i < numTowers; i++) {\\r\\n var rxlHex = changeEndianness(value.substring(indexLbs, indexLbs + 2));\\r\\n var rxl = hexToDecimal(rxlHex);\\r\\n var lacHex = changeEndianness(value.substring(indexLbs + 2, indexLbs + 6));\\r\\n var lac = hexToDecimal(lacHex);\\r\\n var cellTowers = hexToDecimal(changeEndianness(value.substring(indexLbs + 6, indexLbs + 14)));\\r\\n lbs_data += rxl + ',' + lac + ',' + cellTowers + ',';\\r\\n indexLbs += 14;\\r\\n }\\r\\n lbs_data = lbs_data.slice(0, -1);\\r\\n general += lbs_data;\\r\\n break;\\r\\n case '30':\\r\\n //G-sensor. \\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n var numStep = (keyLength - 2) / 16;\\r\\n for (let j = 0; j < numStep; j++) {\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n //timestamp = hexToDecimalSigned(timestampHex);\\r\\n var stepHex = value.substring(8, 16);\\r\\n stepHex = changeEndianness(stepHex);\\r\\n var stepRate = hexToDecimal(stepHex);\\r\\n info = stepRate;\\r\\n //var alarmCode = 'True';\\r\\n var alarm = 'STP';\\r\\n general += ' step counting' + j + ':' + stepRate + ',';\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};STP=${info};LABEL=steps`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n //Activity\\r\\n case '31':\\r\\n //I don't understand\\r\\n break;\\r\\n //BLE MAC list\\r\\n case '32':\\r\\n //I don't understand\\r\\n break;\\r\\n //Beacon List\\r\\n case '33':\\r\\n //I don't understand\\r\\n break;\\r\\n //Heart Rate Data\\r\\n case '40':\\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n var numHeartRate = (keyLength - 2) / 12;\\r\\n for (let j = 0; j < numHeartRate; j++) {\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n //timestamp = hexToDecimalSigned(timestampHex);\\r\\n var heartRateHex = value.substring(8, 10);\\r\\n var heartRate = hexToDecimal(heartRateHex);\\r\\n var trustLevelHex = value.substring(10, 12);\\r\\n var trustLevel = hexToDecimal(trustLevelHex);\\r\\n info = heartRate;\\r\\n //var alarmCode = 'True';\\r\\n var alarm = 'HRT';\\r\\n general += ' heart rate' + j + ':' + heartRate + ',';\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};HRT=${info};TLEVEL=${trustLevel};LABEL=bpm`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n //BLE Connected . For Flic button\\r\\n case '62':\\r\\n location_type = 'BLE';\\r\\n //var alarm = 'EBZI'; \\r\\n //var latitudeHex = '00';\\r\\n //var longitudeHex = '00';\\r\\n //var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 2)); // 0= Disconnected, 1= Connected\\r\\n var mac = value.substring(2, 14); // No hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var batLevel = hexToDecimal(value.substring(14, 16)); // 0-100\\r\\n //location_time = timestamp;\\r\\n ble_data = `${flag},${batLevel},${mac}`;\\r\\n general += 'BLE location (State):' + flag + ', (bat):' + batLevel + ', (mac):' + mac + ',';\\r\\n break;\\r\\n }\\r\\n }\\r\\n // CareWatch-CYC;<<imei>>;STATUS=<<status_data>>;TIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;\\r\\n // \\\"CareWatch-CYC;861629050193550;STATUS=WIFISource,CellTower;TIME=1673950279;BATP=84;LGPS=undefined;LWIF=-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369;LLBS=214,1,13,768,38529798;LBEACON=undefined;BLE=undefined;GENERAL=statusDevice:WIFISource,CellTower,battery:84,cellNetworkSignal:14,workMode:6,wifiTowers:-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369,214,1,13,768,38529798,;\\\",\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n /*else if (alarm === 'HRT') {\\r\\n messageForReceiver = (`CareWatch-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};HRT=${info};TLEVEL=${trustLevel};LABEL=bpm`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (alarm === 'STP') {\\r\\n messageForReceiver = (`CareWatch-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};STP=${info};LABEL=steps`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else {\\r\\n messageForReceiver = (`CareWatch-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }*/\\r\\n // rest the alarm value\\r\\n alarm = '';\\r\\n }\\r\\n if (command == '02') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n switch (key) {\\r\\n //Module Number\\r\\n case '01':\\r\\n var date = value.substring(6, 8) + value.substring(4, 6) + '-' + value.substring(2, 4) + '-' + value.substring(0, 2);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Firmware version\\r\\n case '02':\\r\\n //no ACK need\\r\\n var fwVersion = 'v' + hexToDecimal(value.substring(6, 8)) + '.' + hexToDecimal(value.substring(4, 6)) + '.' + hexToDecimal(value.substring(2, 4)) + '.' + hexToDecimal(value.substring(0, 2));\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '1A':\\r\\n //no ACK need\\r\\n var fwVersion = hex_to_ascii(value);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n break;\\r\\n //IMEI\\r\\n case '03':\\r\\n var imei = hexToDecimal(value);\\r\\n // harcode to avoid conflicts with Rio protocol\\r\\n //if ((imei != '860470063029395') && (imei != '860470063035947')) {\\r\\n // AddValue(codeValues, \\\"error\\\", \\\"device imei is not in this protocol\\\");\\r\\n // AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n //AddValue(codeValues, \\\"IMEI\\\", imei);\\r\\n // return\\r\\n //}\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //ICCID\\r\\n case '04':\\r\\n var iccid = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //BLE-MAC\\r\\n case '05':\\r\\n var bleMac = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Run Time\\r\\n case '07':\\r\\n var runTime = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '10': // Ringer Volume\\r\\n var volume = hexToDecimal(value);\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-VOL;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"Volume\\\", volume);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.Volume, volume);\\r\\n configsToAck.push(configIds.ReadSystemSettings.Volume);\\r\\n break;\\r\\n case '0A': //Performance mode\\r\\n //var workMode = hexToDecimal(value);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n //AddValue(codeValues, \\\"WorkMode\\\", workMode);\\r\\n //AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n //configsToAck.push(configIds.ReadPerformance`Settings.Mode);\\r\\n //var workMode = hex_to_ascii(value.substring(0, value.length));\\r\\n //var workMode = hexToDecimal(value);\\r\\n //var workMode = hex_to_ascii(value.substring(0, value.length));\\r\\n var workMode = 1234; // + value + \\\"end\\\";\\r\\n //var workModeVal = 9;\\r\\n //workMode = 'test10';\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-MODE;${imei};`);\\r\\n AddValue(codeValues, \\\"Mode\\\", workMode);\\r\\n AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n //AddValue(codeValues, \\\"performanceMode\\\", performanceMode);\\r\\n //AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, performanceMode);\\r\\n // configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n break;\\r\\n case '1B':\\r\\n //Decimal o ascii?\\r\\n var gsmModule = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '1F':\\r\\n //System Language\\r\\n var systemLanguage = hex_to_ascii(value.substring(0, value.length));\\r\\n imei = serverParams.Imei;\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n messageForReceiver = (`Roam;ACK-LANG;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"SystemLanguage\\\", systemLanguage);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.SystemLanguage, systemLanguage);\\r\\n configsToAck.push(configIds.ReadSystemSettings.SystemLanguage);\\r\\n break;\\r\\n case '33': // phone option\\r\\n // [Value]:83 0B 00 00 {\\\"phoneOption\\\":{\\\"flag_value\\\":2947,\\\"s3\\\":1,\\\"s4\\\":0,\\\"s5\\\":1,\\\"s6\\\":0,\\\"callIncoming\\\":0,\\\"rings\\\":3,\\\"s7\\\":0,\\\"toneID\\\":0,\\\"s1\\\":1,\\\"s2\\\":1}}\\r\\n var statusPhone = hex2bin(value.substring(0, 2)); // To find autoanswer setup\\r\\n if (statusPhone.substring(0, 1) == '1') { // 1 Enable\\r\\n var auto = 'true';\\r\\n } else var auto = 'false';\\r\\n statusPhone = hex2bin(value.substring(2, 4)); // To find allow list setup\\r\\n if (statusPhone.substring(7, 8) == '1') { // 1 Enable\\r\\n allow = 'true';\\r\\n } else var allow = 'false';\\r\\n //statusPhone = hex2bin(value.substring(0, 2)) + hex2bin(value.substring(2, 4));\\r\\n //AddValue(configsToUpdate, configIds.ReadSystemSettings.Statusphone, statusPhone);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.AllowList, allow);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.AutoAnswer, auto);\\r\\n //configsToAck.push(configIds.ReadSystemSettings.Statusphone);\\r\\n configsToAck.push(configIds.ReadSystemSettings.AllowList);\\r\\n configsToAck.push(configIds.ReadSystemSettings.AutoAnswer);\\r\\n break;\\r\\n case '30': //ContactList\\r\\n var contactNumber = value.substring(1, 2);\\r\\n var telLength = hexToDecimal(value.substring(2, 4));\\r\\n var tel = '';\\r\\n switch (contactNumber) {\\r\\n // Emergency Number\\r\\n case '0':\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n AddValue(codeValues, \\\"EmergencyNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.EmergencyNumber, tel);\\r\\n configsToAck.push(configIds.ReadAlertSettings.EmergencyNumber);\\r\\n break;\\r\\n // Speed Dial Number\\r\\n case '1':\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n AddValue(codeValues, \\\"SpeedDialNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadSpeedDialSettings.SpeedDialNumber, tel);\\r\\n configsToAck.push(configIds.ReadSpeedDialSettings.SpeedDialNumber);\\r\\n break;\\r\\n // Gateway Number\\r\\n case '9': //00447781482635,Esendex UK 0034627177148,Esendex Spain 00447507288240,Esendex UK Acceptance\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n if (tel.includes('447781482635') || tel.includes('00447781482635')) {\\r\\n tel = 'Esendex UK'\\r\\n } else if (tel.includes('34627177148') || tel.includes('0034627177148')) {\\r\\n tel = 'Esendex Spain'\\r\\n } else if (tel.includes('447507288240') || tel.includes('00447507288240')) {\\r\\n tel = 'Esendex UK Acceptance'\\r\\n } else {\\r\\n tel = 'Default'\\r\\n }\\r\\n AddValue(codeValues, \\\"SMSGateway\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.SMSGateway, tel);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.SMSGateway);\\r\\n break;\\r\\n default:\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n if (tel.length < 6) {\\r\\n break;\\r\\n }\\r\\n contacts += 'A' + (contactNumber - 1) + ': ' + tel + ', ';\\r\\n AddValue(codeValues, \\\"ApprovedContacts\\\", contacts);\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.ApprovedContacts, contacts);\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.ApprovedContacts);\\r\\n break;\\r\\n }\\r\\n break;\\r\\n case '40': // APN\\r\\n //no ACK need\\r\\n var apn = hex_to_ascii(value.substring(0, value.length));\\r\\n imei = serverParams.Imei;\\r\\n break;\\r\\n case '41': // APN Username\\r\\n //no ACK need\\r\\n //apn = apn + ',' + hex_to_ascii(value.substring(0, value.length));\\r\\n break;\\r\\n case '42': // APN Password\\r\\n //no ACK need\\r\\n //apn = apn + ',' + hex_to_ascii(value.substring(0, value.length));\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"apn\\\", apn);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.APN, apn);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.APN);\\r\\n break;\\r\\n case '43': //Server Details\\r\\n //52.232.85.255,5678 production 52.174.17.77,5678 acceptance\\r\\n var serverDetails = hex_to_ascii(value.substring(6, value.length)) + ':' + hexToDecimal(value.substring(4, 6) + value.substring(2, 4));\\r\\n if (serverDetails.includes('52.232.85.255:5678')) {\\r\\n serverDetails = 'Production'\\r\\n } else if (serverDetails.includes('52.174.17.77:5678')) {\\r\\n serverDetails = 'Acceptance'\\r\\n } else if (serverDetails.includes('52.174.17.77:5778')) {\\r\\n serverDetails = 'Protocol-Import'\\r\\n } else {\\r\\n serverDetails = 'Default'\\r\\n }\\r\\n AddValue(codeValues, \\\"server\\\", serverDetails);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.Server, serverDetails);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.Server);\\r\\n break;\\r\\n case '44': //time interval - work mode intervals\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-MODE;${imei};`);\\r\\n var workMode = 0;\\r\\n var cycle = hexToDecimal(value.substring(10, 12) + value.substring(8, 10));\\r\\n var lazyCycle = hexToDecimal(value.substring(18, 20) + value.substring(16, 18));\\r\\n if (cycle == 240 && lazyCycle == 3600) { // 4 mins and 1 hour\\r\\n //workMode = 'High Frequency';\\r\\n workMode = 3;\\r\\n }\\r\\n if (cycle == 600 && lazyCycle == 3600) { // 10 mins and 1 hour\\r\\n //workMode = 'Balanced';\\r\\n workMode = 2;\\r\\n }\\r\\n if (cycle == 28800 && lazyCycle == 43200) { // 6 hour and 12 hours\\r\\n //workMode = 'Power Saving';\\r\\n workMode = 1;\\r\\n }\\r\\n if (cycle == 86400 && lazyCycle == 86400) { // 24 hours and 24 hours\\r\\n //workMode = 'No Reporting';\\r\\n workMode = 0;\\r\\n }\\r\\n AddValue(codeValues, \\\"Mode\\\", workMode);\\r\\n AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case '47': // Custom Id\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-CUSTID;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"customeid\\\", value);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CustomId, value);\\r\\n configsToAck.push(configIds.ReadState.CustomId);\\r\\n break;\\r\\n case '53': // Non motion alert\\r\\n //2B020080\\r\\n var status = hex2bin(value.substring(6, 8));\\r\\n var alertSetting = '';\\r\\n var enableDisable = '';\\r\\n if (status.substring(0, 1) == '1') {\\r\\n alertSetting = 'Enable, '\\r\\n enableDisable = '1';\\r\\n } else {\\r\\n alertSetting = 'Disable, '\\r\\n };\\r\\n //if (status.substring(5, 6) == '1') {\\r\\n // alertSetting += 'Dial, '\\r\\n //} else {\\r\\n // alertSetting += 'No Dial, '\\r\\n //};\\r\\n var time = hexToDecimal(value.substring(2, 4) + value.substring(0, 2));\\r\\n alertSetting += time;\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-NOMOTION;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"nomotion\\\", alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.NoMotionAlert, value + '-' + alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadNonMovementSettings.EnableDisableNonMovementSettings, enableDisable);\\r\\n AddValue(configsToUpdate, configIds.ReadNonMovementSettings.Time, time);\\r\\n configsToAck.push(configIds.ReadAlertSettings.NoMotionAlert);\\r\\n configsToAck.push(configIds.ReadNonMovementSettings.EnableDisableNonMovementSettings);\\r\\n configsToAck.push(configIds.ReadNonMovementSettings.Time);\\r\\n break;\\r\\n case '56': //Fall down sensibility\\r\\n // '00001100'\\r\\n var fallStatus = hex2bin(value.substring(0, 2));\\r\\n var enalbleDisable = '';\\r\\n //if (fallStatus.substring(4, 5) == '1') {\\r\\n if (fallStatus.substring(0, 1) == '1') {\\r\\n var sensibility = 'Enable, '\\r\\n enalbleDisable = '1'\\r\\n } else {\\r\\n var sensibility = 'Disable, '\\r\\n };\\r\\n if (fallStatus.substring(5, 6) == '1') {\\r\\n sensibility += 'Dial, '\\r\\n } else {\\r\\n sensibility += 'No Dial, '\\r\\n };\\r\\n var imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-FALLALERT;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n var sesibityOptionValue = hexToDecimal(value.substring(1, 2));\\r\\n sensibility += sesibityOptionValue;\\r\\n AddValue(codeValues, \\\"sensibility\\\", sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.FallSettings, sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadFallSettings.EnableDisableFallSettings, enalbleDisable);\\r\\n AddValue(configsToUpdate, configIds.ReadFallSettings.Sensitivity, sesibityOptionValue);\\r\\n configsToAck.push(configIds.ReadAlertSettings.FallSettings);\\r\\n configsToAck.push(configIds.ReadFallSettings.EnableDisableFallSettings);\\r\\n configsToAck.push(configIds.ReadFallSettings.Sensitivity);\\r\\n break;\\r\\n case '73': //BeaconList\\r\\n var beaconNumber = hexToDecimal(value.substring(1, 2));\\r\\n var beaconStatus = hex2bin(value.substring(0, 1));\\r\\n //if (beaconStatus.substring(4, 5) == '1') {\\r\\n // homeBeacon += ' Enable, '\\r\\n //} else {\\r\\n // homeBeacon += ' Disable, '\\r\\n //};\\r\\n beaconStatus = hex_to_ascii(value.substring(30, value.length));\\r\\n //beaconStatus = changeEndianness(value.substring(30, value.length));\\r\\n homeBeacon += 'B' + (beaconNumber + 1) + ': ' + beaconStatus + ', ';\\r\\n AddValue(codeValues, \\\"homeBeacon\\\", homeBeacon);\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.HomeBeacon, homeBeacon);\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.HomeBeacon);\\r\\n break;\\r\\n case '4A': //Wifi Network List\\r\\n var wifiSSIDLenght = hexToDecimal(value.substring(2, 4));\\r\\n var wifiPasswordLenght = hexToDecimal(value.substring(4, 6));\\r\\n var wifiIndex = hexToDecimal(value.substring(1, 2));\\r\\n var wifiStatus = hexToDecimal(value.substring(0, 1));\\r\\n /*var enalbleDisable = wifiSSID = wifiPassword = homeWifi = '';\\r\\n /var homeWifi = '';\\r\\n if (wifiIndex == '0') { // Only first Wifi of the list\\r\\n if (wifiStatus == '8') {\\r\\n homeWifi += ' Enable, '\\r\\n enalbleDisable = '1';\\r\\n } else {\\r\\n homeWifi += ' Disable, '\\r\\n //enalbleDisable = '0';\\r\\n };*/\\r\\n if (wifiStatus == '8') {\\r\\n var wifiSSID = hex_to_ascii(value.substring(6, 6 + 2 * (wifiSSIDLenght)));\\r\\n var wifiPassword = hex_to_ascii(value.substring(6 + 2 * (wifiSSIDLenght), 6 + 2 * (wifiSSIDLenght + wifiPasswordLenght)));\\r\\n var imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-WIFI;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n homeWiFi += 'W' + (wifiIndex + 1) + ': ' + wifiSSID + ', ' + wifiPassword + ';';\\r\\n AddValue(codeValues, \\\"wifi\\\", homeWiFi);\\r\\n AddValue(configsToUpdate, configIds.ReadWiFiList.WiFiList, homeWiFi);\\r\\n configsToAck.push(configIds.ReadWiFiList.WiFiList);\\r\\n }\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.EnableDisableReadWiFiSettings, enalbleDisable);\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.SSID, wifiSSID);\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.Password, wifiPassword);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.EnableDisableReadWiFiSettings);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.SSID);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.Password);\\r\\n break;\\r\\n case '21': // Speed Dial Settings\\r\\n // [Value]:53 84 {\\\"call1Button\\\":{\\\"mode\\\":0,\\\"feedBack\\\":3,\\\"task\\\":2,\\\"time\\\":20,\\\"status\\\":1}}\\r\\n var status = hex2bin(value.substring(2, 3));\\r\\n var alertSetting = '';\\r\\n var enableDisable = '';\\r\\n if (status.substring(0, 1) == '1') {\\r\\n alertSetting = 'Enable, '\\r\\n enableDisable = '1';\\r\\n } else {\\r\\n alertSetting = 'Disable, '\\r\\n enableDisable = '0';\\r\\n };\\r\\n //var time = hexToDecimal(value.substring(2, 4) + value.substring(0, 2));\\r\\n //alertSetting += time;\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-SPEED;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"speed\\\", alertSetting);\\r\\n //AddValue(configsToUpdate, configIds.ReadAlertSettings.NoMotionAlert, value + '-' + alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadSpeedDialSettings.EnableDisableReadSpeedDialSettings, enableDisable);\\r\\n //AddValue(configsToUpdate, configIds.ReadNonMovementSettings.Time, time);\\r\\n //configsToAck.push(configIds.ReadAlertSettings.NoMotionAlert);\\r\\n configsToAck.push(configIds.ReadSpeedDialSettings.EnableDisableReadSpeedDialSettings);\\r\\n //configsToAck.push(configIds.ReadNonMovementSettings.Time);\\r\\n break;\\r\\n }\\r\\n }\\r\\n }\\r\\n if (command == '03') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n var keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n debug('key = ' + key);\\r\\n debug('value = ' + value);\\r\\n switch (key) {\\r\\n case '01': // Device ID\\r\\n var imei = hex_to_ascii(value);\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n break;\\r\\n //CustomID is not provided so far with command type 03.. commented in the mean time\\r\\n /* case '03':\\r\\n //update customID to check if belongs to this type of device\\r\\n customID = value;\\r\\n if (value != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n } else {\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n general += 'customID:' + value + ',';\\r\\n break;\\r\\n }\\r\\n break; */\\r\\n case '10': // Heartbeat\\r\\n var heartbeat = hex_to_ascii(value);\\r\\n event_time = moment.utc().unix();\\r\\n if (index < total_length + 16) {\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n key = message.substring(index, index = index + 2);\\r\\n if (key == '24') {\\r\\n // debug('key: ' + key) //comment those out\\r\\n value = message.substring(index, index = index + keyLength - 2);\\r\\n // debug(value)\\r\\n var timestampHex = value.substring(0, 8);\\r\\n // debug('timestampt hex: ' + timestampHex)\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n event_time = timestamp;\\r\\n // debug(event_time)\\r\\n var statusHex = changeEndianness(value.substring(8, 16));\\r\\n // debug(statusHex)\\r\\n var statusInt = hexToDecimal(statusHex);\\r\\n var statusDevice = '';\\r\\n if ((statusInt & 1) == 1) {\\r\\n statusDevice += 'GPS,';\\r\\n }\\r\\n if ((statusInt & 2) == 2) {\\r\\n statusDevice += 'WIFISource,';\\r\\n }\\r\\n if ((statusInt & 4) == 4) {\\r\\n statusDevice += 'CellTower,';\\r\\n }\\r\\n if ((statusInt & 8) == 8) {\\r\\n statusDevice += 'BLELocation,';\\r\\n }\\r\\n if ((statusInt & 16) == 16) {\\r\\n statusDevice += 'Charging,';\\r\\n }\\r\\n if ((statusInt & 32) == 32) {\\r\\n statusDevice += 'FUllyCharged,';\\r\\n }\\r\\n if ((statusInt & 64) == 64) {\\r\\n statusDevice += 'Reboot,';\\r\\n }\\r\\n if ((statusInt & 128) == 128) {\\r\\n statusDevice += 'HistoricalData,';\\r\\n }\\r\\n if ((statusInt & 256) == 256) {\\r\\n statusDevice += 'AGPSDataValid,';\\r\\n }\\r\\n if ((statusInt & 512) == 512) {\\r\\n statusDevice += 'Motion,';\\r\\n }\\r\\n if ((statusInt & 1024) == 1024) {\\r\\n statusDevice += 'SmartLocating,';\\r\\n }\\r\\n if ((statusInt & 2048) == 2048) {\\r\\n statusDevice += 'BeaconLocation,';\\r\\n }\\r\\n if ((statusInt & 4096) == 4096) {\\r\\n statusDevice += 'BLEConnected,';\\r\\n }\\r\\n statusDevice = statusDevice.slice(0, -1);\\r\\n // debug('statusHex:' + statusHex)\\r\\n statusHex = (statusHex);\\r\\n statusHex = hex2bin(statusHex);\\r\\n statusHex = ('00000000000000000000000000000000' + statusHex).slice(-32);\\r\\n // debug(statusHex)\\r\\n battery_percentage = parseInt(statusHex.substring(0, 8), 2);\\r\\n // debug(battery_percentage)\\r\\n // debug(battery_percentage)\\r\\n // debug(statusHex.substring(8, 13))\\r\\n cellNetworkSignal = parseInt(statusHex.substring(8, 13), 2);\\r\\n // debug(cellNetworkSignal)\\r\\n workMode = parseInt(statusHex.substring(13, 16), 2);\\r\\n // debug(workMode)\\r\\n general += 'statusDevice:' + statusDevice + ';';\\r\\n if (battery_percentage) {\\r\\n general += 'battery:' + battery_percentage + ';';\\r\\n }\\r\\n if (cellNetworkSignal) {\\r\\n general += 'cellNetworkSignal:' + cellNetworkSignal + ';';\\r\\n }\\r\\n if (workMode) {\\r\\n general += 'workMode:' + workMode + ';';\\r\\n }\\r\\n }\\r\\n }\\r\\n // revisar\\r\\n var gen_location = '0';\\r\\n //CustomID is not provided so far with command type 03.. commented in the mean time\\r\\n /*if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }*/\\r\\n //messageForReceiver = (`Eview-HTB;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};SIGNAL=${cellNetworkSignal};WM=${workMode};SL=${systemLanguage};GENERAL=${general}`);\\r\\n messageForReceiver = (`Eview-HTB;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '12': // Device requesting timestamp\\r\\n timestamp = moment.utc().unix();\\r\\n timestampHex = decimalToHex(timestamp);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n keyLengthHex = ('00' + decimalToHex(1 + (timestampHex.length) / 2)).slice(-2);\\r\\n // respond to device with the timestamp of the server\\r\\n messageBody = messageBody + keyLengthHex + key + timestampHex;\\r\\n messageForReceiver = `Eview;${imei};${sequenceID};Get timestamp`;\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case '21': //Cell Towers\\r\\n var mccHex = value.substring(0, 2);\\r\\n var mncHex = value.substring(2, 3);\\r\\n var mcc = hexToDecimal(mccHex);\\r\\n var mnc = hexToDecimal(mncHex);\\r\\n var numTowers = (keyLength - 4) / 5;\\r\\n var cellTowers = hex_to_ascii(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '22': // WIFI locations \\r\\n location_type = 'WIFI';\\r\\n var numWifi = Math.round((hexToDecimal(keyLengthHex) - 1) / 7);\\r\\n //location_time = timestamp;\\r\\n var wifiTowers = value;\\r\\n general += 'wifiTowers:';\\r\\n var indexWifi = 0;\\r\\n var bssid_array = [];\\r\\n gen_location = '';\\r\\n for (let i = 0; i < numWifi; i++) {\\r\\n gen_location += wifiTowers.substring(indexWifi + 2, indexWifi + 14) + ',';\\r\\n indexWifi += 14;\\r\\n }\\r\\n gen_location = gen_location.slice(0, -1);\\r\\n general += gen_location;\\r\\n //CustomID is not provided so far with command type 03\\r\\n /*if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }*/\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n alarmCode = '';\\r\\n break;\\r\\n }\\r\\n }\\r\\n }\\r\\n if (command == '04') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n if (command == '7E') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n if (command == '7F') {\\r\\n // while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n messageForReceiver = (`Roam-ACK;${imei};${message}`); // ${sequenceID}; add ${sequenceID}; 19-07\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n AddValue(configsToUpdate, configIds.ConfigureDevice.LastConfigured, moment().format('YYYY/MM/DD, HH:mm:ss'));\\r\\n configsToAck.push(configIds.ConfigureDevice.LastConfigured);\\r\\n //}\\r\\n }\\r\\n if (command == 'FE') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n // prepare the ACK msg and change config if it is needed\\r\\n lengthAck = messageBody.length / 2;\\r\\n lengthAck = ('0000' + decimalToHex(lengthAck)).slice(-4);\\r\\n lengthAck = lengthAck.toString().substring(2, 4) + lengthAck.toString().substring(0, 2);\\r\\n ////////////checksum CRC 16\\r\\n var checksumAck = byteStringToByteArray(messageBody);\\r\\n checksumAck = crc16byte(checksumAck);\\r\\n checksumAck = decimalToHex(checksumAck);\\r\\n checksumAck = ('0000' + checksumAck).slice(-4);\\r\\n checksumAck = checksumAck.toString().substring(2, 4) + checksumAck.toString().substring(0, 2);\\r\\n prefix = prefix + lengthAck + checksumAck + sequenceID;\\r\\n // To send ACK to the device previous to internal msg with parts\\r\\n if (needsAck == true) {\\r\\n if (messageBody.length <= 2) {\\r\\n ack = 'AB00030008C7' + sequenceID + '7F0100'; // change AB10030008C7 to AB00030008C7\\r\\n } else {\\r\\n ack = prefix + messageBody;\\r\\n }\\r\\n AddValue(codeValues, 'imei', imei);\\r\\n AddValue(codeValues, 'ack', ack);\\r\\n }\\r\\n } else { // checksum was invalid - print out useful debug info and bet quess at imei \\r\\n AddValue(codeValues, \\\"error\\\", \\\"checksum failed for message\\\");\\r\\n AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n i = rawFromBytes.search('3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]');\\r\\n if (i >= 0) {\\r\\n imei = hex_to_ascii(rawFromBytes.substring(i, i + 30));\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n function ascii_to_hexa(str) { // ascii to hex \\r\\n var arr1 = [];\\r\\n for (var n = 0, l = str.length; n < l; n++) {\\r\\n var hex = Number(str.charCodeAt(n)).toString(16);\\r\\n arr1.push(hex);\\r\\n }\\r\\n return arr1.join('');\\r\\n }\\r\\n\\r\\n function byteStringToByteArray(str) { //\\r\\n var splitStr = [];\\r\\n var j = 0;\\r\\n for (let i = 0; i < str.length; i += 2) {\\r\\n splitStr[j] = str.substring(i, i + 2);\\r\\n j++;\\r\\n }\\r\\n var bytes = [];\\r\\n var bytePos = 0;\\r\\n for (let i = 0; i < splitStr.length; i++) {\\r\\n var byteStr = splitStr[i];\\r\\n var b = parseInt(byteStr, 16);\\r\\n if (b < 256) {\\r\\n bytes[bytePos] = b;\\r\\n bytePos++;\\r\\n }\\r\\n }\\r\\n return bytes;\\r\\n }\\r\\n\\r\\n function changeEndianness(string) { //\\r\\n const result = [];\\r\\n let len = string.length - 2;\\r\\n while (len >= 0) {\\r\\n result.push(string.substr(len, 2));\\r\\n len -= 2;\\r\\n }\\r\\n return result.join('');\\r\\n }\\r\\n\\r\\n function hex2bin(hex) { //\\r\\n return (parseInt(hex, 16).toString(2)).padStart(8, '0');\\r\\n }\\r\\n\\r\\n function calculateCheckSum(payloadData) { // check if payload checksum is valid\\r\\n var checksum = byteStringToByteArray(payloadData);\\r\\n checksum = crc16byte(checksum);\\r\\n checksum = decimalToHex(checksum);\\r\\n checksum = ('0000' + checksum).slice(-4).toUpperCase();\\r\\n return changeEndianness(checksum);\\r\\n }\\r\\n\\r\\n function crc16byte(s) { //\\r\\n var crc = 0x0000;\\r\\n var j, i;\\r\\n for (i = 0; i < s.length; i++) {\\r\\n c = s[i];\\r\\n if (c > 255) {\\r\\n throw new RangeError();\\r\\n }\\r\\n j = (c ^ (crc >> 8)) & 0xFF;\\r\\n crc = crcTable[j] ^ (crc << 8);\\r\\n }\\r\\n return ((crc ^ 0) & 0xFFFF);\\r\\n }\\r\\n\\r\\n function debug(str) { // write debug info to console log, if localTesting\\r\\n if (localTesting === \\\"True\\\") {\\r\\n console.log(str);\\r\\n }\\r\\n }\\r\\n\\r\\n function decimalToHex(x) { // decimal to hex\\r\\n x = x.toString(16).toUpperCase();\\r\\n return x;\\r\\n }\\r\\n\\r\\n function hex_to_ascii(str1) { // Hex to Ascii \\r\\n var hex = str1.toString();\\r\\n var str = '';\\r\\n for (var n = 0; n < hex.length; n += 2) {\\r\\n str += String.fromCharCode(parseInt(hex.substr(n, 2), 16));\\r\\n }\\r\\n return str;\\r\\n }\\r\\n\\r\\n function hexToDecimalSigned(hex) { // hex to decimal\\r\\n if (hex.length % 2 != 0) {\\r\\n hex = \\\"0\\\" + hex;\\r\\n }\\r\\n var num = parseInt(hex, 16);\\r\\n var maxVal = Math.pow(2, hex.length / 2 * 8);\\r\\n if (num > maxVal / 2 - 1) {\\r\\n num = num - maxVal;\\r\\n }\\r\\n return num;\\r\\n }\\r\\n\\r\\n function hexToDecimal(x) {\\r\\n x = parseInt(x, 16);\\r\\n return x;\\r\\n }\\r\\n\\r\\n function sendMessageToLocalhostNoWait(str) { // sends message to system, closing connection after\\r\\n var server;\\r\\n if (localTesting) {\\r\\n console.log('local testing - sending to acceptance server the message ... ');\\r\\n console.log(str);\\r\\n server = '52.174.17.77';\\r\\n } else {\\r\\n server = '127.0.0.1';\\r\\n }\\r\\n var c = net.createConnection(5678, server);\\r\\n c.on('error', function(error) {\\r\\n c = net.createConnection(5678, server);\\r\\n });\\r\\n c.write(`${str}`);\\r\\n c.end();\\r\\n }\\r\\n // modify to return the object that contains your data\\r\\n return dataToReceiver;\\r\\n}\\r\\n// params is not defined locally -> export as module\\r\\nif (typeof(params) === 'undefined') {\\r\\n module.exports = {\\r\\n execute_ops\\r\\n }\\r\\n} else { // on server use local defined vars\\r\\n let return_values = execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, false)\\r\\n // define global returns\\r\\n msg = return_values;\\r\\n}\",\"Type\":0,\"ProtocolActionObjects\":[]}","Timestamp":1734462462},{"Type":1,"NewValue":"{\"Id\":313,\"Name\":\"Access TEC Roam\",\"Operation\":\"function execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, localTesting) {\\r\\n ///////////////////////////////////////////////////////////////////////////////\\r\\n //\\r\\n // Roam protocol - please see variables and typical values in order below\\r\\n // TECRoam-CYC;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;SIGNAL=<<signal_strength>>;WM=<<work_mode>>;GENERAL=<<general>>\\r\\n // TECRoam-CYC;861629050193550;STATUS=WIFISource,CellTower;TIME=1673950279;BATP=84;LGPS=undefined;LWIF=-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369;LLBS=214,1,13,768,38529798;LBEACON=undefined;BLE=undefined;GENERAL=statusDevice:WIFISource,CellTower,battery:84,cellNetworkSignal:14,workMode:6,wifiTowers:-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369,214,1,13,768,38529798,;\\\",\\r\\n //\\r\\n // Author: Joe Bloggs\\r\\n // Created: 01/01/0000\\r\\n // Last modified: 12/04/2024\\r\\n //\\r\\n ///////////////////////////////////////////////////////////////////////////////\\r\\n if (typeof localTesting === \\\"undefined\\\") {\\r\\n var localTesting = \\\"False\\\";\\r\\n }\\r\\n const crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,\\r\\n 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,\\r\\n 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\\r\\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,\\r\\n 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,\\r\\n 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\\r\\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,\\r\\n 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,\\r\\n 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\\r\\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,\\r\\n 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,\\r\\n 0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\\r\\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,\\r\\n 0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,\\r\\n 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\\r\\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,\\r\\n 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,\\r\\n 0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\\r\\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,\\r\\n 0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,\\r\\n 0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\\r\\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,\\r\\n 0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,\\r\\n 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\\r\\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,\\r\\n 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,\\r\\n 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\\r\\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,\\r\\n 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,\\r\\n 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\\r\\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,\\r\\n 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\\r\\n ];\\r\\n var codeValues = [];\\r\\n AddValue(codeValues, 'protocol_template', 'Roam');\\r\\n AddValue(codeValues, 'product', serverParams.ProductName);\\r\\n var dataToReceiver = [];\\r\\n var configsToAck = [];\\r\\n var configsToUpdate = [];\\r\\n var configsToSend = [];\\r\\n if (globalTemplate == \\\"True\\\") {\\r\\n if (raw.startsWith('esendex')) {\\r\\n AddValue(codeValues, 'rawMsg', raw);\\r\\n //general SMS message\\r\\n messageForReceiver = (`Roam-SMS;${serverParams.Imei};${raw}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n return;\\r\\n }\\r\\n AddValue(codeValues, 'raw', raw);\\r\\n AddValue(codeValues, 'rawMsg', rawFromBytes);\\r\\n var event_time, location_time, location_accuracy, speed, fix_state, latitude, longitude;\\r\\n var homeBeacon = '';\\r\\n var homeWiFi = '';\\r\\n var contacts = '';\\r\\n var gps_data = '';\\r\\n var wifi_data = '';\\r\\n var status_data = '';\\r\\n var lbs_data = '';\\r\\n var beacon_data = '';\\r\\n var ble_data = '';\\r\\n var smart_data = '';\\r\\n //parse header & properties\\r\\n var message = rawFromBytes;\\r\\n var properties = message.substring(2, 4);\\r\\n var lengthLittleEndian = message.substring(4, 8);\\r\\n var total_length = lengthLittleEndian.substring(2, 4) + lengthLittleEndian.substring(0, 2);\\r\\n total_length = 2 * hexToDecimal(total_length.substring(0, 4));\\r\\n var messageForReceiver;\\r\\n var sequenceID = message.substring(12, 16);\\r\\n var command = message.substring(16, 18);\\r\\n var index = 18;\\r\\n var prefix = 'AB' + '00';\\r\\n var lengthAck = 0;\\r\\n var ack = '';\\r\\n var needsAck = false;\\r\\n var hasConfigs = false;\\r\\n var general = '';\\r\\n var timestamp = '';\\r\\n var info = '';\\r\\n var customID = '';\\r\\n latitude = 0;\\r\\n longitude = 0;\\r\\n location_accuracy = 0; // GPS location adds the accuracy\\r\\n location_time = event_time = '';\\r\\n speed = 0.0;\\r\\n var location_type = '0';\\r\\n //var gen_location = '0'; \\r\\n var i; // general loop counter\\r\\n var battery_percentage = '';\\r\\n var cellNetworkSignal = '';\\r\\n var workMode = '';\\r\\n //mask bitwise (properties should be '10')\\r\\n if ((parseInt(properties) & 8) == 8) { // 22/7 change ((parseInt(properties) & 16) == 16)\\r\\n needsAck = true;\\r\\n }\\r\\n // Loop to decode multi-ACK msg\\r\\n if (message.includes('AB00030008C7')) {\\r\\n const multiack = message.split('AB00');\\r\\n for (let i = 1; i < multiack.length; i++) {\\r\\n message = 'AB00' + multiack[i];\\r\\n debug(message);\\r\\n decoder(message);\\r\\n } // FOR multiACK\\r\\n } else decoder(message); // IF multiACK\\r\\n } else if (oystaTemplate == 'True') { // Oysta Template \\r\\n AddValue(codeValues, 'rawMsg', raw);\\r\\n if ((params.gps_data) && (params.gps_data !== '')) { // decode gps data if exists\\r\\n var gen_location = params.gps_data.split(',');\\r\\n var latitude = gen_location[0];\\r\\n var longitude = gen_location[1];\\r\\n var location_accuracy = gen_location[2];\\r\\n var speed = gen_location[3];\\r\\n var direction = gen_location[4];\\r\\n var altitude = gen_location[5];\\r\\n var satellites = gen_location[6];\\r\\n var mileage = gen_location[7];\\r\\n if (location_accuracy !== 0) {\\r\\n var fix_state = 1;\\r\\n } else {\\r\\n var fix_state = 0;\\r\\n }\\r\\n AddValue(codeValues, 'latitude', latitude);\\r\\n AddValue(codeValues, 'longitude', longitude);\\r\\n AddValue(codeValues, 'speed', speed);\\r\\n AddValue(codeValues, 'direction', direction);\\r\\n AddValue(codeValues, 'altitude', altitude);\\r\\n AddValue(codeValues, 'location_accuracy', location_accuracy);\\r\\n AddValue(codeValues, 'mileage', mileage);\\r\\n AddValue(codeValues, 'satellites', satellites);\\r\\n AddValue(codeValues, 'fix_state', fix_state);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.lbs_data) && (params.lbs_data !== '')) { // decode lbs data if exists\\r\\n var variables = []; //Define array\\r\\n variables = params.lbs_data.split(',');\\r\\n var index = 2;\\r\\n for (i = 0; i < ((variables.length - 2) / 3); i++) { //loop for number of LBS sets on incoming data.\\r\\n if (variables[i] !== '0') { //Check if LBS data is present (device sends 0 if data not present)/actually exists.\\r\\n AddValue(codeValues, 'mcc', variables[0]);\\r\\n AddValue(codeValues, 'mnc', variables[1]);\\r\\n AddValue(codeValues, 'lac', variables[index]);\\r\\n AddValue(codeValues, 'signal_lbs', variables[index + 1]);\\r\\n AddValue(codeValues, 'cellid', variables[index + 2]);\\r\\n }\\r\\n index += 3;\\r\\n }\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.wifi_data) && (params.wifi_data !== '')) { // decode wifi data if exists\\r\\n var bssid_array = params.wifi_data.split(',');\\r\\n var index = 0;\\r\\n for (let i = 0; i < (bssid_array.length / 2); i++) {\\r\\n if (bssid_array[index + 1] != '000000000000') { //Check if MAC address is not 000000000000 - seems to be the default MAC of the device itself\\r\\n AddValue(codeValues, 'bssid', bssid_array[index + 1]);\\r\\n AddValue(codeValues, 'signal_wifi', bssid_array[index]);\\r\\n }\\r\\n index += 2;\\r\\n }\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n // when Beacon is detected and it isn't flic BLE detected\\r\\n if (((params.beacon_data) && (params.beacon_data !== '')) && !((params.ble_data) && (params.ble_data !== ''))) {\\r\\n var gen_location = params.beacon_data.split(',');\\r\\n var latitude = gen_location[0];\\r\\n var longitude = gen_location[1];\\r\\n var mac = gen_location[2];\\r\\n var label = gen_location[3];\\r\\n AddValue(codeValues, 'latitude', latitude);\\r\\n AddValue(codeValues, 'longitude', longitude);\\r\\n //AddValue(codeValues,'location_accuracy', '3'); // para mostrar que si hay accuracy muestra como source GPS\\r\\n // AddValue(codeValues,'beacon_mac', mac);\\r\\n //AddValue(codeValues,'beacon_major', 0);\\r\\n //AddValue(codeValues,'beacon_minor', 0);\\r\\n //<<beacon_mac>>,<<beacon_major>>,<<beacon_minor>> \\r\\n if (mac) {\\r\\n AddValue(codeValues, 'beacon_mac', mac);\\r\\n var simpleQuery = [{\\r\\n 'code': 'Mac',\\r\\n 'value': mac,\\r\\n }];\\r\\n var simpleQueryLabel = {\\r\\n 'table': 'beacons',\\r\\n 'select': 'Name',\\r\\n 'query': simpleQuery\\r\\n };\\r\\n var labels = [];\\r\\n labels.push(JSON.stringify(simpleQueryLabel));\\r\\n AddValue(codeValues, 'oysta_labels', JSON.stringify(labels));\\r\\n }\\r\\n if (params.beacon_major) {\\r\\n AddValue(codeValues, 'beacon_major', params.beacon_major);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_major', 0);\\r\\n }\\r\\n if (params.beacon_minor) {\\r\\n AddValue(codeValues, 'beacon_minor', params.beacon_minor);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_minor', 0);\\r\\n }\\r\\n //AddValue(codeValues,'oysta_labels', label);\\r\\n //AddValue(codeValues,'oysta_value', mac);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.ble_data) && (params.ble_data !== '')) { // decode ble data if exists\\r\\n var gen_location = params.ble_data.split(',');\\r\\n var flag = gen_location[0];\\r\\n var batLevel = gen_location[1];\\r\\n var mac2 = gen_location[2];\\r\\n //var label = gen_location[3];\\r\\n AddValue(codeValues, 'flagBLE', flag);\\r\\n AddValue(codeValues, 'batBLE', batLevel);\\r\\n //AddValue(codeValues,'location_accuracy', '3'); // para mostrar que si hay accuracy muestra como source GPS\\r\\n // AddValue(codeValues,'beacon_mac', mac);\\r\\n //AddValue(codeValues,'beacon_major', 0);\\r\\n //AddValue(codeValues,'beacon_minor', 0);\\r\\n //<<beacon_mac>>,<<beacon_major>>,<<beacon_minor>> \\r\\n if (mac2) {\\r\\n AddValue(codeValues, 'beacon_mac', mac2);\\r\\n var simpleQuery2 = [{\\r\\n 'code': 'Mac',\\r\\n 'value': mac2,\\r\\n }];\\r\\n var simpleQueryLabel2 = {\\r\\n 'table': 'beacons',\\r\\n 'select': 'Name',\\r\\n 'query': simpleQuery2\\r\\n };\\r\\n var labels2 = [];\\r\\n labels2.push(JSON.stringify(simpleQueryLabel2));\\r\\n AddValue(codeValues, 'oysta_labels', JSON.stringify(labels2));\\r\\n }\\r\\n if (params.beacon_major) {\\r\\n AddValue(codeValues, 'beacon_major', params.beacon_major);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_major', 0);\\r\\n }\\r\\n if (params.beacon_minor) {\\r\\n AddValue(codeValues, 'beacon_minor', params.beacon_minor);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_minor', 0);\\r\\n }\\r\\n //AddValue(codeValues,'oysta_labels', label);\\r\\n //AddValue(codeValues,'oysta_value', mac);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n /* meter mas tarde... \\r\\n if (params.smart_data !== 'undefined') {\\r\\n var gen_location = params.smart_data.split(',')\\r\\n var latitude = gen_location[0]\\r\\n var longitude = gen_location[1]\\r\\n var location_accuracy = gen_location[2]\\r\\n var altitude = gen_location[3]\\r\\n AddValue(codeValues,'latitude', latitude);\\r\\n AddValue(codeValues,'longitude', longitude);\\r\\n AddValue(codeValues,'altitude', altitude);\\r\\n AddValue(codeValues,'location_accuracy', location_accuracy);\\r\\n }\\r\\n */\\r\\n /*else if ((params.event_time) && (params.event_time == '')) {\\r\\n var event_time = moment.utc().unix();\\r\\n AddValue(codeValues,'event_time', event_time);\\r\\n } revisar mas adelante*/\\r\\n // to parse SMS info from the device\\r\\n switch (messageTypeLocalCode) {\\r\\n case 'COMM-SMS': // SMS message sent in\\r\\n if (params.data.startsWith('Device location request')) {\\r\\n configsToAck.push(configIds.Controls.RealTimeLocate);\\r\\n } else if (params.data.startsWith('Set IP ok')) {\\r\\n configsToAck.push(configIds.Controls.GetCurrentConfig);\\r\\n } else if (params.data.startsWith('IMEI:')) {\\r\\n configsToAck.push(configIds.Controls.GetFirmwareVersion);\\r\\n } else if (params.data.startsWith('Set IP ok')) {\\r\\n configsToAck.push(configIds.Controls.ClearBufferedMessages);\\r\\n } else if (params.data.startsWith('flush ok')) {\\r\\n configsToAck.push(configIds.Controls.GetCurrentConfig);\\r\\n } else if (params.data.startsWith('Set Roam-')) {\\r\\n configsToAck.push(configIds.SMSPrefix.SMSPrefix);\\r\\n } else if (params.data.startsWith('set live tracking')) {\\r\\n configsToAck.push(configIds.Controls.Trace);\\r\\n } else if (params.data.startsWith('reboot ok')) {\\r\\n configsToAck.push(configIds.Controls.Reboot);\\r\\n } else if (params.data.startsWith('GPS')) {\\r\\n configsToAck.push(configIds.Controls.RealTimeLocate);\\r\\n var i1 = params.data.search('Now:')\\r\\n var i2 = params.data.search('Loc Time:')\\r\\n var i3 = params.data.search('Speed:')\\r\\n var i4 = params.data.search('Altitude:')\\r\\n var i5 = params.data.search('Battery:')\\r\\n var i6 = params.data.search('google')\\r\\n var eventTime = params.data.substring(i2 + 9, i3)\\r\\n var Speed = params.data.substring(i3 + 6, i4 - 3)\\r\\n if (params.data.substring(i4 - 3, i4) == 'mph') {\\r\\n Speed = Speed * 0.44704\\r\\n } else if (params.data.substring(i4 - 3, i4) == 'kph') {\\r\\n Speed = Speed / 3.6\\r\\n }\\r\\n var latlong = params.data.substring(i6 + 18)\\r\\n location_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n messageForReceiver = (`Roam-RTL;${params.imei};${location_time};${location_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n //event_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n //messageForReceiver = (`CARE-RTL;${params.imei};${event_time};${event_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n case 'ACK-FIRM-SMS': // Firmware info sent by SMS\\r\\n //var i1 = params.data.search('IMEI:')\\r\\n //var i2 = params.data.search('GSM signal quality:')\\r\\n var i3 = params.data.search('Software version:')\\r\\n var sub = params.data.substring(i3 + 17, params.data.length)\\r\\n var i4 = sub.search('version:');\\r\\n var fwVersion = sub.substring(i4, sub.length);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n break;\\r\\n case 'ACK-FALLSENS-SMS': // Fall sensibility info sent by SMS\\r\\n var i1 = params.data.search('Fall alarm:');\\r\\n var sensibility = params.data.substring(i1 + 11, i1 + 14);\\r\\n var i2 = params.data.search('level:');\\r\\n sensibility = sensibility + ', ' + params.data.substring(i2 + 6, i2 + 7);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"sensibility\\\", sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadEmergencySettings.FallSensitivity, sensibility);\\r\\n configsToAck.push(configIds.ReadEmergencySettings.FallSensitivity);\\r\\n break;\\r\\n case 'ACK-BEAC-SMS': // Beacon list info sent by SMS\\r\\n var i1 = raw.search('1,');\\r\\n //var i2 = params.data.search('2,');\\r\\n //var homeBeacon = params.data.substring(i1+2, i2);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"homeBeacon\\\", raw.substring(i1, raw.length));\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.HomeBeacon, raw.substring(i1, raw.length));\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.HomeBeacon);\\r\\n break;\\r\\n case 'ACK-CONTAC-SMS': // Contact list info sent by SMS\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n var i1 = raw.search('A1:');\\r\\n if (raw.includes('A2:')) {\\r\\n var i2 = raw.search('A2:');\\r\\n } else {\\r\\n var i2 = raw.search('A10:');\\r\\n }\\r\\n var tel = raw.substring(i1 + 4, i2);\\r\\n AddValue(codeValues, \\\"EmergencyNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.EmergencyNumber, tel);\\r\\n configsToAck.push(configIds.ReadAlertSettings.EmergencyNumber);\\r\\n i2 = raw.search('A10:')\\r\\n tel = raw.substring(i2 + 4, raw.length);\\r\\n AddValue(codeValues, \\\"SMSGateway\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.SMSGateway, tel);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.SMSGateway);\\r\\n AddValue(codeValues, \\\"ApprovedContacts\\\", raw.substring(i1, raw.length));\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.ApprovedContacts, raw.substring(i1, raw.length));\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.ApprovedContacts);\\r\\n break;\\r\\n case 'ACK-SERV-SMS': // APN and Server info sent by SMS\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n var i1 = params.data.search('APN:')\\r\\n var i2 = params.data.search('IP:')\\r\\n var i3 = params.data.search('Move')\\r\\n var apn = params.data.substring(i1 + 4, i2);\\r\\n AddValue(codeValues, \\\"apn\\\", apn);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.APN, apn);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.APN);\\r\\n var serverDetails = params.data.substring(i2 + 3, i3);\\r\\n AddValue(codeValues, \\\"server\\\", serverDetails);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.Server, serverDetails);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.Server);\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case 'RTL-GPS': // SRTL sent in via SMS with no pre-code\\r\\n var i3 = params.data.search('Speed:')\\r\\n var i4 = params.data.search('Altitude:')\\r\\n var i5 = params.data.search('Battery:')\\r\\n var i6 = params.data.search('google')\\r\\n var eventTime = params.data.substring(0, i3)\\r\\n var Speed = params.data.substring(i3 + 6, i4 - 3)\\r\\n if (params.data.substring(i4 - 3, i4) == 'mph') {\\r\\n Speed = Speed * 0.44704\\r\\n } else if (params.data.substring(i4 - 3, i4) == 'kph') {\\r\\n Speed = Speed / 3.6\\r\\n }\\r\\n var latlong = params.data.substring(i6 + 18)\\r\\n location_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n messageForReceiver = (`Roam-RTL;${params.imei};${location_time};${location_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n }\\r\\n if (!params.event_time && !event_time) { // if params.event_time undefined - set it to now. \\r\\n var event_time = moment.utc().unix();\\r\\n AddValue(codeValues, 'event_time', event_time);\\r\\n }\\r\\n // if (!params.location_time && !location_time) { // if params.location_time undefined - set it to now. \\r\\n // var location_time = moment.utc().unix();\\r\\n // AddValue(codeValues, 'location_time', location_time);\\r\\n //}\\r\\n }\\r\\n var dataToReceiver = {\\r\\n 'values': codeValues\\r\\n };\\r\\n if (configsToAck.length > 0) {\\r\\n dataToReceiver.configsToAck = configsToAck\\r\\n };\\r\\n if (configsToUpdate.length > 0) {\\r\\n dataToReceiver.configsToUpdate = configsToUpdate\\r\\n };\\r\\n if (configsToSend.length > 0) {\\r\\n dataToReceiver.configsToSend = configsToSend\\r\\n };\\r\\n console.log(dataToReceiver);\\r\\n //}\\r\\n //return {\\r\\n // 'output': dataToReceiver\\r\\n //}\\r\\n // end of main operation\\r\\n // define functions used in operation\\r\\n function AddValue(codeValueArray, p1, p2) { // push code value pair into array\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n codeValueArray.push(cvpair);\\r\\n }\\r\\n\\r\\n function decoder(str) { // decode rawdata\\r\\n // CARE Decoder\\r\\n AddValue(codeValues, 'Message : ', str);\\r\\n var message = str;\\r\\n // need to check if checksum is correct for possible msg corruption 10/03/23\\r\\n var checksum = message.substring(8, 12);\\r\\n var messageBody = message.substring(16, message.length);\\r\\n debug('message =' + message);\\r\\n debug('checksum =' + checksum);\\r\\n debug('calculateCheckSum =' + calculateCheckSum(messageBody));\\r\\n if (calculateCheckSum(messageBody) == checksum) { // payload is valid\\r\\n debug(\\\"message has valid checksum\\\");\\r\\n var messageBody = command; // update value for the ACK\\r\\n debug('command =' + command);\\r\\n if (command == '01') {\\r\\n while (index < total_length + 16) {\\r\\n // gen_location = '0'; //cambiado 30/09\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n var keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n debug('key = ' + key);\\r\\n debug('value = ' + value);\\r\\n switch (key) {\\r\\n //Device ID\\r\\n case '01':\\r\\n var imei = hex_to_ascii(value);\\r\\n break;\\r\\n //Alarm code\\r\\n case '02':\\r\\n var alarm = 'CYC';\\r\\n var alarmCode = value.substring(0, 8);\\r\\n alarmCode = changeEndianness(alarmCode);\\r\\n var timestampHex = value.substring(8, 16);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n event_time = timestamp;\\r\\n var alarmCodeInt = hexToDecimal(alarmCode);\\r\\n var alarmCodeExt = value.substring(16, 24);\\r\\n alarmCodeExt = changeEndianness(alarmCodeExt);\\r\\n var alarmCodeExtInt = hexToDecimal(alarmCodeExt);\\r\\n //Extended Alerts\\r\\n // Fall off\\r\\n if ((alarmCodeExtInt & 1) == 1) {\\r\\n var alarm = 'ALF-C';\\r\\n }\\r\\n // Welfare Check-out\\r\\n else if ((alarmCodeExtInt & 2) == 2) {\\r\\n var alarm = 'ALA-C';\\r\\n }\\r\\n // Standard Alerts\\r\\n //Battery low\\r\\n else if ((alarmCodeInt & 1) == 1) {\\r\\n var alarm = 'BATL';\\r\\n }\\r\\n //Overspeed\\r\\n else if ((alarmCodeInt & 2) == 2) {\\r\\n var alarm = 'ALSP';\\r\\n }\\r\\n //Fall\\r\\n else if ((alarmCodeInt & 4) == 4) {\\r\\n var alarm = 'ALF';\\r\\n }\\r\\n //Tilt\\r\\n else if ((alarmCodeInt & 8) == 8) {\\r\\n var alarm = 'Tilt';\\r\\n } else if ((alarmCodeInt & 16) == 16) {\\r\\n if ((alarmCodeInt & 16777216) == 16777216) {\\r\\n var alarm = 'Geo1-IN';\\r\\n } else {\\r\\n var alarm = 'Geo1-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 32) == 32) {\\r\\n if ((alarmCodeInt & 33554432) == 33554432) {\\r\\n var alarm = 'Geo2-IN';\\r\\n } else {\\r\\n var alarm = 'Geo2-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 64) == 64) {\\r\\n if ((alarmCodeInt & 67108864) == 67108864) {\\r\\n var alarm = 'Geo3-IN';\\r\\n } else {\\r\\n var alarm = 'Geo3-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 128) == 128) {\\r\\n if ((alarmCodeInt & 134217728) == 134217728) {\\r\\n var alarm = 'Geo4-IN';\\r\\n } else {\\r\\n var alarm = 'Geo4-OUT';\\r\\n }\\r\\n }\\r\\n //Power Off\\r\\n else if ((alarmCodeInt & 256) == 256) {\\r\\n var alarm = 'PWRF';\\r\\n }\\r\\n //Power On\\r\\n else if ((alarmCodeInt & 512) == 512) {\\r\\n var alarm = 'PWRN';\\r\\n }\\r\\n //Motion\\r\\n else if ((alarmCodeInt & 1024) == 1024) {\\r\\n var alarm = 'ALMOV';\\r\\n }\\r\\n //No Motion\\r\\n else if ((alarmCodeInt & 2048) == 2048) {\\r\\n var alarm = 'ALNM';\\r\\n }\\r\\n //SOS\\r\\n else if ((alarmCodeInt & 4096) == 4096) {\\r\\n var alarm = 'ALSOS';\\r\\n } else if ((alarmCodeInt & 8192) == 8192) {\\r\\n var alarm = 'Side1';\\r\\n } else if ((alarmCodeInt & 16384) == 16384) {\\r\\n var alarm = 'Side2';\\r\\n }\\r\\n //Battery charging\\r\\n else if ((alarmCodeInt & 32768) == 32768) {\\r\\n var alarm = 'BATCN';\\r\\n }\\r\\n //Battery no charging\\r\\n else if ((alarmCodeInt & 65536) == 65536) {\\r\\n var alarm = 'BATCF';\\r\\n }\\r\\n //SOS Ending\\r\\n // Temporary Commented until we know exactly how it works. 22/09/2022\\r\\n else if ((alarmCodeInt & 131072) == 131072) {\\r\\n var alarm = 'SOSEnding';\\r\\n info = 'Alarm Finished';\\r\\n }\\r\\n //Amber Alert EC03 only\\r\\n else if ((alarmCodeInt & 262144) == 262144) {\\r\\n var alarm = 'ALAO';\\r\\n }\\r\\n // welfare Alert check-in ALA-O\\r\\n else if ((alarmCodeInt & 524288) == 524288) {\\r\\n var alarm = 'ALA-O';\\r\\n }\\r\\n // Amber alert Ending ALA-C\\r\\n else if ((alarmCodeInt & 1048576) == 1048576) {\\r\\n var alarm = 'ALA-C';\\r\\n }\\r\\n // Amber alert Ending ALA-C\\r\\n //else if ((alarmCodeInt & 1048576) == 1048576) {\\r\\n // var alarm = 'ALA-C';\\r\\n //}\\r\\n // Fall-Down Alert ending\\r\\n else if ((alarmCodeInt & 2097152) == 2097152) {\\r\\n var alarm = 'ALF-C';\\r\\n }\\r\\n // welfare Alert Ending ALA\\r\\n else if ((alarmCodeInt & 4194304) == 4194304) {\\r\\n var alarm = 'ALA';\\r\\n }\\r\\n // Beacon absent Alert 11/10/22. Need to be added in msg types\\r\\n //else if ((alarmCodeInt & 16777216) == 16777216) {\\r\\n // var alarm = 'BEA';\\r\\n //}\\r\\n general += 'alarm:' + alarm + ',';\\r\\n break;\\r\\n //Custom ID\\r\\n case '03':\\r\\n // in value is customID.... '06' for Watch Care\\r\\n // if ((imei != '860470063029395') && (imei != '860470063035947')) {\\r\\n //update customID to check if belongs to this type of device\\r\\n customID = value;\\r\\n if (value != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n } else {\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n general += 'customID:' + value + ',';\\r\\n break;\\r\\n }\\r\\n //Historical Data Completed\\r\\n case '10': // indica q se han terminado de enviar todos los datos historicos.\\r\\n var histData = true;\\r\\n break;\\r\\n //GPS location\\r\\n case '20':\\r\\n location_type = 'GPS';\\r\\n var latitudeHex = value.substring(0, 8);\\r\\n var longitudeHex = value.substring(8, 16);\\r\\n var speedHex = value.substring(16, 20);\\r\\n var directionHex = value.substring(20, 24);\\r\\n var altitudeHex = value.substring(24, 28);\\r\\n var location_accuracyHex = value.substring(28, 32);\\r\\n var mileageHex = value.substring(32, 40);\\r\\n var satellitesHex = value.substring(40, 42);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n speed = ((hexToDecimal(changeEndianness(speedHex))) / 3.6).toFixed(2); //date 14-02-2023 in m/s\\r\\n var direction = hexToDecimal(changeEndianness(directionHex));\\r\\n var altitude = hexToDecimal(changeEndianness(altitudeHex)); // in meters\\r\\n //location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex)) * 5;\\r\\n // Range: 0.5 to 99.9 \\r\\n location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex));\\r\\n //var mileage = hexToDecimal(changeEndianness(mileageHex)) this is in km/h we need m/s\\r\\n var mileage = hexToDecimal(changeEndianness(mileageHex)); // in meters date 14-02-2023\\r\\n var satellites = hexToDecimal(satellitesHex);\\r\\n // location_time = timestamp;\\r\\n //<<latitude>>,<<longitude>>,<<speed>>,<<altitude>>,<<location_time>>\\r\\n gps_data = `${latitude},${longitude},${location_accuracy},${speed},${direction},${altitude},${satellites},${mileage}`;\\r\\n general += 'gps location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //WIFI Towers\\r\\n case '22':\\r\\n location_type = 'WIFI';\\r\\n var numWifi = Math.round((hexToDecimal(keyLengthHex) - 1) / 7);\\r\\n //location_time = timestamp;\\r\\n var wifiTowers = value;\\r\\n general += 'wifiTowers:';\\r\\n var indexWifi = 0;\\r\\n var bssid_array = [];\\r\\n wifi_data = '';\\r\\n for (let i = 0; i < numWifi; i++) {\\r\\n wifi_data += hexToDecimalSigned(wifiTowers.substring(indexWifi, indexWifi + 2)) + ',' + wifiTowers.substring(indexWifi + 2, indexWifi + 14) + ',';\\r\\n indexWifi += 14;\\r\\n }\\r\\n wifi_data = wifi_data.slice(0, -1);\\r\\n general += wifi_data;\\r\\n break;\\r\\n //BLE Location Added 10/10/22\\r\\n case '23':\\r\\n location_type = 'BLE';\\r\\n var mac = value.substring(0, 12);\\r\\n var latitudeHex = value.substring(12, 20);\\r\\n var longitudeHex = value.substring(20, 28);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n var address = hex_to_ascii(value.substring(28, value.length));\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n // location_time = timestamp;\\r\\n ble_data = `${latitude},${longitude},${mac},${address}`;\\r\\n general += 'BLE location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //General Data , status_data\\r\\n case '24':\\r\\n //var general = 'true'\\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n }\\r\\n //else {\\r\\n // messageForReceiver = (`CareWatch-CYC;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};`);\\r\\n //}\\r\\n // reset variables\\r\\n //alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n location_time = timestamp;\\r\\n // HardCode to fix possible issue in protocol\\r\\n // event_time = timestamp; \\r\\n event_time = moment.utc().unix();\\r\\n // end of hard code\\r\\n var statusHex = changeEndianness(value.substring(8, 16));\\r\\n var statusInt = hexToDecimal(statusHex);\\r\\n var statusDevice = '';\\r\\n if ((statusInt & 1) == 1) {\\r\\n statusDevice += 'GPS,';\\r\\n }\\r\\n if ((statusInt & 2) == 2) {\\r\\n statusDevice += 'WIFISource,';\\r\\n }\\r\\n if ((statusInt & 4) == 4) {\\r\\n statusDevice += 'CellTower,';\\r\\n }\\r\\n if ((statusInt & 8) == 8) {\\r\\n statusDevice += 'BLELocation,';\\r\\n }\\r\\n //params.BatteryStatus.BatteryStatus = '1';\\r\\n if ((statusInt & 16) == 16) {\\r\\n statusDevice += 'Charging,';\\r\\n // var alarm = 'BATCN';\\r\\n //configs.BatteryStatus.BatteryStatus = '1';\\r\\n /* if (configs.BatteryStatus.BatteryStatus !== '1') {\\r\\n hasConfigs = true;\\r\\n var batteryStatus = '1';\\r\\n var alarm = 'BATCN';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }*/\\r\\n }\\r\\n if ((statusInt & 32) == 32) {\\r\\n statusDevice += 'FUllyCharged,';\\r\\n //var alarm = 'BATF';\\r\\n // configs.BatteryStatus.BatteryStatus = '3';\\r\\n /* if (configs.BatteryStatus.BatteryStatus !== '3') {\\r\\n hasConfigs = true;\\r\\n var batteryStatus = '3';\\r\\n var alarm = 'BATF';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }*/\\r\\n }\\r\\n /* if (!((statusInt & 32) == 32) & !((statusInt & 16) == 16)) {\\r\\n statusDevice += 'Not Charging,';\\r\\n var alarm = 'BATCF';\\r\\n //configs.BatteryStatus.BatteryStatus = '2';\\r\\n if (configs.BatteryStatus.BatteryStatus !== '2') {\\r\\n var batteryStatus = '2';\\r\\n var alarm = 'BATCF';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }\\r\\n }*/\\r\\n if ((statusInt & 64) == 64) {\\r\\n statusDevice += 'Reboot,';\\r\\n }\\r\\n if ((statusInt & 128) == 128) {\\r\\n statusDevice += 'HistoricalData,';\\r\\n }\\r\\n if ((statusInt & 256) == 256) {\\r\\n statusDevice += 'AGPSDataValid,';\\r\\n }\\r\\n if ((statusInt & 512) == 512) {\\r\\n statusDevice += 'Motion,';\\r\\n }\\r\\n if ((statusInt & 1024) == 1024) {\\r\\n statusDevice += 'SmartLocating,';\\r\\n }\\r\\n if ((statusInt & 2048) == 2048) { //isHome\\r\\n statusDevice += 'BeaconLocation,';\\r\\n }\\r\\n if ((statusInt & 4096) == 4096) {\\r\\n statusDevice += 'BLEConnected,';\\r\\n }\\r\\n if ((statusInt & 16384) == 16384) {\\r\\n statusDevice += 'HomeWiFi,';\\r\\n }\\r\\n statusDevice = statusDevice.slice(0, -1);\\r\\n status_data = statusDevice; //to oysta template\\r\\n //statusHex = (statusHex);\\r\\n statusHex = hex2bin(statusHex);\\r\\n statusHex = ('00000000000000000000000000000000' + statusHex).slice(-32);\\r\\n battery_percentage = parseInt(statusHex.substring(0, 8), 2);\\r\\n cellNetworkSignal = parseInt(statusHex.substring(8, 13), 2);\\r\\n workMode = parseInt(statusHex.substring(13, 16), 2);\\r\\n general += 'statusDevice:' + statusDevice + ',';\\r\\n if (battery_percentage) {\\r\\n general += 'battery:' + battery_percentage + ',';\\r\\n }\\r\\n if (cellNetworkSignal) {\\r\\n general += 'cellNetworkSignal:' + cellNetworkSignal + ',';\\r\\n }\\r\\n if (workMode) {\\r\\n general += 'workMode:' + workMode + ',';\\r\\n }\\r\\n //messageForReceiver = (`CareWatch-CYC;${imei};${i};${event_time};${battery_percentage}`);\\r\\n break;\\r\\n //Call Records\\r\\n case '25':\\r\\n //Needed?\\r\\n break;\\r\\n //BLE Location 2\\r\\n case '26':\\r\\n //I don't understand\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Smart Location\\r\\n case '27':\\r\\n location_type = 'SMART';\\r\\n var latitudeHex = value.substring(0, 8);\\r\\n var longitudeHex = value.substring(8, 16);\\r\\n var location_accuracyHex = value.substring(16, 20);\\r\\n var altitudeHex = value.substring(20, 24);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n var altitude = hexToDecimal(changeEndianness(altitudeHex));\\r\\n //location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex)) * 5;\\r\\n //04/08/2022 se quita el multiplicador por 5 pq ya viene el valor en metros\\r\\n location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex));\\r\\n //location_time = timestamp;\\r\\n smart_data = `${latitude},${longitude},${location_accuracy},${altitude}`;\\r\\n general += 'smart location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //Beacon Location Added 11/10/22\\r\\n case '28':\\r\\n location_type = 'BEACON';\\r\\n // var alarm = 'EBZI';\\r\\n var latitudeHex = '00';\\r\\n var longitudeHex = '00';\\r\\n var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 1));\\r\\n var beacId = hexToDecimal(value.substring(1, 2));\\r\\n // msg includes descrip\\r\\n if ((flag & 4) == 4) {\\r\\n descr = hex_to_ascii(value.substring(18, value.length));\\r\\n }\\r\\n // msg includes lat/lon\\r\\n if ((flag & 8) == 8) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n }\\r\\n // msg includes lat/lon and description\\r\\n if ((flag & 12) == 12) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n descr = hex_to_ascii(value.substring(34, value.length));\\r\\n }\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var rssiHex = value.substring(14, 16);\\r\\n var rssi1Hex = value.substring(16, 18);\\r\\n rssi = hexToDecimalSigned(changeEndianness(rssiHex));\\r\\n rssi1 = hexToDecimalSigned(changeEndianness(rssi1Hex));\\r\\n // var latitudeHex = value.substring(18, 26);\\r\\n // var longitudeHex = value.substring(26, 34);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n //location_time = timestamp;\\r\\n beacon_data = `${latitude},${longitude},${mac},${descr}`;\\r\\n general += 'BEACON location (lat):' + latitude + ', (long):' + longitude + ', (mac):' + mac + ', (description):' + descr + ', (rssi):' + rssi + ', (listIndex):' + beacId + ',';\\r\\n break;\\r\\n // Beacon V2\\r\\n case '2C':\\r\\n location_type = 'BEACON';\\r\\n // var alarm = 'EBZI';\\r\\n var latitudeHex = '00';\\r\\n var longitudeHex = '00';\\r\\n var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 1));\\r\\n var beacId = hexToDecimal(value.substring(1, 2));\\r\\n // msg includes descrip\\r\\n if ((flag & 4) == 4) {\\r\\n let desc_leng = hexToDecimal(value.substring(20, 22));\\r\\n descr = hex_to_ascii(value.substring(22, 22 + (2 * desc_leng)));\\r\\n //descr = hex_to_ascii(value.substring(18, value.length));\\r\\n }\\r\\n // msg includes lat/lon\\r\\n if ((flag & 8) == 8) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n }\\r\\n // msg includes lat/lon and description\\r\\n if ((flag & 12) == 12) {\\r\\n latitudeHex = value.substring(20, 28);\\r\\n longitudeHex = value.substring(28, 36);\\r\\n let desc_leng = hexToDecimal(value.substring(36, 38));\\r\\n descr = hex_to_ascii(value.substring(38, 38 + (2 * desc_leng)));\\r\\n }\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var rssiHex = value.substring(14, 16);\\r\\n var rssi1Hex = value.substring(16, 18);\\r\\n rssi = hexToDecimalSigned(changeEndianness(rssiHex));\\r\\n rssi1 = hexToDecimalSigned(changeEndianness(rssi1Hex));\\r\\n var battery_beacon = hexToDecimal(value.substring(18, 20));\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n //location_time = timestamp;\\r\\n beacon_data = `${latitude},${longitude},${mac},${descr}`;\\r\\n general += 'BEACON location (lat):' + latitude + ', (long):' + longitude + ', (mac):' + mac + ', (description):' + descr + ', (rssi):' + rssi + ', (battery):' + battery_beacon + ', (listIndex):' + beacId + ',';\\r\\n break;\\r\\n //Cell Towers Note\\r\\n case '29':\\r\\n location_type = 'LBS';\\r\\n lbs_data = '';\\r\\n var mccHex = changeEndianness(value.substring(0, 4));\\r\\n var mncHex = value.substring(4, 6);\\r\\n var mcc = hexToDecimal(mccHex);\\r\\n lbs_data += mcc + ',';\\r\\n var mnc = hexToDecimal(mncHex);\\r\\n lbs_data += mnc + ',';\\r\\n var indexLbs = 6;\\r\\n var numTowers = (hexToDecimal(keyLengthHex) - 4) / 7;\\r\\n for (let i = 0; i < numTowers; i++) {\\r\\n var rxlHex = changeEndianness(value.substring(indexLbs, indexLbs + 2));\\r\\n var rxl = hexToDecimal(rxlHex);\\r\\n var lacHex = changeEndianness(value.substring(indexLbs + 2, indexLbs + 6));\\r\\n var lac = hexToDecimal(lacHex);\\r\\n var cellTowers = hexToDecimal(changeEndianness(value.substring(indexLbs + 6, indexLbs + 14)));\\r\\n lbs_data += rxl + ',' + lac + ',' + cellTowers + ',';\\r\\n indexLbs += 14;\\r\\n }\\r\\n lbs_data = lbs_data.slice(0, -1);\\r\\n general += lbs_data;\\r\\n break;\\r\\n case '30':\\r\\n //G-sensor. \\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n var numStep = (keyLength - 2) / 16;\\r\\n for (let j = 0; j < numStep; j++) {\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n //timestamp = hexToDecimalSigned(timestampHex);\\r\\n var stepHex = value.substring(8, 16);\\r\\n stepHex = changeEndianness(stepHex);\\r\\n var stepRate = hexToDecimal(stepHex);\\r\\n info = stepRate;\\r\\n //var alarmCode = 'True';\\r\\n var alarm = 'STP';\\r\\n general += ' step counting' + j + ':' + stepRate + ',';\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};STP=${info};LABEL=steps`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n //Activity\\r\\n case '31':\\r\\n //I don't understand\\r\\n break;\\r\\n //BLE MAC list\\r\\n case '32':\\r\\n //I don't understand\\r\\n break;\\r\\n //Beacon List\\r\\n case '33':\\r\\n //I don't understand\\r\\n break;\\r\\n //Heart Rate Data\\r\\n case '40':\\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n var numHeartRate = (keyLength - 2) / 12;\\r\\n for (let j = 0; j < numHeartRate; j++) {\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n //timestamp = hexToDecimalSigned(timestampHex);\\r\\n var heartRateHex = value.substring(8, 10);\\r\\n var heartRate = hexToDecimal(heartRateHex);\\r\\n var trustLevelHex = value.substring(10, 12);\\r\\n var trustLevel = hexToDecimal(trustLevelHex);\\r\\n info = heartRate;\\r\\n //var alarmCode = 'True';\\r\\n var alarm = 'HRT';\\r\\n general += ' heart rate' + j + ':' + heartRate + ',';\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};HRT=${info};TLEVEL=${trustLevel};LABEL=bpm`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n //BLE Connected . For Flic button\\r\\n case '62':\\r\\n location_type = 'BLE';\\r\\n //var alarm = 'EBZI'; \\r\\n //var latitudeHex = '00';\\r\\n //var longitudeHex = '00';\\r\\n //var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 2)); // 0= Disconnected, 1= Connected\\r\\n var mac = value.substring(2, 14); // No hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var batLevel = hexToDecimal(value.substring(14, 16)); // 0-100\\r\\n //location_time = timestamp;\\r\\n ble_data = `${flag},${batLevel},${mac}`;\\r\\n general += 'BLE location (State):' + flag + ', (bat):' + batLevel + ', (mac):' + mac + ',';\\r\\n break;\\r\\n }\\r\\n }\\r\\n // CareWatch-CYC;<<imei>>;STATUS=<<status_data>>;TIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;\\r\\n // \\\"CareWatch-CYC;861629050193550;STATUS=WIFISource,CellTower;TIME=1673950279;BATP=84;LGPS=undefined;LWIF=-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369;LLBS=214,1,13,768,38529798;LBEACON=undefined;BLE=undefined;GENERAL=statusDevice:WIFISource,CellTower,battery:84,cellNetworkSignal:14,workMode:6,wifiTowers:-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369,214,1,13,768,38529798,;\\\",\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n /*else if (alarm === 'HRT') {\\r\\n messageForReceiver = (`CareWatch-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};HRT=${info};TLEVEL=${trustLevel};LABEL=bpm`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (alarm === 'STP') {\\r\\n messageForReceiver = (`CareWatch-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};STP=${info};LABEL=steps`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else {\\r\\n messageForReceiver = (`CareWatch-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }*/\\r\\n // rest the alarm value\\r\\n alarm = '';\\r\\n }\\r\\n if (command == '02') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n switch (key) {\\r\\n //Module Number\\r\\n case '01':\\r\\n var date = value.substring(6, 8) + value.substring(4, 6) + '-' + value.substring(2, 4) + '-' + value.substring(0, 2);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Firmware version\\r\\n case '02':\\r\\n //no ACK need\\r\\n var fwVersion = 'v' + hexToDecimal(value.substring(6, 8)) + '.' + hexToDecimal(value.substring(4, 6)) + '.' + hexToDecimal(value.substring(2, 4)) + '.' + hexToDecimal(value.substring(0, 2));\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '1A':\\r\\n //no ACK need\\r\\n var fwVersion = hex_to_ascii(value);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n break;\\r\\n //IMEI\\r\\n case '03':\\r\\n var imei = hexToDecimal(value);\\r\\n // harcode to avoid conflicts with Rio protocol\\r\\n //if ((imei != '860470063029395') && (imei != '860470063035947')) {\\r\\n // AddValue(codeValues, \\\"error\\\", \\\"device imei is not in this protocol\\\");\\r\\n // AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n //AddValue(codeValues, \\\"IMEI\\\", imei);\\r\\n // return\\r\\n //}\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //ICCID\\r\\n case '04':\\r\\n var iccid = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //BLE-MAC\\r\\n case '05':\\r\\n var bleMac = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Run Time\\r\\n case '07':\\r\\n var runTime = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '10': // Ringer Volume\\r\\n var volume = hexToDecimal(value);\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-VOL;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"Volume\\\", volume);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.Volume, volume);\\r\\n configsToAck.push(configIds.ReadSystemSettings.Volume);\\r\\n break;\\r\\n case '0A': //Performance mode\\r\\n //var workMode = hexToDecimal(value);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n //AddValue(codeValues, \\\"WorkMode\\\", workMode);\\r\\n //AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n //configsToAck.push(configIds.ReadPerformance`Settings.Mode);\\r\\n //var workMode = hex_to_ascii(value.substring(0, value.length));\\r\\n //var workMode = hexToDecimal(value);\\r\\n //var workMode = hex_to_ascii(value.substring(0, value.length));\\r\\n var workMode = 1234; // + value + \\\"end\\\";\\r\\n //var workModeVal = 9;\\r\\n //workMode = 'test10';\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-MODE;${imei};`);\\r\\n AddValue(codeValues, \\\"Mode\\\", workMode);\\r\\n AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n //AddValue(codeValues, \\\"performanceMode\\\", performanceMode);\\r\\n //AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, performanceMode);\\r\\n // configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n break;\\r\\n case '1B':\\r\\n //Decimal o ascii?\\r\\n var gsmModule = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '1F':\\r\\n //System Language\\r\\n var systemLanguage = hex_to_ascii(value.substring(0, value.length));\\r\\n imei = serverParams.Imei;\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n messageForReceiver = (`Roam;ACK-LANG;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"SystemLanguage\\\", systemLanguage);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.SystemLanguage, systemLanguage);\\r\\n configsToAck.push(configIds.ReadSystemSettings.SystemLanguage);\\r\\n break;\\r\\n case '33': // phone option\\r\\n // [Value]:83 0B 00 00 {\\\"phoneOption\\\":{\\\"flag_value\\\":2947,\\\"s3\\\":1,\\\"s4\\\":0,\\\"s5\\\":1,\\\"s6\\\":0,\\\"callIncoming\\\":0,\\\"rings\\\":3,\\\"s7\\\":0,\\\"toneID\\\":0,\\\"s1\\\":1,\\\"s2\\\":1}}\\r\\n var statusPhone = hex2bin(value.substring(0, 2)); // To find autoanswer setup\\r\\n if (statusPhone.substring(0, 1) == '1') { // 1 Enable\\r\\n var auto = 'true';\\r\\n } else var auto = 'false';\\r\\n statusPhone = hex2bin(value.substring(2, 4)); // To find allow list setup\\r\\n if (statusPhone.substring(7, 8) == '1') { // 1 Enable\\r\\n allow = 'true';\\r\\n } else var allow = 'false';\\r\\n //statusPhone = hex2bin(value.substring(0, 2)) + hex2bin(value.substring(2, 4));\\r\\n //AddValue(configsToUpdate, configIds.ReadSystemSettings.Statusphone, statusPhone);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.AllowList, allow);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.AutoAnswer, auto);\\r\\n //configsToAck.push(configIds.ReadSystemSettings.Statusphone);\\r\\n configsToAck.push(configIds.ReadSystemSettings.AllowList);\\r\\n configsToAck.push(configIds.ReadSystemSettings.AutoAnswer);\\r\\n break;\\r\\n case '30': //ContactList\\r\\n var contactNumber = value.substring(1, 2);\\r\\n var telLength = hexToDecimal(value.substring(2, 4));\\r\\n var tel = '';\\r\\n switch (contactNumber) {\\r\\n // Emergency Number\\r\\n case '0':\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n AddValue(codeValues, \\\"EmergencyNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.EmergencyNumber, tel);\\r\\n configsToAck.push(configIds.ReadAlertSettings.EmergencyNumber);\\r\\n break;\\r\\n // Speed Dial Number\\r\\n case '1':\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n AddValue(codeValues, \\\"SpeedDialNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadSpeedDialSettings.SpeedDialNumber, tel);\\r\\n configsToAck.push(configIds.ReadSpeedDialSettings.SpeedDialNumber);\\r\\n break;\\r\\n // Gateway Number\\r\\n case '9': //00447781482635,Esendex UK 0034627177148,Esendex Spain 00447507288240,Esendex UK Acceptance\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n if (tel.includes('447781482635') || tel.includes('00447781482635')) {\\r\\n tel = 'Esendex UK'\\r\\n } else if (tel.includes('34627177148') || tel.includes('0034627177148')) {\\r\\n tel = 'Esendex Spain'\\r\\n } else if (tel.includes('447507288240') || tel.includes('00447507288240')) {\\r\\n tel = 'Esendex UK Acceptance'\\r\\n } else {\\r\\n tel = 'Default'\\r\\n }\\r\\n AddValue(codeValues, \\\"SMSGateway\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.SMSGateway, tel);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.SMSGateway);\\r\\n break;\\r\\n default:\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n if (tel.length < 6) {\\r\\n break;\\r\\n }\\r\\n contacts += 'A' + (contactNumber - 1) + ': ' + tel + ', ';\\r\\n AddValue(codeValues, \\\"ApprovedContacts\\\", contacts);\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.ApprovedContacts, contacts);\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.ApprovedContacts);\\r\\n break;\\r\\n }\\r\\n break;\\r\\n case '40': // APN\\r\\n //no ACK need\\r\\n var apn = hex_to_ascii(value.substring(0, value.length));\\r\\n imei = serverParams.Imei;\\r\\n break;\\r\\n case '41': // APN Username\\r\\n //no ACK need\\r\\n //apn = apn + ',' + hex_to_ascii(value.substring(0, value.length));\\r\\n break;\\r\\n case '42': // APN Password\\r\\n //no ACK need\\r\\n //apn = apn + ',' + hex_to_ascii(value.substring(0, value.length));\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"apn\\\", apn);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.APN, apn);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.APN);\\r\\n break;\\r\\n case '43': //Server Details\\r\\n //52.232.85.255,5678 production 52.174.17.77,5678 acceptance\\r\\n var serverDetails = hex_to_ascii(value.substring(6, value.length)) + ':' + hexToDecimal(value.substring(4, 6) + value.substring(2, 4));\\r\\n if (serverDetails.includes('52.232.85.255:5678')) {\\r\\n serverDetails = 'Production'\\r\\n } else if (serverDetails.includes('52.174.17.77:5678')) {\\r\\n serverDetails = 'Acceptance'\\r\\n } else if (serverDetails.includes('52.174.17.77:5778')) {\\r\\n serverDetails = 'Protocol-Import'\\r\\n } else {\\r\\n serverDetails = 'Default'\\r\\n }\\r\\n AddValue(codeValues, \\\"server\\\", serverDetails);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.Server, serverDetails);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.Server);\\r\\n break;\\r\\n case '44': //time interval - work mode intervals\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-MODE;${imei};`);\\r\\n var workMode = 0;\\r\\n var cycle = hexToDecimal(value.substring(10, 12) + value.substring(8, 10));\\r\\n var lazyCycle = hexToDecimal(value.substring(18, 20) + value.substring(16, 18));\\r\\n if (cycle == 240 && lazyCycle == 3600) { // 4 mins and 1 hour\\r\\n //workMode = 'High Frequency';\\r\\n workMode = 3;\\r\\n }\\r\\n if (cycle == 600 && lazyCycle == 3600) { // 10 mins and 1 hour\\r\\n //workMode = 'Balanced';\\r\\n workMode = 2;\\r\\n }\\r\\n if (cycle == 28800 && lazyCycle == 43200) { // 6 hour and 12 hours\\r\\n //workMode = 'Power Saving';\\r\\n workMode = 1;\\r\\n }\\r\\n if (cycle == 86400 && lazyCycle == 86400) { // 24 hours and 24 hours\\r\\n //workMode = 'No Reporting';\\r\\n workMode = 0;\\r\\n }\\r\\n AddValue(codeValues, \\\"Mode\\\", workMode);\\r\\n AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case '47': // Custom Id\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-CUSTID;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"customeid\\\", value);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CustomId, value);\\r\\n configsToAck.push(configIds.ReadState.CustomId);\\r\\n break;\\r\\n case '53': // Non motion alert\\r\\n //2B020080\\r\\n var status = hex2bin(value.substring(6, 8));\\r\\n var alertSetting = '';\\r\\n var enableDisable = '';\\r\\n if (status.substring(0, 1) == '1') {\\r\\n alertSetting = 'Enable, '\\r\\n enableDisable = '1';\\r\\n } else {\\r\\n alertSetting = 'Disable, '\\r\\n };\\r\\n //if (status.substring(5, 6) == '1') {\\r\\n // alertSetting += 'Dial, '\\r\\n //} else {\\r\\n // alertSetting += 'No Dial, '\\r\\n //};\\r\\n var time = hexToDecimal(value.substring(2, 4) + value.substring(0, 2));\\r\\n alertSetting += time;\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-NOMOTION;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"nomotion\\\", alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.NoMotionAlert, value + '-' + alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadNonMovementSettings.EnableDisableNonMovementSettings, enableDisable);\\r\\n AddValue(configsToUpdate, configIds.ReadNonMovementSettings.Time, time);\\r\\n configsToAck.push(configIds.ReadAlertSettings.NoMotionAlert);\\r\\n configsToAck.push(configIds.ReadNonMovementSettings.EnableDisableNonMovementSettings);\\r\\n configsToAck.push(configIds.ReadNonMovementSettings.Time);\\r\\n break;\\r\\n case '56': //Fall down sensibility\\r\\n // '00001100'\\r\\n var fallStatus = hex2bin(value.substring(0, 2));\\r\\n var enalbleDisable = '';\\r\\n //if (fallStatus.substring(4, 5) == '1') {\\r\\n if (fallStatus.substring(0, 1) == '1') {\\r\\n var sensibility = 'Enable, '\\r\\n enalbleDisable = '1'\\r\\n } else {\\r\\n var sensibility = 'Disable, '\\r\\n };\\r\\n if (fallStatus.substring(5, 6) == '1') {\\r\\n sensibility += 'Dial, '\\r\\n } else {\\r\\n sensibility += 'No Dial, '\\r\\n };\\r\\n var imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-FALLALERT;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n var sesibityOptionValue = hexToDecimal(value.substring(1, 2));\\r\\n sensibility += sesibityOptionValue;\\r\\n AddValue(codeValues, \\\"sensibility\\\", sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.FallSettings, sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadFallSettings.EnableDisableFallSettings, enalbleDisable);\\r\\n AddValue(configsToUpdate, configIds.ReadFallSettings.Sensitivity, sesibityOptionValue);\\r\\n configsToAck.push(configIds.ReadAlertSettings.FallSettings);\\r\\n configsToAck.push(configIds.ReadFallSettings.EnableDisableFallSettings);\\r\\n configsToAck.push(configIds.ReadFallSettings.Sensitivity);\\r\\n break;\\r\\n case '73': //BeaconList\\r\\n var beaconNumber = hexToDecimal(value.substring(1, 2));\\r\\n var beaconStatus = hex2bin(value.substring(0, 1));\\r\\n //if (beaconStatus.substring(4, 5) == '1') {\\r\\n // homeBeacon += ' Enable, '\\r\\n //} else {\\r\\n // homeBeacon += ' Disable, '\\r\\n //};\\r\\n beaconStatus = hex_to_ascii(value.substring(30, value.length));\\r\\n //beaconStatus = changeEndianness(value.substring(30, value.length));\\r\\n homeBeacon += 'B' + (beaconNumber + 1) + ': ' + beaconStatus + ', ';\\r\\n AddValue(codeValues, \\\"homeBeacon\\\", homeBeacon);\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.HomeBeacon, homeBeacon);\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.HomeBeacon);\\r\\n break;\\r\\n case '4A': //Wifi Network List\\r\\n var wifiSSIDLenght = hexToDecimal(value.substring(2, 4));\\r\\n var wifiPasswordLenght = hexToDecimal(value.substring(4, 6));\\r\\n var wifiIndex = hexToDecimal(value.substring(1, 2));\\r\\n var wifiStatus = hexToDecimal(value.substring(0, 1));\\r\\n /*var enalbleDisable = wifiSSID = wifiPassword = homeWifi = '';\\r\\n /var homeWifi = '';\\r\\n if (wifiIndex == '0') { // Only first Wifi of the list\\r\\n if (wifiStatus == '8') {\\r\\n homeWifi += ' Enable, '\\r\\n enalbleDisable = '1';\\r\\n } else {\\r\\n homeWifi += ' Disable, '\\r\\n //enalbleDisable = '0';\\r\\n };*/\\r\\n if (wifiStatus == '8') {\\r\\n var wifiSSID = hex_to_ascii(value.substring(6, 6 + 2 * (wifiSSIDLenght)));\\r\\n var wifiPassword = hex_to_ascii(value.substring(6 + 2 * (wifiSSIDLenght), 6 + 2 * (wifiSSIDLenght + wifiPasswordLenght)));\\r\\n var imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-WIFI;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n homeWiFi += 'W' + (wifiIndex + 1) + ': ' + wifiSSID + ', ' + wifiPassword + ';';\\r\\n AddValue(codeValues, \\\"wifi\\\", homeWiFi);\\r\\n AddValue(configsToUpdate, configIds.ReadWiFiList.WiFiList, homeWiFi);\\r\\n configsToAck.push(configIds.ReadWiFiList.WiFiList);\\r\\n }\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.EnableDisableReadWiFiSettings, enalbleDisable);\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.SSID, wifiSSID);\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.Password, wifiPassword);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.EnableDisableReadWiFiSettings);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.SSID);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.Password);\\r\\n break;\\r\\n case '21': // Speed Dial Settings\\r\\n // [Value]:53 84 {\\\"call1Button\\\":{\\\"mode\\\":0,\\\"feedBack\\\":3,\\\"task\\\":2,\\\"time\\\":20,\\\"status\\\":1}}\\r\\n var status = hex2bin(value.substring(2, 3));\\r\\n var alertSetting = '';\\r\\n var enableDisable = '';\\r\\n if (status.substring(0, 1) == '1') {\\r\\n alertSetting = 'Enable, ';\\r\\n enableDisable = '1';\\r\\n } else {\\r\\n alertSetting = 'Disable, ';\\r\\n //enableDisable = '0';\\r\\n };\\r\\n //var time = hexToDecimal(value.substring(2, 4) + value.substring(0, 2));\\r\\n //alertSetting += time;\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-SPEED;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"speed\\\", alertSetting);\\r\\n //AddValue(configsToUpdate, configIds.ReadAlertSettings.NoMotionAlert, value + '-' + alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadSpeedDialSettings.EnableDisableReadSpeedDialSettings, enableDisable);\\r\\n //AddValue(configsToUpdate, configIds.ReadNonMovementSettings.Time, time);\\r\\n //configsToAck.push(configIds.ReadAlertSettings.NoMotionAlert);\\r\\n configsToAck.push(configIds.ReadSpeedDialSettings.EnableDisableReadSpeedDialSettings);\\r\\n //configsToAck.push(configIds.ReadNonMovementSettings.Time);\\r\\n break;\\r\\n }\\r\\n }\\r\\n }\\r\\n if (command == '03') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n var keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n debug('key = ' + key);\\r\\n debug('value = ' + value);\\r\\n switch (key) {\\r\\n case '01': // Device ID\\r\\n var imei = hex_to_ascii(value);\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n break;\\r\\n //CustomID is not provided so far with command type 03.. commented in the mean time\\r\\n /* case '03':\\r\\n //update customID to check if belongs to this type of device\\r\\n customID = value;\\r\\n if (value != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n } else {\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n general += 'customID:' + value + ',';\\r\\n break;\\r\\n }\\r\\n break; */\\r\\n case '10': // Heartbeat\\r\\n var heartbeat = hex_to_ascii(value);\\r\\n event_time = moment.utc().unix();\\r\\n if (index < total_length + 16) {\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n key = message.substring(index, index = index + 2);\\r\\n if (key == '24') {\\r\\n // debug('key: ' + key) //comment those out\\r\\n value = message.substring(index, index = index + keyLength - 2);\\r\\n // debug(value)\\r\\n var timestampHex = value.substring(0, 8);\\r\\n // debug('timestampt hex: ' + timestampHex)\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n event_time = timestamp;\\r\\n // debug(event_time)\\r\\n var statusHex = changeEndianness(value.substring(8, 16));\\r\\n // debug(statusHex)\\r\\n var statusInt = hexToDecimal(statusHex);\\r\\n var statusDevice = '';\\r\\n if ((statusInt & 1) == 1) {\\r\\n statusDevice += 'GPS,';\\r\\n }\\r\\n if ((statusInt & 2) == 2) {\\r\\n statusDevice += 'WIFISource,';\\r\\n }\\r\\n if ((statusInt & 4) == 4) {\\r\\n statusDevice += 'CellTower,';\\r\\n }\\r\\n if ((statusInt & 8) == 8) {\\r\\n statusDevice += 'BLELocation,';\\r\\n }\\r\\n if ((statusInt & 16) == 16) {\\r\\n statusDevice += 'Charging,';\\r\\n }\\r\\n if ((statusInt & 32) == 32) {\\r\\n statusDevice += 'FUllyCharged,';\\r\\n }\\r\\n if ((statusInt & 64) == 64) {\\r\\n statusDevice += 'Reboot,';\\r\\n }\\r\\n if ((statusInt & 128) == 128) {\\r\\n statusDevice += 'HistoricalData,';\\r\\n }\\r\\n if ((statusInt & 256) == 256) {\\r\\n statusDevice += 'AGPSDataValid,';\\r\\n }\\r\\n if ((statusInt & 512) == 512) {\\r\\n statusDevice += 'Motion,';\\r\\n }\\r\\n if ((statusInt & 1024) == 1024) {\\r\\n statusDevice += 'SmartLocating,';\\r\\n }\\r\\n if ((statusInt & 2048) == 2048) {\\r\\n statusDevice += 'BeaconLocation,';\\r\\n }\\r\\n if ((statusInt & 4096) == 4096) {\\r\\n statusDevice += 'BLEConnected,';\\r\\n }\\r\\n statusDevice = statusDevice.slice(0, -1);\\r\\n // debug('statusHex:' + statusHex)\\r\\n statusHex = (statusHex);\\r\\n statusHex = hex2bin(statusHex);\\r\\n statusHex = ('00000000000000000000000000000000' + statusHex).slice(-32);\\r\\n // debug(statusHex)\\r\\n battery_percentage = parseInt(statusHex.substring(0, 8), 2);\\r\\n // debug(battery_percentage)\\r\\n // debug(battery_percentage)\\r\\n // debug(statusHex.substring(8, 13))\\r\\n cellNetworkSignal = parseInt(statusHex.substring(8, 13), 2);\\r\\n // debug(cellNetworkSignal)\\r\\n workMode = parseInt(statusHex.substring(13, 16), 2);\\r\\n // debug(workMode)\\r\\n general += 'statusDevice:' + statusDevice + ';';\\r\\n if (battery_percentage) {\\r\\n general += 'battery:' + battery_percentage + ';';\\r\\n }\\r\\n if (cellNetworkSignal) {\\r\\n general += 'cellNetworkSignal:' + cellNetworkSignal + ';';\\r\\n }\\r\\n if (workMode) {\\r\\n general += 'workMode:' + workMode + ';';\\r\\n }\\r\\n }\\r\\n }\\r\\n // revisar\\r\\n var gen_location = '0';\\r\\n //CustomID is not provided so far with command type 03.. commented in the mean time\\r\\n /*if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }*/\\r\\n //messageForReceiver = (`Eview-HTB;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};SIGNAL=${cellNetworkSignal};WM=${workMode};SL=${systemLanguage};GENERAL=${general}`);\\r\\n messageForReceiver = (`Eview-HTB;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '12': // Device requesting timestamp\\r\\n timestamp = moment.utc().unix();\\r\\n timestampHex = decimalToHex(timestamp);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n keyLengthHex = ('00' + decimalToHex(1 + (timestampHex.length) / 2)).slice(-2);\\r\\n // respond to device with the timestamp of the server\\r\\n messageBody = messageBody + keyLengthHex + key + timestampHex;\\r\\n messageForReceiver = `Eview;${imei};${sequenceID};Get timestamp`;\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case '21': //Cell Towers\\r\\n var mccHex = value.substring(0, 2);\\r\\n var mncHex = value.substring(2, 3);\\r\\n var mcc = hexToDecimal(mccHex);\\r\\n var mnc = hexToDecimal(mncHex);\\r\\n var numTowers = (keyLength - 4) / 5;\\r\\n var cellTowers = hex_to_ascii(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '22': // WIFI locations \\r\\n location_type = 'WIFI';\\r\\n var numWifi = Math.round((hexToDecimal(keyLengthHex) - 1) / 7);\\r\\n //location_time = timestamp;\\r\\n var wifiTowers = value;\\r\\n general += 'wifiTowers:';\\r\\n var indexWifi = 0;\\r\\n var bssid_array = [];\\r\\n gen_location = '';\\r\\n for (let i = 0; i < numWifi; i++) {\\r\\n gen_location += wifiTowers.substring(indexWifi + 2, indexWifi + 14) + ',';\\r\\n indexWifi += 14;\\r\\n }\\r\\n gen_location = gen_location.slice(0, -1);\\r\\n general += gen_location;\\r\\n //CustomID is not provided so far with command type 03\\r\\n /*if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }*/\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n alarmCode = '';\\r\\n break;\\r\\n }\\r\\n }\\r\\n }\\r\\n if (command == '04') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n if (command == '7E') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n if (command == '7F') {\\r\\n // while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n messageForReceiver = (`Roam-ACK;${imei};${message}`); // ${sequenceID}; add ${sequenceID}; 19-07\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n AddValue(configsToUpdate, configIds.ConfigureDevice.LastConfigured, moment().format('YYYY/MM/DD, HH:mm:ss'));\\r\\n configsToAck.push(configIds.ConfigureDevice.LastConfigured);\\r\\n //}\\r\\n }\\r\\n if (command == 'FE') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n // prepare the ACK msg and change config if it is needed\\r\\n lengthAck = messageBody.length / 2;\\r\\n lengthAck = ('0000' + decimalToHex(lengthAck)).slice(-4);\\r\\n lengthAck = lengthAck.toString().substring(2, 4) + lengthAck.toString().substring(0, 2);\\r\\n ////////////checksum CRC 16\\r\\n var checksumAck = byteStringToByteArray(messageBody);\\r\\n checksumAck = crc16byte(checksumAck);\\r\\n checksumAck = decimalToHex(checksumAck);\\r\\n checksumAck = ('0000' + checksumAck).slice(-4);\\r\\n checksumAck = checksumAck.toString().substring(2, 4) + checksumAck.toString().substring(0, 2);\\r\\n prefix = prefix + lengthAck + checksumAck + sequenceID;\\r\\n // To send ACK to the device previous to internal msg with parts\\r\\n if (needsAck == true) {\\r\\n if (messageBody.length <= 2) {\\r\\n ack = 'AB00030008C7' + sequenceID + '7F0100'; // change AB10030008C7 to AB00030008C7\\r\\n } else {\\r\\n ack = prefix + messageBody;\\r\\n }\\r\\n AddValue(codeValues, 'imei', imei);\\r\\n AddValue(codeValues, 'ack', ack);\\r\\n }\\r\\n } else { // checksum was invalid - print out useful debug info and bet quess at imei \\r\\n AddValue(codeValues, \\\"error\\\", \\\"checksum failed for message\\\");\\r\\n AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n i = rawFromBytes.search('3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]');\\r\\n if (i >= 0) {\\r\\n imei = hex_to_ascii(rawFromBytes.substring(i, i + 30));\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n function ascii_to_hexa(str) { // ascii to hex \\r\\n var arr1 = [];\\r\\n for (var n = 0, l = str.length; n < l; n++) {\\r\\n var hex = Number(str.charCodeAt(n)).toString(16);\\r\\n arr1.push(hex);\\r\\n }\\r\\n return arr1.join('');\\r\\n }\\r\\n\\r\\n function byteStringToByteArray(str) { //\\r\\n var splitStr = [];\\r\\n var j = 0;\\r\\n for (let i = 0; i < str.length; i += 2) {\\r\\n splitStr[j] = str.substring(i, i + 2);\\r\\n j++;\\r\\n }\\r\\n var bytes = [];\\r\\n var bytePos = 0;\\r\\n for (let i = 0; i < splitStr.length; i++) {\\r\\n var byteStr = splitStr[i];\\r\\n var b = parseInt(byteStr, 16);\\r\\n if (b < 256) {\\r\\n bytes[bytePos] = b;\\r\\n bytePos++;\\r\\n }\\r\\n }\\r\\n return bytes;\\r\\n }\\r\\n\\r\\n function changeEndianness(string) { //\\r\\n const result = [];\\r\\n let len = string.length - 2;\\r\\n while (len >= 0) {\\r\\n result.push(string.substr(len, 2));\\r\\n len -= 2;\\r\\n }\\r\\n return result.join('');\\r\\n }\\r\\n\\r\\n function hex2bin(hex) { //\\r\\n return (parseInt(hex, 16).toString(2)).padStart(8, '0');\\r\\n }\\r\\n\\r\\n function calculateCheckSum(payloadData) { // check if payload checksum is valid\\r\\n var checksum = byteStringToByteArray(payloadData);\\r\\n checksum = crc16byte(checksum);\\r\\n checksum = decimalToHex(checksum);\\r\\n checksum = ('0000' + checksum).slice(-4).toUpperCase();\\r\\n return changeEndianness(checksum);\\r\\n }\\r\\n\\r\\n function crc16byte(s) { //\\r\\n var crc = 0x0000;\\r\\n var j, i;\\r\\n for (i = 0; i < s.length; i++) {\\r\\n c = s[i];\\r\\n if (c > 255) {\\r\\n throw new RangeError();\\r\\n }\\r\\n j = (c ^ (crc >> 8)) & 0xFF;\\r\\n crc = crcTable[j] ^ (crc << 8);\\r\\n }\\r\\n return ((crc ^ 0) & 0xFFFF);\\r\\n }\\r\\n\\r\\n function debug(str) { // write debug info to console log, if localTesting\\r\\n if (localTesting === \\\"True\\\") {\\r\\n console.log(str);\\r\\n }\\r\\n }\\r\\n\\r\\n function decimalToHex(x) { // decimal to hex\\r\\n x = x.toString(16).toUpperCase();\\r\\n return x;\\r\\n }\\r\\n\\r\\n function hex_to_ascii(str1) { // Hex to Ascii \\r\\n var hex = str1.toString();\\r\\n var str = '';\\r\\n for (var n = 0; n < hex.length; n += 2) {\\r\\n str += String.fromCharCode(parseInt(hex.substr(n, 2), 16));\\r\\n }\\r\\n return str;\\r\\n }\\r\\n\\r\\n function hexToDecimalSigned(hex) { // hex to decimal\\r\\n if (hex.length % 2 != 0) {\\r\\n hex = \\\"0\\\" + hex;\\r\\n }\\r\\n var num = parseInt(hex, 16);\\r\\n var maxVal = Math.pow(2, hex.length / 2 * 8);\\r\\n if (num > maxVal / 2 - 1) {\\r\\n num = num - maxVal;\\r\\n }\\r\\n return num;\\r\\n }\\r\\n\\r\\n function hexToDecimal(x) {\\r\\n x = parseInt(x, 16);\\r\\n return x;\\r\\n }\\r\\n\\r\\n function sendMessageToLocalhostNoWait(str) { // sends message to system, closing connection after\\r\\n var server;\\r\\n if (localTesting) {\\r\\n console.log('local testing - sending to acceptance server the message ... ');\\r\\n console.log(str);\\r\\n server = '52.174.17.77';\\r\\n } else {\\r\\n server = '127.0.0.1';\\r\\n }\\r\\n var c = net.createConnection(5678, server);\\r\\n c.on('error', function(error) {\\r\\n c = net.createConnection(5678, server);\\r\\n });\\r\\n c.write(`${str}`);\\r\\n c.end();\\r\\n }\\r\\n // modify to return the object that contains your data\\r\\n return dataToReceiver;\\r\\n}\\r\\n// params is not defined locally -> export as module\\r\\nif (typeof(params) === 'undefined') {\\r\\n module.exports = {\\r\\n execute_ops\\r\\n }\\r\\n} else { // on server use local defined vars\\r\\n let return_values = execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, false)\\r\\n // define global returns\\r\\n msg = return_values;\\r\\n}\",\"Type\":0,\"ProtocolActionObjects\":[]}","Timestamp":1734463709},{"Type":1,"NewValue":"{\"Id\":313,\"Name\":\"Access TEC Roam\",\"Operation\":\"function execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, localTesting) {\\r\\n ///////////////////////////////////////////////////////////////////////////////\\r\\n //\\r\\n // Roam protocol - please see variables and typical values in order below\\r\\n // TECRoam-CYC;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;SIGNAL=<<signal_strength>>;WM=<<work_mode>>;GENERAL=<<general>>\\r\\n // TECRoam-CYC;861629050193550;STATUS=WIFISource,CellTower;TIME=1673950279;BATP=84;LGPS=undefined;LWIF=-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369;LLBS=214,1,13,768,38529798;LBEACON=undefined;BLE=undefined;GENERAL=statusDevice:WIFISource,CellTower,battery:84,cellNetworkSignal:14,workMode:6,wifiTowers:-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369,214,1,13,768,38529798,;\\\",\\r\\n //\\r\\n // Author: Joe Bloggs\\r\\n // Created: 01/01/0000\\r\\n // Last modified: 12/04/2024\\r\\n //\\r\\n ///////////////////////////////////////////////////////////////////////////////\\r\\n if (typeof localTesting === \\\"undefined\\\") {\\r\\n var localTesting = \\\"False\\\";\\r\\n }\\r\\n const crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,\\r\\n 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,\\r\\n 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\\r\\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,\\r\\n 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,\\r\\n 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\\r\\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,\\r\\n 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,\\r\\n 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\\r\\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,\\r\\n 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,\\r\\n 0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\\r\\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,\\r\\n 0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,\\r\\n 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\\r\\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,\\r\\n 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,\\r\\n 0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\\r\\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,\\r\\n 0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,\\r\\n 0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\\r\\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,\\r\\n 0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,\\r\\n 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\\r\\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,\\r\\n 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,\\r\\n 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\\r\\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,\\r\\n 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,\\r\\n 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\\r\\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,\\r\\n 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\\r\\n ];\\r\\n var codeValues = [];\\r\\n AddValue(codeValues, 'protocol_template', 'Roam');\\r\\n AddValue(codeValues, 'product', serverParams.ProductName);\\r\\n var dataToReceiver = [];\\r\\n var configsToAck = [];\\r\\n var configsToUpdate = [];\\r\\n var configsToSend = [];\\r\\n if (globalTemplate == \\\"True\\\") {\\r\\n if (raw.startsWith('esendex')) {\\r\\n AddValue(codeValues, 'rawMsg', raw);\\r\\n //general SMS message\\r\\n messageForReceiver = (`Roam-SMS;${serverParams.Imei};${raw}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n return;\\r\\n }\\r\\n AddValue(codeValues, 'raw', raw);\\r\\n AddValue(codeValues, 'rawMsg', rawFromBytes);\\r\\n var event_time, location_time, location_accuracy, speed, fix_state, latitude, longitude;\\r\\n var homeBeacon = '';\\r\\n var homeWiFi = '';\\r\\n var contacts = '';\\r\\n var gps_data = '';\\r\\n var wifi_data = '';\\r\\n var status_data = '';\\r\\n var lbs_data = '';\\r\\n var beacon_data = '';\\r\\n var ble_data = '';\\r\\n var smart_data = '';\\r\\n //parse header & properties\\r\\n var message = rawFromBytes;\\r\\n var properties = message.substring(2, 4);\\r\\n var lengthLittleEndian = message.substring(4, 8);\\r\\n var total_length = lengthLittleEndian.substring(2, 4) + lengthLittleEndian.substring(0, 2);\\r\\n total_length = 2 * hexToDecimal(total_length.substring(0, 4));\\r\\n var messageForReceiver;\\r\\n var sequenceID = message.substring(12, 16);\\r\\n var command = message.substring(16, 18);\\r\\n var index = 18;\\r\\n var prefix = 'AB' + '00';\\r\\n var lengthAck = 0;\\r\\n var ack = '';\\r\\n var needsAck = false;\\r\\n var hasConfigs = false;\\r\\n var general = '';\\r\\n var timestamp = '';\\r\\n var info = '';\\r\\n var customID = '';\\r\\n latitude = 0;\\r\\n longitude = 0;\\r\\n location_accuracy = 0; // GPS location adds the accuracy\\r\\n location_time = event_time = '';\\r\\n speed = 0.0;\\r\\n var location_type = '0';\\r\\n //var gen_location = '0'; \\r\\n var i; // general loop counter\\r\\n var battery_percentage = '';\\r\\n var cellNetworkSignal = '';\\r\\n var workMode = '';\\r\\n //mask bitwise (properties should be '10')\\r\\n if ((parseInt(properties) & 8) == 8) { // 22/7 change ((parseInt(properties) & 16) == 16)\\r\\n needsAck = true;\\r\\n }\\r\\n // Loop to decode multi-ACK msg\\r\\n if (message.includes('AB00030008C7')) {\\r\\n const multiack = message.split('AB00');\\r\\n for (let i = 1; i < multiack.length; i++) {\\r\\n message = 'AB00' + multiack[i];\\r\\n debug(message);\\r\\n decoder(message);\\r\\n } // FOR multiACK\\r\\n } else decoder(message); // IF multiACK\\r\\n } else if (oystaTemplate == 'True') { // Oysta Template \\r\\n AddValue(codeValues, 'rawMsg', raw);\\r\\n if ((params.gps_data) && (params.gps_data !== '')) { // decode gps data if exists\\r\\n var gen_location = params.gps_data.split(',');\\r\\n var latitude = gen_location[0];\\r\\n var longitude = gen_location[1];\\r\\n var location_accuracy = gen_location[2];\\r\\n var speed = gen_location[3];\\r\\n var direction = gen_location[4];\\r\\n var altitude = gen_location[5];\\r\\n var satellites = gen_location[6];\\r\\n var mileage = gen_location[7];\\r\\n if (location_accuracy !== 0) {\\r\\n var fix_state = 1;\\r\\n } else {\\r\\n var fix_state = 0;\\r\\n }\\r\\n AddValue(codeValues, 'latitude', latitude);\\r\\n AddValue(codeValues, 'longitude', longitude);\\r\\n AddValue(codeValues, 'speed', speed);\\r\\n AddValue(codeValues, 'direction', direction);\\r\\n AddValue(codeValues, 'altitude', altitude);\\r\\n AddValue(codeValues, 'location_accuracy', location_accuracy);\\r\\n AddValue(codeValues, 'mileage', mileage);\\r\\n AddValue(codeValues, 'satellites', satellites);\\r\\n AddValue(codeValues, 'fix_state', fix_state);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.lbs_data) && (params.lbs_data !== '')) { // decode lbs data if exists\\r\\n var variables = []; //Define array\\r\\n variables = params.lbs_data.split(',');\\r\\n var index = 2;\\r\\n for (i = 0; i < ((variables.length - 2) / 3); i++) { //loop for number of LBS sets on incoming data.\\r\\n if (variables[i] !== '0') { //Check if LBS data is present (device sends 0 if data not present)/actually exists.\\r\\n AddValue(codeValues, 'mcc', variables[0]);\\r\\n AddValue(codeValues, 'mnc', variables[1]);\\r\\n AddValue(codeValues, 'lac', variables[index]);\\r\\n AddValue(codeValues, 'signal_lbs', variables[index + 1]);\\r\\n AddValue(codeValues, 'cellid', variables[index + 2]);\\r\\n }\\r\\n index += 3;\\r\\n }\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.wifi_data) && (params.wifi_data !== '')) { // decode wifi data if exists\\r\\n var bssid_array = params.wifi_data.split(',');\\r\\n var index = 0;\\r\\n for (let i = 0; i < (bssid_array.length / 2); i++) {\\r\\n if (bssid_array[index + 1] != '000000000000') { //Check if MAC address is not 000000000000 - seems to be the default MAC of the device itself\\r\\n AddValue(codeValues, 'bssid', bssid_array[index + 1]);\\r\\n AddValue(codeValues, 'signal_wifi', bssid_array[index]);\\r\\n }\\r\\n index += 2;\\r\\n }\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n // when Beacon is detected and it isn't flic BLE detected\\r\\n if (((params.beacon_data) && (params.beacon_data !== '')) && !((params.ble_data) && (params.ble_data !== ''))) {\\r\\n var gen_location = params.beacon_data.split(',');\\r\\n var latitude = gen_location[0];\\r\\n var longitude = gen_location[1];\\r\\n var mac = gen_location[2];\\r\\n var label = gen_location[3];\\r\\n AddValue(codeValues, 'latitude', latitude);\\r\\n AddValue(codeValues, 'longitude', longitude);\\r\\n //AddValue(codeValues,'location_accuracy', '3'); // para mostrar que si hay accuracy muestra como source GPS\\r\\n // AddValue(codeValues,'beacon_mac', mac);\\r\\n //AddValue(codeValues,'beacon_major', 0);\\r\\n //AddValue(codeValues,'beacon_minor', 0);\\r\\n //<<beacon_mac>>,<<beacon_major>>,<<beacon_minor>> \\r\\n if (mac) {\\r\\n AddValue(codeValues, 'beacon_mac', mac);\\r\\n var simpleQuery = [{\\r\\n 'code': 'Mac',\\r\\n 'value': mac,\\r\\n }];\\r\\n var simpleQueryLabel = {\\r\\n 'table': 'beacons',\\r\\n 'select': 'Name',\\r\\n 'query': simpleQuery\\r\\n };\\r\\n var labels = [];\\r\\n labels.push(JSON.stringify(simpleQueryLabel));\\r\\n AddValue(codeValues, 'oysta_labels', JSON.stringify(labels));\\r\\n }\\r\\n if (params.beacon_major) {\\r\\n AddValue(codeValues, 'beacon_major', params.beacon_major);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_major', 0);\\r\\n }\\r\\n if (params.beacon_minor) {\\r\\n AddValue(codeValues, 'beacon_minor', params.beacon_minor);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_minor', 0);\\r\\n }\\r\\n //AddValue(codeValues,'oysta_labels', label);\\r\\n //AddValue(codeValues,'oysta_value', mac);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.ble_data) && (params.ble_data !== '')) { // decode ble data if exists\\r\\n var gen_location = params.ble_data.split(',');\\r\\n var flag = gen_location[0];\\r\\n var batLevel = gen_location[1];\\r\\n var mac2 = gen_location[2];\\r\\n //var label = gen_location[3];\\r\\n AddValue(codeValues, 'flagBLE', flag);\\r\\n AddValue(codeValues, 'batBLE', batLevel);\\r\\n //AddValue(codeValues,'location_accuracy', '3'); // para mostrar que si hay accuracy muestra como source GPS\\r\\n // AddValue(codeValues,'beacon_mac', mac);\\r\\n //AddValue(codeValues,'beacon_major', 0);\\r\\n //AddValue(codeValues,'beacon_minor', 0);\\r\\n //<<beacon_mac>>,<<beacon_major>>,<<beacon_minor>> \\r\\n if (mac2) {\\r\\n AddValue(codeValues, 'beacon_mac', mac2);\\r\\n var simpleQuery2 = [{\\r\\n 'code': 'Mac',\\r\\n 'value': mac2,\\r\\n }];\\r\\n var simpleQueryLabel2 = {\\r\\n 'table': 'beacons',\\r\\n 'select': 'Name',\\r\\n 'query': simpleQuery2\\r\\n };\\r\\n var labels2 = [];\\r\\n labels2.push(JSON.stringify(simpleQueryLabel2));\\r\\n AddValue(codeValues, 'oysta_labels', JSON.stringify(labels2));\\r\\n }\\r\\n if (params.beacon_major) {\\r\\n AddValue(codeValues, 'beacon_major', params.beacon_major);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_major', 0);\\r\\n }\\r\\n if (params.beacon_minor) {\\r\\n AddValue(codeValues, 'beacon_minor', params.beacon_minor);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_minor', 0);\\r\\n }\\r\\n //AddValue(codeValues,'oysta_labels', label);\\r\\n //AddValue(codeValues,'oysta_value', mac);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n /* meter mas tarde... \\r\\n if (params.smart_data !== 'undefined') {\\r\\n var gen_location = params.smart_data.split(',')\\r\\n var latitude = gen_location[0]\\r\\n var longitude = gen_location[1]\\r\\n var location_accuracy = gen_location[2]\\r\\n var altitude = gen_location[3]\\r\\n AddValue(codeValues,'latitude', latitude);\\r\\n AddValue(codeValues,'longitude', longitude);\\r\\n AddValue(codeValues,'altitude', altitude);\\r\\n AddValue(codeValues,'location_accuracy', location_accuracy);\\r\\n }\\r\\n */\\r\\n /*else if ((params.event_time) && (params.event_time == '')) {\\r\\n var event_time = moment.utc().unix();\\r\\n AddValue(codeValues,'event_time', event_time);\\r\\n } revisar mas adelante*/\\r\\n // to parse SMS info from the device\\r\\n switch (messageTypeLocalCode) {\\r\\n case 'COMM-SMS': // SMS message sent in\\r\\n if (params.data.startsWith('Device location request')) {\\r\\n configsToAck.push(configIds.Controls.RealTimeLocate);\\r\\n } else if (params.data.startsWith('Set IP ok')) {\\r\\n configsToAck.push(configIds.Controls.GetCurrentConfig);\\r\\n } else if (params.data.startsWith('IMEI:')) {\\r\\n configsToAck.push(configIds.Controls.GetFirmwareVersion);\\r\\n } else if (params.data.startsWith('Set IP ok')) {\\r\\n configsToAck.push(configIds.Controls.ClearBufferedMessages);\\r\\n } else if (params.data.startsWith('flush ok')) {\\r\\n configsToAck.push(configIds.Controls.GetCurrentConfig);\\r\\n } else if (params.data.startsWith('Set Roam-')) {\\r\\n configsToAck.push(configIds.SMSPrefix.SMSPrefix);\\r\\n } else if (params.data.startsWith('set live tracking')) {\\r\\n configsToAck.push(configIds.Controls.Trace);\\r\\n } else if (params.data.startsWith('reboot ok')) {\\r\\n configsToAck.push(configIds.Controls.Reboot);\\r\\n } else if (params.data.startsWith('GPS')) {\\r\\n configsToAck.push(configIds.Controls.RealTimeLocate);\\r\\n var i1 = params.data.search('Now:')\\r\\n var i2 = params.data.search('Loc Time:')\\r\\n var i3 = params.data.search('Speed:')\\r\\n var i4 = params.data.search('Altitude:')\\r\\n var i5 = params.data.search('Battery:')\\r\\n var i6 = params.data.search('google')\\r\\n var eventTime = params.data.substring(i2 + 9, i3)\\r\\n var Speed = params.data.substring(i3 + 6, i4 - 3)\\r\\n if (params.data.substring(i4 - 3, i4) == 'mph') {\\r\\n Speed = Speed * 0.44704\\r\\n } else if (params.data.substring(i4 - 3, i4) == 'kph') {\\r\\n Speed = Speed / 3.6\\r\\n }\\r\\n var latlong = params.data.substring(i6 + 18)\\r\\n location_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n messageForReceiver = (`Roam-RTL;${params.imei};${location_time};${location_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n //event_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n //messageForReceiver = (`CARE-RTL;${params.imei};${event_time};${event_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n case 'ACK-FIRM-SMS': // Firmware info sent by SMS\\r\\n //var i1 = params.data.search('IMEI:')\\r\\n //var i2 = params.data.search('GSM signal quality:')\\r\\n var i3 = params.data.search('Software version:')\\r\\n var sub = params.data.substring(i3 + 17, params.data.length)\\r\\n var i4 = sub.search('version:');\\r\\n var fwVersion = sub.substring(i4, sub.length);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n break;\\r\\n case 'ACK-FALLSENS-SMS': // Fall sensibility info sent by SMS\\r\\n var i1 = params.data.search('Fall alarm:');\\r\\n var sensibility = params.data.substring(i1 + 11, i1 + 14);\\r\\n var i2 = params.data.search('level:');\\r\\n sensibility = sensibility + ', ' + params.data.substring(i2 + 6, i2 + 7);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"sensibility\\\", sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadEmergencySettings.FallSensitivity, sensibility);\\r\\n configsToAck.push(configIds.ReadEmergencySettings.FallSensitivity);\\r\\n break;\\r\\n case 'ACK-BEAC-SMS': // Beacon list info sent by SMS\\r\\n var i1 = raw.search('1,');\\r\\n //var i2 = params.data.search('2,');\\r\\n //var homeBeacon = params.data.substring(i1+2, i2);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"homeBeacon\\\", raw.substring(i1, raw.length));\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.HomeBeacon, raw.substring(i1, raw.length));\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.HomeBeacon);\\r\\n break;\\r\\n case 'ACK-CONTAC-SMS': // Contact list info sent by SMS\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n var i1 = raw.search('A1:');\\r\\n if (raw.includes('A2:')) {\\r\\n var i2 = raw.search('A2:');\\r\\n } else {\\r\\n var i2 = raw.search('A10:');\\r\\n }\\r\\n var tel = raw.substring(i1 + 4, i2);\\r\\n AddValue(codeValues, \\\"EmergencyNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.EmergencyNumber, tel);\\r\\n configsToAck.push(configIds.ReadAlertSettings.EmergencyNumber);\\r\\n i2 = raw.search('A10:')\\r\\n tel = raw.substring(i2 + 4, raw.length);\\r\\n AddValue(codeValues, \\\"SMSGateway\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.SMSGateway, tel);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.SMSGateway);\\r\\n AddValue(codeValues, \\\"ApprovedContacts\\\", raw.substring(i1, raw.length));\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.ApprovedContacts, raw.substring(i1, raw.length));\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.ApprovedContacts);\\r\\n break;\\r\\n case 'ACK-SERV-SMS': // APN and Server info sent by SMS\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n var i1 = params.data.search('APN:')\\r\\n var i2 = params.data.search('IP:')\\r\\n var i3 = params.data.search('Move')\\r\\n var apn = params.data.substring(i1 + 4, i2);\\r\\n AddValue(codeValues, \\\"apn\\\", apn);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.APN, apn);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.APN);\\r\\n var serverDetails = params.data.substring(i2 + 3, i3);\\r\\n AddValue(codeValues, \\\"server\\\", serverDetails);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.Server, serverDetails);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.Server);\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case 'RTL-GPS': // SRTL sent in via SMS with no pre-code\\r\\n var i3 = params.data.search('Speed:')\\r\\n var i4 = params.data.search('Altitude:')\\r\\n var i5 = params.data.search('Battery:')\\r\\n var i6 = params.data.search('google')\\r\\n var eventTime = params.data.substring(0, i3)\\r\\n var Speed = params.data.substring(i3 + 6, i4 - 3)\\r\\n if (params.data.substring(i4 - 3, i4) == 'mph') {\\r\\n Speed = Speed * 0.44704\\r\\n } else if (params.data.substring(i4 - 3, i4) == 'kph') {\\r\\n Speed = Speed / 3.6\\r\\n }\\r\\n var latlong = params.data.substring(i6 + 18)\\r\\n location_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n messageForReceiver = (`Roam-RTL;${params.imei};${location_time};${location_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n }\\r\\n if (!params.event_time && !event_time) { // if params.event_time undefined - set it to now. \\r\\n var event_time = moment.utc().unix();\\r\\n AddValue(codeValues, 'event_time', event_time);\\r\\n }\\r\\n // if (!params.location_time && !location_time) { // if params.location_time undefined - set it to now. \\r\\n // var location_time = moment.utc().unix();\\r\\n // AddValue(codeValues, 'location_time', location_time);\\r\\n //}\\r\\n }\\r\\n var dataToReceiver = {\\r\\n 'values': codeValues\\r\\n };\\r\\n if (configsToAck.length > 0) {\\r\\n dataToReceiver.configsToAck = configsToAck\\r\\n };\\r\\n if (configsToUpdate.length > 0) {\\r\\n dataToReceiver.configsToUpdate = configsToUpdate\\r\\n };\\r\\n if (configsToSend.length > 0) {\\r\\n dataToReceiver.configsToSend = configsToSend\\r\\n };\\r\\n console.log(dataToReceiver);\\r\\n //}\\r\\n //return {\\r\\n // 'output': dataToReceiver\\r\\n //}\\r\\n // end of main operation\\r\\n // define functions used in operation\\r\\n function AddValue(codeValueArray, p1, p2) { // push code value pair into array\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n codeValueArray.push(cvpair);\\r\\n }\\r\\n\\r\\n function decoder(str) { // decode rawdata\\r\\n // CARE Decoder\\r\\n AddValue(codeValues, 'Message : ', str);\\r\\n var message = str;\\r\\n // need to check if checksum is correct for possible msg corruption 10/03/23\\r\\n var checksum = message.substring(8, 12);\\r\\n var messageBody = message.substring(16, message.length);\\r\\n debug('message =' + message);\\r\\n debug('checksum =' + checksum);\\r\\n debug('calculateCheckSum =' + calculateCheckSum(messageBody));\\r\\n if (calculateCheckSum(messageBody) == checksum) { // payload is valid\\r\\n debug(\\\"message has valid checksum\\\");\\r\\n var messageBody = command; // update value for the ACK\\r\\n debug('command =' + command);\\r\\n if (command == '01') {\\r\\n while (index < total_length + 16) {\\r\\n // gen_location = '0'; //cambiado 30/09\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n var keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n debug('key = ' + key);\\r\\n debug('value = ' + value);\\r\\n switch (key) {\\r\\n //Device ID\\r\\n case '01':\\r\\n var imei = hex_to_ascii(value);\\r\\n break;\\r\\n //Alarm code\\r\\n case '02':\\r\\n var alarm = 'CYC';\\r\\n var alarmCode = value.substring(0, 8);\\r\\n alarmCode = changeEndianness(alarmCode);\\r\\n var timestampHex = value.substring(8, 16);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n event_time = timestamp;\\r\\n var alarmCodeInt = hexToDecimal(alarmCode);\\r\\n var alarmCodeExt = value.substring(16, 24);\\r\\n alarmCodeExt = changeEndianness(alarmCodeExt);\\r\\n var alarmCodeExtInt = hexToDecimal(alarmCodeExt);\\r\\n //Extended Alerts\\r\\n // Fall off\\r\\n if ((alarmCodeExtInt & 1) == 1) {\\r\\n var alarm = 'ALF-C';\\r\\n }\\r\\n // Welfare Check-out\\r\\n else if ((alarmCodeExtInt & 2) == 2) {\\r\\n var alarm = 'ALA-C';\\r\\n }\\r\\n // Standard Alerts\\r\\n //Battery low\\r\\n else if ((alarmCodeInt & 1) == 1) {\\r\\n var alarm = 'BATL';\\r\\n }\\r\\n //Overspeed\\r\\n else if ((alarmCodeInt & 2) == 2) {\\r\\n var alarm = 'ALSP';\\r\\n }\\r\\n //Fall\\r\\n else if ((alarmCodeInt & 4) == 4) {\\r\\n var alarm = 'ALF';\\r\\n }\\r\\n //Tilt\\r\\n else if ((alarmCodeInt & 8) == 8) {\\r\\n var alarm = 'Tilt';\\r\\n } else if ((alarmCodeInt & 16) == 16) {\\r\\n if ((alarmCodeInt & 16777216) == 16777216) {\\r\\n var alarm = 'Geo1-IN';\\r\\n } else {\\r\\n var alarm = 'Geo1-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 32) == 32) {\\r\\n if ((alarmCodeInt & 33554432) == 33554432) {\\r\\n var alarm = 'Geo2-IN';\\r\\n } else {\\r\\n var alarm = 'Geo2-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 64) == 64) {\\r\\n if ((alarmCodeInt & 67108864) == 67108864) {\\r\\n var alarm = 'Geo3-IN';\\r\\n } else {\\r\\n var alarm = 'Geo3-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 128) == 128) {\\r\\n if ((alarmCodeInt & 134217728) == 134217728) {\\r\\n var alarm = 'Geo4-IN';\\r\\n } else {\\r\\n var alarm = 'Geo4-OUT';\\r\\n }\\r\\n }\\r\\n //Power Off\\r\\n else if ((alarmCodeInt & 256) == 256) {\\r\\n var alarm = 'PWRF';\\r\\n }\\r\\n //Power On\\r\\n else if ((alarmCodeInt & 512) == 512) {\\r\\n var alarm = 'PWRN';\\r\\n }\\r\\n //Motion\\r\\n else if ((alarmCodeInt & 1024) == 1024) {\\r\\n var alarm = 'ALMOV';\\r\\n }\\r\\n //No Motion\\r\\n else if ((alarmCodeInt & 2048) == 2048) {\\r\\n var alarm = 'ALNM';\\r\\n }\\r\\n //SOS\\r\\n else if ((alarmCodeInt & 4096) == 4096) {\\r\\n var alarm = 'ALSOS';\\r\\n } else if ((alarmCodeInt & 8192) == 8192) {\\r\\n var alarm = 'Side1';\\r\\n } else if ((alarmCodeInt & 16384) == 16384) {\\r\\n var alarm = 'Side2';\\r\\n }\\r\\n //Battery charging\\r\\n else if ((alarmCodeInt & 32768) == 32768) {\\r\\n var alarm = 'BATCN';\\r\\n }\\r\\n //Battery no charging\\r\\n else if ((alarmCodeInt & 65536) == 65536) {\\r\\n var alarm = 'BATCF';\\r\\n }\\r\\n //SOS Ending\\r\\n // Temporary Commented until we know exactly how it works. 22/09/2022\\r\\n else if ((alarmCodeInt & 131072) == 131072) {\\r\\n var alarm = 'SOSEnding';\\r\\n info = 'Alarm Finished';\\r\\n }\\r\\n //Amber Alert EC03 only\\r\\n else if ((alarmCodeInt & 262144) == 262144) {\\r\\n var alarm = 'ALAO';\\r\\n }\\r\\n // welfare Alert check-in ALA-O\\r\\n else if ((alarmCodeInt & 524288) == 524288) {\\r\\n var alarm = 'ALA-O';\\r\\n }\\r\\n // Amber alert Ending ALA-C\\r\\n else if ((alarmCodeInt & 1048576) == 1048576) {\\r\\n var alarm = 'ALA-C';\\r\\n }\\r\\n // Amber alert Ending ALA-C\\r\\n //else if ((alarmCodeInt & 1048576) == 1048576) {\\r\\n // var alarm = 'ALA-C';\\r\\n //}\\r\\n // Fall-Down Alert ending\\r\\n else if ((alarmCodeInt & 2097152) == 2097152) {\\r\\n var alarm = 'ALF-C';\\r\\n }\\r\\n // welfare Alert Ending ALA\\r\\n else if ((alarmCodeInt & 4194304) == 4194304) {\\r\\n var alarm = 'ALA';\\r\\n }\\r\\n // Beacon absent Alert 11/10/22. Need to be added in msg types\\r\\n //else if ((alarmCodeInt & 16777216) == 16777216) {\\r\\n // var alarm = 'BEA';\\r\\n //}\\r\\n general += 'alarm:' + alarm + ',';\\r\\n break;\\r\\n //Custom ID\\r\\n case '03':\\r\\n // in value is customID.... '06' for Watch Care\\r\\n // if ((imei != '860470063029395') && (imei != '860470063035947')) {\\r\\n //update customID to check if belongs to this type of device\\r\\n customID = value;\\r\\n if (value != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n } else {\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n general += 'customID:' + value + ',';\\r\\n break;\\r\\n }\\r\\n //Historical Data Completed\\r\\n case '10': // indica q se han terminado de enviar todos los datos historicos.\\r\\n var histData = true;\\r\\n break;\\r\\n //GPS location\\r\\n case '20':\\r\\n location_type = 'GPS';\\r\\n var latitudeHex = value.substring(0, 8);\\r\\n var longitudeHex = value.substring(8, 16);\\r\\n var speedHex = value.substring(16, 20);\\r\\n var directionHex = value.substring(20, 24);\\r\\n var altitudeHex = value.substring(24, 28);\\r\\n var location_accuracyHex = value.substring(28, 32);\\r\\n var mileageHex = value.substring(32, 40);\\r\\n var satellitesHex = value.substring(40, 42);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n speed = ((hexToDecimal(changeEndianness(speedHex))) / 3.6).toFixed(2); //date 14-02-2023 in m/s\\r\\n var direction = hexToDecimal(changeEndianness(directionHex));\\r\\n var altitude = hexToDecimal(changeEndianness(altitudeHex)); // in meters\\r\\n //location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex)) * 5;\\r\\n // Range: 0.5 to 99.9 \\r\\n location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex));\\r\\n //var mileage = hexToDecimal(changeEndianness(mileageHex)) this is in km/h we need m/s\\r\\n var mileage = hexToDecimal(changeEndianness(mileageHex)); // in meters date 14-02-2023\\r\\n var satellites = hexToDecimal(satellitesHex);\\r\\n // location_time = timestamp;\\r\\n //<<latitude>>,<<longitude>>,<<speed>>,<<altitude>>,<<location_time>>\\r\\n gps_data = `${latitude},${longitude},${location_accuracy},${speed},${direction},${altitude},${satellites},${mileage}`;\\r\\n general += 'gps location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //WIFI Towers\\r\\n case '22':\\r\\n location_type = 'WIFI';\\r\\n var numWifi = Math.round((hexToDecimal(keyLengthHex) - 1) / 7);\\r\\n //location_time = timestamp;\\r\\n var wifiTowers = value;\\r\\n general += 'wifiTowers:';\\r\\n var indexWifi = 0;\\r\\n var bssid_array = [];\\r\\n wifi_data = '';\\r\\n for (let i = 0; i < numWifi; i++) {\\r\\n wifi_data += hexToDecimalSigned(wifiTowers.substring(indexWifi, indexWifi + 2)) + ',' + wifiTowers.substring(indexWifi + 2, indexWifi + 14) + ',';\\r\\n indexWifi += 14;\\r\\n }\\r\\n wifi_data = wifi_data.slice(0, -1);\\r\\n general += wifi_data;\\r\\n break;\\r\\n //BLE Location Added 10/10/22\\r\\n case '23':\\r\\n location_type = 'BLE';\\r\\n var mac = value.substring(0, 12);\\r\\n var latitudeHex = value.substring(12, 20);\\r\\n var longitudeHex = value.substring(20, 28);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n var address = hex_to_ascii(value.substring(28, value.length));\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n // location_time = timestamp;\\r\\n ble_data = `${latitude},${longitude},${mac},${address}`;\\r\\n general += 'BLE location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //General Data , status_data\\r\\n case '24':\\r\\n //var general = 'true'\\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n }\\r\\n //else {\\r\\n // messageForReceiver = (`CareWatch-CYC;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};`);\\r\\n //}\\r\\n // reset variables\\r\\n //alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n location_time = timestamp;\\r\\n // HardCode to fix possible issue in protocol\\r\\n // event_time = timestamp; \\r\\n event_time = moment.utc().unix();\\r\\n // end of hard code\\r\\n var statusHex = changeEndianness(value.substring(8, 16));\\r\\n var statusInt = hexToDecimal(statusHex);\\r\\n var statusDevice = '';\\r\\n if ((statusInt & 1) == 1) {\\r\\n statusDevice += 'GPS,';\\r\\n }\\r\\n if ((statusInt & 2) == 2) {\\r\\n statusDevice += 'WIFISource,';\\r\\n }\\r\\n if ((statusInt & 4) == 4) {\\r\\n statusDevice += 'CellTower,';\\r\\n }\\r\\n if ((statusInt & 8) == 8) {\\r\\n statusDevice += 'BLELocation,';\\r\\n }\\r\\n //params.BatteryStatus.BatteryStatus = '1';\\r\\n if ((statusInt & 16) == 16) {\\r\\n statusDevice += 'Charging,';\\r\\n // var alarm = 'BATCN';\\r\\n //configs.BatteryStatus.BatteryStatus = '1';\\r\\n /* if (configs.BatteryStatus.BatteryStatus !== '1') {\\r\\n hasConfigs = true;\\r\\n var batteryStatus = '1';\\r\\n var alarm = 'BATCN';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }*/\\r\\n }\\r\\n if ((statusInt & 32) == 32) {\\r\\n statusDevice += 'FUllyCharged,';\\r\\n //var alarm = 'BATF';\\r\\n // configs.BatteryStatus.BatteryStatus = '3';\\r\\n /* if (configs.BatteryStatus.BatteryStatus !== '3') {\\r\\n hasConfigs = true;\\r\\n var batteryStatus = '3';\\r\\n var alarm = 'BATF';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }*/\\r\\n }\\r\\n /* if (!((statusInt & 32) == 32) & !((statusInt & 16) == 16)) {\\r\\n statusDevice += 'Not Charging,';\\r\\n var alarm = 'BATCF';\\r\\n //configs.BatteryStatus.BatteryStatus = '2';\\r\\n if (configs.BatteryStatus.BatteryStatus !== '2') {\\r\\n var batteryStatus = '2';\\r\\n var alarm = 'BATCF';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }\\r\\n }*/\\r\\n if ((statusInt & 64) == 64) {\\r\\n statusDevice += 'Reboot,';\\r\\n }\\r\\n if ((statusInt & 128) == 128) {\\r\\n statusDevice += 'HistoricalData,';\\r\\n }\\r\\n if ((statusInt & 256) == 256) {\\r\\n statusDevice += 'AGPSDataValid,';\\r\\n }\\r\\n if ((statusInt & 512) == 512) {\\r\\n statusDevice += 'Motion,';\\r\\n }\\r\\n if ((statusInt & 1024) == 1024) {\\r\\n statusDevice += 'SmartLocating,';\\r\\n }\\r\\n if ((statusInt & 2048) == 2048) { //isHome\\r\\n statusDevice += 'BeaconLocation,';\\r\\n }\\r\\n if ((statusInt & 4096) == 4096) {\\r\\n statusDevice += 'BLEConnected,';\\r\\n }\\r\\n if ((statusInt & 16384) == 16384) {\\r\\n statusDevice += 'HomeWiFi,';\\r\\n }\\r\\n statusDevice = statusDevice.slice(0, -1);\\r\\n status_data = statusDevice; //to oysta template\\r\\n //statusHex = (statusHex);\\r\\n statusHex = hex2bin(statusHex);\\r\\n statusHex = ('00000000000000000000000000000000' + statusHex).slice(-32);\\r\\n battery_percentage = parseInt(statusHex.substring(0, 8), 2);\\r\\n cellNetworkSignal = parseInt(statusHex.substring(8, 13), 2);\\r\\n workMode = parseInt(statusHex.substring(13, 16), 2);\\r\\n general += 'statusDevice:' + statusDevice + ',';\\r\\n if (battery_percentage) {\\r\\n general += 'battery:' + battery_percentage + ',';\\r\\n }\\r\\n if (cellNetworkSignal) {\\r\\n general += 'cellNetworkSignal:' + cellNetworkSignal + ',';\\r\\n }\\r\\n if (workMode) {\\r\\n general += 'workMode:' + workMode + ',';\\r\\n }\\r\\n //messageForReceiver = (`CareWatch-CYC;${imei};${i};${event_time};${battery_percentage}`);\\r\\n break;\\r\\n //Call Records\\r\\n case '25':\\r\\n //Needed?\\r\\n break;\\r\\n //BLE Location 2\\r\\n case '26':\\r\\n //I don't understand\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Smart Location\\r\\n case '27':\\r\\n location_type = 'SMART';\\r\\n var latitudeHex = value.substring(0, 8);\\r\\n var longitudeHex = value.substring(8, 16);\\r\\n var location_accuracyHex = value.substring(16, 20);\\r\\n var altitudeHex = value.substring(20, 24);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n var altitude = hexToDecimal(changeEndianness(altitudeHex));\\r\\n //location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex)) * 5;\\r\\n //04/08/2022 se quita el multiplicador por 5 pq ya viene el valor en metros\\r\\n location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex));\\r\\n //location_time = timestamp;\\r\\n smart_data = `${latitude},${longitude},${location_accuracy},${altitude}`;\\r\\n general += 'smart location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //Beacon Location Added 11/10/22\\r\\n case '28':\\r\\n location_type = 'BEACON';\\r\\n // var alarm = 'EBZI';\\r\\n var latitudeHex = '00';\\r\\n var longitudeHex = '00';\\r\\n var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 1));\\r\\n var beacId = hexToDecimal(value.substring(1, 2));\\r\\n // msg includes descrip\\r\\n if ((flag & 4) == 4) {\\r\\n descr = hex_to_ascii(value.substring(18, value.length));\\r\\n }\\r\\n // msg includes lat/lon\\r\\n if ((flag & 8) == 8) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n }\\r\\n // msg includes lat/lon and description\\r\\n if ((flag & 12) == 12) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n descr = hex_to_ascii(value.substring(34, value.length));\\r\\n }\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var rssiHex = value.substring(14, 16);\\r\\n var rssi1Hex = value.substring(16, 18);\\r\\n rssi = hexToDecimalSigned(changeEndianness(rssiHex));\\r\\n rssi1 = hexToDecimalSigned(changeEndianness(rssi1Hex));\\r\\n // var latitudeHex = value.substring(18, 26);\\r\\n // var longitudeHex = value.substring(26, 34);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n //location_time = timestamp;\\r\\n beacon_data = `${latitude},${longitude},${mac},${descr}`;\\r\\n general += 'BEACON location (lat):' + latitude + ', (long):' + longitude + ', (mac):' + mac + ', (description):' + descr + ', (rssi):' + rssi + ', (listIndex):' + beacId + ',';\\r\\n break;\\r\\n // Beacon V2\\r\\n case '2C':\\r\\n location_type = 'BEACON';\\r\\n // var alarm = 'EBZI';\\r\\n var latitudeHex = '00';\\r\\n var longitudeHex = '00';\\r\\n var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 1));\\r\\n var beacId = hexToDecimal(value.substring(1, 2));\\r\\n // msg includes descrip\\r\\n if ((flag & 4) == 4) {\\r\\n let desc_leng = hexToDecimal(value.substring(20, 22));\\r\\n descr = hex_to_ascii(value.substring(22, 22 + (2 * desc_leng)));\\r\\n //descr = hex_to_ascii(value.substring(18, value.length));\\r\\n }\\r\\n // msg includes lat/lon\\r\\n if ((flag & 8) == 8) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n }\\r\\n // msg includes lat/lon and description\\r\\n if ((flag & 12) == 12) {\\r\\n latitudeHex = value.substring(20, 28);\\r\\n longitudeHex = value.substring(28, 36);\\r\\n let desc_leng = hexToDecimal(value.substring(36, 38));\\r\\n descr = hex_to_ascii(value.substring(38, 38 + (2 * desc_leng)));\\r\\n }\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var rssiHex = value.substring(14, 16);\\r\\n var rssi1Hex = value.substring(16, 18);\\r\\n rssi = hexToDecimalSigned(changeEndianness(rssiHex));\\r\\n rssi1 = hexToDecimalSigned(changeEndianness(rssi1Hex));\\r\\n var battery_beacon = hexToDecimal(value.substring(18, 20));\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n //location_time = timestamp;\\r\\n beacon_data = `${latitude},${longitude},${mac},${descr}`;\\r\\n general += 'BEACON location (lat):' + latitude + ', (long):' + longitude + ', (mac):' + mac + ', (description):' + descr + ', (rssi):' + rssi + ', (battery):' + battery_beacon + ', (listIndex):' + beacId + ',';\\r\\n break;\\r\\n //Cell Towers Note\\r\\n case '29':\\r\\n location_type = 'LBS';\\r\\n lbs_data = '';\\r\\n var mccHex = changeEndianness(value.substring(0, 4));\\r\\n var mncHex = value.substring(4, 6);\\r\\n var mcc = hexToDecimal(mccHex);\\r\\n lbs_data += mcc + ',';\\r\\n var mnc = hexToDecimal(mncHex);\\r\\n lbs_data += mnc + ',';\\r\\n var indexLbs = 6;\\r\\n var numTowers = (hexToDecimal(keyLengthHex) - 4) / 7;\\r\\n for (let i = 0; i < numTowers; i++) {\\r\\n var rxlHex = changeEndianness(value.substring(indexLbs, indexLbs + 2));\\r\\n var rxl = hexToDecimal(rxlHex);\\r\\n var lacHex = changeEndianness(value.substring(indexLbs + 2, indexLbs + 6));\\r\\n var lac = hexToDecimal(lacHex);\\r\\n var cellTowers = hexToDecimal(changeEndianness(value.substring(indexLbs + 6, indexLbs + 14)));\\r\\n lbs_data += rxl + ',' + lac + ',' + cellTowers + ',';\\r\\n indexLbs += 14;\\r\\n }\\r\\n lbs_data = lbs_data.slice(0, -1);\\r\\n general += lbs_data;\\r\\n break;\\r\\n case '30':\\r\\n //G-sensor. \\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n var numStep = (keyLength - 2) / 16;\\r\\n for (let j = 0; j < numStep; j++) {\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n //timestamp = hexToDecimalSigned(timestampHex);\\r\\n var stepHex = value.substring(8, 16);\\r\\n stepHex = changeEndianness(stepHex);\\r\\n var stepRate = hexToDecimal(stepHex);\\r\\n info = stepRate;\\r\\n //var alarmCode = 'True';\\r\\n var alarm = 'STP';\\r\\n general += ' step counting' + j + ':' + stepRate + ',';\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};STP=${info};LABEL=steps`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n //Activity\\r\\n case '31':\\r\\n //I don't understand\\r\\n break;\\r\\n //BLE MAC list\\r\\n case '32':\\r\\n //I don't understand\\r\\n break;\\r\\n //Beacon List\\r\\n case '33':\\r\\n //I don't understand\\r\\n break;\\r\\n //Heart Rate Data\\r\\n case '40':\\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n var numHeartRate = (keyLength - 2) / 12;\\r\\n for (let j = 0; j < numHeartRate; j++) {\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n //timestamp = hexToDecimalSigned(timestampHex);\\r\\n var heartRateHex = value.substring(8, 10);\\r\\n var heartRate = hexToDecimal(heartRateHex);\\r\\n var trustLevelHex = value.substring(10, 12);\\r\\n var trustLevel = hexToDecimal(trustLevelHex);\\r\\n info = heartRate;\\r\\n //var alarmCode = 'True';\\r\\n var alarm = 'HRT';\\r\\n general += ' heart rate' + j + ':' + heartRate + ',';\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};HRT=${info};TLEVEL=${trustLevel};LABEL=bpm`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n //BLE Connected . For Flic button\\r\\n case '62':\\r\\n location_type = 'BLE';\\r\\n //var alarm = 'EBZI'; \\r\\n //var latitudeHex = '00';\\r\\n //var longitudeHex = '00';\\r\\n //var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 2)); // 0= Disconnected, 1= Connected\\r\\n var mac = value.substring(2, 14); // No hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var batLevel = hexToDecimal(value.substring(14, 16)); // 0-100\\r\\n //location_time = timestamp;\\r\\n ble_data = `${flag},${batLevel},${mac}`;\\r\\n general += 'BLE location (State):' + flag + ', (bat):' + batLevel + ', (mac):' + mac + ',';\\r\\n break;\\r\\n }\\r\\n }\\r\\n // CareWatch-CYC;<<imei>>;STATUS=<<status_data>>;TIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;\\r\\n // \\\"CareWatch-CYC;861629050193550;STATUS=WIFISource,CellTower;TIME=1673950279;BATP=84;LGPS=undefined;LWIF=-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369;LLBS=214,1,13,768,38529798;LBEACON=undefined;BLE=undefined;GENERAL=statusDevice:WIFISource,CellTower,battery:84,cellNetworkSignal:14,workMode:6,wifiTowers:-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369,214,1,13,768,38529798,;\\\",\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n /*else if (alarm === 'HRT') {\\r\\n messageForReceiver = (`CareWatch-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};HRT=${info};TLEVEL=${trustLevel};LABEL=bpm`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (alarm === 'STP') {\\r\\n messageForReceiver = (`CareWatch-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};STP=${info};LABEL=steps`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else {\\r\\n messageForReceiver = (`CareWatch-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }*/\\r\\n // rest the alarm value\\r\\n alarm = '';\\r\\n }\\r\\n if (command == '02') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n switch (key) {\\r\\n //Module Number\\r\\n case '01':\\r\\n var date = value.substring(6, 8) + value.substring(4, 6) + '-' + value.substring(2, 4) + '-' + value.substring(0, 2);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Firmware version\\r\\n case '02':\\r\\n //no ACK need\\r\\n var fwVersion = 'v' + hexToDecimal(value.substring(6, 8)) + '.' + hexToDecimal(value.substring(4, 6)) + '.' + hexToDecimal(value.substring(2, 4)) + '.' + hexToDecimal(value.substring(0, 2));\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '1A':\\r\\n //no ACK need\\r\\n var fwVersion = hex_to_ascii(value);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n break;\\r\\n //IMEI\\r\\n case '03':\\r\\n var imei = hexToDecimal(value);\\r\\n // harcode to avoid conflicts with Rio protocol\\r\\n //if ((imei != '860470063029395') && (imei != '860470063035947')) {\\r\\n // AddValue(codeValues, \\\"error\\\", \\\"device imei is not in this protocol\\\");\\r\\n // AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n //AddValue(codeValues, \\\"IMEI\\\", imei);\\r\\n // return\\r\\n //}\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //ICCID\\r\\n case '04':\\r\\n var iccid = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //BLE-MAC\\r\\n case '05':\\r\\n var bleMac = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Run Time\\r\\n case '07':\\r\\n var runTime = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '10': // Ringer Volume\\r\\n var volume = hexToDecimal(value);\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-VOL;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"Volume\\\", volume);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.Volume, volume);\\r\\n configsToAck.push(configIds.ReadSystemSettings.Volume);\\r\\n break;\\r\\n case '0A': //Performance mode\\r\\n //var workMode = hexToDecimal(value);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n //AddValue(codeValues, \\\"WorkMode\\\", workMode);\\r\\n //AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n //configsToAck.push(configIds.ReadPerformance`Settings.Mode);\\r\\n //var workMode = hex_to_ascii(value.substring(0, value.length));\\r\\n //var workMode = hexToDecimal(value);\\r\\n //var workMode = hex_to_ascii(value.substring(0, value.length));\\r\\n var workMode = 1234; // + value + \\\"end\\\";\\r\\n //var workModeVal = 9;\\r\\n //workMode = 'test10';\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-MODE;${imei};`);\\r\\n AddValue(codeValues, \\\"Mode\\\", workMode);\\r\\n AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n //AddValue(codeValues, \\\"performanceMode\\\", performanceMode);\\r\\n //AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, performanceMode);\\r\\n // configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n break;\\r\\n case '1B':\\r\\n //Decimal o ascii?\\r\\n var gsmModule = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '1F':\\r\\n //System Language\\r\\n var systemLanguage = hex_to_ascii(value.substring(0, value.length));\\r\\n imei = serverParams.Imei;\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n messageForReceiver = (`Roam;ACK-LANG;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"SystemLanguage\\\", systemLanguage);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.SystemLanguage, systemLanguage);\\r\\n configsToAck.push(configIds.ReadSystemSettings.SystemLanguage);\\r\\n break;\\r\\n case '33': // phone option\\r\\n // [Value]:83 0B 00 00 {\\\"phoneOption\\\":{\\\"flag_value\\\":2947,\\\"s3\\\":1,\\\"s4\\\":0,\\\"s5\\\":1,\\\"s6\\\":0,\\\"callIncoming\\\":0,\\\"rings\\\":3,\\\"s7\\\":0,\\\"toneID\\\":0,\\\"s1\\\":1,\\\"s2\\\":1}}\\r\\n var statusPhone = hex2bin(value.substring(0, 2)); // To find autoanswer setup\\r\\n if (statusPhone.substring(0, 1) == '1') { // 1 Enable\\r\\n var auto = 'true';\\r\\n } else var auto = 'false';\\r\\n statusPhone = hex2bin(value.substring(2, 4)); // To find allow list setup\\r\\n if (statusPhone.substring(7, 8) == '1') { // 1 Enable\\r\\n allow = 'true';\\r\\n } else var allow = 'false';\\r\\n //statusPhone = hex2bin(value.substring(0, 2)) + hex2bin(value.substring(2, 4));\\r\\n //AddValue(configsToUpdate, configIds.ReadSystemSettings.Statusphone, statusPhone);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.AllowList, allow);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.AutoAnswer, auto);\\r\\n //configsToAck.push(configIds.ReadSystemSettings.Statusphone);\\r\\n configsToAck.push(configIds.ReadSystemSettings.AllowList);\\r\\n configsToAck.push(configIds.ReadSystemSettings.AutoAnswer);\\r\\n break;\\r\\n case '30': //ContactList\\r\\n var contactNumber = value.substring(1, 2);\\r\\n var telLength = hexToDecimal(value.substring(2, 4));\\r\\n var tel = '';\\r\\n switch (contactNumber) {\\r\\n // Emergency Number\\r\\n case '0':\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n AddValue(codeValues, \\\"EmergencyNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.EmergencyNumber, tel);\\r\\n configsToAck.push(configIds.ReadAlertSettings.EmergencyNumber);\\r\\n break;\\r\\n // Speed Dial Number\\r\\n case '1':\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n AddValue(codeValues, \\\"SpeedDialNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadSpeedDialSettings.SpeedDialNumber, tel);\\r\\n configsToAck.push(configIds.ReadSpeedDialSettings.SpeedDialNumber);\\r\\n break;\\r\\n // Gateway Number\\r\\n case '9': //00447781482635,Esendex UK 0034627177148,Esendex Spain 00447507288240,Esendex UK Acceptance\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n if (tel.includes('447781482635') || tel.includes('00447781482635')) {\\r\\n tel = 'Esendex UK'\\r\\n } else if (tel.includes('34627177148') || tel.includes('0034627177148')) {\\r\\n tel = 'Esendex Spain'\\r\\n } else if (tel.includes('447507288240') || tel.includes('00447507288240')) {\\r\\n tel = 'Esendex UK Acceptance'\\r\\n } else {\\r\\n tel = 'Default'\\r\\n }\\r\\n AddValue(codeValues, \\\"SMSGateway\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.SMSGateway, tel);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.SMSGateway);\\r\\n break;\\r\\n default:\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n if (tel.length < 6) {\\r\\n break;\\r\\n }\\r\\n //contacts += 'A' + (contactNumber - 1) + ': ' + tel + ', ';\\r\\n contacts += tel + ', ';\\r\\n AddValue(codeValues, \\\"ApprovedContacts\\\", contacts);\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.ApprovedContacts, contacts);\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.ApprovedContacts);\\r\\n break;\\r\\n }\\r\\n break;\\r\\n case '40': // APN\\r\\n //no ACK need\\r\\n var apn = hex_to_ascii(value.substring(0, value.length));\\r\\n imei = serverParams.Imei;\\r\\n break;\\r\\n case '41': // APN Username\\r\\n //no ACK need\\r\\n //apn = apn + ',' + hex_to_ascii(value.substring(0, value.length));\\r\\n break;\\r\\n case '42': // APN Password\\r\\n //no ACK need\\r\\n //apn = apn + ',' + hex_to_ascii(value.substring(0, value.length));\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"apn\\\", apn);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.APN, apn);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.APN);\\r\\n break;\\r\\n case '43': //Server Details\\r\\n //52.232.85.255,5678 production 52.174.17.77,5678 acceptance\\r\\n var serverDetails = hex_to_ascii(value.substring(6, value.length)) + ':' + hexToDecimal(value.substring(4, 6) + value.substring(2, 4));\\r\\n if (serverDetails.includes('52.232.85.255:5678')) {\\r\\n serverDetails = 'Production'\\r\\n } else if (serverDetails.includes('52.174.17.77:5678')) {\\r\\n serverDetails = 'Acceptance'\\r\\n } else if (serverDetails.includes('52.174.17.77:5778')) {\\r\\n serverDetails = 'Protocol-Import'\\r\\n } else {\\r\\n serverDetails = 'Default'\\r\\n }\\r\\n AddValue(codeValues, \\\"server\\\", serverDetails);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.Server, serverDetails);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.Server);\\r\\n break;\\r\\n case '44': //time interval - work mode intervals\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-MODE;${imei};`);\\r\\n var workMode = 0;\\r\\n var cycle = hexToDecimal(value.substring(10, 12) + value.substring(8, 10));\\r\\n var lazyCycle = hexToDecimal(value.substring(18, 20) + value.substring(16, 18));\\r\\n if (cycle == 240 && lazyCycle == 3600) { // 4 mins and 1 hour\\r\\n //workMode = 'High Frequency';\\r\\n workMode = 3;\\r\\n }\\r\\n if (cycle == 600 && lazyCycle == 3600) { // 10 mins and 1 hour\\r\\n //workMode = 'Balanced';\\r\\n workMode = 2;\\r\\n }\\r\\n if (cycle == 28800 && lazyCycle == 43200) { // 6 hour and 12 hours\\r\\n //workMode = 'Power Saving';\\r\\n workMode = 1;\\r\\n }\\r\\n if (cycle == 86400 && lazyCycle == 86400) { // 24 hours and 24 hours\\r\\n //workMode = 'No Reporting';\\r\\n workMode = 0;\\r\\n }\\r\\n AddValue(codeValues, \\\"Mode\\\", workMode);\\r\\n AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case '47': // Custom Id\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-CUSTID;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"customeid\\\", value);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CustomId, value);\\r\\n configsToAck.push(configIds.ReadState.CustomId);\\r\\n break;\\r\\n case '53': // Non motion alert\\r\\n //2B020080\\r\\n var status = hex2bin(value.substring(6, 8));\\r\\n var alertSetting = '';\\r\\n var enableDisable = '';\\r\\n if (status.substring(0, 1) == '1') {\\r\\n alertSetting = 'Enable, '\\r\\n enableDisable = '1';\\r\\n } else {\\r\\n alertSetting = 'Disable, '\\r\\n };\\r\\n //if (status.substring(5, 6) == '1') {\\r\\n // alertSetting += 'Dial, '\\r\\n //} else {\\r\\n // alertSetting += 'No Dial, '\\r\\n //};\\r\\n var time = hexToDecimal(value.substring(2, 4) + value.substring(0, 2));\\r\\n alertSetting += time;\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-NOMOTION;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"nomotion\\\", alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.NoMotionAlert, value + '-' + alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadNonMovementSettings.EnableDisableNonMovementSettings, enableDisable);\\r\\n AddValue(configsToUpdate, configIds.ReadNonMovementSettings.Time, time);\\r\\n configsToAck.push(configIds.ReadAlertSettings.NoMotionAlert);\\r\\n configsToAck.push(configIds.ReadNonMovementSettings.EnableDisableNonMovementSettings);\\r\\n configsToAck.push(configIds.ReadNonMovementSettings.Time);\\r\\n break;\\r\\n case '56': //Fall down sensibility\\r\\n // '00001100'\\r\\n var fallStatus = hex2bin(value.substring(0, 2));\\r\\n var enalbleDisable = '';\\r\\n //if (fallStatus.substring(4, 5) == '1') {\\r\\n if (fallStatus.substring(0, 1) == '1') {\\r\\n var sensibility = 'Enable, '\\r\\n enalbleDisable = '1'\\r\\n } else {\\r\\n var sensibility = 'Disable, '\\r\\n };\\r\\n if (fallStatus.substring(5, 6) == '1') {\\r\\n sensibility += 'Dial, '\\r\\n } else {\\r\\n sensibility += 'No Dial, '\\r\\n };\\r\\n var imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-FALLALERT;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n var sesibityOptionValue = hexToDecimal(value.substring(1, 2));\\r\\n sensibility += sesibityOptionValue;\\r\\n AddValue(codeValues, \\\"sensibility\\\", sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.FallSettings, sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadFallSettings.EnableDisableFallSettings, enalbleDisable);\\r\\n AddValue(configsToUpdate, configIds.ReadFallSettings.Sensitivity, sesibityOptionValue);\\r\\n configsToAck.push(configIds.ReadAlertSettings.FallSettings);\\r\\n configsToAck.push(configIds.ReadFallSettings.EnableDisableFallSettings);\\r\\n configsToAck.push(configIds.ReadFallSettings.Sensitivity);\\r\\n break;\\r\\n case '73': //BeaconList\\r\\n var beaconNumber = hexToDecimal(value.substring(1, 2));\\r\\n var beaconStatus = hex2bin(value.substring(0, 1));\\r\\n //if (beaconStatus.substring(4, 5) == '1') {\\r\\n // homeBeacon += ' Enable, '\\r\\n //} else {\\r\\n // homeBeacon += ' Disable, '\\r\\n //};\\r\\n beaconStatus = hex_to_ascii(value.substring(30, value.length));\\r\\n //beaconStatus = changeEndianness(value.substring(30, value.length));\\r\\n homeBeacon += 'B' + (beaconNumber + 1) + ': ' + beaconStatus + ', ';\\r\\n AddValue(codeValues, \\\"homeBeacon\\\", homeBeacon);\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.HomeBeacon, homeBeacon);\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.HomeBeacon);\\r\\n break;\\r\\n case '4A': //Wifi Network List\\r\\n var wifiSSIDLenght = hexToDecimal(value.substring(2, 4));\\r\\n var wifiPasswordLenght = hexToDecimal(value.substring(4, 6));\\r\\n var wifiIndex = hexToDecimal(value.substring(1, 2));\\r\\n var wifiStatus = hexToDecimal(value.substring(0, 1));\\r\\n /*var enalbleDisable = wifiSSID = wifiPassword = homeWifi = '';\\r\\n /var homeWifi = '';\\r\\n if (wifiIndex == '0') { // Only first Wifi of the list\\r\\n if (wifiStatus == '8') {\\r\\n homeWifi += ' Enable, '\\r\\n enalbleDisable = '1';\\r\\n } else {\\r\\n homeWifi += ' Disable, '\\r\\n //enalbleDisable = '0';\\r\\n };*/\\r\\n if (wifiStatus == '8') {\\r\\n var wifiSSID = hex_to_ascii(value.substring(6, 6 + 2 * (wifiSSIDLenght)));\\r\\n var wifiPassword = hex_to_ascii(value.substring(6 + 2 * (wifiSSIDLenght), 6 + 2 * (wifiSSIDLenght + wifiPasswordLenght)));\\r\\n var imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-WIFI;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n homeWiFi += 'W' + (wifiIndex + 1) + ': ' + wifiSSID + ', ' + wifiPassword + ';';\\r\\n AddValue(codeValues, \\\"wifi\\\", homeWiFi);\\r\\n AddValue(configsToUpdate, configIds.ReadWiFiList.WiFiList, homeWiFi);\\r\\n configsToAck.push(configIds.ReadWiFiList.WiFiList);\\r\\n }\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.EnableDisableReadWiFiSettings, enalbleDisable);\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.SSID, wifiSSID);\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.Password, wifiPassword);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.EnableDisableReadWiFiSettings);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.SSID);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.Password);\\r\\n break;\\r\\n case '21': // Speed Dial Settings\\r\\n // [Value]:53 84 {\\\"call1Button\\\":{\\\"mode\\\":0,\\\"feedBack\\\":3,\\\"task\\\":2,\\\"time\\\":20,\\\"status\\\":1}}\\r\\n var status = hex2bin(value.substring(2, 3));\\r\\n var alertSetting = '';\\r\\n var enableDisable = '';\\r\\n if (status.substring(0, 1) == '1') {\\r\\n alertSetting = 'Enable, '\\r\\n enableDisable = '1';\\r\\n } else {\\r\\n alertSetting = 'Disable, ';\\r\\n //enableDisable = '0';\\r\\n };\\r\\n //var time = hexToDecimal(value.substring(2, 4) + value.substring(0, 2));\\r\\n //alertSetting += time;\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-SPEED;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"speed\\\", alertSetting);\\r\\n //AddValue(configsToUpdate, configIds.ReadAlertSettings.NoMotionAlert, value + '-' + alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadSpeedDialSettings.EnableDisableReadSpeedDialSettings, enableDisable);\\r\\n //AddValue(configsToUpdate, configIds.ReadNonMovementSettings.Time, time);\\r\\n //configsToAck.push(configIds.ReadAlertSettings.NoMotionAlert);\\r\\n configsToAck.push(configIds.ReadSpeedDialSettings.EnableDisableReadSpeedDialSettings);\\r\\n //configsToAck.push(configIds.ReadNonMovementSettings.Time);\\r\\n break;\\r\\n }\\r\\n }\\r\\n }\\r\\n if (command == '03') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n var keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n debug('key = ' + key);\\r\\n debug('value = ' + value);\\r\\n switch (key) {\\r\\n case '01': // Device ID\\r\\n var imei = hex_to_ascii(value);\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n break;\\r\\n //CustomID is not provided so far with command type 03.. commented in the mean time\\r\\n /* case '03':\\r\\n //update customID to check if belongs to this type of device\\r\\n customID = value;\\r\\n if (value != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n } else {\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n general += 'customID:' + value + ',';\\r\\n break;\\r\\n }\\r\\n break; */\\r\\n case '10': // Heartbeat\\r\\n var heartbeat = hex_to_ascii(value);\\r\\n event_time = moment.utc().unix();\\r\\n if (index < total_length + 16) {\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n key = message.substring(index, index = index + 2);\\r\\n if (key == '24') {\\r\\n // debug('key: ' + key) //comment those out\\r\\n value = message.substring(index, index = index + keyLength - 2);\\r\\n // debug(value)\\r\\n var timestampHex = value.substring(0, 8);\\r\\n // debug('timestampt hex: ' + timestampHex)\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n event_time = timestamp;\\r\\n // debug(event_time)\\r\\n var statusHex = changeEndianness(value.substring(8, 16));\\r\\n // debug(statusHex)\\r\\n var statusInt = hexToDecimal(statusHex);\\r\\n var statusDevice = '';\\r\\n if ((statusInt & 1) == 1) {\\r\\n statusDevice += 'GPS,';\\r\\n }\\r\\n if ((statusInt & 2) == 2) {\\r\\n statusDevice += 'WIFISource,';\\r\\n }\\r\\n if ((statusInt & 4) == 4) {\\r\\n statusDevice += 'CellTower,';\\r\\n }\\r\\n if ((statusInt & 8) == 8) {\\r\\n statusDevice += 'BLELocation,';\\r\\n }\\r\\n if ((statusInt & 16) == 16) {\\r\\n statusDevice += 'Charging,';\\r\\n }\\r\\n if ((statusInt & 32) == 32) {\\r\\n statusDevice += 'FUllyCharged,';\\r\\n }\\r\\n if ((statusInt & 64) == 64) {\\r\\n statusDevice += 'Reboot,';\\r\\n }\\r\\n if ((statusInt & 128) == 128) {\\r\\n statusDevice += 'HistoricalData,';\\r\\n }\\r\\n if ((statusInt & 256) == 256) {\\r\\n statusDevice += 'AGPSDataValid,';\\r\\n }\\r\\n if ((statusInt & 512) == 512) {\\r\\n statusDevice += 'Motion,';\\r\\n }\\r\\n if ((statusInt & 1024) == 1024) {\\r\\n statusDevice += 'SmartLocating,';\\r\\n }\\r\\n if ((statusInt & 2048) == 2048) {\\r\\n statusDevice += 'BeaconLocation,';\\r\\n }\\r\\n if ((statusInt & 4096) == 4096) {\\r\\n statusDevice += 'BLEConnected,';\\r\\n }\\r\\n statusDevice = statusDevice.slice(0, -1);\\r\\n // debug('statusHex:' + statusHex)\\r\\n statusHex = (statusHex);\\r\\n statusHex = hex2bin(statusHex);\\r\\n statusHex = ('00000000000000000000000000000000' + statusHex).slice(-32);\\r\\n // debug(statusHex)\\r\\n battery_percentage = parseInt(statusHex.substring(0, 8), 2);\\r\\n // debug(battery_percentage)\\r\\n // debug(battery_percentage)\\r\\n // debug(statusHex.substring(8, 13))\\r\\n cellNetworkSignal = parseInt(statusHex.substring(8, 13), 2);\\r\\n // debug(cellNetworkSignal)\\r\\n workMode = parseInt(statusHex.substring(13, 16), 2);\\r\\n // debug(workMode)\\r\\n general += 'statusDevice:' + statusDevice + ';';\\r\\n if (battery_percentage) {\\r\\n general += 'battery:' + battery_percentage + ';';\\r\\n }\\r\\n if (cellNetworkSignal) {\\r\\n general += 'cellNetworkSignal:' + cellNetworkSignal + ';';\\r\\n }\\r\\n if (workMode) {\\r\\n general += 'workMode:' + workMode + ';';\\r\\n }\\r\\n }\\r\\n }\\r\\n // revisar\\r\\n var gen_location = '0';\\r\\n //CustomID is not provided so far with command type 03.. commented in the mean time\\r\\n /*if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }*/\\r\\n //messageForReceiver = (`Eview-HTB;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};SIGNAL=${cellNetworkSignal};WM=${workMode};SL=${systemLanguage};GENERAL=${general}`);\\r\\n messageForReceiver = (`Eview-HTB;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '12': // Device requesting timestamp\\r\\n timestamp = moment.utc().unix();\\r\\n timestampHex = decimalToHex(timestamp);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n keyLengthHex = ('00' + decimalToHex(1 + (timestampHex.length) / 2)).slice(-2);\\r\\n // respond to device with the timestamp of the server\\r\\n messageBody = messageBody + keyLengthHex + key + timestampHex;\\r\\n messageForReceiver = `Eview;${imei};${sequenceID};Get timestamp`;\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case '21': //Cell Towers\\r\\n var mccHex = value.substring(0, 2);\\r\\n var mncHex = value.substring(2, 3);\\r\\n var mcc = hexToDecimal(mccHex);\\r\\n var mnc = hexToDecimal(mncHex);\\r\\n var numTowers = (keyLength - 4) / 5;\\r\\n var cellTowers = hex_to_ascii(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '22': // WIFI locations \\r\\n location_type = 'WIFI';\\r\\n var numWifi = Math.round((hexToDecimal(keyLengthHex) - 1) / 7);\\r\\n //location_time = timestamp;\\r\\n var wifiTowers = value;\\r\\n general += 'wifiTowers:';\\r\\n var indexWifi = 0;\\r\\n var bssid_array = [];\\r\\n gen_location = '';\\r\\n for (let i = 0; i < numWifi; i++) {\\r\\n gen_location += wifiTowers.substring(indexWifi + 2, indexWifi + 14) + ',';\\r\\n indexWifi += 14;\\r\\n }\\r\\n gen_location = gen_location.slice(0, -1);\\r\\n general += gen_location;\\r\\n //CustomID is not provided so far with command type 03\\r\\n /*if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }*/\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n alarmCode = '';\\r\\n break;\\r\\n }\\r\\n }\\r\\n }\\r\\n if (command == '04') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n if (command == '7E') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n if (command == '7F') {\\r\\n // while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n messageForReceiver = (`Roam-ACK;${imei};${message}`); // ${sequenceID}; add ${sequenceID}; 19-07\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n AddValue(configsToUpdate, configIds.ConfigureDevice.LastConfigured, moment().format('YYYY/MM/DD, HH:mm:ss'));\\r\\n configsToAck.push(configIds.ConfigureDevice.LastConfigured);\\r\\n //}\\r\\n }\\r\\n if (command == 'FE') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n // prepare the ACK msg and change config if it is needed\\r\\n lengthAck = messageBody.length / 2;\\r\\n lengthAck = ('0000' + decimalToHex(lengthAck)).slice(-4);\\r\\n lengthAck = lengthAck.toString().substring(2, 4) + lengthAck.toString().substring(0, 2);\\r\\n ////////////checksum CRC 16\\r\\n var checksumAck = byteStringToByteArray(messageBody);\\r\\n checksumAck = crc16byte(checksumAck);\\r\\n checksumAck = decimalToHex(checksumAck);\\r\\n checksumAck = ('0000' + checksumAck).slice(-4);\\r\\n checksumAck = checksumAck.toString().substring(2, 4) + checksumAck.toString().substring(0, 2);\\r\\n prefix = prefix + lengthAck + checksumAck + sequenceID;\\r\\n // To send ACK to the device previous to internal msg with parts\\r\\n if (needsAck == true) {\\r\\n if (messageBody.length <= 2) {\\r\\n ack = 'AB00030008C7' + sequenceID + '7F0100'; // change AB10030008C7 to AB00030008C7\\r\\n } else {\\r\\n ack = prefix + messageBody;\\r\\n }\\r\\n AddValue(codeValues, 'imei', imei);\\r\\n AddValue(codeValues, 'ack', ack);\\r\\n }\\r\\n } else { // checksum was invalid - print out useful debug info and bet quess at imei \\r\\n AddValue(codeValues, \\\"error\\\", \\\"checksum failed for message\\\");\\r\\n AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n i = rawFromBytes.search('3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]');\\r\\n if (i >= 0) {\\r\\n imei = hex_to_ascii(rawFromBytes.substring(i, i + 30));\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n function ascii_to_hexa(str) { // ascii to hex \\r\\n var arr1 = [];\\r\\n for (var n = 0, l = str.length; n < l; n++) {\\r\\n var hex = Number(str.charCodeAt(n)).toString(16);\\r\\n arr1.push(hex);\\r\\n }\\r\\n return arr1.join('');\\r\\n }\\r\\n\\r\\n function byteStringToByteArray(str) { //\\r\\n var splitStr = [];\\r\\n var j = 0;\\r\\n for (let i = 0; i < str.length; i += 2) {\\r\\n splitStr[j] = str.substring(i, i + 2);\\r\\n j++;\\r\\n }\\r\\n var bytes = [];\\r\\n var bytePos = 0;\\r\\n for (let i = 0; i < splitStr.length; i++) {\\r\\n var byteStr = splitStr[i];\\r\\n var b = parseInt(byteStr, 16);\\r\\n if (b < 256) {\\r\\n bytes[bytePos] = b;\\r\\n bytePos++;\\r\\n }\\r\\n }\\r\\n return bytes;\\r\\n }\\r\\n\\r\\n function changeEndianness(string) { //\\r\\n const result = [];\\r\\n let len = string.length - 2;\\r\\n while (len >= 0) {\\r\\n result.push(string.substr(len, 2));\\r\\n len -= 2;\\r\\n }\\r\\n return result.join('');\\r\\n }\\r\\n\\r\\n function hex2bin(hex) { //\\r\\n return (parseInt(hex, 16).toString(2)).padStart(8, '0');\\r\\n }\\r\\n\\r\\n function calculateCheckSum(payloadData) { // check if payload checksum is valid\\r\\n var checksum = byteStringToByteArray(payloadData);\\r\\n checksum = crc16byte(checksum);\\r\\n checksum = decimalToHex(checksum);\\r\\n checksum = ('0000' + checksum).slice(-4).toUpperCase();\\r\\n return changeEndianness(checksum);\\r\\n }\\r\\n\\r\\n function crc16byte(s) { //\\r\\n var crc = 0x0000;\\r\\n var j, i;\\r\\n for (i = 0; i < s.length; i++) {\\r\\n c = s[i];\\r\\n if (c > 255) {\\r\\n throw new RangeError();\\r\\n }\\r\\n j = (c ^ (crc >> 8)) & 0xFF;\\r\\n crc = crcTable[j] ^ (crc << 8);\\r\\n }\\r\\n return ((crc ^ 0) & 0xFFFF);\\r\\n }\\r\\n\\r\\n function debug(str) { // write debug info to console log, if localTesting\\r\\n if (localTesting === \\\"True\\\") {\\r\\n console.log(str);\\r\\n }\\r\\n }\\r\\n\\r\\n function decimalToHex(x) { // decimal to hex\\r\\n x = x.toString(16).toUpperCase();\\r\\n return x;\\r\\n }\\r\\n\\r\\n function hex_to_ascii(str1) { // Hex to Ascii \\r\\n var hex = str1.toString();\\r\\n var str = '';\\r\\n for (var n = 0; n < hex.length; n += 2) {\\r\\n str += String.fromCharCode(parseInt(hex.substr(n, 2), 16));\\r\\n }\\r\\n return str;\\r\\n }\\r\\n\\r\\n function hexToDecimalSigned(hex) { // hex to decimal\\r\\n if (hex.length % 2 != 0) {\\r\\n hex = \\\"0\\\" + hex;\\r\\n }\\r\\n var num = parseInt(hex, 16);\\r\\n var maxVal = Math.pow(2, hex.length / 2 * 8);\\r\\n if (num > maxVal / 2 - 1) {\\r\\n num = num - maxVal;\\r\\n }\\r\\n return num;\\r\\n }\\r\\n\\r\\n function hexToDecimal(x) {\\r\\n x = parseInt(x, 16);\\r\\n return x;\\r\\n }\\r\\n\\r\\n function sendMessageToLocalhostNoWait(str) { // sends message to system, closing connection after\\r\\n var server;\\r\\n if (localTesting) {\\r\\n console.log('local testing - sending to acceptance server the message ... ');\\r\\n console.log(str);\\r\\n server = '52.174.17.77';\\r\\n } else {\\r\\n server = '127.0.0.1';\\r\\n }\\r\\n var c = net.createConnection(5678, server);\\r\\n c.on('error', function(error) {\\r\\n c = net.createConnection(5678, server);\\r\\n });\\r\\n c.write(`${str}`);\\r\\n c.end();\\r\\n }\\r\\n // modify to return the object that contains your data\\r\\n return dataToReceiver;\\r\\n}\\r\\n// params is not defined locally -> export as module\\r\\nif (typeof(params) === 'undefined') {\\r\\n module.exports = {\\r\\n execute_ops\\r\\n }\\r\\n} else { // on server use local defined vars\\r\\n let return_values = execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, false)\\r\\n // define global returns\\r\\n msg = return_values;\\r\\n}\",\"Type\":0,\"ProtocolActionObjects\":[]}","Timestamp":1734463932},{"Type":1,"NewValue":"{\"Id\":313,\"Name\":\"Access TEC Roam\",\"Operation\":\"function execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, localTesting) {\\r\\n ///////////////////////////////////////////////////////////////////////////////\\r\\n //\\r\\n // Roam protocol - please see variables and typical values in order below\\r\\n // TECRoam-CYC;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;SIGNAL=<<signal_strength>>;WM=<<work_mode>>;GENERAL=<<general>>\\r\\n // TECRoam-CYC;861629050193550;STATUS=WIFISource,CellTower;TIME=1673950279;BATP=84;LGPS=undefined;LWIF=-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369;LLBS=214,1,13,768,38529798;LBEACON=undefined;BLE=undefined;GENERAL=statusDevice:WIFISource,CellTower,battery:84,cellNetworkSignal:14,workMode:6,wifiTowers:-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369,214,1,13,768,38529798,;\\\",\\r\\n //\\r\\n // Author: Joe Bloggs\\r\\n // Created: 01/01/0000\\r\\n // Last modified: 12/04/2024\\r\\n //\\r\\n ///////////////////////////////////////////////////////////////////////////////\\r\\n if (typeof localTesting === \\\"undefined\\\") {\\r\\n var localTesting = \\\"False\\\";\\r\\n }\\r\\n const crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,\\r\\n 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,\\r\\n 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\\r\\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,\\r\\n 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,\\r\\n 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\\r\\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,\\r\\n 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,\\r\\n 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\\r\\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,\\r\\n 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,\\r\\n 0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\\r\\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,\\r\\n 0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,\\r\\n 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\\r\\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,\\r\\n 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,\\r\\n 0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\\r\\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,\\r\\n 0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,\\r\\n 0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\\r\\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,\\r\\n 0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,\\r\\n 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\\r\\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,\\r\\n 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,\\r\\n 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\\r\\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,\\r\\n 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,\\r\\n 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\\r\\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,\\r\\n 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\\r\\n ];\\r\\n var codeValues = [];\\r\\n AddValue(codeValues, 'protocol_template', 'Roam');\\r\\n AddValue(codeValues, 'product', serverParams.ProductName);\\r\\n var dataToReceiver = [];\\r\\n var configsToAck = [];\\r\\n var configsToUpdate = [];\\r\\n var configsToSend = [];\\r\\n if (globalTemplate == \\\"True\\\") {\\r\\n if (raw.startsWith('esendex')) {\\r\\n AddValue(codeValues, 'rawMsg', raw);\\r\\n //general SMS message\\r\\n messageForReceiver = (`Roam-SMS;${serverParams.Imei};${raw}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n return;\\r\\n }\\r\\n AddValue(codeValues, 'raw', raw);\\r\\n AddValue(codeValues, 'rawMsg', rawFromBytes);\\r\\n var event_time, location_time, location_accuracy, speed, fix_state, latitude, longitude;\\r\\n var homeBeacon = '';\\r\\n var homeWiFi = '';\\r\\n var contacts = '';\\r\\n var gps_data = '';\\r\\n var wifi_data = '';\\r\\n var status_data = '';\\r\\n var lbs_data = '';\\r\\n var beacon_data = '';\\r\\n var ble_data = '';\\r\\n var smart_data = '';\\r\\n //parse header & properties\\r\\n var message = rawFromBytes;\\r\\n var properties = message.substring(2, 4);\\r\\n var lengthLittleEndian = message.substring(4, 8);\\r\\n var total_length = lengthLittleEndian.substring(2, 4) + lengthLittleEndian.substring(0, 2);\\r\\n total_length = 2 * hexToDecimal(total_length.substring(0, 4));\\r\\n var messageForReceiver;\\r\\n var sequenceID = message.substring(12, 16);\\r\\n var command = message.substring(16, 18);\\r\\n var index = 18;\\r\\n var prefix = 'AB' + '00';\\r\\n var lengthAck = 0;\\r\\n var ack = '';\\r\\n var needsAck = false;\\r\\n var hasConfigs = false;\\r\\n var general = '';\\r\\n var timestamp = '';\\r\\n var info = '';\\r\\n var customID = '';\\r\\n latitude = 0;\\r\\n longitude = 0;\\r\\n location_accuracy = 0; // GPS location adds the accuracy\\r\\n location_time = event_time = '';\\r\\n speed = 0.0;\\r\\n var location_type = '0';\\r\\n //var gen_location = '0'; \\r\\n var i; // general loop counter\\r\\n var battery_percentage = '';\\r\\n var cellNetworkSignal = '';\\r\\n var workMode = '';\\r\\n //mask bitwise (properties should be '10')\\r\\n if ((parseInt(properties) & 8) == 8) { // 22/7 change ((parseInt(properties) & 16) == 16)\\r\\n needsAck = true;\\r\\n }\\r\\n // Loop to decode multi-ACK msg\\r\\n if (message.includes('AB00030008C7')) {\\r\\n const multiack = message.split('AB00');\\r\\n for (let i = 1; i < multiack.length; i++) {\\r\\n message = 'AB00' + multiack[i];\\r\\n debug(message);\\r\\n decoder(message);\\r\\n } // FOR multiACK\\r\\n } else decoder(message); // IF multiACK\\r\\n } else if (oystaTemplate == 'True') { // Oysta Template \\r\\n AddValue(codeValues, 'rawMsg', raw);\\r\\n if ((params.gps_data) && (params.gps_data !== '')) { // decode gps data if exists\\r\\n var gen_location = params.gps_data.split(',');\\r\\n var latitude = gen_location[0];\\r\\n var longitude = gen_location[1];\\r\\n var location_accuracy = gen_location[2];\\r\\n var speed = gen_location[3];\\r\\n var direction = gen_location[4];\\r\\n var altitude = gen_location[5];\\r\\n var satellites = gen_location[6];\\r\\n var mileage = gen_location[7];\\r\\n if (location_accuracy !== 0) {\\r\\n var fix_state = 1;\\r\\n } else {\\r\\n var fix_state = 0;\\r\\n }\\r\\n AddValue(codeValues, 'latitude', latitude);\\r\\n AddValue(codeValues, 'longitude', longitude);\\r\\n AddValue(codeValues, 'speed', speed);\\r\\n AddValue(codeValues, 'direction', direction);\\r\\n AddValue(codeValues, 'altitude', altitude);\\r\\n AddValue(codeValues, 'location_accuracy', location_accuracy);\\r\\n AddValue(codeValues, 'mileage', mileage);\\r\\n AddValue(codeValues, 'satellites', satellites);\\r\\n AddValue(codeValues, 'fix_state', fix_state);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.lbs_data) && (params.lbs_data !== '')) { // decode lbs data if exists\\r\\n var variables = []; //Define array\\r\\n variables = params.lbs_data.split(',');\\r\\n var index = 2;\\r\\n for (i = 0; i < ((variables.length - 2) / 3); i++) { //loop for number of LBS sets on incoming data.\\r\\n if (variables[i] !== '0') { //Check if LBS data is present (device sends 0 if data not present)/actually exists.\\r\\n AddValue(codeValues, 'mcc', variables[0]);\\r\\n AddValue(codeValues, 'mnc', variables[1]);\\r\\n AddValue(codeValues, 'lac', variables[index]);\\r\\n AddValue(codeValues, 'signal_lbs', variables[index + 1]);\\r\\n AddValue(codeValues, 'cellid', variables[index + 2]);\\r\\n }\\r\\n index += 3;\\r\\n }\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.wifi_data) && (params.wifi_data !== '')) { // decode wifi data if exists\\r\\n var bssid_array = params.wifi_data.split(',');\\r\\n var index = 0;\\r\\n for (let i = 0; i < (bssid_array.length / 2); i++) {\\r\\n if (bssid_array[index + 1] != '000000000000') { //Check if MAC address is not 000000000000 - seems to be the default MAC of the device itself\\r\\n AddValue(codeValues, 'bssid', bssid_array[index + 1]);\\r\\n AddValue(codeValues, 'signal_wifi', bssid_array[index]);\\r\\n }\\r\\n index += 2;\\r\\n }\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n // when Beacon is detected and it isn't flic BLE detected\\r\\n if (((params.beacon_data) && (params.beacon_data !== '')) && !((params.ble_data) && (params.ble_data !== ''))) {\\r\\n var gen_location = params.beacon_data.split(',');\\r\\n var latitude = gen_location[0];\\r\\n var longitude = gen_location[1];\\r\\n var mac = gen_location[2];\\r\\n var label = gen_location[3];\\r\\n AddValue(codeValues, 'latitude', latitude);\\r\\n AddValue(codeValues, 'longitude', longitude);\\r\\n //AddValue(codeValues,'location_accuracy', '3'); // para mostrar que si hay accuracy muestra como source GPS\\r\\n // AddValue(codeValues,'beacon_mac', mac);\\r\\n //AddValue(codeValues,'beacon_major', 0);\\r\\n //AddValue(codeValues,'beacon_minor', 0);\\r\\n //<<beacon_mac>>,<<beacon_major>>,<<beacon_minor>> \\r\\n if (mac) {\\r\\n AddValue(codeValues, 'beacon_mac', mac);\\r\\n var simpleQuery = [{\\r\\n 'code': 'Mac',\\r\\n 'value': mac,\\r\\n }];\\r\\n var simpleQueryLabel = {\\r\\n 'table': 'beacons',\\r\\n 'select': 'Name',\\r\\n 'query': simpleQuery\\r\\n };\\r\\n var labels = [];\\r\\n labels.push(JSON.stringify(simpleQueryLabel));\\r\\n AddValue(codeValues, 'oysta_labels', JSON.stringify(labels));\\r\\n }\\r\\n if (params.beacon_major) {\\r\\n AddValue(codeValues, 'beacon_major', params.beacon_major);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_major', 0);\\r\\n }\\r\\n if (params.beacon_minor) {\\r\\n AddValue(codeValues, 'beacon_minor', params.beacon_minor);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_minor', 0);\\r\\n }\\r\\n //AddValue(codeValues,'oysta_labels', label);\\r\\n //AddValue(codeValues,'oysta_value', mac);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.ble_data) && (params.ble_data !== '')) { // decode ble data if exists\\r\\n var gen_location = params.ble_data.split(',');\\r\\n var flag = gen_location[0];\\r\\n var batLevel = gen_location[1];\\r\\n var mac2 = gen_location[2];\\r\\n //var label = gen_location[3];\\r\\n AddValue(codeValues, 'flagBLE', flag);\\r\\n AddValue(codeValues, 'batBLE', batLevel);\\r\\n //AddValue(codeValues,'location_accuracy', '3'); // para mostrar que si hay accuracy muestra como source GPS\\r\\n // AddValue(codeValues,'beacon_mac', mac);\\r\\n //AddValue(codeValues,'beacon_major', 0);\\r\\n //AddValue(codeValues,'beacon_minor', 0);\\r\\n //<<beacon_mac>>,<<beacon_major>>,<<beacon_minor>> \\r\\n if (mac2) {\\r\\n AddValue(codeValues, 'beacon_mac', mac2);\\r\\n var simpleQuery2 = [{\\r\\n 'code': 'Mac',\\r\\n 'value': mac2,\\r\\n }];\\r\\n var simpleQueryLabel2 = {\\r\\n 'table': 'beacons',\\r\\n 'select': 'Name',\\r\\n 'query': simpleQuery2\\r\\n };\\r\\n var labels2 = [];\\r\\n labels2.push(JSON.stringify(simpleQueryLabel2));\\r\\n AddValue(codeValues, 'oysta_labels', JSON.stringify(labels2));\\r\\n }\\r\\n if (params.beacon_major) {\\r\\n AddValue(codeValues, 'beacon_major', params.beacon_major);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_major', 0);\\r\\n }\\r\\n if (params.beacon_minor) {\\r\\n AddValue(codeValues, 'beacon_minor', params.beacon_minor);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_minor', 0);\\r\\n }\\r\\n //AddValue(codeValues,'oysta_labels', label);\\r\\n //AddValue(codeValues,'oysta_value', mac);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n /* meter mas tarde... \\r\\n if (params.smart_data !== 'undefined') {\\r\\n var gen_location = params.smart_data.split(',')\\r\\n var latitude = gen_location[0]\\r\\n var longitude = gen_location[1]\\r\\n var location_accuracy = gen_location[2]\\r\\n var altitude = gen_location[3]\\r\\n AddValue(codeValues,'latitude', latitude);\\r\\n AddValue(codeValues,'longitude', longitude);\\r\\n AddValue(codeValues,'altitude', altitude);\\r\\n AddValue(codeValues,'location_accuracy', location_accuracy);\\r\\n }\\r\\n */\\r\\n /*else if ((params.event_time) && (params.event_time == '')) {\\r\\n var event_time = moment.utc().unix();\\r\\n AddValue(codeValues,'event_time', event_time);\\r\\n } revisar mas adelante*/\\r\\n // to parse SMS info from the device\\r\\n switch (messageTypeLocalCode) {\\r\\n case 'COMM-SMS': // SMS message sent in\\r\\n if (params.data.startsWith('Device location request')) {\\r\\n configsToAck.push(configIds.Controls.RealTimeLocate);\\r\\n } else if (params.data.startsWith('Set IP ok')) {\\r\\n configsToAck.push(configIds.Controls.GetCurrentConfig);\\r\\n } else if (params.data.startsWith('IMEI:')) {\\r\\n configsToAck.push(configIds.Controls.GetFirmwareVersion);\\r\\n } else if (params.data.startsWith('Set IP ok')) {\\r\\n configsToAck.push(configIds.Controls.ClearBufferedMessages);\\r\\n } else if (params.data.startsWith('flush ok')) {\\r\\n configsToAck.push(configIds.Controls.GetCurrentConfig);\\r\\n } else if (params.data.startsWith('Set Roam-')) {\\r\\n configsToAck.push(configIds.SMSPrefix.SMSPrefix);\\r\\n } else if (params.data.startsWith('set live tracking')) {\\r\\n configsToAck.push(configIds.Controls.Trace);\\r\\n } else if (params.data.startsWith('reboot ok')) {\\r\\n configsToAck.push(configIds.Controls.Reboot);\\r\\n } else if (params.data.startsWith('GPS')) {\\r\\n configsToAck.push(configIds.Controls.RealTimeLocate);\\r\\n var i1 = params.data.search('Now:')\\r\\n var i2 = params.data.search('Loc Time:')\\r\\n var i3 = params.data.search('Speed:')\\r\\n var i4 = params.data.search('Altitude:')\\r\\n var i5 = params.data.search('Battery:')\\r\\n var i6 = params.data.search('google')\\r\\n var eventTime = params.data.substring(i2 + 9, i3)\\r\\n var Speed = params.data.substring(i3 + 6, i4 - 3)\\r\\n if (params.data.substring(i4 - 3, i4) == 'mph') {\\r\\n Speed = Speed * 0.44704\\r\\n } else if (params.data.substring(i4 - 3, i4) == 'kph') {\\r\\n Speed = Speed / 3.6\\r\\n }\\r\\n var latlong = params.data.substring(i6 + 18)\\r\\n location_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n messageForReceiver = (`Roam-RTL;${params.imei};${location_time};${location_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n //event_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n //messageForReceiver = (`CARE-RTL;${params.imei};${event_time};${event_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n case 'ACK-FIRM-SMS': // Firmware info sent by SMS\\r\\n //var i1 = params.data.search('IMEI:')\\r\\n //var i2 = params.data.search('GSM signal quality:')\\r\\n var i3 = params.data.search('Software version:')\\r\\n var sub = params.data.substring(i3 + 17, params.data.length)\\r\\n var i4 = sub.search('version:');\\r\\n var fwVersion = sub.substring(i4, sub.length);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n break;\\r\\n case 'ACK-FALLSENS-SMS': // Fall sensibility info sent by SMS\\r\\n var i1 = params.data.search('Fall alarm:');\\r\\n var sensibility = params.data.substring(i1 + 11, i1 + 14);\\r\\n var i2 = params.data.search('level:');\\r\\n sensibility = sensibility + ', ' + params.data.substring(i2 + 6, i2 + 7);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"sensibility\\\", sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadEmergencySettings.FallSensitivity, sensibility);\\r\\n configsToAck.push(configIds.ReadEmergencySettings.FallSensitivity);\\r\\n break;\\r\\n case 'ACK-BEAC-SMS': // Beacon list info sent by SMS\\r\\n var i1 = raw.search('1,');\\r\\n //var i2 = params.data.search('2,');\\r\\n //var homeBeacon = params.data.substring(i1+2, i2);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"homeBeacon\\\", raw.substring(i1, raw.length));\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.HomeBeacon, raw.substring(i1, raw.length));\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.HomeBeacon);\\r\\n break;\\r\\n case 'ACK-CONTAC-SMS': // Contact list info sent by SMS\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n var i1 = raw.search('A1:');\\r\\n if (raw.includes('A2:')) {\\r\\n var i2 = raw.search('A2:');\\r\\n } else {\\r\\n var i2 = raw.search('A10:');\\r\\n }\\r\\n var tel = raw.substring(i1 + 4, i2);\\r\\n AddValue(codeValues, \\\"EmergencyNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.EmergencyNumber, tel);\\r\\n configsToAck.push(configIds.ReadAlertSettings.EmergencyNumber);\\r\\n i2 = raw.search('A10:')\\r\\n tel = raw.substring(i2 + 4, raw.length);\\r\\n AddValue(codeValues, \\\"SMSGateway\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.SMSGateway, tel);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.SMSGateway);\\r\\n AddValue(codeValues, \\\"ApprovedContacts\\\", raw.substring(i1, raw.length));\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.ApprovedContacts, raw.substring(i1, raw.length));\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.ApprovedContacts);\\r\\n break;\\r\\n case 'ACK-SERV-SMS': // APN and Server info sent by SMS\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n var i1 = params.data.search('APN:')\\r\\n var i2 = params.data.search('IP:')\\r\\n var i3 = params.data.search('Move')\\r\\n var apn = params.data.substring(i1 + 4, i2);\\r\\n AddValue(codeValues, \\\"apn\\\", apn);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.APN, apn);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.APN);\\r\\n var serverDetails = params.data.substring(i2 + 3, i3);\\r\\n AddValue(codeValues, \\\"server\\\", serverDetails);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.Server, serverDetails);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.Server);\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case 'RTL-GPS': // SRTL sent in via SMS with no pre-code\\r\\n var i3 = params.data.search('Speed:')\\r\\n var i4 = params.data.search('Altitude:')\\r\\n var i5 = params.data.search('Battery:')\\r\\n var i6 = params.data.search('google')\\r\\n var eventTime = params.data.substring(0, i3)\\r\\n var Speed = params.data.substring(i3 + 6, i4 - 3)\\r\\n if (params.data.substring(i4 - 3, i4) == 'mph') {\\r\\n Speed = Speed * 0.44704\\r\\n } else if (params.data.substring(i4 - 3, i4) == 'kph') {\\r\\n Speed = Speed / 3.6\\r\\n }\\r\\n var latlong = params.data.substring(i6 + 18)\\r\\n location_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n messageForReceiver = (`Roam-RTL;${params.imei};${location_time};${location_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n }\\r\\n if (!params.event_time && !event_time) { // if params.event_time undefined - set it to now. \\r\\n var event_time = moment.utc().unix();\\r\\n AddValue(codeValues, 'event_time', event_time);\\r\\n }\\r\\n // if (!params.location_time && !location_time) { // if params.location_time undefined - set it to now. \\r\\n // var location_time = moment.utc().unix();\\r\\n // AddValue(codeValues, 'location_time', location_time);\\r\\n //}\\r\\n }\\r\\n var dataToReceiver = {\\r\\n 'values': codeValues\\r\\n };\\r\\n if (configsToAck.length > 0) {\\r\\n dataToReceiver.configsToAck = configsToAck\\r\\n };\\r\\n if (configsToUpdate.length > 0) {\\r\\n dataToReceiver.configsToUpdate = configsToUpdate\\r\\n };\\r\\n if (configsToSend.length > 0) {\\r\\n dataToReceiver.configsToSend = configsToSend\\r\\n };\\r\\n console.log(dataToReceiver);\\r\\n //}\\r\\n //return {\\r\\n // 'output': dataToReceiver\\r\\n //}\\r\\n // end of main operation\\r\\n // define functions used in operation\\r\\n function AddValue(codeValueArray, p1, p2) { // push code value pair into array\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n codeValueArray.push(cvpair);\\r\\n }\\r\\n\\r\\n function decoder(str) { // decode rawdata\\r\\n // CARE Decoder\\r\\n AddValue(codeValues, 'Message : ', str);\\r\\n var message = str;\\r\\n // need to check if checksum is correct for possible msg corruption 10/03/23\\r\\n var checksum = message.substring(8, 12);\\r\\n var messageBody = message.substring(16, message.length);\\r\\n debug('message =' + message);\\r\\n debug('checksum =' + checksum);\\r\\n debug('calculateCheckSum =' + calculateCheckSum(messageBody));\\r\\n if (calculateCheckSum(messageBody) == checksum) { // payload is valid\\r\\n debug(\\\"message has valid checksum\\\");\\r\\n var messageBody = command; // update value for the ACK\\r\\n debug('command =' + command);\\r\\n if (command == '01') {\\r\\n while (index < total_length + 16) {\\r\\n // gen_location = '0'; //cambiado 30/09\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n var keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n debug('key = ' + key);\\r\\n debug('value = ' + value);\\r\\n switch (key) {\\r\\n //Device ID\\r\\n case '01':\\r\\n var imei = hex_to_ascii(value);\\r\\n break;\\r\\n //Alarm code\\r\\n case '02':\\r\\n var alarm = 'CYC';\\r\\n var alarmCode = value.substring(0, 8);\\r\\n alarmCode = changeEndianness(alarmCode);\\r\\n var timestampHex = value.substring(8, 16);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n event_time = timestamp;\\r\\n var alarmCodeInt = hexToDecimal(alarmCode);\\r\\n var alarmCodeExt = value.substring(16, 24);\\r\\n alarmCodeExt = changeEndianness(alarmCodeExt);\\r\\n var alarmCodeExtInt = hexToDecimal(alarmCodeExt);\\r\\n //Extended Alerts\\r\\n // Fall off\\r\\n if ((alarmCodeExtInt & 1) == 1) {\\r\\n var alarm = 'ALF-C';\\r\\n }\\r\\n // Welfare Check-out\\r\\n else if ((alarmCodeExtInt & 2) == 2) {\\r\\n var alarm = 'ALA-C';\\r\\n }\\r\\n // Standard Alerts\\r\\n //Battery low\\r\\n else if ((alarmCodeInt & 1) == 1) {\\r\\n var alarm = 'BATL';\\r\\n }\\r\\n //Overspeed\\r\\n else if ((alarmCodeInt & 2) == 2) {\\r\\n var alarm = 'ALSP';\\r\\n }\\r\\n //Fall\\r\\n else if ((alarmCodeInt & 4) == 4) {\\r\\n var alarm = 'ALF';\\r\\n }\\r\\n //Tilt\\r\\n else if ((alarmCodeInt & 8) == 8) {\\r\\n var alarm = 'Tilt';\\r\\n } else if ((alarmCodeInt & 16) == 16) {\\r\\n if ((alarmCodeInt & 16777216) == 16777216) {\\r\\n var alarm = 'Geo1-IN';\\r\\n } else {\\r\\n var alarm = 'Geo1-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 32) == 32) {\\r\\n if ((alarmCodeInt & 33554432) == 33554432) {\\r\\n var alarm = 'Geo2-IN';\\r\\n } else {\\r\\n var alarm = 'Geo2-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 64) == 64) {\\r\\n if ((alarmCodeInt & 67108864) == 67108864) {\\r\\n var alarm = 'Geo3-IN';\\r\\n } else {\\r\\n var alarm = 'Geo3-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 128) == 128) {\\r\\n if ((alarmCodeInt & 134217728) == 134217728) {\\r\\n var alarm = 'Geo4-IN';\\r\\n } else {\\r\\n var alarm = 'Geo4-OUT';\\r\\n }\\r\\n }\\r\\n //Power Off\\r\\n else if ((alarmCodeInt & 256) == 256) {\\r\\n var alarm = 'PWRF';\\r\\n }\\r\\n //Power On\\r\\n else if ((alarmCodeInt & 512) == 512) {\\r\\n var alarm = 'PWRN';\\r\\n }\\r\\n //Motion\\r\\n else if ((alarmCodeInt & 1024) == 1024) {\\r\\n var alarm = 'ALMOV';\\r\\n }\\r\\n //No Motion\\r\\n else if ((alarmCodeInt & 2048) == 2048) {\\r\\n var alarm = 'ALNM';\\r\\n }\\r\\n //SOS\\r\\n else if ((alarmCodeInt & 4096) == 4096) {\\r\\n var alarm = 'ALSOS';\\r\\n } else if ((alarmCodeInt & 8192) == 8192) {\\r\\n var alarm = 'Side1';\\r\\n } else if ((alarmCodeInt & 16384) == 16384) {\\r\\n var alarm = 'Side2';\\r\\n }\\r\\n //Battery charging\\r\\n else if ((alarmCodeInt & 32768) == 32768) {\\r\\n var alarm = 'BATCN';\\r\\n }\\r\\n //Battery no charging\\r\\n else if ((alarmCodeInt & 65536) == 65536) {\\r\\n var alarm = 'BATCF';\\r\\n }\\r\\n //SOS Ending\\r\\n // Temporary Commented until we know exactly how it works. 22/09/2022\\r\\n else if ((alarmCodeInt & 131072) == 131072) {\\r\\n var alarm = 'SOSEnding';\\r\\n info = 'Alarm Finished';\\r\\n }\\r\\n //Amber Alert EC03 only\\r\\n else if ((alarmCodeInt & 262144) == 262144) {\\r\\n var alarm = 'ALAO';\\r\\n }\\r\\n // welfare Alert check-in ALA-O\\r\\n else if ((alarmCodeInt & 524288) == 524288) {\\r\\n var alarm = 'ALA-O';\\r\\n }\\r\\n // Amber alert Ending ALA-C\\r\\n else if ((alarmCodeInt & 1048576) == 1048576) {\\r\\n var alarm = 'ALA-C';\\r\\n }\\r\\n // Amber alert Ending ALA-C\\r\\n //else if ((alarmCodeInt & 1048576) == 1048576) {\\r\\n // var alarm = 'ALA-C';\\r\\n //}\\r\\n // Fall-Down Alert ending\\r\\n else if ((alarmCodeInt & 2097152) == 2097152) {\\r\\n var alarm = 'ALF-C';\\r\\n }\\r\\n // welfare Alert Ending ALA\\r\\n else if ((alarmCodeInt & 4194304) == 4194304) {\\r\\n var alarm = 'ALA';\\r\\n }\\r\\n // Beacon absent Alert 11/10/22. Need to be added in msg types\\r\\n //else if ((alarmCodeInt & 16777216) == 16777216) {\\r\\n // var alarm = 'BEA';\\r\\n //}\\r\\n general += 'alarm:' + alarm + ',';\\r\\n break;\\r\\n //Custom ID\\r\\n case '03':\\r\\n // in value is customID.... '06' for Watch Care\\r\\n // if ((imei != '860470063029395') && (imei != '860470063035947')) {\\r\\n //update customID to check if belongs to this type of device\\r\\n customID = value;\\r\\n if (value != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n } else {\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n general += 'customID:' + value + ',';\\r\\n break;\\r\\n }\\r\\n //Historical Data Completed\\r\\n case '10': // indica q se han terminado de enviar todos los datos historicos.\\r\\n var histData = true;\\r\\n break;\\r\\n //GPS location\\r\\n case '20':\\r\\n location_type = 'GPS';\\r\\n var latitudeHex = value.substring(0, 8);\\r\\n var longitudeHex = value.substring(8, 16);\\r\\n var speedHex = value.substring(16, 20);\\r\\n var directionHex = value.substring(20, 24);\\r\\n var altitudeHex = value.substring(24, 28);\\r\\n var location_accuracyHex = value.substring(28, 32);\\r\\n var mileageHex = value.substring(32, 40);\\r\\n var satellitesHex = value.substring(40, 42);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n speed = ((hexToDecimal(changeEndianness(speedHex))) / 3.6).toFixed(2); //date 14-02-2023 in m/s\\r\\n var direction = hexToDecimal(changeEndianness(directionHex));\\r\\n var altitude = hexToDecimal(changeEndianness(altitudeHex)); // in meters\\r\\n //location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex)) * 5;\\r\\n // Range: 0.5 to 99.9 \\r\\n location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex));\\r\\n //var mileage = hexToDecimal(changeEndianness(mileageHex)) this is in km/h we need m/s\\r\\n var mileage = hexToDecimal(changeEndianness(mileageHex)); // in meters date 14-02-2023\\r\\n var satellites = hexToDecimal(satellitesHex);\\r\\n // location_time = timestamp;\\r\\n //<<latitude>>,<<longitude>>,<<speed>>,<<altitude>>,<<location_time>>\\r\\n gps_data = `${latitude},${longitude},${location_accuracy},${speed},${direction},${altitude},${satellites},${mileage}`;\\r\\n general += 'gps location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //WIFI Towers\\r\\n case '22':\\r\\n location_type = 'WIFI';\\r\\n var numWifi = Math.round((hexToDecimal(keyLengthHex) - 1) / 7);\\r\\n //location_time = timestamp;\\r\\n var wifiTowers = value;\\r\\n general += 'wifiTowers:';\\r\\n var indexWifi = 0;\\r\\n var bssid_array = [];\\r\\n wifi_data = '';\\r\\n for (let i = 0; i < numWifi; i++) {\\r\\n wifi_data += hexToDecimalSigned(wifiTowers.substring(indexWifi, indexWifi + 2)) + ',' + wifiTowers.substring(indexWifi + 2, indexWifi + 14) + ',';\\r\\n indexWifi += 14;\\r\\n }\\r\\n wifi_data = wifi_data.slice(0, -1);\\r\\n general += wifi_data;\\r\\n break;\\r\\n //BLE Location Added 10/10/22\\r\\n case '23':\\r\\n location_type = 'BLE';\\r\\n var mac = value.substring(0, 12);\\r\\n var latitudeHex = value.substring(12, 20);\\r\\n var longitudeHex = value.substring(20, 28);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n var address = hex_to_ascii(value.substring(28, value.length));\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n // location_time = timestamp;\\r\\n ble_data = `${latitude},${longitude},${mac},${address}`;\\r\\n general += 'BLE location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //General Data , status_data\\r\\n case '24':\\r\\n //var general = 'true'\\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n }\\r\\n //else {\\r\\n // messageForReceiver = (`CareWatch-CYC;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};`);\\r\\n //}\\r\\n // reset variables\\r\\n //alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n location_time = timestamp;\\r\\n // HardCode to fix possible issue in protocol\\r\\n // event_time = timestamp; \\r\\n event_time = moment.utc().unix();\\r\\n // end of hard code\\r\\n var statusHex = changeEndianness(value.substring(8, 16));\\r\\n var statusInt = hexToDecimal(statusHex);\\r\\n var statusDevice = '';\\r\\n if ((statusInt & 1) == 1) {\\r\\n statusDevice += 'GPS,';\\r\\n }\\r\\n if ((statusInt & 2) == 2) {\\r\\n statusDevice += 'WIFISource,';\\r\\n }\\r\\n if ((statusInt & 4) == 4) {\\r\\n statusDevice += 'CellTower,';\\r\\n }\\r\\n if ((statusInt & 8) == 8) {\\r\\n statusDevice += 'BLELocation,';\\r\\n }\\r\\n //params.BatteryStatus.BatteryStatus = '1';\\r\\n if ((statusInt & 16) == 16) {\\r\\n statusDevice += 'Charging,';\\r\\n // var alarm = 'BATCN';\\r\\n //configs.BatteryStatus.BatteryStatus = '1';\\r\\n /* if (configs.BatteryStatus.BatteryStatus !== '1') {\\r\\n hasConfigs = true;\\r\\n var batteryStatus = '1';\\r\\n var alarm = 'BATCN';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }*/\\r\\n }\\r\\n if ((statusInt & 32) == 32) {\\r\\n statusDevice += 'FUllyCharged,';\\r\\n //var alarm = 'BATF';\\r\\n // configs.BatteryStatus.BatteryStatus = '3';\\r\\n /* if (configs.BatteryStatus.BatteryStatus !== '3') {\\r\\n hasConfigs = true;\\r\\n var batteryStatus = '3';\\r\\n var alarm = 'BATF';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }*/\\r\\n }\\r\\n /* if (!((statusInt & 32) == 32) & !((statusInt & 16) == 16)) {\\r\\n statusDevice += 'Not Charging,';\\r\\n var alarm = 'BATCF';\\r\\n //configs.BatteryStatus.BatteryStatus = '2';\\r\\n if (configs.BatteryStatus.BatteryStatus !== '2') {\\r\\n var batteryStatus = '2';\\r\\n var alarm = 'BATCF';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }\\r\\n }*/\\r\\n if ((statusInt & 64) == 64) {\\r\\n statusDevice += 'Reboot,';\\r\\n }\\r\\n if ((statusInt & 128) == 128) {\\r\\n statusDevice += 'HistoricalData,';\\r\\n }\\r\\n if ((statusInt & 256) == 256) {\\r\\n statusDevice += 'AGPSDataValid,';\\r\\n }\\r\\n if ((statusInt & 512) == 512) {\\r\\n statusDevice += 'Motion,';\\r\\n }\\r\\n if ((statusInt & 1024) == 1024) {\\r\\n statusDevice += 'SmartLocating,';\\r\\n }\\r\\n if ((statusInt & 2048) == 2048) { //isHome\\r\\n statusDevice += 'BeaconLocation,';\\r\\n }\\r\\n if ((statusInt & 4096) == 4096) {\\r\\n statusDevice += 'BLEConnected,';\\r\\n }\\r\\n if ((statusInt & 16384) == 16384) {\\r\\n statusDevice += 'HomeWiFi,';\\r\\n }\\r\\n statusDevice = statusDevice.slice(0, -1);\\r\\n status_data = statusDevice; //to oysta template\\r\\n //statusHex = (statusHex);\\r\\n statusHex = hex2bin(statusHex);\\r\\n statusHex = ('00000000000000000000000000000000' + statusHex).slice(-32);\\r\\n battery_percentage = parseInt(statusHex.substring(0, 8), 2);\\r\\n cellNetworkSignal = parseInt(statusHex.substring(8, 13), 2);\\r\\n workMode = parseInt(statusHex.substring(13, 16), 2);\\r\\n general += 'statusDevice:' + statusDevice + ',';\\r\\n if (battery_percentage) {\\r\\n general += 'battery:' + battery_percentage + ',';\\r\\n }\\r\\n if (cellNetworkSignal) {\\r\\n general += 'cellNetworkSignal:' + cellNetworkSignal + ',';\\r\\n }\\r\\n if (workMode) {\\r\\n general += 'workMode:' + workMode + ',';\\r\\n }\\r\\n //messageForReceiver = (`CareWatch-CYC;${imei};${i};${event_time};${battery_percentage}`);\\r\\n break;\\r\\n //Call Records\\r\\n case '25':\\r\\n //Needed?\\r\\n break;\\r\\n //BLE Location 2\\r\\n case '26':\\r\\n //I don't understand\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Smart Location\\r\\n case '27':\\r\\n location_type = 'SMART';\\r\\n var latitudeHex = value.substring(0, 8);\\r\\n var longitudeHex = value.substring(8, 16);\\r\\n var location_accuracyHex = value.substring(16, 20);\\r\\n var altitudeHex = value.substring(20, 24);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n var altitude = hexToDecimal(changeEndianness(altitudeHex));\\r\\n //location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex)) * 5;\\r\\n //04/08/2022 se quita el multiplicador por 5 pq ya viene el valor en metros\\r\\n location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex));\\r\\n //location_time = timestamp;\\r\\n smart_data = `${latitude},${longitude},${location_accuracy},${altitude}`;\\r\\n general += 'smart location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //Beacon Location Added 11/10/22\\r\\n case '28':\\r\\n location_type = 'BEACON';\\r\\n // var alarm = 'EBZI';\\r\\n var latitudeHex = '00';\\r\\n var longitudeHex = '00';\\r\\n var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 1));\\r\\n var beacId = hexToDecimal(value.substring(1, 2));\\r\\n // msg includes descrip\\r\\n if ((flag & 4) == 4) {\\r\\n descr = hex_to_ascii(value.substring(18, value.length));\\r\\n }\\r\\n // msg includes lat/lon\\r\\n if ((flag & 8) == 8) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n }\\r\\n // msg includes lat/lon and description\\r\\n if ((flag & 12) == 12) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n descr = hex_to_ascii(value.substring(34, value.length));\\r\\n }\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var rssiHex = value.substring(14, 16);\\r\\n var rssi1Hex = value.substring(16, 18);\\r\\n rssi = hexToDecimalSigned(changeEndianness(rssiHex));\\r\\n rssi1 = hexToDecimalSigned(changeEndianness(rssi1Hex));\\r\\n // var latitudeHex = value.substring(18, 26);\\r\\n // var longitudeHex = value.substring(26, 34);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n //location_time = timestamp;\\r\\n beacon_data = `${latitude},${longitude},${mac},${descr}`;\\r\\n general += 'BEACON location (lat):' + latitude + ', (long):' + longitude + ', (mac):' + mac + ', (description):' + descr + ', (rssi):' + rssi + ', (listIndex):' + beacId + ',';\\r\\n break;\\r\\n // Beacon V2\\r\\n case '2C':\\r\\n location_type = 'BEACON';\\r\\n // var alarm = 'EBZI';\\r\\n var latitudeHex = '00';\\r\\n var longitudeHex = '00';\\r\\n var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 1));\\r\\n var beacId = hexToDecimal(value.substring(1, 2));\\r\\n // msg includes descrip\\r\\n if ((flag & 4) == 4) {\\r\\n let desc_leng = hexToDecimal(value.substring(20, 22));\\r\\n descr = hex_to_ascii(value.substring(22, 22 + (2 * desc_leng)));\\r\\n //descr = hex_to_ascii(value.substring(18, value.length));\\r\\n }\\r\\n // msg includes lat/lon\\r\\n if ((flag & 8) == 8) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n }\\r\\n // msg includes lat/lon and description\\r\\n if ((flag & 12) == 12) {\\r\\n latitudeHex = value.substring(20, 28);\\r\\n longitudeHex = value.substring(28, 36);\\r\\n let desc_leng = hexToDecimal(value.substring(36, 38));\\r\\n descr = hex_to_ascii(value.substring(38, 38 + (2 * desc_leng)));\\r\\n }\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var rssiHex = value.substring(14, 16);\\r\\n var rssi1Hex = value.substring(16, 18);\\r\\n rssi = hexToDecimalSigned(changeEndianness(rssiHex));\\r\\n rssi1 = hexToDecimalSigned(changeEndianness(rssi1Hex));\\r\\n var battery_beacon = hexToDecimal(value.substring(18, 20));\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n //location_time = timestamp;\\r\\n beacon_data = `${latitude},${longitude},${mac},${descr}`;\\r\\n general += 'BEACON location (lat):' + latitude + ', (long):' + longitude + ', (mac):' + mac + ', (description):' + descr + ', (rssi):' + rssi + ', (battery):' + battery_beacon + ', (listIndex):' + beacId + ',';\\r\\n break;\\r\\n //Cell Towers Note\\r\\n case '29':\\r\\n location_type = 'LBS';\\r\\n lbs_data = '';\\r\\n var mccHex = changeEndianness(value.substring(0, 4));\\r\\n var mncHex = value.substring(4, 6);\\r\\n var mcc = hexToDecimal(mccHex);\\r\\n lbs_data += mcc + ',';\\r\\n var mnc = hexToDecimal(mncHex);\\r\\n lbs_data += mnc + ',';\\r\\n var indexLbs = 6;\\r\\n var numTowers = (hexToDecimal(keyLengthHex) - 4) / 7;\\r\\n for (let i = 0; i < numTowers; i++) {\\r\\n var rxlHex = changeEndianness(value.substring(indexLbs, indexLbs + 2));\\r\\n var rxl = hexToDecimal(rxlHex);\\r\\n var lacHex = changeEndianness(value.substring(indexLbs + 2, indexLbs + 6));\\r\\n var lac = hexToDecimal(lacHex);\\r\\n var cellTowers = hexToDecimal(changeEndianness(value.substring(indexLbs + 6, indexLbs + 14)));\\r\\n lbs_data += rxl + ',' + lac + ',' + cellTowers + ',';\\r\\n indexLbs += 14;\\r\\n }\\r\\n lbs_data = lbs_data.slice(0, -1);\\r\\n general += lbs_data;\\r\\n break;\\r\\n case '30':\\r\\n //G-sensor. \\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n var numStep = (keyLength - 2) / 16;\\r\\n for (let j = 0; j < numStep; j++) {\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n //timestamp = hexToDecimalSigned(timestampHex);\\r\\n var stepHex = value.substring(8, 16);\\r\\n stepHex = changeEndianness(stepHex);\\r\\n var stepRate = hexToDecimal(stepHex);\\r\\n info = stepRate;\\r\\n //var alarmCode = 'True';\\r\\n var alarm = 'STP';\\r\\n general += ' step counting' + j + ':' + stepRate + ',';\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};STP=${info};LABEL=steps`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n //Activity\\r\\n case '31':\\r\\n //I don't understand\\r\\n break;\\r\\n //BLE MAC list\\r\\n case '32':\\r\\n //I don't understand\\r\\n break;\\r\\n //Beacon List\\r\\n case '33':\\r\\n //I don't understand\\r\\n break;\\r\\n //Heart Rate Data\\r\\n case '40':\\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n var numHeartRate = (keyLength - 2) / 12;\\r\\n for (let j = 0; j < numHeartRate; j++) {\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n //timestamp = hexToDecimalSigned(timestampHex);\\r\\n var heartRateHex = value.substring(8, 10);\\r\\n var heartRate = hexToDecimal(heartRateHex);\\r\\n var trustLevelHex = value.substring(10, 12);\\r\\n var trustLevel = hexToDecimal(trustLevelHex);\\r\\n info = heartRate;\\r\\n //var alarmCode = 'True';\\r\\n var alarm = 'HRT';\\r\\n general += ' heart rate' + j + ':' + heartRate + ',';\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};HRT=${info};TLEVEL=${trustLevel};LABEL=bpm`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n //BLE Connected . For Flic button\\r\\n case '62':\\r\\n location_type = 'BLE';\\r\\n //var alarm = 'EBZI'; \\r\\n //var latitudeHex = '00';\\r\\n //var longitudeHex = '00';\\r\\n //var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 2)); // 0= Disconnected, 1= Connected\\r\\n var mac = value.substring(2, 14); // No hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var batLevel = hexToDecimal(value.substring(14, 16)); // 0-100\\r\\n //location_time = timestamp;\\r\\n ble_data = `${flag},${batLevel},${mac}`;\\r\\n general += 'BLE location (State):' + flag + ', (bat):' + batLevel + ', (mac):' + mac + ',';\\r\\n break;\\r\\n }\\r\\n }\\r\\n // CareWatch-CYC;<<imei>>;STATUS=<<status_data>>;TIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;\\r\\n // \\\"CareWatch-CYC;861629050193550;STATUS=WIFISource,CellTower;TIME=1673950279;BATP=84;LGPS=undefined;LWIF=-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369;LLBS=214,1,13,768,38529798;LBEACON=undefined;BLE=undefined;GENERAL=statusDevice:WIFISource,CellTower,battery:84,cellNetworkSignal:14,workMode:6,wifiTowers:-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369,214,1,13,768,38529798,;\\\",\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n /*else if (alarm === 'HRT') {\\r\\n messageForReceiver = (`CareWatch-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};HRT=${info};TLEVEL=${trustLevel};LABEL=bpm`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (alarm === 'STP') {\\r\\n messageForReceiver = (`CareWatch-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};STP=${info};LABEL=steps`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else {\\r\\n messageForReceiver = (`CareWatch-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }*/\\r\\n // rest the alarm value\\r\\n alarm = '';\\r\\n }\\r\\n if (command == '02') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n switch (key) {\\r\\n //Module Number\\r\\n case '01':\\r\\n var date = value.substring(6, 8) + value.substring(4, 6) + '-' + value.substring(2, 4) + '-' + value.substring(0, 2);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Firmware version\\r\\n case '02':\\r\\n //no ACK need\\r\\n var fwVersion = 'v' + hexToDecimal(value.substring(6, 8)) + '.' + hexToDecimal(value.substring(4, 6)) + '.' + hexToDecimal(value.substring(2, 4)) + '.' + hexToDecimal(value.substring(0, 2));\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '1A':\\r\\n //no ACK need\\r\\n var fwVersion = hex_to_ascii(value);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n break;\\r\\n //IMEI\\r\\n case '03':\\r\\n var imei = hexToDecimal(value);\\r\\n // harcode to avoid conflicts with Rio protocol\\r\\n //if ((imei != '860470063029395') && (imei != '860470063035947')) {\\r\\n // AddValue(codeValues, \\\"error\\\", \\\"device imei is not in this protocol\\\");\\r\\n // AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n //AddValue(codeValues, \\\"IMEI\\\", imei);\\r\\n // return\\r\\n //}\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //ICCID\\r\\n case '04':\\r\\n var iccid = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //BLE-MAC\\r\\n case '05':\\r\\n var bleMac = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Run Time\\r\\n case '07':\\r\\n var runTime = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '10': // Ringer Volume\\r\\n var volume = hexToDecimal(value);\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-VOL;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"Volume\\\", volume);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.Volume, volume);\\r\\n configsToAck.push(configIds.ReadSystemSettings.Volume);\\r\\n break;\\r\\n case '0A': //Performance mode\\r\\n //var workMode = hexToDecimal(value);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n //AddValue(codeValues, \\\"WorkMode\\\", workMode);\\r\\n //AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n //configsToAck.push(configIds.ReadPerformance`Settings.Mode);\\r\\n //var workMode = hex_to_ascii(value.substring(0, value.length));\\r\\n //var workMode = hexToDecimal(value);\\r\\n //var workMode = hex_to_ascii(value.substring(0, value.length));\\r\\n var workMode = 1234; // + value + \\\"end\\\";\\r\\n //var workModeVal = 9;\\r\\n //workMode = 'test10';\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-MODE;${imei};`);\\r\\n AddValue(codeValues, \\\"Mode\\\", workMode);\\r\\n AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n //AddValue(codeValues, \\\"performanceMode\\\", performanceMode);\\r\\n //AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, performanceMode);\\r\\n // configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n break;\\r\\n case '1B':\\r\\n //Decimal o ascii?\\r\\n var gsmModule = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '1F':\\r\\n //System Language\\r\\n var systemLanguage = hex_to_ascii(value.substring(0, value.length));\\r\\n imei = serverParams.Imei;\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n messageForReceiver = (`Roam;ACK-LANG;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"SystemLanguage\\\", systemLanguage);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.SystemLanguage, systemLanguage);\\r\\n configsToAck.push(configIds.ReadSystemSettings.SystemLanguage);\\r\\n break;\\r\\n case '33': // phone option\\r\\n // [Value]:83 0B 00 00 {\\\"phoneOption\\\":{\\\"flag_value\\\":2947,\\\"s3\\\":1,\\\"s4\\\":0,\\\"s5\\\":1,\\\"s6\\\":0,\\\"callIncoming\\\":0,\\\"rings\\\":3,\\\"s7\\\":0,\\\"toneID\\\":0,\\\"s1\\\":1,\\\"s2\\\":1}}\\r\\n var statusPhone = hex2bin(value.substring(0, 2)); // To find autoanswer setup\\r\\n if (statusPhone.substring(0, 1) == '1') { // 1 Enable\\r\\n var auto = 'true';\\r\\n } else var auto = 'false';\\r\\n statusPhone = hex2bin(value.substring(2, 4)); // To find allow list setup\\r\\n if (statusPhone.substring(7, 8) == '1') { // 1 Enable\\r\\n allow = 'true';\\r\\n } else var allow = 'false';\\r\\n //statusPhone = hex2bin(value.substring(0, 2)) + hex2bin(value.substring(2, 4));\\r\\n //AddValue(configsToUpdate, configIds.ReadSystemSettings.Statusphone, statusPhone);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.AllowList, allow);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.AutoAnswer, auto);\\r\\n //configsToAck.push(configIds.ReadSystemSettings.Statusphone);\\r\\n configsToAck.push(configIds.ReadSystemSettings.AllowList);\\r\\n configsToAck.push(configIds.ReadSystemSettings.AutoAnswer);\\r\\n break;\\r\\n case '30': //ContactList\\r\\n var contactNumber = value.substring(1, 2);\\r\\n var telLength = hexToDecimal(value.substring(2, 4));\\r\\n var tel = '';\\r\\n switch (contactNumber) {\\r\\n // Emergency Number\\r\\n case '0':\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n AddValue(codeValues, \\\"EmergencyNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.EmergencyNumber, tel);\\r\\n configsToAck.push(configIds.ReadAlertSettings.EmergencyNumber);\\r\\n break;\\r\\n // Speed Dial Number\\r\\n case '1':\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n AddValue(codeValues, \\\"SpeedDialNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadSpeedDialSettings.SpeedDialNumber, tel);\\r\\n configsToAck.push(configIds.ReadSpeedDialSettings.SpeedDialNumber);\\r\\n break;\\r\\n // Gateway Number\\r\\n case '9': //00447781482635,Esendex UK 0034627177148,Esendex Spain 00447507288240,Esendex UK Acceptance\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n if (tel.includes('447781482635') || tel.includes('00447781482635')) {\\r\\n tel = 'Esendex UK'\\r\\n } else if (tel.includes('34627177148') || tel.includes('0034627177148')) {\\r\\n tel = 'Esendex Spain'\\r\\n } else if (tel.includes('447507288240') || tel.includes('00447507288240')) {\\r\\n tel = 'Esendex UK Acceptance'\\r\\n } else {\\r\\n tel = 'Default'\\r\\n }\\r\\n AddValue(codeValues, \\\"SMSGateway\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.SMSGateway, tel);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.SMSGateway);\\r\\n break;\\r\\n default:\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n if (tel.length < 6) {\\r\\n break;\\r\\n }\\r\\n //contacts += 'A' + (contactNumber - 1) + ': ' + tel + ', ';\\r\\n contacts += tel + ', ';\\r\\n AddValue(codeValues, \\\"ApprovedContacts\\\", contacts);\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.ApprovedContacts, contacts);\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.ApprovedContacts);\\r\\n break;\\r\\n }\\r\\n break;\\r\\n case '40': // APN\\r\\n //no ACK need\\r\\n var apn = hex_to_ascii(value.substring(0, value.length));\\r\\n imei = serverParams.Imei;\\r\\n break;\\r\\n case '41': // APN Username\\r\\n //no ACK need\\r\\n //apn = apn + ',' + hex_to_ascii(value.substring(0, value.length));\\r\\n break;\\r\\n case '42': // APN Password\\r\\n //no ACK need\\r\\n //apn = apn + ',' + hex_to_ascii(value.substring(0, value.length));\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"apn\\\", apn);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.APN, apn);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.APN);\\r\\n break;\\r\\n case '43': //Server Details\\r\\n //52.232.85.255,5678 production 52.174.17.77,5678 acceptance\\r\\n var serverDetails = hex_to_ascii(value.substring(6, value.length)) + ':' + hexToDecimal(value.substring(4, 6) + value.substring(2, 4));\\r\\n if (serverDetails.includes('52.232.85.255:5678')) {\\r\\n serverDetails = 'Production'\\r\\n } else if (serverDetails.includes('52.174.17.77:5678')) {\\r\\n serverDetails = 'Acceptance'\\r\\n } else if (serverDetails.includes('52.174.17.77:5778')) {\\r\\n serverDetails = 'Protocol-Import'\\r\\n } else {\\r\\n serverDetails = 'Default'\\r\\n }\\r\\n AddValue(codeValues, \\\"server\\\", serverDetails);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.Server, serverDetails);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.Server);\\r\\n break;\\r\\n case '44': //time interval - work mode intervals\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-MODE;${imei};`);\\r\\n var workMode = 0;\\r\\n var cycle = hexToDecimal(value.substring(10, 12) + value.substring(8, 10));\\r\\n var lazyCycle = hexToDecimal(value.substring(18, 20) + value.substring(16, 18));\\r\\n if (cycle == 240 && lazyCycle == 3600) { // 4 mins and 1 hour\\r\\n //workMode = 'High Frequency';\\r\\n workMode = 3;\\r\\n }\\r\\n if (cycle == 600 && lazyCycle == 3600) { // 10 mins and 1 hour\\r\\n //workMode = 'Balanced';\\r\\n workMode = 2;\\r\\n }\\r\\n if (cycle == 28800 && lazyCycle == 43200) { // 6 hour and 12 hours\\r\\n //workMode = 'Power Saving';\\r\\n workMode = 1;\\r\\n }\\r\\n if (cycle == 86400 && lazyCycle == 86400) { // 24 hours and 24 hours\\r\\n //workMode = 'No Reporting';\\r\\n workMode = 0;\\r\\n }\\r\\n AddValue(codeValues, \\\"Mode\\\", workMode);\\r\\n AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case '47': // Custom Id\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-CUSTID;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"customeid\\\", value);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CustomId, value);\\r\\n configsToAck.push(configIds.ReadState.CustomId);\\r\\n break;\\r\\n case '53': // Non motion alert\\r\\n //2B020080\\r\\n var status = hex2bin(value.substring(6, 8));\\r\\n var alertSetting = '';\\r\\n var enableDisable = '';\\r\\n if (status.substring(0, 1) == '1') {\\r\\n alertSetting = 'Enable, '\\r\\n enableDisable = '1';\\r\\n } else {\\r\\n alertSetting = 'Disable, '\\r\\n };\\r\\n //if (status.substring(5, 6) == '1') {\\r\\n // alertSetting += 'Dial, '\\r\\n //} else {\\r\\n // alertSetting += 'No Dial, '\\r\\n //};\\r\\n var time = hexToDecimal(value.substring(2, 4) + value.substring(0, 2));\\r\\n alertSetting += time;\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-NOMOTION;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"nomotion\\\", alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.NoMotionAlert, value + '-' + alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadNonMovementSettings.EnableDisableNonMovementSettings, enableDisable);\\r\\n AddValue(configsToUpdate, configIds.ReadNonMovementSettings.Time, time);\\r\\n configsToAck.push(configIds.ReadAlertSettings.NoMotionAlert);\\r\\n configsToAck.push(configIds.ReadNonMovementSettings.EnableDisableNonMovementSettings);\\r\\n configsToAck.push(configIds.ReadNonMovementSettings.Time);\\r\\n break;\\r\\n case '56': //Fall down sensibility\\r\\n // '00001100'\\r\\n var fallStatus = hex2bin(value.substring(0, 2));\\r\\n var enalbleDisable = '';\\r\\n //if (fallStatus.substring(4, 5) == '1') {\\r\\n if (fallStatus.substring(0, 1) == '1') {\\r\\n var sensibility = 'Enable, '\\r\\n enalbleDisable = '1'\\r\\n } else {\\r\\n var sensibility = 'Disable, '\\r\\n };\\r\\n if (fallStatus.substring(5, 6) == '1') {\\r\\n sensibility += 'Dial, '\\r\\n } else {\\r\\n sensibility += 'No Dial, '\\r\\n };\\r\\n var imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-FALLALERT;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n var sesibityOptionValue = hexToDecimal(value.substring(1, 2));\\r\\n sensibility += sesibityOptionValue;\\r\\n AddValue(codeValues, \\\"sensibility\\\", sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.FallSettings, sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadFallSettings.EnableDisableFallSettings, enalbleDisable);\\r\\n AddValue(configsToUpdate, configIds.ReadFallSettings.Sensitivity, sesibityOptionValue);\\r\\n configsToAck.push(configIds.ReadAlertSettings.FallSettings);\\r\\n configsToAck.push(configIds.ReadFallSettings.EnableDisableFallSettings);\\r\\n configsToAck.push(configIds.ReadFallSettings.Sensitivity);\\r\\n break;\\r\\n case '73': //BeaconList\\r\\n var beaconNumber = hexToDecimal(value.substring(1, 2));\\r\\n var beaconStatus = hex2bin(value.substring(0, 1));\\r\\n //if (beaconStatus.substring(4, 5) == '1') {\\r\\n // homeBeacon += ' Enable, '\\r\\n //} else {\\r\\n // homeBeacon += ' Disable, '\\r\\n //};\\r\\n beaconStatus = hex_to_ascii(value.substring(30, value.length));\\r\\n //beaconStatus = changeEndianness(value.substring(30, value.length));\\r\\n homeBeacon += 'B' + (beaconNumber + 1) + ': ' + beaconStatus + ', ';\\r\\n AddValue(codeValues, \\\"homeBeacon\\\", homeBeacon);\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.HomeBeacon, homeBeacon);\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.HomeBeacon);\\r\\n break;\\r\\n case '4A': //Wifi Network List\\r\\n var wifiSSIDLenght = hexToDecimal(value.substring(2, 4));\\r\\n var wifiPasswordLenght = hexToDecimal(value.substring(4, 6));\\r\\n var wifiIndex = hexToDecimal(value.substring(1, 2));\\r\\n var wifiStatus = hexToDecimal(value.substring(0, 1));\\r\\n /*var enalbleDisable = wifiSSID = wifiPassword = homeWifi = '';\\r\\n /var homeWifi = '';\\r\\n if (wifiIndex == '0') { // Only first Wifi of the list\\r\\n if (wifiStatus == '8') {\\r\\n homeWifi += ' Enable, '\\r\\n enalbleDisable = '1';\\r\\n } else {\\r\\n homeWifi += ' Disable, '\\r\\n //enalbleDisable = '0';\\r\\n };*/\\r\\n if (wifiStatus == '8') {\\r\\n var wifiSSID = hex_to_ascii(value.substring(6, 6 + 2 * (wifiSSIDLenght)));\\r\\n var wifiPassword = hex_to_ascii(value.substring(6 + 2 * (wifiSSIDLenght), 6 + 2 * (wifiSSIDLenght + wifiPasswordLenght)));\\r\\n var imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-WIFI;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n homeWiFi += 'W' + (wifiIndex + 1) + ': ' + wifiSSID + ', ' + wifiPassword + ';';\\r\\n AddValue(codeValues, \\\"wifi\\\", homeWiFi);\\r\\n AddValue(configsToUpdate, configIds.ReadWiFiList.WiFiList, homeWiFi);\\r\\n configsToAck.push(configIds.ReadWiFiList.WiFiList);\\r\\n }\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.EnableDisableReadWiFiSettings, enalbleDisable);\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.SSID, wifiSSID);\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.Password, wifiPassword);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.EnableDisableReadWiFiSettings);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.SSID);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.Password);\\r\\n break;\\r\\n case '21': // Speed Dial Settings\\r\\n // [Value]:53 84 {\\\"call1Button\\\":{\\\"mode\\\":0,\\\"feedBack\\\":3,\\\"task\\\":2,\\\"time\\\":20,\\\"status\\\":1}}\\r\\n var status = hex2bin(value.substring(2, 3));\\r\\n var alertSetting = '';\\r\\n var enalbleDisable = '';\\r\\n if (status.substring(0, 1) == '1') {\\r\\n alertSetting = 'Enable, '\\r\\n enalbleDisable = '1'\\r\\n } else {\\r\\n alertSetting = 'Disable, '\\r\\n //enableDisable = '0';\\r\\n };\\r\\n //var time = hexToDecimal(value.substring(2, 4) + value.substring(0, 2));\\r\\n //alertSetting += time;\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-SPEED;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"speed\\\", alertSetting);\\r\\n //AddValue(configsToUpdate, configIds.ReadAlertSettings.NoMotionAlert, value + '-' + alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadSpeedDialSettings.EnableDisableReadSpeedDialSettings, enalbleDisable);\\r\\n //AddValue(configsToUpdate, configIds.ReadNonMovementSettings.Time, time);\\r\\n //configsToAck.push(configIds.ReadAlertSettings.NoMotionAlert);\\r\\n configsToAck.push(configIds.ReadSpeedDialSettings.EnableDisableReadSpeedDialSettings);\\r\\n //configsToAck.push(configIds.ReadNonMovementSettings.Time);\\r\\n break;\\r\\n }\\r\\n }\\r\\n }\\r\\n if (command == '03') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n var keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n debug('key = ' + key);\\r\\n debug('value = ' + value);\\r\\n switch (key) {\\r\\n case '01': // Device ID\\r\\n var imei = hex_to_ascii(value);\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n break;\\r\\n //CustomID is not provided so far with command type 03.. commented in the mean time\\r\\n /* case '03':\\r\\n //update customID to check if belongs to this type of device\\r\\n customID = value;\\r\\n if (value != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n } else {\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n general += 'customID:' + value + ',';\\r\\n break;\\r\\n }\\r\\n break; */\\r\\n case '10': // Heartbeat\\r\\n var heartbeat = hex_to_ascii(value);\\r\\n event_time = moment.utc().unix();\\r\\n if (index < total_length + 16) {\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n key = message.substring(index, index = index + 2);\\r\\n if (key == '24') {\\r\\n // debug('key: ' + key) //comment those out\\r\\n value = message.substring(index, index = index + keyLength - 2);\\r\\n // debug(value)\\r\\n var timestampHex = value.substring(0, 8);\\r\\n // debug('timestampt hex: ' + timestampHex)\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n event_time = timestamp;\\r\\n // debug(event_time)\\r\\n var statusHex = changeEndianness(value.substring(8, 16));\\r\\n // debug(statusHex)\\r\\n var statusInt = hexToDecimal(statusHex);\\r\\n var statusDevice = '';\\r\\n if ((statusInt & 1) == 1) {\\r\\n statusDevice += 'GPS,';\\r\\n }\\r\\n if ((statusInt & 2) == 2) {\\r\\n statusDevice += 'WIFISource,';\\r\\n }\\r\\n if ((statusInt & 4) == 4) {\\r\\n statusDevice += 'CellTower,';\\r\\n }\\r\\n if ((statusInt & 8) == 8) {\\r\\n statusDevice += 'BLELocation,';\\r\\n }\\r\\n if ((statusInt & 16) == 16) {\\r\\n statusDevice += 'Charging,';\\r\\n }\\r\\n if ((statusInt & 32) == 32) {\\r\\n statusDevice += 'FUllyCharged,';\\r\\n }\\r\\n if ((statusInt & 64) == 64) {\\r\\n statusDevice += 'Reboot,';\\r\\n }\\r\\n if ((statusInt & 128) == 128) {\\r\\n statusDevice += 'HistoricalData,';\\r\\n }\\r\\n if ((statusInt & 256) == 256) {\\r\\n statusDevice += 'AGPSDataValid,';\\r\\n }\\r\\n if ((statusInt & 512) == 512) {\\r\\n statusDevice += 'Motion,';\\r\\n }\\r\\n if ((statusInt & 1024) == 1024) {\\r\\n statusDevice += 'SmartLocating,';\\r\\n }\\r\\n if ((statusInt & 2048) == 2048) {\\r\\n statusDevice += 'BeaconLocation,';\\r\\n }\\r\\n if ((statusInt & 4096) == 4096) {\\r\\n statusDevice += 'BLEConnected,';\\r\\n }\\r\\n statusDevice = statusDevice.slice(0, -1);\\r\\n // debug('statusHex:' + statusHex)\\r\\n statusHex = (statusHex);\\r\\n statusHex = hex2bin(statusHex);\\r\\n statusHex = ('00000000000000000000000000000000' + statusHex).slice(-32);\\r\\n // debug(statusHex)\\r\\n battery_percentage = parseInt(statusHex.substring(0, 8), 2);\\r\\n // debug(battery_percentage)\\r\\n // debug(battery_percentage)\\r\\n // debug(statusHex.substring(8, 13))\\r\\n cellNetworkSignal = parseInt(statusHex.substring(8, 13), 2);\\r\\n // debug(cellNetworkSignal)\\r\\n workMode = parseInt(statusHex.substring(13, 16), 2);\\r\\n // debug(workMode)\\r\\n general += 'statusDevice:' + statusDevice + ';';\\r\\n if (battery_percentage) {\\r\\n general += 'battery:' + battery_percentage + ';';\\r\\n }\\r\\n if (cellNetworkSignal) {\\r\\n general += 'cellNetworkSignal:' + cellNetworkSignal + ';';\\r\\n }\\r\\n if (workMode) {\\r\\n general += 'workMode:' + workMode + ';';\\r\\n }\\r\\n }\\r\\n }\\r\\n // revisar\\r\\n var gen_location = '0';\\r\\n //CustomID is not provided so far with command type 03.. commented in the mean time\\r\\n /*if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }*/\\r\\n //messageForReceiver = (`Eview-HTB;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};SIGNAL=${cellNetworkSignal};WM=${workMode};SL=${systemLanguage};GENERAL=${general}`);\\r\\n messageForReceiver = (`Eview-HTB;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '12': // Device requesting timestamp\\r\\n timestamp = moment.utc().unix();\\r\\n timestampHex = decimalToHex(timestamp);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n keyLengthHex = ('00' + decimalToHex(1 + (timestampHex.length) / 2)).slice(-2);\\r\\n // respond to device with the timestamp of the server\\r\\n messageBody = messageBody + keyLengthHex + key + timestampHex;\\r\\n messageForReceiver = `Eview;${imei};${sequenceID};Get timestamp`;\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case '21': //Cell Towers\\r\\n var mccHex = value.substring(0, 2);\\r\\n var mncHex = value.substring(2, 3);\\r\\n var mcc = hexToDecimal(mccHex);\\r\\n var mnc = hexToDecimal(mncHex);\\r\\n var numTowers = (keyLength - 4) / 5;\\r\\n var cellTowers = hex_to_ascii(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '22': // WIFI locations \\r\\n location_type = 'WIFI';\\r\\n var numWifi = Math.round((hexToDecimal(keyLengthHex) - 1) / 7);\\r\\n //location_time = timestamp;\\r\\n var wifiTowers = value;\\r\\n general += 'wifiTowers:';\\r\\n var indexWifi = 0;\\r\\n var bssid_array = [];\\r\\n gen_location = '';\\r\\n for (let i = 0; i < numWifi; i++) {\\r\\n gen_location += wifiTowers.substring(indexWifi + 2, indexWifi + 14) + ',';\\r\\n indexWifi += 14;\\r\\n }\\r\\n gen_location = gen_location.slice(0, -1);\\r\\n general += gen_location;\\r\\n //CustomID is not provided so far with command type 03\\r\\n /*if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }*/\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n alarmCode = '';\\r\\n break;\\r\\n }\\r\\n }\\r\\n }\\r\\n if (command == '04') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n if (command == '7E') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n if (command == '7F') {\\r\\n // while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n messageForReceiver = (`Roam-ACK;${imei};${message}`); // ${sequenceID}; add ${sequenceID}; 19-07\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n AddValue(configsToUpdate, configIds.ConfigureDevice.LastConfigured, moment().format('YYYY/MM/DD, HH:mm:ss'));\\r\\n configsToAck.push(configIds.ConfigureDevice.LastConfigured);\\r\\n //}\\r\\n }\\r\\n if (command == 'FE') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n // prepare the ACK msg and change config if it is needed\\r\\n lengthAck = messageBody.length / 2;\\r\\n lengthAck = ('0000' + decimalToHex(lengthAck)).slice(-4);\\r\\n lengthAck = lengthAck.toString().substring(2, 4) + lengthAck.toString().substring(0, 2);\\r\\n ////////////checksum CRC 16\\r\\n var checksumAck = byteStringToByteArray(messageBody);\\r\\n checksumAck = crc16byte(checksumAck);\\r\\n checksumAck = decimalToHex(checksumAck);\\r\\n checksumAck = ('0000' + checksumAck).slice(-4);\\r\\n checksumAck = checksumAck.toString().substring(2, 4) + checksumAck.toString().substring(0, 2);\\r\\n prefix = prefix + lengthAck + checksumAck + sequenceID;\\r\\n // To send ACK to the device previous to internal msg with parts\\r\\n if (needsAck == true) {\\r\\n if (messageBody.length <= 2) {\\r\\n ack = 'AB00030008C7' + sequenceID + '7F0100'; // change AB10030008C7 to AB00030008C7\\r\\n } else {\\r\\n ack = prefix + messageBody;\\r\\n }\\r\\n AddValue(codeValues, 'imei', imei);\\r\\n AddValue(codeValues, 'ack', ack);\\r\\n }\\r\\n } else { // checksum was invalid - print out useful debug info and bet quess at imei \\r\\n AddValue(codeValues, \\\"error\\\", \\\"checksum failed for message\\\");\\r\\n AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n i = rawFromBytes.search('3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]');\\r\\n if (i >= 0) {\\r\\n imei = hex_to_ascii(rawFromBytes.substring(i, i + 30));\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n function ascii_to_hexa(str) { // ascii to hex \\r\\n var arr1 = [];\\r\\n for (var n = 0, l = str.length; n < l; n++) {\\r\\n var hex = Number(str.charCodeAt(n)).toString(16);\\r\\n arr1.push(hex);\\r\\n }\\r\\n return arr1.join('');\\r\\n }\\r\\n\\r\\n function byteStringToByteArray(str) { //\\r\\n var splitStr = [];\\r\\n var j = 0;\\r\\n for (let i = 0; i < str.length; i += 2) {\\r\\n splitStr[j] = str.substring(i, i + 2);\\r\\n j++;\\r\\n }\\r\\n var bytes = [];\\r\\n var bytePos = 0;\\r\\n for (let i = 0; i < splitStr.length; i++) {\\r\\n var byteStr = splitStr[i];\\r\\n var b = parseInt(byteStr, 16);\\r\\n if (b < 256) {\\r\\n bytes[bytePos] = b;\\r\\n bytePos++;\\r\\n }\\r\\n }\\r\\n return bytes;\\r\\n }\\r\\n\\r\\n function changeEndianness(string) { //\\r\\n const result = [];\\r\\n let len = string.length - 2;\\r\\n while (len >= 0) {\\r\\n result.push(string.substr(len, 2));\\r\\n len -= 2;\\r\\n }\\r\\n return result.join('');\\r\\n }\\r\\n\\r\\n function hex2bin(hex) { //\\r\\n return (parseInt(hex, 16).toString(2)).padStart(8, '0');\\r\\n }\\r\\n\\r\\n function calculateCheckSum(payloadData) { // check if payload checksum is valid\\r\\n var checksum = byteStringToByteArray(payloadData);\\r\\n checksum = crc16byte(checksum);\\r\\n checksum = decimalToHex(checksum);\\r\\n checksum = ('0000' + checksum).slice(-4).toUpperCase();\\r\\n return changeEndianness(checksum);\\r\\n }\\r\\n\\r\\n function crc16byte(s) { //\\r\\n var crc = 0x0000;\\r\\n var j, i;\\r\\n for (i = 0; i < s.length; i++) {\\r\\n c = s[i];\\r\\n if (c > 255) {\\r\\n throw new RangeError();\\r\\n }\\r\\n j = (c ^ (crc >> 8)) & 0xFF;\\r\\n crc = crcTable[j] ^ (crc << 8);\\r\\n }\\r\\n return ((crc ^ 0) & 0xFFFF);\\r\\n }\\r\\n\\r\\n function debug(str) { // write debug info to console log, if localTesting\\r\\n if (localTesting === \\\"True\\\") {\\r\\n console.log(str);\\r\\n }\\r\\n }\\r\\n\\r\\n function decimalToHex(x) { // decimal to hex\\r\\n x = x.toString(16).toUpperCase();\\r\\n return x;\\r\\n }\\r\\n\\r\\n function hex_to_ascii(str1) { // Hex to Ascii \\r\\n var hex = str1.toString();\\r\\n var str = '';\\r\\n for (var n = 0; n < hex.length; n += 2) {\\r\\n str += String.fromCharCode(parseInt(hex.substr(n, 2), 16));\\r\\n }\\r\\n return str;\\r\\n }\\r\\n\\r\\n function hexToDecimalSigned(hex) { // hex to decimal\\r\\n if (hex.length % 2 != 0) {\\r\\n hex = \\\"0\\\" + hex;\\r\\n }\\r\\n var num = parseInt(hex, 16);\\r\\n var maxVal = Math.pow(2, hex.length / 2 * 8);\\r\\n if (num > maxVal / 2 - 1) {\\r\\n num = num - maxVal;\\r\\n }\\r\\n return num;\\r\\n }\\r\\n\\r\\n function hexToDecimal(x) {\\r\\n x = parseInt(x, 16);\\r\\n return x;\\r\\n }\\r\\n\\r\\n function sendMessageToLocalhostNoWait(str) { // sends message to system, closing connection after\\r\\n var server;\\r\\n if (localTesting) {\\r\\n console.log('local testing - sending to acceptance server the message ... ');\\r\\n console.log(str);\\r\\n server = '52.174.17.77';\\r\\n } else {\\r\\n server = '127.0.0.1';\\r\\n }\\r\\n var c = net.createConnection(5678, server);\\r\\n c.on('error', function(error) {\\r\\n c = net.createConnection(5678, server);\\r\\n });\\r\\n c.write(`${str}`);\\r\\n c.end();\\r\\n }\\r\\n // modify to return the object that contains your data\\r\\n return dataToReceiver;\\r\\n}\\r\\n// params is not defined locally -> export as module\\r\\nif (typeof(params) === 'undefined') {\\r\\n module.exports = {\\r\\n execute_ops\\r\\n }\\r\\n} else { // on server use local defined vars\\r\\n let return_values = execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, false)\\r\\n // define global returns\\r\\n msg = return_values;\\r\\n}\",\"Type\":0,\"ProtocolActionObjects\":[]}","Timestamp":1734520814},{"Type":1,"NewValue":"{\"Id\":313,\"Name\":\"Access TEC Roam\",\"Operation\":\"function execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, localTesting) {\\r\\n ///////////////////////////////////////////////////////////////////////////////\\r\\n //\\r\\n // Roam protocol - please see variables and typical values in order below\\r\\n // TECRoam-CYC;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;SIGNAL=<<signal_strength>>;WM=<<work_mode>>;GENERAL=<<general>>\\r\\n // TECRoam-CYC;861629050193550;STATUS=WIFISource,CellTower;TIME=1673950279;BATP=84;LGPS=undefined;LWIF=-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369;LLBS=214,1,13,768,38529798;LBEACON=undefined;BLE=undefined;GENERAL=statusDevice:WIFISource,CellTower,battery:84,cellNetworkSignal:14,workMode:6,wifiTowers:-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369,214,1,13,768,38529798,;\\\",\\r\\n //\\r\\n // Author: Joe Bloggs\\r\\n // Created: 01/01/0000\\r\\n // Last modified: 12/04/2024\\r\\n //\\r\\n ///////////////////////////////////////////////////////////////////////////////\\r\\n if (typeof localTesting === \\\"undefined\\\") {\\r\\n var localTesting = \\\"False\\\";\\r\\n }\\r\\n const crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,\\r\\n 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,\\r\\n 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\\r\\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,\\r\\n 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,\\r\\n 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\\r\\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,\\r\\n 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,\\r\\n 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\\r\\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,\\r\\n 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,\\r\\n 0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\\r\\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,\\r\\n 0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,\\r\\n 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\\r\\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,\\r\\n 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,\\r\\n 0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\\r\\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,\\r\\n 0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,\\r\\n 0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\\r\\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,\\r\\n 0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,\\r\\n 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\\r\\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,\\r\\n 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,\\r\\n 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\\r\\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,\\r\\n 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,\\r\\n 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\\r\\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,\\r\\n 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\\r\\n ];\\r\\n var codeValues = [];\\r\\n AddValue(codeValues, 'protocol_template', 'Roam');\\r\\n AddValue(codeValues, 'product', serverParams.ProductName);\\r\\n var dataToReceiver = [];\\r\\n var configsToAck = [];\\r\\n var configsToUpdate = [];\\r\\n var configsToSend = [];\\r\\n if (globalTemplate == \\\"True\\\") {\\r\\n if (raw.startsWith('esendex')) {\\r\\n AddValue(codeValues, 'rawMsg', raw);\\r\\n //general SMS message\\r\\n messageForReceiver = (`Roam-SMS;${serverParams.Imei};${raw}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n return;\\r\\n }\\r\\n AddValue(codeValues, 'raw', raw);\\r\\n AddValue(codeValues, 'rawMsg', rawFromBytes);\\r\\n var event_time, location_time, location_accuracy, speed, fix_state, latitude, longitude;\\r\\n var homeBeacon = '';\\r\\n var homeWiFi = '';\\r\\n var contacts = '';\\r\\n var gps_data = '';\\r\\n var wifi_data = '';\\r\\n var status_data = '';\\r\\n var lbs_data = '';\\r\\n var beacon_data = '';\\r\\n var ble_data = '';\\r\\n var smart_data = '';\\r\\n //parse header & properties\\r\\n var message = rawFromBytes;\\r\\n var properties = message.substring(2, 4);\\r\\n var lengthLittleEndian = message.substring(4, 8);\\r\\n var total_length = lengthLittleEndian.substring(2, 4) + lengthLittleEndian.substring(0, 2);\\r\\n total_length = 2 * hexToDecimal(total_length.substring(0, 4));\\r\\n var messageForReceiver;\\r\\n var sequenceID = message.substring(12, 16);\\r\\n var command = message.substring(16, 18);\\r\\n var index = 18;\\r\\n var prefix = 'AB' + '00';\\r\\n var lengthAck = 0;\\r\\n var ack = '';\\r\\n var needsAck = false;\\r\\n var hasConfigs = false;\\r\\n var general = '';\\r\\n var timestamp = '';\\r\\n var info = '';\\r\\n var customID = '';\\r\\n latitude = 0;\\r\\n longitude = 0;\\r\\n location_accuracy = 0; // GPS location adds the accuracy\\r\\n location_time = event_time = '';\\r\\n speed = 0.0;\\r\\n var location_type = '0';\\r\\n //var gen_location = '0'; \\r\\n var i; // general loop counter\\r\\n var battery_percentage = '';\\r\\n var cellNetworkSignal = '';\\r\\n var workMode = '';\\r\\n //mask bitwise (properties should be '10')\\r\\n if ((parseInt(properties) & 8) == 8) { // 22/7 change ((parseInt(properties) & 16) == 16)\\r\\n needsAck = true;\\r\\n }\\r\\n // Loop to decode multi-ACK msg\\r\\n if (message.includes('AB00030008C7')) {\\r\\n const multiack = message.split('AB00');\\r\\n for (let i = 1; i < multiack.length; i++) {\\r\\n message = 'AB00' + multiack[i];\\r\\n debug(message);\\r\\n decoder(message);\\r\\n } // FOR multiACK\\r\\n } else decoder(message); // IF multiACK\\r\\n } else if (oystaTemplate == 'True') { // Oysta Template \\r\\n AddValue(codeValues, 'rawMsg', raw);\\r\\n if ((params.gps_data) && (params.gps_data !== '')) { // decode gps data if exists\\r\\n var gen_location = params.gps_data.split(',');\\r\\n var latitude = gen_location[0];\\r\\n var longitude = gen_location[1];\\r\\n var location_accuracy = gen_location[2];\\r\\n var speed = gen_location[3];\\r\\n var direction = gen_location[4];\\r\\n var altitude = gen_location[5];\\r\\n var satellites = gen_location[6];\\r\\n var mileage = gen_location[7];\\r\\n if (location_accuracy !== 0) {\\r\\n var fix_state = 1;\\r\\n } else {\\r\\n var fix_state = 0;\\r\\n }\\r\\n AddValue(codeValues, 'latitude', latitude);\\r\\n AddValue(codeValues, 'longitude', longitude);\\r\\n AddValue(codeValues, 'speed', speed);\\r\\n AddValue(codeValues, 'direction', direction);\\r\\n AddValue(codeValues, 'altitude', altitude);\\r\\n AddValue(codeValues, 'location_accuracy', location_accuracy);\\r\\n AddValue(codeValues, 'mileage', mileage);\\r\\n AddValue(codeValues, 'satellites', satellites);\\r\\n AddValue(codeValues, 'fix_state', fix_state);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.lbs_data) && (params.lbs_data !== '')) { // decode lbs data if exists\\r\\n var variables = []; //Define array\\r\\n variables = params.lbs_data.split(',');\\r\\n var index = 2;\\r\\n for (i = 0; i < ((variables.length - 2) / 3); i++) { //loop for number of LBS sets on incoming data.\\r\\n if (variables[i] !== '0') { //Check if LBS data is present (device sends 0 if data not present)/actually exists.\\r\\n AddValue(codeValues, 'mcc', variables[0]);\\r\\n AddValue(codeValues, 'mnc', variables[1]);\\r\\n AddValue(codeValues, 'lac', variables[index]);\\r\\n AddValue(codeValues, 'signal_lbs', variables[index + 1]);\\r\\n AddValue(codeValues, 'cellid', variables[index + 2]);\\r\\n }\\r\\n index += 3;\\r\\n }\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.wifi_data) && (params.wifi_data !== '')) { // decode wifi data if exists\\r\\n var bssid_array = params.wifi_data.split(',');\\r\\n var index = 0;\\r\\n for (let i = 0; i < (bssid_array.length / 2); i++) {\\r\\n if (bssid_array[index + 1] != '000000000000') { //Check if MAC address is not 000000000000 - seems to be the default MAC of the device itself\\r\\n AddValue(codeValues, 'bssid', bssid_array[index + 1]);\\r\\n AddValue(codeValues, 'signal_wifi', bssid_array[index]);\\r\\n }\\r\\n index += 2;\\r\\n }\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n // when Beacon is detected and it isn't flic BLE detected\\r\\n if (((params.beacon_data) && (params.beacon_data !== '')) && !((params.ble_data) && (params.ble_data !== ''))) {\\r\\n var gen_location = params.beacon_data.split(',');\\r\\n var latitude = gen_location[0];\\r\\n var longitude = gen_location[1];\\r\\n var mac = gen_location[2];\\r\\n var label = gen_location[3];\\r\\n AddValue(codeValues, 'latitude', latitude);\\r\\n AddValue(codeValues, 'longitude', longitude);\\r\\n //AddValue(codeValues,'location_accuracy', '3'); // para mostrar que si hay accuracy muestra como source GPS\\r\\n // AddValue(codeValues,'beacon_mac', mac);\\r\\n //AddValue(codeValues,'beacon_major', 0);\\r\\n //AddValue(codeValues,'beacon_minor', 0);\\r\\n //<<beacon_mac>>,<<beacon_major>>,<<beacon_minor>> \\r\\n if (mac) {\\r\\n AddValue(codeValues, 'beacon_mac', mac);\\r\\n var simpleQuery = [{\\r\\n 'code': 'Mac',\\r\\n 'value': mac,\\r\\n }];\\r\\n var simpleQueryLabel = {\\r\\n 'table': 'beacons',\\r\\n 'select': 'Name',\\r\\n 'query': simpleQuery\\r\\n };\\r\\n var labels = [];\\r\\n labels.push(JSON.stringify(simpleQueryLabel));\\r\\n AddValue(codeValues, 'oysta_labels', JSON.stringify(labels));\\r\\n }\\r\\n if (params.beacon_major) {\\r\\n AddValue(codeValues, 'beacon_major', params.beacon_major);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_major', 0);\\r\\n }\\r\\n if (params.beacon_minor) {\\r\\n AddValue(codeValues, 'beacon_minor', params.beacon_minor);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_minor', 0);\\r\\n }\\r\\n //AddValue(codeValues,'oysta_labels', label);\\r\\n //AddValue(codeValues,'oysta_value', mac);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.ble_data) && (params.ble_data !== '')) { // decode ble data if exists\\r\\n var gen_location = params.ble_data.split(',');\\r\\n var flag = gen_location[0];\\r\\n var batLevel = gen_location[1];\\r\\n var mac2 = gen_location[2];\\r\\n //var label = gen_location[3];\\r\\n AddValue(codeValues, 'flagBLE', flag);\\r\\n AddValue(codeValues, 'batBLE', batLevel);\\r\\n //AddValue(codeValues,'location_accuracy', '3'); // para mostrar que si hay accuracy muestra como source GPS\\r\\n // AddValue(codeValues,'beacon_mac', mac);\\r\\n //AddValue(codeValues,'beacon_major', 0);\\r\\n //AddValue(codeValues,'beacon_minor', 0);\\r\\n //<<beacon_mac>>,<<beacon_major>>,<<beacon_minor>> \\r\\n if (mac2) {\\r\\n AddValue(codeValues, 'beacon_mac', mac2);\\r\\n var simpleQuery2 = [{\\r\\n 'code': 'Mac',\\r\\n 'value': mac2,\\r\\n }];\\r\\n var simpleQueryLabel2 = {\\r\\n 'table': 'beacons',\\r\\n 'select': 'Name',\\r\\n 'query': simpleQuery2\\r\\n };\\r\\n var labels2 = [];\\r\\n labels2.push(JSON.stringify(simpleQueryLabel2));\\r\\n AddValue(codeValues, 'oysta_labels', JSON.stringify(labels2));\\r\\n }\\r\\n if (params.beacon_major) {\\r\\n AddValue(codeValues, 'beacon_major', params.beacon_major);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_major', 0);\\r\\n }\\r\\n if (params.beacon_minor) {\\r\\n AddValue(codeValues, 'beacon_minor', params.beacon_minor);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_minor', 0);\\r\\n }\\r\\n //AddValue(codeValues,'oysta_labels', label);\\r\\n //AddValue(codeValues,'oysta_value', mac);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n /* meter mas tarde... \\r\\n if (params.smart_data !== 'undefined') {\\r\\n var gen_location = params.smart_data.split(',')\\r\\n var latitude = gen_location[0]\\r\\n var longitude = gen_location[1]\\r\\n var location_accuracy = gen_location[2]\\r\\n var altitude = gen_location[3]\\r\\n AddValue(codeValues,'latitude', latitude);\\r\\n AddValue(codeValues,'longitude', longitude);\\r\\n AddValue(codeValues,'altitude', altitude);\\r\\n AddValue(codeValues,'location_accuracy', location_accuracy);\\r\\n }\\r\\n */\\r\\n /*else if ((params.event_time) && (params.event_time == '')) {\\r\\n var event_time = moment.utc().unix();\\r\\n AddValue(codeValues,'event_time', event_time);\\r\\n } revisar mas adelante*/\\r\\n // to parse SMS info from the device\\r\\n switch (messageTypeLocalCode) {\\r\\n case 'COMM-SMS': // SMS message sent in\\r\\n if (params.data.startsWith('Device location request')) {\\r\\n configsToAck.push(configIds.Controls.RealTimeLocate);\\r\\n } else if (params.data.startsWith('Set IP ok')) {\\r\\n configsToAck.push(configIds.Controls.GetCurrentConfig);\\r\\n } else if (params.data.startsWith('IMEI:')) {\\r\\n configsToAck.push(configIds.Controls.GetFirmwareVersion);\\r\\n } else if (params.data.startsWith('Set IP ok')) {\\r\\n configsToAck.push(configIds.Controls.ClearBufferedMessages);\\r\\n } else if (params.data.startsWith('flush ok')) {\\r\\n configsToAck.push(configIds.Controls.GetCurrentConfig);\\r\\n } else if (params.data.startsWith('Set Roam-')) {\\r\\n configsToAck.push(configIds.SMSPrefix.SMSPrefix);\\r\\n } else if (params.data.startsWith('set live tracking')) {\\r\\n configsToAck.push(configIds.Controls.Trace);\\r\\n } else if (params.data.startsWith('reboot ok')) {\\r\\n configsToAck.push(configIds.Controls.Reboot);\\r\\n } else if (params.data.startsWith('GPS')) {\\r\\n configsToAck.push(configIds.Controls.RealTimeLocate);\\r\\n var i1 = params.data.search('Now:')\\r\\n var i2 = params.data.search('Loc Time:')\\r\\n var i3 = params.data.search('Speed:')\\r\\n var i4 = params.data.search('Altitude:')\\r\\n var i5 = params.data.search('Battery:')\\r\\n var i6 = params.data.search('google')\\r\\n var eventTime = params.data.substring(i2 + 9, i3)\\r\\n var Speed = params.data.substring(i3 + 6, i4 - 3)\\r\\n if (params.data.substring(i4 - 3, i4) == 'mph') {\\r\\n Speed = Speed * 0.44704\\r\\n } else if (params.data.substring(i4 - 3, i4) == 'kph') {\\r\\n Speed = Speed / 3.6\\r\\n }\\r\\n var latlong = params.data.substring(i6 + 18)\\r\\n location_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n messageForReceiver = (`Roam-RTL;${params.imei};${location_time};${location_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n //event_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n //messageForReceiver = (`CARE-RTL;${params.imei};${event_time};${event_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n case 'ACK-FIRM-SMS': // Firmware info sent by SMS\\r\\n //var i1 = params.data.search('IMEI:')\\r\\n //var i2 = params.data.search('GSM signal quality:')\\r\\n var i3 = params.data.search('Software version:')\\r\\n var sub = params.data.substring(i3 + 17, params.data.length)\\r\\n var i4 = sub.search('version:');\\r\\n var fwVersion = sub.substring(i4, sub.length);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n break;\\r\\n case 'ACK-FALLSENS-SMS': // Fall sensibility info sent by SMS\\r\\n var i1 = params.data.search('Fall alarm:');\\r\\n var sensibility = params.data.substring(i1 + 11, i1 + 14);\\r\\n var i2 = params.data.search('level:');\\r\\n sensibility = sensibility + ', ' + params.data.substring(i2 + 6, i2 + 7);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"sensibility\\\", sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadEmergencySettings.FallSensitivity, sensibility);\\r\\n configsToAck.push(configIds.ReadEmergencySettings.FallSensitivity);\\r\\n break;\\r\\n case 'ACK-BEAC-SMS': // Beacon list info sent by SMS\\r\\n var i1 = raw.search('1,');\\r\\n //var i2 = params.data.search('2,');\\r\\n //var homeBeacon = params.data.substring(i1+2, i2);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"homeBeacon\\\", raw.substring(i1, raw.length));\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.HomeBeacon, raw.substring(i1, raw.length));\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.HomeBeacon);\\r\\n break;\\r\\n case 'ACK-CONTAC-SMS': // Contact list info sent by SMS\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n var i1 = raw.search('A1:');\\r\\n if (raw.includes('A2:')) {\\r\\n var i2 = raw.search('A2:');\\r\\n } else {\\r\\n var i2 = raw.search('A10:');\\r\\n }\\r\\n var tel = raw.substring(i1 + 4, i2);\\r\\n AddValue(codeValues, \\\"EmergencyNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.EmergencyNumber, tel);\\r\\n configsToAck.push(configIds.ReadAlertSettings.EmergencyNumber);\\r\\n i2 = raw.search('A10:')\\r\\n tel = raw.substring(i2 + 4, raw.length);\\r\\n AddValue(codeValues, \\\"SMSGateway\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.SMSGateway, tel);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.SMSGateway);\\r\\n AddValue(codeValues, \\\"ApprovedContacts\\\", raw.substring(i1, raw.length));\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.ApprovedContacts, raw.substring(i1, raw.length));\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.ApprovedContacts);\\r\\n break;\\r\\n case 'ACK-SERV-SMS': // APN and Server info sent by SMS\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n var i1 = params.data.search('APN:')\\r\\n var i2 = params.data.search('IP:')\\r\\n var i3 = params.data.search('Move')\\r\\n var apn = params.data.substring(i1 + 4, i2);\\r\\n AddValue(codeValues, \\\"apn\\\", apn);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.APN, apn);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.APN);\\r\\n var serverDetails = params.data.substring(i2 + 3, i3);\\r\\n AddValue(codeValues, \\\"server\\\", serverDetails);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.Server, serverDetails);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.Server);\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case 'RTL-GPS': // SRTL sent in via SMS with no pre-code\\r\\n var i3 = params.data.search('Speed:')\\r\\n var i4 = params.data.search('Altitude:')\\r\\n var i5 = params.data.search('Battery:')\\r\\n var i6 = params.data.search('google')\\r\\n var eventTime = params.data.substring(0, i3)\\r\\n var Speed = params.data.substring(i3 + 6, i4 - 3)\\r\\n if (params.data.substring(i4 - 3, i4) == 'mph') {\\r\\n Speed = Speed * 0.44704\\r\\n } else if (params.data.substring(i4 - 3, i4) == 'kph') {\\r\\n Speed = Speed / 3.6\\r\\n }\\r\\n var latlong = params.data.substring(i6 + 18)\\r\\n location_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n messageForReceiver = (`Roam-RTL;${params.imei};${location_time};${location_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n }\\r\\n if (!params.event_time && !event_time) { // if params.event_time undefined - set it to now. \\r\\n var event_time = moment.utc().unix();\\r\\n AddValue(codeValues, 'event_time', event_time);\\r\\n }\\r\\n // if (!params.location_time && !location_time) { // if params.location_time undefined - set it to now. \\r\\n // var location_time = moment.utc().unix();\\r\\n // AddValue(codeValues, 'location_time', location_time);\\r\\n //}\\r\\n }\\r\\n var dataToReceiver = {\\r\\n 'values': codeValues\\r\\n };\\r\\n if (configsToAck.length > 0) {\\r\\n dataToReceiver.configsToAck = configsToAck\\r\\n };\\r\\n if (configsToUpdate.length > 0) {\\r\\n dataToReceiver.configsToUpdate = configsToUpdate\\r\\n };\\r\\n if (configsToSend.length > 0) {\\r\\n dataToReceiver.configsToSend = configsToSend\\r\\n };\\r\\n console.log(dataToReceiver);\\r\\n //}\\r\\n //return {\\r\\n // 'output': dataToReceiver\\r\\n //}\\r\\n // end of main operation\\r\\n // define functions used in operation\\r\\n function AddValue(codeValueArray, p1, p2) { // push code value pair into array\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n codeValueArray.push(cvpair);\\r\\n }\\r\\n\\r\\n function decoder(str) { // decode rawdata\\r\\n // CARE Decoder\\r\\n AddValue(codeValues, 'Message : ', str);\\r\\n var message = str;\\r\\n // need to check if checksum is correct for possible msg corruption 10/03/23\\r\\n var checksum = message.substring(8, 12);\\r\\n var messageBody = message.substring(16, message.length);\\r\\n debug('message =' + message);\\r\\n debug('checksum =' + checksum);\\r\\n debug('calculateCheckSum =' + calculateCheckSum(messageBody));\\r\\n if (calculateCheckSum(messageBody) == checksum) { // payload is valid\\r\\n debug(\\\"message has valid checksum\\\");\\r\\n var messageBody = command; // update value for the ACK\\r\\n debug('command =' + command);\\r\\n if (command == '01') {\\r\\n while (index < total_length + 16) {\\r\\n // gen_location = '0'; //cambiado 30/09\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n var keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n debug('key = ' + key);\\r\\n debug('value = ' + value);\\r\\n switch (key) {\\r\\n //Device ID\\r\\n case '01':\\r\\n var imei = hex_to_ascii(value);\\r\\n break;\\r\\n //Alarm code\\r\\n case '02':\\r\\n var alarm = 'CYC';\\r\\n var alarmCode = value.substring(0, 8);\\r\\n alarmCode = changeEndianness(alarmCode);\\r\\n var timestampHex = value.substring(8, 16);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n event_time = timestamp;\\r\\n var alarmCodeInt = hexToDecimal(alarmCode);\\r\\n var alarmCodeExt = value.substring(16, 24);\\r\\n alarmCodeExt = changeEndianness(alarmCodeExt);\\r\\n var alarmCodeExtInt = hexToDecimal(alarmCodeExt);\\r\\n //Extended Alerts\\r\\n // Fall off\\r\\n if ((alarmCodeExtInt & 1) == 1) {\\r\\n var alarm = 'ALF-C';\\r\\n }\\r\\n // Welfare Check-out\\r\\n else if ((alarmCodeExtInt & 2) == 2) {\\r\\n var alarm = 'ALA-C';\\r\\n }\\r\\n // Standard Alerts\\r\\n //Battery low\\r\\n else if ((alarmCodeInt & 1) == 1) {\\r\\n var alarm = 'BATL';\\r\\n }\\r\\n //Overspeed\\r\\n else if ((alarmCodeInt & 2) == 2) {\\r\\n var alarm = 'ALSP';\\r\\n }\\r\\n //Fall\\r\\n else if ((alarmCodeInt & 4) == 4) {\\r\\n var alarm = 'ALF';\\r\\n }\\r\\n //Tilt\\r\\n else if ((alarmCodeInt & 8) == 8) {\\r\\n var alarm = 'Tilt';\\r\\n } else if ((alarmCodeInt & 16) == 16) {\\r\\n if ((alarmCodeInt & 16777216) == 16777216) {\\r\\n var alarm = 'Geo1-IN';\\r\\n } else {\\r\\n var alarm = 'Geo1-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 32) == 32) {\\r\\n if ((alarmCodeInt & 33554432) == 33554432) {\\r\\n var alarm = 'Geo2-IN';\\r\\n } else {\\r\\n var alarm = 'Geo2-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 64) == 64) {\\r\\n if ((alarmCodeInt & 67108864) == 67108864) {\\r\\n var alarm = 'Geo3-IN';\\r\\n } else {\\r\\n var alarm = 'Geo3-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 128) == 128) {\\r\\n if ((alarmCodeInt & 134217728) == 134217728) {\\r\\n var alarm = 'Geo4-IN';\\r\\n } else {\\r\\n var alarm = 'Geo4-OUT';\\r\\n }\\r\\n }\\r\\n //Power Off\\r\\n else if ((alarmCodeInt & 256) == 256) {\\r\\n var alarm = 'PWRF';\\r\\n }\\r\\n //Power On\\r\\n else if ((alarmCodeInt & 512) == 512) {\\r\\n var alarm = 'PWRN';\\r\\n }\\r\\n //Motion\\r\\n else if ((alarmCodeInt & 1024) == 1024) {\\r\\n var alarm = 'ALMOV';\\r\\n }\\r\\n //No Motion\\r\\n else if ((alarmCodeInt & 2048) == 2048) {\\r\\n var alarm = 'ALNM';\\r\\n }\\r\\n //SOS\\r\\n else if ((alarmCodeInt & 4096) == 4096) {\\r\\n var alarm = 'ALSOS';\\r\\n } else if ((alarmCodeInt & 8192) == 8192) {\\r\\n var alarm = 'Side1';\\r\\n } else if ((alarmCodeInt & 16384) == 16384) {\\r\\n var alarm = 'Side2';\\r\\n }\\r\\n //Battery charging\\r\\n else if ((alarmCodeInt & 32768) == 32768) {\\r\\n var alarm = 'BATCN';\\r\\n }\\r\\n //Battery no charging\\r\\n else if ((alarmCodeInt & 65536) == 65536) {\\r\\n var alarm = 'BATCF';\\r\\n }\\r\\n //SOS Ending\\r\\n // Temporary Commented until we know exactly how it works. 22/09/2022\\r\\n else if ((alarmCodeInt & 131072) == 131072) {\\r\\n var alarm = 'SOSEnding';\\r\\n info = 'Alarm Finished';\\r\\n }\\r\\n //Amber Alert EC03 only\\r\\n else if ((alarmCodeInt & 262144) == 262144) {\\r\\n var alarm = 'ALAO';\\r\\n }\\r\\n // welfare Alert check-in ALA-O\\r\\n else if ((alarmCodeInt & 524288) == 524288) {\\r\\n var alarm = 'ALA-O';\\r\\n }\\r\\n // Amber alert Ending ALA-C\\r\\n else if ((alarmCodeInt & 1048576) == 1048576) {\\r\\n var alarm = 'ALA-C';\\r\\n }\\r\\n // Amber alert Ending ALA-C\\r\\n //else if ((alarmCodeInt & 1048576) == 1048576) {\\r\\n // var alarm = 'ALA-C';\\r\\n //}\\r\\n // Fall-Down Alert ending\\r\\n else if ((alarmCodeInt & 2097152) == 2097152) {\\r\\n var alarm = 'ALF-C';\\r\\n }\\r\\n // welfare Alert Ending ALA\\r\\n else if ((alarmCodeInt & 4194304) == 4194304) {\\r\\n var alarm = 'ALA';\\r\\n }\\r\\n // Beacon absent Alert 11/10/22. Need to be added in msg types\\r\\n //else if ((alarmCodeInt & 16777216) == 16777216) {\\r\\n // var alarm = 'BEA';\\r\\n //}\\r\\n general += 'alarm:' + alarm + ',';\\r\\n break;\\r\\n //Custom ID\\r\\n case '03':\\r\\n // in value is customID.... '06' for Watch Care\\r\\n // if ((imei != '860470063029395') && (imei != '860470063035947')) {\\r\\n //update customID to check if belongs to this type of device\\r\\n customID = value;\\r\\n if (value != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n } else {\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n general += 'customID:' + value + ',';\\r\\n break;\\r\\n }\\r\\n //Historical Data Completed\\r\\n case '10': // indica q se han terminado de enviar todos los datos historicos.\\r\\n var histData = true;\\r\\n break;\\r\\n //GPS location\\r\\n case '20':\\r\\n location_type = 'GPS';\\r\\n var latitudeHex = value.substring(0, 8);\\r\\n var longitudeHex = value.substring(8, 16);\\r\\n var speedHex = value.substring(16, 20);\\r\\n var directionHex = value.substring(20, 24);\\r\\n var altitudeHex = value.substring(24, 28);\\r\\n var location_accuracyHex = value.substring(28, 32);\\r\\n var mileageHex = value.substring(32, 40);\\r\\n var satellitesHex = value.substring(40, 42);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n speed = ((hexToDecimal(changeEndianness(speedHex))) / 3.6).toFixed(2); //date 14-02-2023 in m/s\\r\\n var direction = hexToDecimal(changeEndianness(directionHex));\\r\\n var altitude = hexToDecimal(changeEndianness(altitudeHex)); // in meters\\r\\n //location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex)) * 5;\\r\\n // Range: 0.5 to 99.9 \\r\\n location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex));\\r\\n //var mileage = hexToDecimal(changeEndianness(mileageHex)) this is in km/h we need m/s\\r\\n var mileage = hexToDecimal(changeEndianness(mileageHex)); // in meters date 14-02-2023\\r\\n var satellites = hexToDecimal(satellitesHex);\\r\\n // location_time = timestamp;\\r\\n //<<latitude>>,<<longitude>>,<<speed>>,<<altitude>>,<<location_time>>\\r\\n gps_data = `${latitude},${longitude},${location_accuracy},${speed},${direction},${altitude},${satellites},${mileage}`;\\r\\n general += 'gps location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //WIFI Towers\\r\\n case '22':\\r\\n location_type = 'WIFI';\\r\\n var numWifi = Math.round((hexToDecimal(keyLengthHex) - 1) / 7);\\r\\n //location_time = timestamp;\\r\\n var wifiTowers = value;\\r\\n general += 'wifiTowers:';\\r\\n var indexWifi = 0;\\r\\n var bssid_array = [];\\r\\n wifi_data = '';\\r\\n for (let i = 0; i < numWifi; i++) {\\r\\n wifi_data += hexToDecimalSigned(wifiTowers.substring(indexWifi, indexWifi + 2)) + ',' + wifiTowers.substring(indexWifi + 2, indexWifi + 14) + ',';\\r\\n indexWifi += 14;\\r\\n }\\r\\n wifi_data = wifi_data.slice(0, -1);\\r\\n general += wifi_data;\\r\\n break;\\r\\n //BLE Location Added 10/10/22\\r\\n case '23':\\r\\n location_type = 'BLE';\\r\\n var mac = value.substring(0, 12);\\r\\n var latitudeHex = value.substring(12, 20);\\r\\n var longitudeHex = value.substring(20, 28);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n var address = hex_to_ascii(value.substring(28, value.length));\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n // location_time = timestamp;\\r\\n ble_data = `${latitude},${longitude},${mac},${address}`;\\r\\n general += 'BLE location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //General Data , status_data\\r\\n case '24':\\r\\n //var general = 'true'\\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n }\\r\\n //else {\\r\\n // messageForReceiver = (`CareWatch-CYC;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};`);\\r\\n //}\\r\\n // reset variables\\r\\n //alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n location_time = timestamp;\\r\\n // HardCode to fix possible issue in protocol\\r\\n // event_time = timestamp; \\r\\n event_time = moment.utc().unix();\\r\\n // end of hard code\\r\\n var statusHex = changeEndianness(value.substring(8, 16));\\r\\n var statusInt = hexToDecimal(statusHex);\\r\\n var statusDevice = '';\\r\\n if ((statusInt & 1) == 1) {\\r\\n statusDevice += 'GPS,';\\r\\n }\\r\\n if ((statusInt & 2) == 2) {\\r\\n statusDevice += 'WIFISource,';\\r\\n }\\r\\n if ((statusInt & 4) == 4) {\\r\\n statusDevice += 'CellTower,';\\r\\n }\\r\\n if ((statusInt & 8) == 8) {\\r\\n statusDevice += 'BLELocation,';\\r\\n }\\r\\n //params.BatteryStatus.BatteryStatus = '1';\\r\\n if ((statusInt & 16) == 16) {\\r\\n statusDevice += 'Charging,';\\r\\n // var alarm = 'BATCN';\\r\\n //configs.BatteryStatus.BatteryStatus = '1';\\r\\n /* if (configs.BatteryStatus.BatteryStatus !== '1') {\\r\\n hasConfigs = true;\\r\\n var batteryStatus = '1';\\r\\n var alarm = 'BATCN';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }*/\\r\\n }\\r\\n if ((statusInt & 32) == 32) {\\r\\n statusDevice += 'FUllyCharged,';\\r\\n //var alarm = 'BATF';\\r\\n // configs.BatteryStatus.BatteryStatus = '3';\\r\\n /* if (configs.BatteryStatus.BatteryStatus !== '3') {\\r\\n hasConfigs = true;\\r\\n var batteryStatus = '3';\\r\\n var alarm = 'BATF';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }*/\\r\\n }\\r\\n /* if (!((statusInt & 32) == 32) & !((statusInt & 16) == 16)) {\\r\\n statusDevice += 'Not Charging,';\\r\\n var alarm = 'BATCF';\\r\\n //configs.BatteryStatus.BatteryStatus = '2';\\r\\n if (configs.BatteryStatus.BatteryStatus !== '2') {\\r\\n var batteryStatus = '2';\\r\\n var alarm = 'BATCF';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }\\r\\n }*/\\r\\n if ((statusInt & 64) == 64) {\\r\\n statusDevice += 'Reboot,';\\r\\n }\\r\\n if ((statusInt & 128) == 128) {\\r\\n statusDevice += 'HistoricalData,';\\r\\n }\\r\\n if ((statusInt & 256) == 256) {\\r\\n statusDevice += 'AGPSDataValid,';\\r\\n }\\r\\n if ((statusInt & 512) == 512) {\\r\\n statusDevice += 'Motion,';\\r\\n }\\r\\n if ((statusInt & 1024) == 1024) {\\r\\n statusDevice += 'SmartLocating,';\\r\\n }\\r\\n if ((statusInt & 2048) == 2048) { //isHome\\r\\n statusDevice += 'BeaconLocation,';\\r\\n }\\r\\n if ((statusInt & 4096) == 4096) {\\r\\n statusDevice += 'BLEConnected,';\\r\\n }\\r\\n if ((statusInt & 16384) == 16384) {\\r\\n statusDevice += 'HomeWiFi,';\\r\\n }\\r\\n statusDevice = statusDevice.slice(0, -1);\\r\\n status_data = statusDevice; //to oysta template\\r\\n //statusHex = (statusHex);\\r\\n statusHex = hex2bin(statusHex);\\r\\n statusHex = ('00000000000000000000000000000000' + statusHex).slice(-32);\\r\\n battery_percentage = parseInt(statusHex.substring(0, 8), 2);\\r\\n cellNetworkSignal = parseInt(statusHex.substring(8, 13), 2);\\r\\n workMode = parseInt(statusHex.substring(13, 16), 2);\\r\\n general += 'statusDevice:' + statusDevice + ',';\\r\\n if (battery_percentage) {\\r\\n general += 'battery:' + battery_percentage + ',';\\r\\n }\\r\\n if (cellNetworkSignal) {\\r\\n general += 'cellNetworkSignal:' + cellNetworkSignal + ',';\\r\\n }\\r\\n if (workMode) {\\r\\n general += 'workMode:' + workMode + ',';\\r\\n }\\r\\n //messageForReceiver = (`CareWatch-CYC;${imei};${i};${event_time};${battery_percentage}`);\\r\\n break;\\r\\n //Call Records\\r\\n case '25':\\r\\n //Needed?\\r\\n break;\\r\\n //BLE Location 2\\r\\n case '26':\\r\\n //I don't understand\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Smart Location\\r\\n case '27':\\r\\n location_type = 'SMART';\\r\\n var latitudeHex = value.substring(0, 8);\\r\\n var longitudeHex = value.substring(8, 16);\\r\\n var location_accuracyHex = value.substring(16, 20);\\r\\n var altitudeHex = value.substring(20, 24);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n var altitude = hexToDecimal(changeEndianness(altitudeHex));\\r\\n //location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex)) * 5;\\r\\n //04/08/2022 se quita el multiplicador por 5 pq ya viene el valor en metros\\r\\n location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex));\\r\\n //location_time = timestamp;\\r\\n smart_data = `${latitude},${longitude},${location_accuracy},${altitude}`;\\r\\n general += 'smart location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //Beacon Location Added 11/10/22\\r\\n case '28':\\r\\n location_type = 'BEACON';\\r\\n // var alarm = 'EBZI';\\r\\n var latitudeHex = '00';\\r\\n var longitudeHex = '00';\\r\\n var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 1));\\r\\n var beacId = hexToDecimal(value.substring(1, 2));\\r\\n // msg includes descrip\\r\\n if ((flag & 4) == 4) {\\r\\n descr = hex_to_ascii(value.substring(18, value.length));\\r\\n }\\r\\n // msg includes lat/lon\\r\\n if ((flag & 8) == 8) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n }\\r\\n // msg includes lat/lon and description\\r\\n if ((flag & 12) == 12) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n descr = hex_to_ascii(value.substring(34, value.length));\\r\\n }\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var rssiHex = value.substring(14, 16);\\r\\n var rssi1Hex = value.substring(16, 18);\\r\\n rssi = hexToDecimalSigned(changeEndianness(rssiHex));\\r\\n rssi1 = hexToDecimalSigned(changeEndianness(rssi1Hex));\\r\\n // var latitudeHex = value.substring(18, 26);\\r\\n // var longitudeHex = value.substring(26, 34);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n //location_time = timestamp;\\r\\n beacon_data = `${latitude},${longitude},${mac},${descr}`;\\r\\n general += 'BEACON location (lat):' + latitude + ', (long):' + longitude + ', (mac):' + mac + ', (description):' + descr + ', (rssi):' + rssi + ', (listIndex):' + beacId + ',';\\r\\n break;\\r\\n // Beacon V2\\r\\n case '2C':\\r\\n location_type = 'BEACON';\\r\\n // var alarm = 'EBZI';\\r\\n var latitudeHex = '00';\\r\\n var longitudeHex = '00';\\r\\n var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 1));\\r\\n var beacId = hexToDecimal(value.substring(1, 2));\\r\\n // msg includes descrip\\r\\n if ((flag & 4) == 4) {\\r\\n let desc_leng = hexToDecimal(value.substring(20, 22));\\r\\n descr = hex_to_ascii(value.substring(22, 22 + (2 * desc_leng)));\\r\\n //descr = hex_to_ascii(value.substring(18, value.length));\\r\\n }\\r\\n // msg includes lat/lon\\r\\n if ((flag & 8) == 8) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n }\\r\\n // msg includes lat/lon and description\\r\\n if ((flag & 12) == 12) {\\r\\n latitudeHex = value.substring(20, 28);\\r\\n longitudeHex = value.substring(28, 36);\\r\\n let desc_leng = hexToDecimal(value.substring(36, 38));\\r\\n descr = hex_to_ascii(value.substring(38, 38 + (2 * desc_leng)));\\r\\n }\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var rssiHex = value.substring(14, 16);\\r\\n var rssi1Hex = value.substring(16, 18);\\r\\n rssi = hexToDecimalSigned(changeEndianness(rssiHex));\\r\\n rssi1 = hexToDecimalSigned(changeEndianness(rssi1Hex));\\r\\n var battery_beacon = hexToDecimal(value.substring(18, 20));\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n //location_time = timestamp;\\r\\n beacon_data = `${latitude},${longitude},${mac},${descr}`;\\r\\n general += 'BEACON location (lat):' + latitude + ', (long):' + longitude + ', (mac):' + mac + ', (description):' + descr + ', (rssi):' + rssi + ', (battery):' + battery_beacon + ', (listIndex):' + beacId + ',';\\r\\n break;\\r\\n //Cell Towers Note\\r\\n case '29':\\r\\n location_type = 'LBS';\\r\\n lbs_data = '';\\r\\n var mccHex = changeEndianness(value.substring(0, 4));\\r\\n var mncHex = value.substring(4, 6);\\r\\n var mcc = hexToDecimal(mccHex);\\r\\n lbs_data += mcc + ',';\\r\\n var mnc = hexToDecimal(mncHex);\\r\\n lbs_data += mnc + ',';\\r\\n var indexLbs = 6;\\r\\n var numTowers = (hexToDecimal(keyLengthHex) - 4) / 7;\\r\\n for (let i = 0; i < numTowers; i++) {\\r\\n var rxlHex = changeEndianness(value.substring(indexLbs, indexLbs + 2));\\r\\n var rxl = hexToDecimal(rxlHex);\\r\\n var lacHex = changeEndianness(value.substring(indexLbs + 2, indexLbs + 6));\\r\\n var lac = hexToDecimal(lacHex);\\r\\n var cellTowers = hexToDecimal(changeEndianness(value.substring(indexLbs + 6, indexLbs + 14)));\\r\\n lbs_data += rxl + ',' + lac + ',' + cellTowers + ',';\\r\\n indexLbs += 14;\\r\\n }\\r\\n lbs_data = lbs_data.slice(0, -1);\\r\\n general += lbs_data;\\r\\n break;\\r\\n case '30':\\r\\n //G-sensor. \\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n var numStep = (keyLength - 2) / 16;\\r\\n for (let j = 0; j < numStep; j++) {\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n //timestamp = hexToDecimalSigned(timestampHex);\\r\\n var stepHex = value.substring(8, 16);\\r\\n stepHex = changeEndianness(stepHex);\\r\\n var stepRate = hexToDecimal(stepHex);\\r\\n info = stepRate;\\r\\n //var alarmCode = 'True';\\r\\n var alarm = 'STP';\\r\\n general += ' step counting' + j + ':' + stepRate + ',';\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};STP=${info};LABEL=steps`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n //Activity\\r\\n case '31':\\r\\n //I don't understand\\r\\n break;\\r\\n //BLE MAC list\\r\\n case '32':\\r\\n //I don't understand\\r\\n break;\\r\\n //Beacon List\\r\\n case '33':\\r\\n //I don't understand\\r\\n break;\\r\\n //Heart Rate Data\\r\\n case '40':\\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n var numHeartRate = (keyLength - 2) / 12;\\r\\n for (let j = 0; j < numHeartRate; j++) {\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n //timestamp = hexToDecimalSigned(timestampHex);\\r\\n var heartRateHex = value.substring(8, 10);\\r\\n var heartRate = hexToDecimal(heartRateHex);\\r\\n var trustLevelHex = value.substring(10, 12);\\r\\n var trustLevel = hexToDecimal(trustLevelHex);\\r\\n info = heartRate;\\r\\n //var alarmCode = 'True';\\r\\n var alarm = 'HRT';\\r\\n general += ' heart rate' + j + ':' + heartRate + ',';\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};HRT=${info};TLEVEL=${trustLevel};LABEL=bpm`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n //BLE Connected . For Flic button\\r\\n case '62':\\r\\n location_type = 'BLE';\\r\\n //var alarm = 'EBZI'; \\r\\n //var latitudeHex = '00';\\r\\n //var longitudeHex = '00';\\r\\n //var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 2)); // 0= Disconnected, 1= Connected\\r\\n var mac = value.substring(2, 14); // No hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var batLevel = hexToDecimal(value.substring(14, 16)); // 0-100\\r\\n //location_time = timestamp;\\r\\n ble_data = `${flag},${batLevel},${mac}`;\\r\\n general += 'BLE location (State):' + flag + ', (bat):' + batLevel + ', (mac):' + mac + ',';\\r\\n break;\\r\\n }\\r\\n }\\r\\n // CareWatch-CYC;<<imei>>;STATUS=<<status_data>>;TIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;\\r\\n // \\\"CareWatch-CYC;861629050193550;STATUS=WIFISource,CellTower;TIME=1673950279;BATP=84;LGPS=undefined;LWIF=-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369;LLBS=214,1,13,768,38529798;LBEACON=undefined;BLE=undefined;GENERAL=statusDevice:WIFISource,CellTower,battery:84,cellNetworkSignal:14,workMode:6,wifiTowers:-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369,214,1,13,768,38529798,;\\\",\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n /*else if (alarm === 'HRT') {\\r\\n messageForReceiver = (`CareWatch-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};HRT=${info};TLEVEL=${trustLevel};LABEL=bpm`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (alarm === 'STP') {\\r\\n messageForReceiver = (`CareWatch-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};STP=${info};LABEL=steps`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else {\\r\\n messageForReceiver = (`CareWatch-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }*/\\r\\n // rest the alarm value\\r\\n alarm = '';\\r\\n }\\r\\n if (command == '02') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n switch (key) {\\r\\n //Module Number\\r\\n case '01':\\r\\n var date = value.substring(6, 8) + value.substring(4, 6) + '-' + value.substring(2, 4) + '-' + value.substring(0, 2);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Firmware version\\r\\n case '02':\\r\\n //no ACK need\\r\\n var fwVersion = 'v' + hexToDecimal(value.substring(6, 8)) + '.' + hexToDecimal(value.substring(4, 6)) + '.' + hexToDecimal(value.substring(2, 4)) + '.' + hexToDecimal(value.substring(0, 2));\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '1A':\\r\\n //no ACK need\\r\\n var fwVersion = hex_to_ascii(value);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n break;\\r\\n //IMEI\\r\\n case '03':\\r\\n var imei = hexToDecimal(value);\\r\\n // harcode to avoid conflicts with Rio protocol\\r\\n //if ((imei != '860470063029395') && (imei != '860470063035947')) {\\r\\n // AddValue(codeValues, \\\"error\\\", \\\"device imei is not in this protocol\\\");\\r\\n // AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n //AddValue(codeValues, \\\"IMEI\\\", imei);\\r\\n // return\\r\\n //}\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //ICCID\\r\\n case '04':\\r\\n var iccid = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //BLE-MAC\\r\\n case '05':\\r\\n var bleMac = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Run Time\\r\\n case '07':\\r\\n var runTime = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '10': // Ringer Volume\\r\\n var volume = hexToDecimal(value);\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-VOL;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"Volume\\\", volume);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.Volume, volume);\\r\\n configsToAck.push(configIds.ReadSystemSettings.Volume);\\r\\n break;\\r\\n case '0A': //Performance mode\\r\\n //var workMode = hexToDecimal(value);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n //AddValue(codeValues, \\\"WorkMode\\\", workMode);\\r\\n //AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n //configsToAck.push(configIds.ReadPerformance`Settings.Mode);\\r\\n //var workMode = hex_to_ascii(value.substring(0, value.length));\\r\\n //var workMode = hexToDecimal(value);\\r\\n //var workMode = hex_to_ascii(value.substring(0, value.length));\\r\\n var workMode = 1234; // + value + \\\"end\\\";\\r\\n //var workModeVal = 9;\\r\\n //workMode = 'test10';\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-MODE;${imei};`);\\r\\n AddValue(codeValues, \\\"Mode\\\", workMode);\\r\\n AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n //AddValue(codeValues, \\\"performanceMode\\\", performanceMode);\\r\\n //AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, performanceMode);\\r\\n // configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n break;\\r\\n case '1B':\\r\\n //Decimal o ascii?\\r\\n var gsmModule = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '1F':\\r\\n //System Language\\r\\n var systemLanguage = hex_to_ascii(value.substring(0, value.length));\\r\\n imei = serverParams.Imei;\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n messageForReceiver = (`Roam;ACK-LANG;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"SystemLanguage\\\", systemLanguage);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.SystemLanguage, systemLanguage);\\r\\n configsToAck.push(configIds.ReadSystemSettings.SystemLanguage);\\r\\n break;\\r\\n case '33': // phone option\\r\\n // [Value]:83 0B 00 00 {\\\"phoneOption\\\":{\\\"flag_value\\\":2947,\\\"s3\\\":1,\\\"s4\\\":0,\\\"s5\\\":1,\\\"s6\\\":0,\\\"callIncoming\\\":0,\\\"rings\\\":3,\\\"s7\\\":0,\\\"toneID\\\":0,\\\"s1\\\":1,\\\"s2\\\":1}}\\r\\n var statusPhone = hex2bin(value.substring(0, 2)); // To find autoanswer setup\\r\\n if (statusPhone.substring(0, 1) == '1') { // 1 Enable\\r\\n var auto = 'true';\\r\\n } else var auto = 'false';\\r\\n statusPhone = hex2bin(value.substring(2, 4)); // To find allow list setup\\r\\n if (statusPhone.substring(7, 8) == '1') { // 1 Enable\\r\\n allow = 'true';\\r\\n } else var allow = 'false';\\r\\n //statusPhone = hex2bin(value.substring(0, 2)) + hex2bin(value.substring(2, 4));\\r\\n //AddValue(configsToUpdate, configIds.ReadSystemSettings.Statusphone, statusPhone);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.AllowList, allow);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.AutoAnswer, auto);\\r\\n //configsToAck.push(configIds.ReadSystemSettings.Statusphone);\\r\\n configsToAck.push(configIds.ReadSystemSettings.AllowList);\\r\\n configsToAck.push(configIds.ReadSystemSettings.AutoAnswer);\\r\\n break;\\r\\n case '30': //ContactList\\r\\n var contactNumber = value.substring(1, 2);\\r\\n var telLength = hexToDecimal(value.substring(2, 4));\\r\\n var tel = '';\\r\\n switch (contactNumber) {\\r\\n // Emergency Number\\r\\n case '0':\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n AddValue(codeValues, \\\"EmergencyNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.EmergencyNumber, tel);\\r\\n configsToAck.push(configIds.ReadAlertSettings.EmergencyNumber);\\r\\n break;\\r\\n // Speed Dial Number\\r\\n case '1':\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n AddValue(codeValues, \\\"SpeedDialNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadSpeedDialSettings.SpeedDialNumber, tel);\\r\\n configsToAck.push(configIds.ReadSpeedDialSettings.SpeedDialNumber);\\r\\n break;\\r\\n // Gateway Number\\r\\n case '9': //00447781482635,Esendex UK 0034627177148,Esendex Spain 00447507288240,Esendex UK Acceptance\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n if (tel.includes('447781482635') || tel.includes('00447781482635')) {\\r\\n tel = 'Esendex UK'\\r\\n } else if (tel.includes('34627177148') || tel.includes('0034627177148')) {\\r\\n tel = 'Esendex Spain'\\r\\n } else if (tel.includes('447507288240') || tel.includes('00447507288240')) {\\r\\n tel = 'Esendex UK Acceptance'\\r\\n } else {\\r\\n tel = 'Default'\\r\\n }\\r\\n AddValue(codeValues, \\\"SMSGateway\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.SMSGateway, tel);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.SMSGateway);\\r\\n break;\\r\\n default:\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n if (tel.length < 6) {\\r\\n break;\\r\\n }\\r\\n //contacts += 'A' + (contactNumber - 1) + ': ' + tel + ', ';\\r\\n contacts += tel + ', ';\\r\\n AddValue(codeValues, \\\"ApprovedContacts\\\", contacts);\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.ApprovedContacts, contacts);\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.ApprovedContacts);\\r\\n break;\\r\\n }\\r\\n break;\\r\\n case '40': // APN\\r\\n //no ACK need\\r\\n var apn = hex_to_ascii(value.substring(0, value.length));\\r\\n imei = serverParams.Imei;\\r\\n break;\\r\\n case '41': // APN Username\\r\\n //no ACK need\\r\\n //apn = apn + ',' + hex_to_ascii(value.substring(0, value.length));\\r\\n break;\\r\\n case '42': // APN Password\\r\\n //no ACK need\\r\\n //apn = apn + ',' + hex_to_ascii(value.substring(0, value.length));\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"apn\\\", apn);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.APN, apn);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.APN);\\r\\n break;\\r\\n case '43': //Server Details\\r\\n //52.232.85.255,5678 production 52.174.17.77,5678 acceptance\\r\\n var serverDetails = hex_to_ascii(value.substring(6, value.length)) + ':' + hexToDecimal(value.substring(4, 6) + value.substring(2, 4));\\r\\n if (serverDetails.includes('52.232.85.255:5678')) {\\r\\n serverDetails = 'Production'\\r\\n } else if (serverDetails.includes('52.174.17.77:5678')) {\\r\\n serverDetails = 'Acceptance'\\r\\n } else if (serverDetails.includes('52.174.17.77:5778')) {\\r\\n serverDetails = 'Protocol-Import'\\r\\n } else {\\r\\n serverDetails = 'Default'\\r\\n }\\r\\n AddValue(codeValues, \\\"server\\\", serverDetails);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.Server, serverDetails);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.Server);\\r\\n break;\\r\\n case '44': //time interval - work mode intervals\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-MODE;${imei};`);\\r\\n var workMode = 0;\\r\\n var cycle = hexToDecimal(value.substring(10, 12) + value.substring(8, 10));\\r\\n var lazyCycle = hexToDecimal(value.substring(18, 20) + value.substring(16, 18));\\r\\n if (cycle == 240 && lazyCycle == 3600) { // 4 mins and 1 hour\\r\\n //workMode = 'High Frequency';\\r\\n workMode = 3;\\r\\n }\\r\\n if (cycle == 600 && lazyCycle == 3600) { // 10 mins and 1 hour\\r\\n //workMode = 'Balanced';\\r\\n workMode = 2;\\r\\n }\\r\\n if (cycle == 28800 && lazyCycle == 43200) { // 6 hour and 12 hours\\r\\n //workMode = 'Power Saving';\\r\\n workMode = 1;\\r\\n }\\r\\n if (cycle == 86400 && lazyCycle == 86400) { // 24 hours and 24 hours\\r\\n //workMode = 'No Reporting';\\r\\n workMode = 0;\\r\\n }\\r\\n AddValue(codeValues, \\\"Mode\\\", workMode);\\r\\n AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case '47': // Custom Id\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-CUSTID;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"customeid\\\", value);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CustomId, value);\\r\\n configsToAck.push(configIds.ReadState.CustomId);\\r\\n break;\\r\\n case '53': // Non motion alert\\r\\n //2B020080\\r\\n var status = hex2bin(value.substring(6, 8));\\r\\n var alertSetting = '';\\r\\n var enableDisable = '';\\r\\n if (status.substring(0, 1) == '1') {\\r\\n alertSetting = 'Enable, '\\r\\n enableDisable = '1';\\r\\n } else {\\r\\n alertSetting = 'Disable, '\\r\\n };\\r\\n //if (status.substring(5, 6) == '1') {\\r\\n // alertSetting += 'Dial, '\\r\\n //} else {\\r\\n // alertSetting += 'No Dial, '\\r\\n //};\\r\\n var time = hexToDecimal(value.substring(2, 4) + value.substring(0, 2));\\r\\n alertSetting += time;\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-NOMOTION;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"nomotion\\\", alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.NoMotionAlert, value + '-' + alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadNonMovementSettings.EnableDisableNonMovementSettings, enableDisable);\\r\\n AddValue(configsToUpdate, configIds.ReadNonMovementSettings.Time, time);\\r\\n configsToAck.push(configIds.ReadAlertSettings.NoMotionAlert);\\r\\n configsToAck.push(configIds.ReadNonMovementSettings.EnableDisableNonMovementSettings);\\r\\n configsToAck.push(configIds.ReadNonMovementSettings.Time);\\r\\n break;\\r\\n case '56': //Fall down sensibility\\r\\n // '00001100'\\r\\n var fallStatus = hex2bin(value.substring(0, 2));\\r\\n var enalbleDisable = '';\\r\\n //if (fallStatus.substring(4, 5) == '1') {\\r\\n if (fallStatus.substring(0, 1) == '1') {\\r\\n var sensibility = 'Enable, '\\r\\n enalbleDisable = '1'\\r\\n } else {\\r\\n var sensibility = 'Disable, '\\r\\n };\\r\\n if (fallStatus.substring(5, 6) == '1') {\\r\\n sensibility += 'Dial, '\\r\\n } else {\\r\\n sensibility += 'No Dial, '\\r\\n };\\r\\n var imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-FALLALERT;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n var sesibityOptionValue = hexToDecimal(value.substring(1, 2));\\r\\n sensibility += sesibityOptionValue;\\r\\n AddValue(codeValues, \\\"sensibility\\\", sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.FallSettings, sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadFallSettings.EnableDisableFallSettings, enalbleDisable);\\r\\n AddValue(configsToUpdate, configIds.ReadFallSettings.Sensitivity, sesibityOptionValue);\\r\\n configsToAck.push(configIds.ReadAlertSettings.FallSettings);\\r\\n configsToAck.push(configIds.ReadFallSettings.EnableDisableFallSettings);\\r\\n configsToAck.push(configIds.ReadFallSettings.Sensitivity);\\r\\n break;\\r\\n case '73': //BeaconList\\r\\n var beaconNumber = hexToDecimal(value.substring(1, 2));\\r\\n var beaconStatus = hex2bin(value.substring(0, 1));\\r\\n //if (beaconStatus.substring(4, 5) == '1') {\\r\\n // homeBeacon += ' Enable, '\\r\\n //} else {\\r\\n // homeBeacon += ' Disable, '\\r\\n //};\\r\\n beaconStatus = hex_to_ascii(value.substring(30, value.length));\\r\\n //beaconStatus = changeEndianness(value.substring(30, value.length));\\r\\n homeBeacon += 'B' + (beaconNumber + 1) + ': ' + beaconStatus + ', ';\\r\\n AddValue(codeValues, \\\"homeBeacon\\\", homeBeacon);\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.HomeBeacon, homeBeacon);\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.HomeBeacon);\\r\\n break;\\r\\n case '4A': //Wifi Network List\\r\\n var wifiSSIDLenght = hexToDecimal(value.substring(2, 4));\\r\\n var wifiPasswordLenght = hexToDecimal(value.substring(4, 6));\\r\\n var wifiIndex = hexToDecimal(value.substring(1, 2));\\r\\n var wifiStatus = hexToDecimal(value.substring(0, 1));\\r\\n /*var enalbleDisable = wifiSSID = wifiPassword = homeWifi = '';\\r\\n /var homeWifi = '';\\r\\n if (wifiIndex == '0') { // Only first Wifi of the list\\r\\n if (wifiStatus == '8') {\\r\\n homeWifi += ' Enable, '\\r\\n enalbleDisable = '1';\\r\\n } else {\\r\\n homeWifi += ' Disable, '\\r\\n //enalbleDisable = '0';\\r\\n };*/\\r\\n if (wifiStatus == '8') {\\r\\n var wifiSSID = hex_to_ascii(value.substring(6, 6 + 2 * (wifiSSIDLenght)));\\r\\n var wifiPassword = hex_to_ascii(value.substring(6 + 2 * (wifiSSIDLenght), 6 + 2 * (wifiSSIDLenght + wifiPasswordLenght)));\\r\\n var imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-WIFI;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n homeWiFi += 'W' + (wifiIndex + 1) + ': ' + wifiSSID + ', ' + wifiPassword + ';';\\r\\n AddValue(codeValues, \\\"wifi\\\", homeWiFi);\\r\\n AddValue(configsToUpdate, configIds.ReadWiFiList.WiFiList, homeWiFi);\\r\\n configsToAck.push(configIds.ReadWiFiList.WiFiList);\\r\\n }\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.EnableDisableReadWiFiSettings, enalbleDisable);\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.SSID, wifiSSID);\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.Password, wifiPassword);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.EnableDisableReadWiFiSettings);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.SSID);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.Password);\\r\\n break;\\r\\n case '21': // Speed Dial Settings\\r\\n // [Value]:53 84 {\\\"call1Button\\\":{\\\"mode\\\":0,\\\"feedBack\\\":3,\\\"task\\\":2,\\\"time\\\":20,\\\"status\\\":1}}\\r\\n var status = hex2bin(value.substring(2, 4)); //always pass 2 HEXs to this function\\r\\n var alertSetting = '';\\r\\n var enalbleDisable = '';\\r\\n if (status.substring(0, 1) == '1') {\\r\\n alertSetting = 'Enable, '\\r\\n enalbleDisable = '1'\\r\\n } else {\\r\\n alertSetting = 'Disable, '\\r\\n //enableDisable = '0';\\r\\n };\\r\\n //var time = hexToDecimal(value.substring(2, 4) + value.substring(0, 2));\\r\\n //alertSetting += time;\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-SPEED;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"speed\\\", alertSetting);\\r\\n //AddValue(configsToUpdate, configIds.ReadAlertSettings.NoMotionAlert, value + '-' + alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadSpeedDialSettings.EnableDisableReadSpeedDialSettings, enalbleDisable);\\r\\n //AddValue(configsToUpdate, configIds.ReadNonMovementSettings.Time, time);\\r\\n //configsToAck.push(configIds.ReadAlertSettings.NoMotionAlert);\\r\\n configsToAck.push(configIds.ReadSpeedDialSettings.EnableDisableReadSpeedDialSettings);\\r\\n //configsToAck.push(configIds.ReadNonMovementSettings.Time);\\r\\n break;\\r\\n }\\r\\n }\\r\\n }\\r\\n if (command == '03') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n var keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n debug('key = ' + key);\\r\\n debug('value = ' + value);\\r\\n switch (key) {\\r\\n case '01': // Device ID\\r\\n var imei = hex_to_ascii(value);\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n break;\\r\\n //CustomID is not provided so far with command type 03.. commented in the mean time\\r\\n /* case '03':\\r\\n //update customID to check if belongs to this type of device\\r\\n customID = value;\\r\\n if (value != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n } else {\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n general += 'customID:' + value + ',';\\r\\n break;\\r\\n }\\r\\n break; */\\r\\n case '10': // Heartbeat\\r\\n var heartbeat = hex_to_ascii(value);\\r\\n event_time = moment.utc().unix();\\r\\n if (index < total_length + 16) {\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n key = message.substring(index, index = index + 2);\\r\\n if (key == '24') {\\r\\n // debug('key: ' + key) //comment those out\\r\\n value = message.substring(index, index = index + keyLength - 2);\\r\\n // debug(value)\\r\\n var timestampHex = value.substring(0, 8);\\r\\n // debug('timestampt hex: ' + timestampHex)\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n event_time = timestamp;\\r\\n // debug(event_time)\\r\\n var statusHex = changeEndianness(value.substring(8, 16));\\r\\n // debug(statusHex)\\r\\n var statusInt = hexToDecimal(statusHex);\\r\\n var statusDevice = '';\\r\\n if ((statusInt & 1) == 1) {\\r\\n statusDevice += 'GPS,';\\r\\n }\\r\\n if ((statusInt & 2) == 2) {\\r\\n statusDevice += 'WIFISource,';\\r\\n }\\r\\n if ((statusInt & 4) == 4) {\\r\\n statusDevice += 'CellTower,';\\r\\n }\\r\\n if ((statusInt & 8) == 8) {\\r\\n statusDevice += 'BLELocation,';\\r\\n }\\r\\n if ((statusInt & 16) == 16) {\\r\\n statusDevice += 'Charging,';\\r\\n }\\r\\n if ((statusInt & 32) == 32) {\\r\\n statusDevice += 'FUllyCharged,';\\r\\n }\\r\\n if ((statusInt & 64) == 64) {\\r\\n statusDevice += 'Reboot,';\\r\\n }\\r\\n if ((statusInt & 128) == 128) {\\r\\n statusDevice += 'HistoricalData,';\\r\\n }\\r\\n if ((statusInt & 256) == 256) {\\r\\n statusDevice += 'AGPSDataValid,';\\r\\n }\\r\\n if ((statusInt & 512) == 512) {\\r\\n statusDevice += 'Motion,';\\r\\n }\\r\\n if ((statusInt & 1024) == 1024) {\\r\\n statusDevice += 'SmartLocating,';\\r\\n }\\r\\n if ((statusInt & 2048) == 2048) {\\r\\n statusDevice += 'BeaconLocation,';\\r\\n }\\r\\n if ((statusInt & 4096) == 4096) {\\r\\n statusDevice += 'BLEConnected,';\\r\\n }\\r\\n statusDevice = statusDevice.slice(0, -1);\\r\\n // debug('statusHex:' + statusHex)\\r\\n statusHex = (statusHex);\\r\\n statusHex = hex2bin(statusHex);\\r\\n statusHex = ('00000000000000000000000000000000' + statusHex).slice(-32);\\r\\n // debug(statusHex)\\r\\n battery_percentage = parseInt(statusHex.substring(0, 8), 2);\\r\\n // debug(battery_percentage)\\r\\n // debug(battery_percentage)\\r\\n // debug(statusHex.substring(8, 13))\\r\\n cellNetworkSignal = parseInt(statusHex.substring(8, 13), 2);\\r\\n // debug(cellNetworkSignal)\\r\\n workMode = parseInt(statusHex.substring(13, 16), 2);\\r\\n // debug(workMode)\\r\\n general += 'statusDevice:' + statusDevice + ';';\\r\\n if (battery_percentage) {\\r\\n general += 'battery:' + battery_percentage + ';';\\r\\n }\\r\\n if (cellNetworkSignal) {\\r\\n general += 'cellNetworkSignal:' + cellNetworkSignal + ';';\\r\\n }\\r\\n if (workMode) {\\r\\n general += 'workMode:' + workMode + ';';\\r\\n }\\r\\n }\\r\\n }\\r\\n // revisar\\r\\n var gen_location = '0';\\r\\n //CustomID is not provided so far with command type 03.. commented in the mean time\\r\\n /*if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }*/\\r\\n //messageForReceiver = (`Eview-HTB;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};SIGNAL=${cellNetworkSignal};WM=${workMode};SL=${systemLanguage};GENERAL=${general}`);\\r\\n messageForReceiver = (`Eview-HTB;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '12': // Device requesting timestamp\\r\\n timestamp = moment.utc().unix();\\r\\n timestampHex = decimalToHex(timestamp);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n keyLengthHex = ('00' + decimalToHex(1 + (timestampHex.length) / 2)).slice(-2);\\r\\n // respond to device with the timestamp of the server\\r\\n messageBody = messageBody + keyLengthHex + key + timestampHex;\\r\\n messageForReceiver = `Eview;${imei};${sequenceID};Get timestamp`;\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case '21': //Cell Towers\\r\\n var mccHex = value.substring(0, 2);\\r\\n var mncHex = value.substring(2, 3);\\r\\n var mcc = hexToDecimal(mccHex);\\r\\n var mnc = hexToDecimal(mncHex);\\r\\n var numTowers = (keyLength - 4) / 5;\\r\\n var cellTowers = hex_to_ascii(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '22': // WIFI locations \\r\\n location_type = 'WIFI';\\r\\n var numWifi = Math.round((hexToDecimal(keyLengthHex) - 1) / 7);\\r\\n //location_time = timestamp;\\r\\n var wifiTowers = value;\\r\\n general += 'wifiTowers:';\\r\\n var indexWifi = 0;\\r\\n var bssid_array = [];\\r\\n gen_location = '';\\r\\n for (let i = 0; i < numWifi; i++) {\\r\\n gen_location += wifiTowers.substring(indexWifi + 2, indexWifi + 14) + ',';\\r\\n indexWifi += 14;\\r\\n }\\r\\n gen_location = gen_location.slice(0, -1);\\r\\n general += gen_location;\\r\\n //CustomID is not provided so far with command type 03\\r\\n /*if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }*/\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n alarmCode = '';\\r\\n break;\\r\\n }\\r\\n }\\r\\n }\\r\\n if (command == '04') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n if (command == '7E') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n if (command == '7F') {\\r\\n // while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n messageForReceiver = (`Roam-ACK;${imei};${message}`); // ${sequenceID}; add ${sequenceID}; 19-07\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n AddValue(configsToUpdate, configIds.ConfigureDevice.LastConfigured, moment().format('YYYY/MM/DD, HH:mm:ss'));\\r\\n configsToAck.push(configIds.ConfigureDevice.LastConfigured);\\r\\n //}\\r\\n }\\r\\n if (command == 'FE') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n // prepare the ACK msg and change config if it is needed\\r\\n lengthAck = messageBody.length / 2;\\r\\n lengthAck = ('0000' + decimalToHex(lengthAck)).slice(-4);\\r\\n lengthAck = lengthAck.toString().substring(2, 4) + lengthAck.toString().substring(0, 2);\\r\\n ////////////checksum CRC 16\\r\\n var checksumAck = byteStringToByteArray(messageBody);\\r\\n checksumAck = crc16byte(checksumAck);\\r\\n checksumAck = decimalToHex(checksumAck);\\r\\n checksumAck = ('0000' + checksumAck).slice(-4);\\r\\n checksumAck = checksumAck.toString().substring(2, 4) + checksumAck.toString().substring(0, 2);\\r\\n prefix = prefix + lengthAck + checksumAck + sequenceID;\\r\\n // To send ACK to the device previous to internal msg with parts\\r\\n if (needsAck == true) {\\r\\n if (messageBody.length <= 2) {\\r\\n ack = 'AB00030008C7' + sequenceID + '7F0100'; // change AB10030008C7 to AB00030008C7\\r\\n } else {\\r\\n ack = prefix + messageBody;\\r\\n }\\r\\n AddValue(codeValues, 'imei', imei);\\r\\n AddValue(codeValues, 'ack', ack);\\r\\n }\\r\\n } else { // checksum was invalid - print out useful debug info and bet quess at imei \\r\\n AddValue(codeValues, \\\"error\\\", \\\"checksum failed for message\\\");\\r\\n AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n i = rawFromBytes.search('3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]');\\r\\n if (i >= 0) {\\r\\n imei = hex_to_ascii(rawFromBytes.substring(i, i + 30));\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n function ascii_to_hexa(str) { // ascii to hex \\r\\n var arr1 = [];\\r\\n for (var n = 0, l = str.length; n < l; n++) {\\r\\n var hex = Number(str.charCodeAt(n)).toString(16);\\r\\n arr1.push(hex);\\r\\n }\\r\\n return arr1.join('');\\r\\n }\\r\\n\\r\\n function byteStringToByteArray(str) { //\\r\\n var splitStr = [];\\r\\n var j = 0;\\r\\n for (let i = 0; i < str.length; i += 2) {\\r\\n splitStr[j] = str.substring(i, i + 2);\\r\\n j++;\\r\\n }\\r\\n var bytes = [];\\r\\n var bytePos = 0;\\r\\n for (let i = 0; i < splitStr.length; i++) {\\r\\n var byteStr = splitStr[i];\\r\\n var b = parseInt(byteStr, 16);\\r\\n if (b < 256) {\\r\\n bytes[bytePos] = b;\\r\\n bytePos++;\\r\\n }\\r\\n }\\r\\n return bytes;\\r\\n }\\r\\n\\r\\n function changeEndianness(string) { //\\r\\n const result = [];\\r\\n let len = string.length - 2;\\r\\n while (len >= 0) {\\r\\n result.push(string.substr(len, 2));\\r\\n len -= 2;\\r\\n }\\r\\n return result.join('');\\r\\n }\\r\\n\\r\\n function hex2bin(hex) { //\\r\\n return (parseInt(hex, 16).toString(2)).padStart(8, '0');\\r\\n }\\r\\n\\r\\n function calculateCheckSum(payloadData) { // check if payload checksum is valid\\r\\n var checksum = byteStringToByteArray(payloadData);\\r\\n checksum = crc16byte(checksum);\\r\\n checksum = decimalToHex(checksum);\\r\\n checksum = ('0000' + checksum).slice(-4).toUpperCase();\\r\\n return changeEndianness(checksum);\\r\\n }\\r\\n\\r\\n function crc16byte(s) { //\\r\\n var crc = 0x0000;\\r\\n var j, i;\\r\\n for (i = 0; i < s.length; i++) {\\r\\n c = s[i];\\r\\n if (c > 255) {\\r\\n throw new RangeError();\\r\\n }\\r\\n j = (c ^ (crc >> 8)) & 0xFF;\\r\\n crc = crcTable[j] ^ (crc << 8);\\r\\n }\\r\\n return ((crc ^ 0) & 0xFFFF);\\r\\n }\\r\\n\\r\\n function debug(str) { // write debug info to console log, if localTesting\\r\\n if (localTesting === \\\"True\\\") {\\r\\n console.log(str);\\r\\n }\\r\\n }\\r\\n\\r\\n function decimalToHex(x) { // decimal to hex\\r\\n x = x.toString(16).toUpperCase();\\r\\n return x;\\r\\n }\\r\\n\\r\\n function hex_to_ascii(str1) { // Hex to Ascii \\r\\n var hex = str1.toString();\\r\\n var str = '';\\r\\n for (var n = 0; n < hex.length; n += 2) {\\r\\n str += String.fromCharCode(parseInt(hex.substr(n, 2), 16));\\r\\n }\\r\\n return str;\\r\\n }\\r\\n\\r\\n function hexToDecimalSigned(hex) { // hex to decimal\\r\\n if (hex.length % 2 != 0) {\\r\\n hex = \\\"0\\\" + hex;\\r\\n }\\r\\n var num = parseInt(hex, 16);\\r\\n var maxVal = Math.pow(2, hex.length / 2 * 8);\\r\\n if (num > maxVal / 2 - 1) {\\r\\n num = num - maxVal;\\r\\n }\\r\\n return num;\\r\\n }\\r\\n\\r\\n function hexToDecimal(x) {\\r\\n x = parseInt(x, 16);\\r\\n return x;\\r\\n }\\r\\n\\r\\n function sendMessageToLocalhostNoWait(str) { // sends message to system, closing connection after\\r\\n var server;\\r\\n if (localTesting) {\\r\\n console.log('local testing - sending to acceptance server the message ... ');\\r\\n console.log(str);\\r\\n server = '52.174.17.77';\\r\\n } else {\\r\\n server = '127.0.0.1';\\r\\n }\\r\\n var c = net.createConnection(5678, server);\\r\\n c.on('error', function(error) {\\r\\n c = net.createConnection(5678, server);\\r\\n });\\r\\n c.write(`${str}`);\\r\\n c.end();\\r\\n }\\r\\n // modify to return the object that contains your data\\r\\n return dataToReceiver;\\r\\n}\\r\\n// params is not defined locally -> export as module\\r\\nif (typeof(params) === 'undefined') {\\r\\n module.exports = {\\r\\n execute_ops\\r\\n }\\r\\n} else { // on server use local defined vars\\r\\n let return_values = execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, false)\\r\\n // define global returns\\r\\n msg = return_values;\\r\\n}\",\"Type\":0,\"ProtocolActionObjects\":[]}","Timestamp":1734521810},{"Type":1,"NewValue":"{\"Id\":313,\"Name\":\"Access TEC Roam\",\"Operation\":\"function execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, localTesting) {\\r\\n ///////////////////////////////////////////////////////////////////////////////\\r\\n //\\r\\n // Roam protocol - please see variables and typical values in order below\\r\\n // TECRoam-CYC;<<imei>>;STATUS=<<status_data>>;LTIME=<<location_time>>;ETIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;SIGNAL=<<signal_strength>>;WM=<<work_mode>>;GENERAL=<<general>>\\r\\n // TECRoam-CYC;861629050193550;STATUS=WIFISource,CellTower;TIME=1673950279;BATP=84;LGPS=undefined;LWIF=-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369;LLBS=214,1,13,768,38529798;LBEACON=undefined;BLE=undefined;GENERAL=statusDevice:WIFISource,CellTower,battery:84,cellNetworkSignal:14,workMode:6,wifiTowers:-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369,214,1,13,768,38529798,;\\\",\\r\\n //\\r\\n // Author: Joe Bloggs\\r\\n // Created: 01/01/0000\\r\\n // Last modified: 12/04/2024\\r\\n //\\r\\n ///////////////////////////////////////////////////////////////////////////////\\r\\n if (typeof localTesting === \\\"undefined\\\") {\\r\\n var localTesting = \\\"False\\\";\\r\\n }\\r\\n const crcTable = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,\\r\\n 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,\\r\\n 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\\r\\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,\\r\\n 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,\\r\\n 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\\r\\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,\\r\\n 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,\\r\\n 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\\r\\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,\\r\\n 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,\\r\\n 0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\\r\\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,\\r\\n 0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,\\r\\n 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\\r\\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,\\r\\n 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,\\r\\n 0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\\r\\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,\\r\\n 0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,\\r\\n 0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\\r\\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,\\r\\n 0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,\\r\\n 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\\r\\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,\\r\\n 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,\\r\\n 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\\r\\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,\\r\\n 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,\\r\\n 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\\r\\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,\\r\\n 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\\r\\n ];\\r\\n var codeValues = [];\\r\\n AddValue(codeValues, 'protocol_template', 'Roam');\\r\\n AddValue(codeValues, 'product', serverParams.ProductName);\\r\\n var dataToReceiver = [];\\r\\n var configsToAck = [];\\r\\n var configsToUpdate = [];\\r\\n var configsToSend = [];\\r\\n if (globalTemplate == \\\"True\\\") {\\r\\n if (raw.startsWith('esendex')) {\\r\\n AddValue(codeValues, 'rawMsg', raw);\\r\\n //general SMS message\\r\\n messageForReceiver = (`Roam-SMS;${serverParams.Imei};${raw}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n return;\\r\\n }\\r\\n AddValue(codeValues, 'raw', raw);\\r\\n AddValue(codeValues, 'rawMsg', rawFromBytes);\\r\\n var event_time, location_time, location_accuracy, speed, fix_state, latitude, longitude;\\r\\n var homeBeacon = '';\\r\\n var homeWiFi = '';\\r\\n var contacts = '';\\r\\n var gps_data = '';\\r\\n var wifi_data = '';\\r\\n var status_data = '';\\r\\n var lbs_data = '';\\r\\n var beacon_data = '';\\r\\n var ble_data = '';\\r\\n var smart_data = '';\\r\\n //parse header & properties\\r\\n var message = rawFromBytes;\\r\\n var properties = message.substring(2, 4);\\r\\n var lengthLittleEndian = message.substring(4, 8);\\r\\n var total_length = lengthLittleEndian.substring(2, 4) + lengthLittleEndian.substring(0, 2);\\r\\n total_length = 2 * hexToDecimal(total_length.substring(0, 4));\\r\\n var messageForReceiver;\\r\\n var sequenceID = message.substring(12, 16);\\r\\n var command = message.substring(16, 18);\\r\\n var index = 18;\\r\\n var prefix = 'AB' + '00';\\r\\n var lengthAck = 0;\\r\\n var ack = '';\\r\\n var needsAck = false;\\r\\n var hasConfigs = false;\\r\\n var general = '';\\r\\n var timestamp = '';\\r\\n var info = '';\\r\\n var customID = '';\\r\\n latitude = 0;\\r\\n longitude = 0;\\r\\n location_accuracy = 0; // GPS location adds the accuracy\\r\\n location_time = event_time = '';\\r\\n speed = 0.0;\\r\\n var location_type = '0';\\r\\n //var gen_location = '0'; \\r\\n var i; // general loop counter\\r\\n var battery_percentage = '';\\r\\n var cellNetworkSignal = '';\\r\\n var workMode = '';\\r\\n //mask bitwise (properties should be '10')\\r\\n if ((parseInt(properties) & 8) == 8) { // 22/7 change ((parseInt(properties) & 16) == 16)\\r\\n needsAck = true;\\r\\n }\\r\\n // Loop to decode multi-ACK msg\\r\\n if (message.includes('AB00030008C7')) {\\r\\n const multiack = message.split('AB00');\\r\\n for (let i = 1; i < multiack.length; i++) {\\r\\n message = 'AB00' + multiack[i];\\r\\n debug(message);\\r\\n decoder(message);\\r\\n } // FOR multiACK\\r\\n } else decoder(message); // IF multiACK\\r\\n } else if (oystaTemplate == 'True') { // Oysta Template \\r\\n AddValue(codeValues, 'rawMsg', raw);\\r\\n if ((params.gps_data) && (params.gps_data !== '')) { // decode gps data if exists\\r\\n var gen_location = params.gps_data.split(',');\\r\\n var latitude = gen_location[0];\\r\\n var longitude = gen_location[1];\\r\\n var location_accuracy = gen_location[2];\\r\\n var speed = gen_location[3];\\r\\n var direction = gen_location[4];\\r\\n var altitude = gen_location[5];\\r\\n var satellites = gen_location[6];\\r\\n var mileage = gen_location[7];\\r\\n if (location_accuracy !== 0) {\\r\\n var fix_state = 1;\\r\\n } else {\\r\\n var fix_state = 0;\\r\\n }\\r\\n AddValue(codeValues, 'latitude', latitude);\\r\\n AddValue(codeValues, 'longitude', longitude);\\r\\n AddValue(codeValues, 'speed', speed);\\r\\n AddValue(codeValues, 'direction', direction);\\r\\n AddValue(codeValues, 'altitude', altitude);\\r\\n AddValue(codeValues, 'location_accuracy', location_accuracy);\\r\\n AddValue(codeValues, 'mileage', mileage);\\r\\n AddValue(codeValues, 'satellites', satellites);\\r\\n AddValue(codeValues, 'fix_state', fix_state);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.lbs_data) && (params.lbs_data !== '')) { // decode lbs data if exists\\r\\n var variables = []; //Define array\\r\\n variables = params.lbs_data.split(',');\\r\\n var index = 2;\\r\\n for (i = 0; i < ((variables.length - 2) / 3); i++) { //loop for number of LBS sets on incoming data.\\r\\n if (variables[i] !== '0') { //Check if LBS data is present (device sends 0 if data not present)/actually exists.\\r\\n AddValue(codeValues, 'mcc', variables[0]);\\r\\n AddValue(codeValues, 'mnc', variables[1]);\\r\\n AddValue(codeValues, 'lac', variables[index]);\\r\\n AddValue(codeValues, 'signal_lbs', variables[index + 1]);\\r\\n AddValue(codeValues, 'cellid', variables[index + 2]);\\r\\n }\\r\\n index += 3;\\r\\n }\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.wifi_data) && (params.wifi_data !== '')) { // decode wifi data if exists\\r\\n var bssid_array = params.wifi_data.split(',');\\r\\n var index = 0;\\r\\n for (let i = 0; i < (bssid_array.length / 2); i++) {\\r\\n if (bssid_array[index + 1] != '000000000000') { //Check if MAC address is not 000000000000 - seems to be the default MAC of the device itself\\r\\n AddValue(codeValues, 'bssid', bssid_array[index + 1]);\\r\\n AddValue(codeValues, 'signal_wifi', bssid_array[index]);\\r\\n }\\r\\n index += 2;\\r\\n }\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n // when Beacon is detected and it isn't flic BLE detected\\r\\n if (((params.beacon_data) && (params.beacon_data !== '')) && !((params.ble_data) && (params.ble_data !== ''))) {\\r\\n var gen_location = params.beacon_data.split(',');\\r\\n var latitude = gen_location[0];\\r\\n var longitude = gen_location[1];\\r\\n var mac = gen_location[2];\\r\\n var label = gen_location[3];\\r\\n AddValue(codeValues, 'latitude', latitude);\\r\\n AddValue(codeValues, 'longitude', longitude);\\r\\n //AddValue(codeValues,'location_accuracy', '3'); // para mostrar que si hay accuracy muestra como source GPS\\r\\n // AddValue(codeValues,'beacon_mac', mac);\\r\\n //AddValue(codeValues,'beacon_major', 0);\\r\\n //AddValue(codeValues,'beacon_minor', 0);\\r\\n //<<beacon_mac>>,<<beacon_major>>,<<beacon_minor>> \\r\\n if (mac) {\\r\\n AddValue(codeValues, 'beacon_mac', mac);\\r\\n var simpleQuery = [{\\r\\n 'code': 'Mac',\\r\\n 'value': mac,\\r\\n }];\\r\\n var simpleQueryLabel = {\\r\\n 'table': 'beacons',\\r\\n 'select': 'Name',\\r\\n 'query': simpleQuery\\r\\n };\\r\\n var labels = [];\\r\\n labels.push(JSON.stringify(simpleQueryLabel));\\r\\n AddValue(codeValues, 'oysta_labels', JSON.stringify(labels));\\r\\n }\\r\\n if (params.beacon_major) {\\r\\n AddValue(codeValues, 'beacon_major', params.beacon_major);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_major', 0);\\r\\n }\\r\\n if (params.beacon_minor) {\\r\\n AddValue(codeValues, 'beacon_minor', params.beacon_minor);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_minor', 0);\\r\\n }\\r\\n //AddValue(codeValues,'oysta_labels', label);\\r\\n //AddValue(codeValues,'oysta_value', mac);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n if ((params.ble_data) && (params.ble_data !== '')) { // decode ble data if exists\\r\\n var gen_location = params.ble_data.split(',');\\r\\n var flag = gen_location[0];\\r\\n var batLevel = gen_location[1];\\r\\n var mac2 = gen_location[2];\\r\\n //var label = gen_location[3];\\r\\n AddValue(codeValues, 'flagBLE', flag);\\r\\n AddValue(codeValues, 'batBLE', batLevel);\\r\\n //AddValue(codeValues,'location_accuracy', '3'); // para mostrar que si hay accuracy muestra como source GPS\\r\\n // AddValue(codeValues,'beacon_mac', mac);\\r\\n //AddValue(codeValues,'beacon_major', 0);\\r\\n //AddValue(codeValues,'beacon_minor', 0);\\r\\n //<<beacon_mac>>,<<beacon_major>>,<<beacon_minor>> \\r\\n if (mac2) {\\r\\n AddValue(codeValues, 'beacon_mac', mac2);\\r\\n var simpleQuery2 = [{\\r\\n 'code': 'Mac',\\r\\n 'value': mac2,\\r\\n }];\\r\\n var simpleQueryLabel2 = {\\r\\n 'table': 'beacons',\\r\\n 'select': 'Name',\\r\\n 'query': simpleQuery2\\r\\n };\\r\\n var labels2 = [];\\r\\n labels2.push(JSON.stringify(simpleQueryLabel2));\\r\\n AddValue(codeValues, 'oysta_labels', JSON.stringify(labels2));\\r\\n }\\r\\n if (params.beacon_major) {\\r\\n AddValue(codeValues, 'beacon_major', params.beacon_major);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_major', 0);\\r\\n }\\r\\n if (params.beacon_minor) {\\r\\n AddValue(codeValues, 'beacon_minor', params.beacon_minor);\\r\\n } else {\\r\\n AddValue(codeValues, 'beacon_minor', 0);\\r\\n }\\r\\n //AddValue(codeValues,'oysta_labels', label);\\r\\n //AddValue(codeValues,'oysta_value', mac);\\r\\n if (location_time) {\\r\\n AddValue(codeValues, 'location_time', location_time);\\r\\n }\\r\\n }\\r\\n /* meter mas tarde... \\r\\n if (params.smart_data !== 'undefined') {\\r\\n var gen_location = params.smart_data.split(',')\\r\\n var latitude = gen_location[0]\\r\\n var longitude = gen_location[1]\\r\\n var location_accuracy = gen_location[2]\\r\\n var altitude = gen_location[3]\\r\\n AddValue(codeValues,'latitude', latitude);\\r\\n AddValue(codeValues,'longitude', longitude);\\r\\n AddValue(codeValues,'altitude', altitude);\\r\\n AddValue(codeValues,'location_accuracy', location_accuracy);\\r\\n }\\r\\n */\\r\\n /*else if ((params.event_time) && (params.event_time == '')) {\\r\\n var event_time = moment.utc().unix();\\r\\n AddValue(codeValues,'event_time', event_time);\\r\\n } revisar mas adelante*/\\r\\n // to parse SMS info from the device\\r\\n switch (messageTypeLocalCode) {\\r\\n case 'COMM-SMS': // SMS message sent in\\r\\n if (params.data.startsWith('Device location request')) {\\r\\n configsToAck.push(configIds.Controls.RealTimeLocate);\\r\\n } else if (params.data.startsWith('Set IP ok')) {\\r\\n configsToAck.push(configIds.Controls.GetCurrentConfig);\\r\\n } else if (params.data.startsWith('IMEI:')) {\\r\\n configsToAck.push(configIds.Controls.GetFirmwareVersion);\\r\\n } else if (params.data.startsWith('Set IP ok')) {\\r\\n configsToAck.push(configIds.Controls.ClearBufferedMessages);\\r\\n } else if (params.data.startsWith('flush ok')) {\\r\\n configsToAck.push(configIds.Controls.GetCurrentConfig);\\r\\n } else if (params.data.startsWith('Set Roam-')) {\\r\\n configsToAck.push(configIds.SMSPrefix.SMSPrefix);\\r\\n } else if (params.data.startsWith('set live tracking')) {\\r\\n configsToAck.push(configIds.Controls.Trace);\\r\\n } else if (params.data.startsWith('reboot ok')) {\\r\\n configsToAck.push(configIds.Controls.Reboot);\\r\\n } else if (params.data.startsWith('GPS')) {\\r\\n configsToAck.push(configIds.Controls.RealTimeLocate);\\r\\n var i1 = params.data.search('Now:')\\r\\n var i2 = params.data.search('Loc Time:')\\r\\n var i3 = params.data.search('Speed:')\\r\\n var i4 = params.data.search('Altitude:')\\r\\n var i5 = params.data.search('Battery:')\\r\\n var i6 = params.data.search('google')\\r\\n var eventTime = params.data.substring(i2 + 9, i3)\\r\\n var Speed = params.data.substring(i3 + 6, i4 - 3)\\r\\n if (params.data.substring(i4 - 3, i4) == 'mph') {\\r\\n Speed = Speed * 0.44704\\r\\n } else if (params.data.substring(i4 - 3, i4) == 'kph') {\\r\\n Speed = Speed / 3.6\\r\\n }\\r\\n var latlong = params.data.substring(i6 + 18)\\r\\n location_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n messageForReceiver = (`Roam-RTL;${params.imei};${location_time};${location_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n //event_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n //messageForReceiver = (`CARE-RTL;${params.imei};${event_time};${event_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n case 'ACK-FIRM-SMS': // Firmware info sent by SMS\\r\\n //var i1 = params.data.search('IMEI:')\\r\\n //var i2 = params.data.search('GSM signal quality:')\\r\\n var i3 = params.data.search('Software version:')\\r\\n var sub = params.data.substring(i3 + 17, params.data.length)\\r\\n var i4 = sub.search('version:');\\r\\n var fwVersion = sub.substring(i4, sub.length);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n break;\\r\\n case 'ACK-FALLSENS-SMS': // Fall sensibility info sent by SMS\\r\\n var i1 = params.data.search('Fall alarm:');\\r\\n var sensibility = params.data.substring(i1 + 11, i1 + 14);\\r\\n var i2 = params.data.search('level:');\\r\\n sensibility = sensibility + ', ' + params.data.substring(i2 + 6, i2 + 7);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"sensibility\\\", sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadEmergencySettings.FallSensitivity, sensibility);\\r\\n configsToAck.push(configIds.ReadEmergencySettings.FallSensitivity);\\r\\n break;\\r\\n case 'ACK-BEAC-SMS': // Beacon list info sent by SMS\\r\\n var i1 = raw.search('1,');\\r\\n //var i2 = params.data.search('2,');\\r\\n //var homeBeacon = params.data.substring(i1+2, i2);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"homeBeacon\\\", raw.substring(i1, raw.length));\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.HomeBeacon, raw.substring(i1, raw.length));\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.HomeBeacon);\\r\\n break;\\r\\n case 'ACK-CONTAC-SMS': // Contact list info sent by SMS\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n var i1 = raw.search('A1:');\\r\\n if (raw.includes('A2:')) {\\r\\n var i2 = raw.search('A2:');\\r\\n } else {\\r\\n var i2 = raw.search('A10:');\\r\\n }\\r\\n var tel = raw.substring(i1 + 4, i2);\\r\\n AddValue(codeValues, \\\"EmergencyNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.EmergencyNumber, tel);\\r\\n configsToAck.push(configIds.ReadAlertSettings.EmergencyNumber);\\r\\n i2 = raw.search('A10:')\\r\\n tel = raw.substring(i2 + 4, raw.length);\\r\\n AddValue(codeValues, \\\"SMSGateway\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.SMSGateway, tel);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.SMSGateway);\\r\\n AddValue(codeValues, \\\"ApprovedContacts\\\", raw.substring(i1, raw.length));\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.ApprovedContacts, raw.substring(i1, raw.length));\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.ApprovedContacts);\\r\\n break;\\r\\n case 'ACK-SERV-SMS': // APN and Server info sent by SMS\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n var i1 = params.data.search('APN:')\\r\\n var i2 = params.data.search('IP:')\\r\\n var i3 = params.data.search('Move')\\r\\n var apn = params.data.substring(i1 + 4, i2);\\r\\n AddValue(codeValues, \\\"apn\\\", apn);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.APN, apn);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.APN);\\r\\n var serverDetails = params.data.substring(i2 + 3, i3);\\r\\n AddValue(codeValues, \\\"server\\\", serverDetails);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.Server, serverDetails);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.Server);\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case 'RTL-GPS': // SRTL sent in via SMS with no pre-code\\r\\n var i3 = params.data.search('Speed:')\\r\\n var i4 = params.data.search('Altitude:')\\r\\n var i5 = params.data.search('Battery:')\\r\\n var i6 = params.data.search('google')\\r\\n var eventTime = params.data.substring(0, i3)\\r\\n var Speed = params.data.substring(i3 + 6, i4 - 3)\\r\\n if (params.data.substring(i4 - 3, i4) == 'mph') {\\r\\n Speed = Speed * 0.44704\\r\\n } else if (params.data.substring(i4 - 3, i4) == 'kph') {\\r\\n Speed = Speed / 3.6\\r\\n }\\r\\n var latlong = params.data.substring(i6 + 18)\\r\\n location_time = moment(eventTime, 'MM/DD/YYYY HH:mm:ss').unix()\\r\\n messageForReceiver = (`Roam-RTL;${params.imei};${location_time};${location_time};${latlong.split(',')[0]};${latlong.split(',')[1]};9000;${params.data.substring(i4+9,i5)};${Speed};${params.data.substring(i5+8,i6-5)};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n }\\r\\n if (!params.event_time && !event_time) { // if params.event_time undefined - set it to now. \\r\\n var event_time = moment.utc().unix();\\r\\n AddValue(codeValues, 'event_time', event_time);\\r\\n }\\r\\n // if (!params.location_time && !location_time) { // if params.location_time undefined - set it to now. \\r\\n // var location_time = moment.utc().unix();\\r\\n // AddValue(codeValues, 'location_time', location_time);\\r\\n //}\\r\\n }\\r\\n var dataToReceiver = {\\r\\n 'values': codeValues\\r\\n };\\r\\n if (configsToAck.length > 0) {\\r\\n dataToReceiver.configsToAck = configsToAck\\r\\n };\\r\\n if (configsToUpdate.length > 0) {\\r\\n dataToReceiver.configsToUpdate = configsToUpdate\\r\\n };\\r\\n if (configsToSend.length > 0) {\\r\\n dataToReceiver.configsToSend = configsToSend\\r\\n };\\r\\n console.log(dataToReceiver);\\r\\n //}\\r\\n //return {\\r\\n // 'output': dataToReceiver\\r\\n //}\\r\\n // end of main operation\\r\\n // define functions used in operation\\r\\n function AddValue(codeValueArray, p1, p2) { // push code value pair into array\\r\\n var cvpair = {\\r\\n code: p1,\\r\\n value: p2\\r\\n };\\r\\n codeValueArray.push(cvpair);\\r\\n }\\r\\n\\r\\n function decoder(str) { // decode rawdata\\r\\n // CARE Decoder\\r\\n AddValue(codeValues, 'Message : ', str);\\r\\n var message = str;\\r\\n // need to check if checksum is correct for possible msg corruption 10/03/23\\r\\n var checksum = message.substring(8, 12);\\r\\n var messageBody = message.substring(16, message.length);\\r\\n debug('message =' + message);\\r\\n debug('checksum =' + checksum);\\r\\n debug('calculateCheckSum =' + calculateCheckSum(messageBody));\\r\\n if (calculateCheckSum(messageBody) == checksum) { // payload is valid\\r\\n debug(\\\"message has valid checksum\\\");\\r\\n var messageBody = command; // update value for the ACK\\r\\n debug('command =' + command);\\r\\n if (command == '01') {\\r\\n while (index < total_length + 16) {\\r\\n // gen_location = '0'; //cambiado 30/09\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n var keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n debug('key = ' + key);\\r\\n debug('value = ' + value);\\r\\n switch (key) {\\r\\n //Device ID\\r\\n case '01':\\r\\n var imei = hex_to_ascii(value);\\r\\n break;\\r\\n //Alarm code\\r\\n case '02':\\r\\n var alarm = 'CYC';\\r\\n var alarmCode = value.substring(0, 8);\\r\\n alarmCode = changeEndianness(alarmCode);\\r\\n var timestampHex = value.substring(8, 16);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n event_time = timestamp;\\r\\n var alarmCodeInt = hexToDecimal(alarmCode);\\r\\n var alarmCodeExt = value.substring(16, 24);\\r\\n alarmCodeExt = changeEndianness(alarmCodeExt);\\r\\n var alarmCodeExtInt = hexToDecimal(alarmCodeExt);\\r\\n //Extended Alerts\\r\\n // Fall off\\r\\n if ((alarmCodeExtInt & 1) == 1) {\\r\\n var alarm = 'ALF-C';\\r\\n }\\r\\n // Welfare Check-out\\r\\n else if ((alarmCodeExtInt & 2) == 2) {\\r\\n var alarm = 'ALA-C';\\r\\n }\\r\\n // Standard Alerts\\r\\n //Battery low\\r\\n else if ((alarmCodeInt & 1) == 1) {\\r\\n var alarm = 'BATL';\\r\\n }\\r\\n //Overspeed\\r\\n else if ((alarmCodeInt & 2) == 2) {\\r\\n var alarm = 'ALSP';\\r\\n }\\r\\n //Fall\\r\\n else if ((alarmCodeInt & 4) == 4) {\\r\\n var alarm = 'ALF';\\r\\n }\\r\\n //Tilt\\r\\n else if ((alarmCodeInt & 8) == 8) {\\r\\n var alarm = 'Tilt';\\r\\n } else if ((alarmCodeInt & 16) == 16) {\\r\\n if ((alarmCodeInt & 16777216) == 16777216) {\\r\\n var alarm = 'Geo1-IN';\\r\\n } else {\\r\\n var alarm = 'Geo1-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 32) == 32) {\\r\\n if ((alarmCodeInt & 33554432) == 33554432) {\\r\\n var alarm = 'Geo2-IN';\\r\\n } else {\\r\\n var alarm = 'Geo2-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 64) == 64) {\\r\\n if ((alarmCodeInt & 67108864) == 67108864) {\\r\\n var alarm = 'Geo3-IN';\\r\\n } else {\\r\\n var alarm = 'Geo3-OUT';\\r\\n }\\r\\n } else if ((alarmCodeInt & 128) == 128) {\\r\\n if ((alarmCodeInt & 134217728) == 134217728) {\\r\\n var alarm = 'Geo4-IN';\\r\\n } else {\\r\\n var alarm = 'Geo4-OUT';\\r\\n }\\r\\n }\\r\\n //Power Off\\r\\n else if ((alarmCodeInt & 256) == 256) {\\r\\n var alarm = 'PWRF';\\r\\n }\\r\\n //Power On\\r\\n else if ((alarmCodeInt & 512) == 512) {\\r\\n var alarm = 'PWRN';\\r\\n }\\r\\n //Motion\\r\\n else if ((alarmCodeInt & 1024) == 1024) {\\r\\n var alarm = 'ALMOV';\\r\\n }\\r\\n //No Motion\\r\\n else if ((alarmCodeInt & 2048) == 2048) {\\r\\n var alarm = 'ALNM';\\r\\n }\\r\\n //SOS\\r\\n else if ((alarmCodeInt & 4096) == 4096) {\\r\\n var alarm = 'ALSOS';\\r\\n } else if ((alarmCodeInt & 8192) == 8192) {\\r\\n var alarm = 'Side1';\\r\\n } else if ((alarmCodeInt & 16384) == 16384) {\\r\\n var alarm = 'Side2';\\r\\n }\\r\\n //Battery charging\\r\\n else if ((alarmCodeInt & 32768) == 32768) {\\r\\n var alarm = 'BATCN';\\r\\n }\\r\\n //Battery no charging\\r\\n else if ((alarmCodeInt & 65536) == 65536) {\\r\\n var alarm = 'BATCF';\\r\\n }\\r\\n //SOS Ending\\r\\n // Temporary Commented until we know exactly how it works. 22/09/2022\\r\\n else if ((alarmCodeInt & 131072) == 131072) {\\r\\n var alarm = 'SOSEnding';\\r\\n info = 'Alarm Finished';\\r\\n }\\r\\n //Amber Alert EC03 only\\r\\n else if ((alarmCodeInt & 262144) == 262144) {\\r\\n var alarm = 'ALAO';\\r\\n }\\r\\n // welfare Alert check-in ALA-O\\r\\n else if ((alarmCodeInt & 524288) == 524288) {\\r\\n var alarm = 'ALA-O';\\r\\n }\\r\\n // Amber alert Ending ALA-C\\r\\n else if ((alarmCodeInt & 1048576) == 1048576) {\\r\\n var alarm = 'ALA-C';\\r\\n }\\r\\n // Amber alert Ending ALA-C\\r\\n //else if ((alarmCodeInt & 1048576) == 1048576) {\\r\\n // var alarm = 'ALA-C';\\r\\n //}\\r\\n // Fall-Down Alert ending\\r\\n else if ((alarmCodeInt & 2097152) == 2097152) {\\r\\n var alarm = 'ALF-C';\\r\\n }\\r\\n // welfare Alert Ending ALA\\r\\n else if ((alarmCodeInt & 4194304) == 4194304) {\\r\\n var alarm = 'ALA';\\r\\n }\\r\\n // Beacon absent Alert 11/10/22. Need to be added in msg types\\r\\n //else if ((alarmCodeInt & 16777216) == 16777216) {\\r\\n // var alarm = 'BEA';\\r\\n //}\\r\\n general += 'alarm:' + alarm + ',';\\r\\n break;\\r\\n //Custom ID\\r\\n case '03':\\r\\n // in value is customID.... '06' for Watch Care\\r\\n // if ((imei != '860470063029395') && (imei != '860470063035947')) {\\r\\n //update customID to check if belongs to this type of device\\r\\n customID = value;\\r\\n if (value != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n } else {\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n general += 'customID:' + value + ',';\\r\\n break;\\r\\n }\\r\\n //Historical Data Completed\\r\\n case '10': // indica q se han terminado de enviar todos los datos historicos.\\r\\n var histData = true;\\r\\n break;\\r\\n //GPS location\\r\\n case '20':\\r\\n location_type = 'GPS';\\r\\n var latitudeHex = value.substring(0, 8);\\r\\n var longitudeHex = value.substring(8, 16);\\r\\n var speedHex = value.substring(16, 20);\\r\\n var directionHex = value.substring(20, 24);\\r\\n var altitudeHex = value.substring(24, 28);\\r\\n var location_accuracyHex = value.substring(28, 32);\\r\\n var mileageHex = value.substring(32, 40);\\r\\n var satellitesHex = value.substring(40, 42);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n speed = ((hexToDecimal(changeEndianness(speedHex))) / 3.6).toFixed(2); //date 14-02-2023 in m/s\\r\\n var direction = hexToDecimal(changeEndianness(directionHex));\\r\\n var altitude = hexToDecimal(changeEndianness(altitudeHex)); // in meters\\r\\n //location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex)) * 5;\\r\\n // Range: 0.5 to 99.9 \\r\\n location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex));\\r\\n //var mileage = hexToDecimal(changeEndianness(mileageHex)) this is in km/h we need m/s\\r\\n var mileage = hexToDecimal(changeEndianness(mileageHex)); // in meters date 14-02-2023\\r\\n var satellites = hexToDecimal(satellitesHex);\\r\\n // location_time = timestamp;\\r\\n //<<latitude>>,<<longitude>>,<<speed>>,<<altitude>>,<<location_time>>\\r\\n gps_data = `${latitude},${longitude},${location_accuracy},${speed},${direction},${altitude},${satellites},${mileage}`;\\r\\n general += 'gps location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //WIFI Towers\\r\\n case '22':\\r\\n location_type = 'WIFI';\\r\\n var numWifi = Math.round((hexToDecimal(keyLengthHex) - 1) / 7);\\r\\n //location_time = timestamp;\\r\\n var wifiTowers = value;\\r\\n general += 'wifiTowers:';\\r\\n var indexWifi = 0;\\r\\n var bssid_array = [];\\r\\n wifi_data = '';\\r\\n for (let i = 0; i < numWifi; i++) {\\r\\n wifi_data += hexToDecimalSigned(wifiTowers.substring(indexWifi, indexWifi + 2)) + ',' + wifiTowers.substring(indexWifi + 2, indexWifi + 14) + ',';\\r\\n indexWifi += 14;\\r\\n }\\r\\n wifi_data = wifi_data.slice(0, -1);\\r\\n general += wifi_data;\\r\\n break;\\r\\n //BLE Location Added 10/10/22\\r\\n case '23':\\r\\n location_type = 'BLE';\\r\\n var mac = value.substring(0, 12);\\r\\n var latitudeHex = value.substring(12, 20);\\r\\n var longitudeHex = value.substring(20, 28);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n var address = hex_to_ascii(value.substring(28, value.length));\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n // location_time = timestamp;\\r\\n ble_data = `${latitude},${longitude},${mac},${address}`;\\r\\n general += 'BLE location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //General Data , status_data\\r\\n case '24':\\r\\n //var general = 'true'\\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n }\\r\\n //else {\\r\\n // messageForReceiver = (`CareWatch-CYC;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};`);\\r\\n //}\\r\\n // reset variables\\r\\n //alarm = alarmCode = general = status_data = gps_data = wifi_data = lbs_data = beacon_data = ble_data = '';\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n location_time = timestamp;\\r\\n // HardCode to fix possible issue in protocol\\r\\n // event_time = timestamp; \\r\\n event_time = moment.utc().unix();\\r\\n // end of hard code\\r\\n var statusHex = changeEndianness(value.substring(8, 16));\\r\\n var statusInt = hexToDecimal(statusHex);\\r\\n var statusDevice = '';\\r\\n if ((statusInt & 1) == 1) {\\r\\n statusDevice += 'GPS,';\\r\\n }\\r\\n if ((statusInt & 2) == 2) {\\r\\n statusDevice += 'WIFISource,';\\r\\n }\\r\\n if ((statusInt & 4) == 4) {\\r\\n statusDevice += 'CellTower,';\\r\\n }\\r\\n if ((statusInt & 8) == 8) {\\r\\n statusDevice += 'BLELocation,';\\r\\n }\\r\\n //params.BatteryStatus.BatteryStatus = '1';\\r\\n if ((statusInt & 16) == 16) {\\r\\n statusDevice += 'Charging,';\\r\\n // var alarm = 'BATCN';\\r\\n //configs.BatteryStatus.BatteryStatus = '1';\\r\\n /* if (configs.BatteryStatus.BatteryStatus !== '1') {\\r\\n hasConfigs = true;\\r\\n var batteryStatus = '1';\\r\\n var alarm = 'BATCN';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }*/\\r\\n }\\r\\n if ((statusInt & 32) == 32) {\\r\\n statusDevice += 'FUllyCharged,';\\r\\n //var alarm = 'BATF';\\r\\n // configs.BatteryStatus.BatteryStatus = '3';\\r\\n /* if (configs.BatteryStatus.BatteryStatus !== '3') {\\r\\n hasConfigs = true;\\r\\n var batteryStatus = '3';\\r\\n var alarm = 'BATF';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }*/\\r\\n }\\r\\n /* if (!((statusInt & 32) == 32) & !((statusInt & 16) == 16)) {\\r\\n statusDevice += 'Not Charging,';\\r\\n var alarm = 'BATCF';\\r\\n //configs.BatteryStatus.BatteryStatus = '2';\\r\\n if (configs.BatteryStatus.BatteryStatus !== '2') {\\r\\n var batteryStatus = '2';\\r\\n var alarm = 'BATCF';\\r\\n let configsToUpdate = [];\\r\\n configsToUpdate.push({\\r\\n 'code': configIds.BatteryStatus.BatteryStatus,\\r\\n 'value': batteryStatus\\r\\n });\\r\\n }\\r\\n }*/\\r\\n if ((statusInt & 64) == 64) {\\r\\n statusDevice += 'Reboot,';\\r\\n }\\r\\n if ((statusInt & 128) == 128) {\\r\\n statusDevice += 'HistoricalData,';\\r\\n }\\r\\n if ((statusInt & 256) == 256) {\\r\\n statusDevice += 'AGPSDataValid,';\\r\\n }\\r\\n if ((statusInt & 512) == 512) {\\r\\n statusDevice += 'Motion,';\\r\\n }\\r\\n if ((statusInt & 1024) == 1024) {\\r\\n statusDevice += 'SmartLocating,';\\r\\n }\\r\\n if ((statusInt & 2048) == 2048) { //isHome\\r\\n statusDevice += 'BeaconLocation,';\\r\\n }\\r\\n if ((statusInt & 4096) == 4096) {\\r\\n statusDevice += 'BLEConnected,';\\r\\n }\\r\\n if ((statusInt & 16384) == 16384) {\\r\\n statusDevice += 'HomeWiFi,';\\r\\n }\\r\\n statusDevice = statusDevice.slice(0, -1);\\r\\n status_data = statusDevice; //to oysta template\\r\\n //statusHex = (statusHex);\\r\\n statusHex = hex2bin(statusHex);\\r\\n statusHex = ('00000000000000000000000000000000' + statusHex).slice(-32);\\r\\n battery_percentage = parseInt(statusHex.substring(0, 8), 2);\\r\\n cellNetworkSignal = parseInt(statusHex.substring(8, 13), 2);\\r\\n workMode = parseInt(statusHex.substring(13, 16), 2);\\r\\n general += 'statusDevice:' + statusDevice + ',';\\r\\n if (battery_percentage) {\\r\\n general += 'battery:' + battery_percentage + ',';\\r\\n }\\r\\n if (cellNetworkSignal) {\\r\\n general += 'cellNetworkSignal:' + cellNetworkSignal + ',';\\r\\n }\\r\\n if (workMode) {\\r\\n general += 'workMode:' + workMode + ',';\\r\\n }\\r\\n //messageForReceiver = (`CareWatch-CYC;${imei};${i};${event_time};${battery_percentage}`);\\r\\n break;\\r\\n //Call Records\\r\\n case '25':\\r\\n //Needed?\\r\\n break;\\r\\n //BLE Location 2\\r\\n case '26':\\r\\n //I don't understand\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Smart Location\\r\\n case '27':\\r\\n location_type = 'SMART';\\r\\n var latitudeHex = value.substring(0, 8);\\r\\n var longitudeHex = value.substring(8, 16);\\r\\n var location_accuracyHex = value.substring(16, 20);\\r\\n var altitudeHex = value.substring(20, 24);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n var altitude = hexToDecimal(changeEndianness(altitudeHex));\\r\\n //location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex)) * 5;\\r\\n //04/08/2022 se quita el multiplicador por 5 pq ya viene el valor en metros\\r\\n location_accuracy = hexToDecimal(changeEndianness(location_accuracyHex));\\r\\n //location_time = timestamp;\\r\\n smart_data = `${latitude},${longitude},${location_accuracy},${altitude}`;\\r\\n general += 'smart location (lat):' + latitude + ', (long):' + longitude + ',';\\r\\n break;\\r\\n //Beacon Location Added 11/10/22\\r\\n case '28':\\r\\n location_type = 'BEACON';\\r\\n // var alarm = 'EBZI';\\r\\n var latitudeHex = '00';\\r\\n var longitudeHex = '00';\\r\\n var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 1));\\r\\n var beacId = hexToDecimal(value.substring(1, 2));\\r\\n // msg includes descrip\\r\\n if ((flag & 4) == 4) {\\r\\n descr = hex_to_ascii(value.substring(18, value.length));\\r\\n }\\r\\n // msg includes lat/lon\\r\\n if ((flag & 8) == 8) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n }\\r\\n // msg includes lat/lon and description\\r\\n if ((flag & 12) == 12) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n descr = hex_to_ascii(value.substring(34, value.length));\\r\\n }\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var rssiHex = value.substring(14, 16);\\r\\n var rssi1Hex = value.substring(16, 18);\\r\\n rssi = hexToDecimalSigned(changeEndianness(rssiHex));\\r\\n rssi1 = hexToDecimalSigned(changeEndianness(rssi1Hex));\\r\\n // var latitudeHex = value.substring(18, 26);\\r\\n // var longitudeHex = value.substring(26, 34);\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n //location_time = timestamp;\\r\\n beacon_data = `${latitude},${longitude},${mac},${descr}`;\\r\\n general += 'BEACON location (lat):' + latitude + ', (long):' + longitude + ', (mac):' + mac + ', (description):' + descr + ', (rssi):' + rssi + ', (listIndex):' + beacId + ',';\\r\\n break;\\r\\n // Beacon V2\\r\\n case '2C':\\r\\n location_type = 'BEACON';\\r\\n // var alarm = 'EBZI';\\r\\n var latitudeHex = '00';\\r\\n var longitudeHex = '00';\\r\\n var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 1));\\r\\n var beacId = hexToDecimal(value.substring(1, 2));\\r\\n // msg includes descrip\\r\\n if ((flag & 4) == 4) {\\r\\n let desc_leng = hexToDecimal(value.substring(20, 22));\\r\\n descr = hex_to_ascii(value.substring(22, 22 + (2 * desc_leng)));\\r\\n //descr = hex_to_ascii(value.substring(18, value.length));\\r\\n }\\r\\n // msg includes lat/lon\\r\\n if ((flag & 8) == 8) {\\r\\n latitudeHex = value.substring(18, 26);\\r\\n longitudeHex = value.substring(26, 34);\\r\\n }\\r\\n // msg includes lat/lon and description\\r\\n if ((flag & 12) == 12) {\\r\\n latitudeHex = value.substring(20, 28);\\r\\n longitudeHex = value.substring(28, 36);\\r\\n let desc_leng = hexToDecimal(value.substring(36, 38));\\r\\n descr = hex_to_ascii(value.substring(38, 38 + (2 * desc_leng)));\\r\\n }\\r\\n var mac = changeEndianness(value.substring(2, 14)); // comprobar si hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var rssiHex = value.substring(14, 16);\\r\\n var rssi1Hex = value.substring(16, 18);\\r\\n rssi = hexToDecimalSigned(changeEndianness(rssiHex));\\r\\n rssi1 = hexToDecimalSigned(changeEndianness(rssi1Hex));\\r\\n var battery_beacon = hexToDecimal(value.substring(18, 20));\\r\\n latitude = hexToDecimalSigned(changeEndianness(latitudeHex)) / 10000000;\\r\\n longitude = hexToDecimalSigned(changeEndianness(longitudeHex)) / 10000000;\\r\\n //location_time = timestamp;\\r\\n beacon_data = `${latitude},${longitude},${mac},${descr}`;\\r\\n general += 'BEACON location (lat):' + latitude + ', (long):' + longitude + ', (mac):' + mac + ', (description):' + descr + ', (rssi):' + rssi + ', (battery):' + battery_beacon + ', (listIndex):' + beacId + ',';\\r\\n break;\\r\\n //Cell Towers Note\\r\\n case '29':\\r\\n location_type = 'LBS';\\r\\n lbs_data = '';\\r\\n var mccHex = changeEndianness(value.substring(0, 4));\\r\\n var mncHex = value.substring(4, 6);\\r\\n var mcc = hexToDecimal(mccHex);\\r\\n lbs_data += mcc + ',';\\r\\n var mnc = hexToDecimal(mncHex);\\r\\n lbs_data += mnc + ',';\\r\\n var indexLbs = 6;\\r\\n var numTowers = (hexToDecimal(keyLengthHex) - 4) / 7;\\r\\n for (let i = 0; i < numTowers; i++) {\\r\\n var rxlHex = changeEndianness(value.substring(indexLbs, indexLbs + 2));\\r\\n var rxl = hexToDecimal(rxlHex);\\r\\n var lacHex = changeEndianness(value.substring(indexLbs + 2, indexLbs + 6));\\r\\n var lac = hexToDecimal(lacHex);\\r\\n var cellTowers = hexToDecimal(changeEndianness(value.substring(indexLbs + 6, indexLbs + 14)));\\r\\n lbs_data += rxl + ',' + lac + ',' + cellTowers + ',';\\r\\n indexLbs += 14;\\r\\n }\\r\\n lbs_data = lbs_data.slice(0, -1);\\r\\n general += lbs_data;\\r\\n break;\\r\\n case '30':\\r\\n //G-sensor. \\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n var numStep = (keyLength - 2) / 16;\\r\\n for (let j = 0; j < numStep; j++) {\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n //timestamp = hexToDecimalSigned(timestampHex);\\r\\n var stepHex = value.substring(8, 16);\\r\\n stepHex = changeEndianness(stepHex);\\r\\n var stepRate = hexToDecimal(stepHex);\\r\\n info = stepRate;\\r\\n //var alarmCode = 'True';\\r\\n var alarm = 'STP';\\r\\n general += ' step counting' + j + ':' + stepRate + ',';\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};STP=${info};LABEL=steps`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n //Activity\\r\\n case '31':\\r\\n //I don't understand\\r\\n break;\\r\\n //BLE MAC list\\r\\n case '32':\\r\\n //I don't understand\\r\\n break;\\r\\n //Beacon List\\r\\n case '33':\\r\\n //I don't understand\\r\\n break;\\r\\n //Heart Rate Data\\r\\n case '40':\\r\\n if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }\\r\\n var numHeartRate = (keyLength - 2) / 12;\\r\\n for (let j = 0; j < numHeartRate; j++) {\\r\\n var timestampHex = value.substring(0, 8);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n //timestamp = hexToDecimalSigned(timestampHex);\\r\\n var heartRateHex = value.substring(8, 10);\\r\\n var heartRate = hexToDecimal(heartRateHex);\\r\\n var trustLevelHex = value.substring(10, 12);\\r\\n var trustLevel = hexToDecimal(trustLevelHex);\\r\\n info = heartRate;\\r\\n //var alarmCode = 'True';\\r\\n var alarm = 'HRT';\\r\\n general += ' heart rate' + j + ':' + heartRate + ',';\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};HRT=${info};TLEVEL=${trustLevel};LABEL=bpm`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n break;\\r\\n //BLE Connected . For Flic button\\r\\n case '62':\\r\\n location_type = 'BLE';\\r\\n //var alarm = 'EBZI'; \\r\\n //var latitudeHex = '00';\\r\\n //var longitudeHex = '00';\\r\\n //var descr = 'empty';\\r\\n var flag = hexToDecimal(value.substring(0, 2)); // 0= Disconnected, 1= Connected\\r\\n var mac = value.substring(2, 14); // No hace falta darle la vuelta\\r\\n // add : format in MAC\\r\\n mac = mac.match(/.{1,2}/g).join(':');\\r\\n var batLevel = hexToDecimal(value.substring(14, 16)); // 0-100\\r\\n //location_time = timestamp;\\r\\n ble_data = `${flag},${batLevel},${mac}`;\\r\\n general += 'BLE location (State):' + flag + ', (bat):' + batLevel + ', (mac):' + mac + ',';\\r\\n break;\\r\\n }\\r\\n }\\r\\n // CareWatch-CYC;<<imei>>;STATUS=<<status_data>>;TIME=<<event_time>>;BATP=<<battery_percentage>>;LGPS=<<gps_data>>;LWIF=<<wifi_data>>;LLBS=<<lbs_data>>;LBEACON=<<beacon_data>>;BLE=<<ble_data>>;GENERAL=<<general>>;\\r\\n // \\\"CareWatch-CYC;861629050193550;STATUS=WIFISource,CellTower;TIME=1673950279;BATP=84;LGPS=undefined;LWIF=-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369;LLBS=214,1,13,768,38529798;LBEACON=undefined;BLE=undefined;GENERAL=statusDevice:WIFISource,CellTower,battery:84,cellNetworkSignal:14,workMode:6,wifiTowers:-54,286F7F3C8EB0,-68,4448B9848AD0,-78,00BF77E05369,214,1,13,768,38529798,;\\\",\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n /*else if (alarm === 'HRT') {\\r\\n messageForReceiver = (`CareWatch-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};HRT=${info};TLEVEL=${trustLevel};LABEL=bpm`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (alarm === 'STP') {\\r\\n messageForReceiver = (`CareWatch-${alarm};${imei};STATUS=${status_data};ETIME=${timestamp};GENERAL=${general};${info};STP=${info};LABEL=steps`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else {\\r\\n messageForReceiver = (`CareWatch-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }*/\\r\\n // rest the alarm value\\r\\n alarm = '';\\r\\n }\\r\\n if (command == '02') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n switch (key) {\\r\\n //Module Number\\r\\n case '01':\\r\\n var date = value.substring(6, 8) + value.substring(4, 6) + '-' + value.substring(2, 4) + '-' + value.substring(0, 2);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Firmware version\\r\\n case '02':\\r\\n //no ACK need\\r\\n var fwVersion = 'v' + hexToDecimal(value.substring(6, 8)) + '.' + hexToDecimal(value.substring(4, 6)) + '.' + hexToDecimal(value.substring(2, 4)) + '.' + hexToDecimal(value.substring(0, 2));\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '1A':\\r\\n //no ACK need\\r\\n var fwVersion = hex_to_ascii(value);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n AddValue(codeValues, \\\"fwVersion\\\", fwVersion);\\r\\n messageForReceiver = (`Roam;ACK-FIRM;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CurrentFirmwareVersion, fwVersion);\\r\\n AddValue(configsToUpdate, configIds.OnDevice.LastDateTimeRead, moment().format('YYYY/MM/DD, HH:mm:ss'))\\r\\n configsToAck.push(configIds.ReadState.CurrentFirmwareVersion);\\r\\n configsToAck.push(configIds.OnDevice.LastDateTimeRead);\\r\\n break;\\r\\n //IMEI\\r\\n case '03':\\r\\n var imei = hexToDecimal(value);\\r\\n // harcode to avoid conflicts with Rio protocol\\r\\n //if ((imei != '860470063029395') && (imei != '860470063035947')) {\\r\\n // AddValue(codeValues, \\\"error\\\", \\\"device imei is not in this protocol\\\");\\r\\n // AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n //AddValue(codeValues, \\\"IMEI\\\", imei);\\r\\n // return\\r\\n //}\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //ICCID\\r\\n case '04':\\r\\n var iccid = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //BLE-MAC\\r\\n case '05':\\r\\n var bleMac = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n //Run Time\\r\\n case '07':\\r\\n var runTime = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '10': // Ringer Volume\\r\\n var volume = hexToDecimal(value);\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-VOL;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"Volume\\\", volume);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.Volume, volume);\\r\\n configsToAck.push(configIds.ReadSystemSettings.Volume);\\r\\n break;\\r\\n case '0A': //Performance mode\\r\\n //var workMode = hexToDecimal(value);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n //AddValue(codeValues, \\\"WorkMode\\\", workMode);\\r\\n //AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n //configsToAck.push(configIds.ReadPerformance`Settings.Mode);\\r\\n //var workMode = hex_to_ascii(value.substring(0, value.length));\\r\\n //var workMode = hexToDecimal(value);\\r\\n //var workMode = hex_to_ascii(value.substring(0, value.length));\\r\\n var workMode = 1234; // + value + \\\"end\\\";\\r\\n //var workModeVal = 9;\\r\\n //workMode = 'test10';\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-MODE;${imei};`);\\r\\n AddValue(codeValues, \\\"Mode\\\", workMode);\\r\\n AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n //AddValue(codeValues, \\\"performanceMode\\\", performanceMode);\\r\\n //AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, performanceMode);\\r\\n // configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n break;\\r\\n case '1B':\\r\\n //Decimal o ascii?\\r\\n var gsmModule = hexToDecimal(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '1F':\\r\\n //System Language\\r\\n var systemLanguage = hex_to_ascii(value.substring(0, value.length));\\r\\n imei = serverParams.Imei;\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n messageForReceiver = (`Roam;ACK-LANG;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"SystemLanguage\\\", systemLanguage);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.SystemLanguage, systemLanguage);\\r\\n configsToAck.push(configIds.ReadSystemSettings.SystemLanguage);\\r\\n break;\\r\\n case '33': // phone option\\r\\n // [Value]:83 0B 00 00 {\\\"phoneOption\\\":{\\\"flag_value\\\":2947,\\\"s3\\\":1,\\\"s4\\\":0,\\\"s5\\\":1,\\\"s6\\\":0,\\\"callIncoming\\\":0,\\\"rings\\\":3,\\\"s7\\\":0,\\\"toneID\\\":0,\\\"s1\\\":1,\\\"s2\\\":1}}\\r\\n var statusPhone = hex2bin(value.substring(0, 2)); // To find autoanswer setup\\r\\n if (statusPhone.substring(0, 1) == '1') { // 1 Enable\\r\\n var auto = 'true';\\r\\n } else var auto = 'false';\\r\\n statusPhone = hex2bin(value.substring(2, 4)); // To find allow list setup\\r\\n if (statusPhone.substring(7, 8) == '1') { // 1 Enable\\r\\n allow = 'true';\\r\\n } else var allow = 'false';\\r\\n //statusPhone = hex2bin(value.substring(0, 2)) + hex2bin(value.substring(2, 4));\\r\\n //AddValue(configsToUpdate, configIds.ReadSystemSettings.Statusphone, statusPhone);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.AllowList, allow);\\r\\n AddValue(configsToUpdate, configIds.ReadSystemSettings.AutoAnswer, auto);\\r\\n //configsToAck.push(configIds.ReadSystemSettings.Statusphone);\\r\\n configsToAck.push(configIds.ReadSystemSettings.AllowList);\\r\\n configsToAck.push(configIds.ReadSystemSettings.AutoAnswer);\\r\\n break;\\r\\n case '30': //ContactList\\r\\n var contactNumber = value.substring(1, 2);\\r\\n var telLength = hexToDecimal(value.substring(2, 4));\\r\\n var tel = '';\\r\\n switch (contactNumber) {\\r\\n // Emergency Number\\r\\n case '0':\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n AddValue(codeValues, \\\"EmergencyNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.EmergencyNumber, tel);\\r\\n configsToAck.push(configIds.ReadAlertSettings.EmergencyNumber);\\r\\n break;\\r\\n // Speed Dial Number\\r\\n case '1':\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n AddValue(codeValues, \\\"SpeedDialNumber\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadSpeedDialSettings.SpeedDialNumber, tel);\\r\\n configsToAck.push(configIds.ReadSpeedDialSettings.SpeedDialNumber);\\r\\n break;\\r\\n // Gateway Number\\r\\n case '9': //00447781482635,Esendex UK 0034627177148,Esendex Spain 00447507288240,Esendex UK Acceptance\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n if (tel.includes('447781482635') || tel.includes('00447781482635')) {\\r\\n tel = 'Esendex UK'\\r\\n } else if (tel.includes('34627177148') || tel.includes('0034627177148')) {\\r\\n tel = 'Esendex Spain'\\r\\n } else if (tel.includes('447507288240') || tel.includes('00447507288240')) {\\r\\n tel = 'Esendex UK Acceptance'\\r\\n } else {\\r\\n tel = 'Default'\\r\\n }\\r\\n AddValue(codeValues, \\\"SMSGateway\\\", tel);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.SMSGateway, tel);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.SMSGateway);\\r\\n break;\\r\\n default:\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n if (tel.length < 6) {\\r\\n break;\\r\\n }\\r\\n //contacts += 'A' + (contactNumber - 1) + ': ' + tel + ', ';\\r\\n contacts += tel + ', ';\\r\\n AddValue(codeValues, \\\"ApprovedContacts\\\", contacts);\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.ApprovedContacts, contacts);\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.ApprovedContacts);\\r\\n break;\\r\\n }\\r\\n break;\\r\\n case '40': // APN\\r\\n //no ACK need\\r\\n var apn = hex_to_ascii(value.substring(0, value.length));\\r\\n imei = serverParams.Imei;\\r\\n break;\\r\\n case '41': // APN Username\\r\\n //no ACK need\\r\\n //apn = apn + ',' + hex_to_ascii(value.substring(0, value.length));\\r\\n break;\\r\\n case '42': // APN Password\\r\\n //no ACK need\\r\\n //apn = apn + ',' + hex_to_ascii(value.substring(0, value.length));\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"apn\\\", apn);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.APN, apn);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.APN);\\r\\n break;\\r\\n case '43': //Server Details\\r\\n //52.232.85.255,5678 production 52.174.17.77,5678 acceptance\\r\\n var serverDetails = hex_to_ascii(value.substring(6, value.length)) + ':' + hexToDecimal(value.substring(4, 6) + value.substring(2, 4));\\r\\n if (serverDetails.includes('52.232.85.255:5678')) {\\r\\n serverDetails = 'Production'\\r\\n } else if (serverDetails.includes('52.174.17.77:5678')) {\\r\\n serverDetails = 'Acceptance'\\r\\n } else if (serverDetails.includes('52.174.17.77:5778')) {\\r\\n serverDetails = 'Protocol-Import'\\r\\n } else {\\r\\n serverDetails = 'Default'\\r\\n }\\r\\n AddValue(codeValues, \\\"server\\\", serverDetails);\\r\\n AddValue(configsToUpdate, configIds.ReadCommunicationSettings.Server, serverDetails);\\r\\n configsToAck.push(configIds.ReadCommunicationSettings.Server);\\r\\n break;\\r\\n case '44': //time interval - work mode intervals\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-MODE;${imei};`);\\r\\n var workMode = 0;\\r\\n var cycle = hexToDecimal(value.substring(10, 12) + value.substring(8, 10));\\r\\n var lazyCycle = hexToDecimal(value.substring(18, 20) + value.substring(16, 18));\\r\\n if (cycle == 240 && lazyCycle == 3600) { // 4 mins and 1 hour\\r\\n //workMode = 'High Frequency';\\r\\n workMode = 3;\\r\\n }\\r\\n if (cycle == 600 && lazyCycle == 3600) { // 10 mins and 1 hour\\r\\n //workMode = 'Balanced';\\r\\n workMode = 2;\\r\\n }\\r\\n if (cycle == 28800 && lazyCycle == 43200) { // 6 hour and 12 hours\\r\\n //workMode = 'Power Saving';\\r\\n workMode = 1;\\r\\n }\\r\\n if (cycle == 86400 && lazyCycle == 86400) { // 24 hours and 24 hours\\r\\n //workMode = 'No Reporting';\\r\\n workMode = 0;\\r\\n }\\r\\n AddValue(codeValues, \\\"Mode\\\", workMode);\\r\\n AddValue(configsToUpdate, configIds.ReadPerformanceSettings.Mode, workMode);\\r\\n configsToAck.push(configIds.ReadPerformanceSettings.Mode);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case '47': // Custom Id\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-CUSTID;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"customeid\\\", value);\\r\\n AddValue(configsToUpdate, configIds.ReadState.CustomId, value);\\r\\n configsToAck.push(configIds.ReadState.CustomId);\\r\\n break;\\r\\n case '53': // Non motion alert\\r\\n //2B020080\\r\\n var status = hex2bin(value.substring(6, 8));\\r\\n var alertSetting = '';\\r\\n var enableDisable = '';\\r\\n if (status.substring(0, 1) == '1') {\\r\\n alertSetting = 'Enable, '\\r\\n enableDisable = '1';\\r\\n } else {\\r\\n alertSetting = 'Disable, '\\r\\n };\\r\\n //if (status.substring(5, 6) == '1') {\\r\\n // alertSetting += 'Dial, '\\r\\n //} else {\\r\\n // alertSetting += 'No Dial, '\\r\\n //};\\r\\n var time = hexToDecimal(value.substring(2, 4) + value.substring(0, 2));\\r\\n alertSetting += time;\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-NOMOTION;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"nomotion\\\", alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.NoMotionAlert, value + '-' + alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadNonMovementSettings.EnableDisableNonMovementSettings, enableDisable);\\r\\n AddValue(configsToUpdate, configIds.ReadNonMovementSettings.Time, time);\\r\\n configsToAck.push(configIds.ReadAlertSettings.NoMotionAlert);\\r\\n configsToAck.push(configIds.ReadNonMovementSettings.EnableDisableNonMovementSettings);\\r\\n configsToAck.push(configIds.ReadNonMovementSettings.Time);\\r\\n break;\\r\\n case '56': //Fall down sensibility\\r\\n // '00001100'\\r\\n var fallStatus = hex2bin(value.substring(0, 2));\\r\\n var enalbleDisable = '';\\r\\n //if (fallStatus.substring(4, 5) == '1') {\\r\\n if (fallStatus.substring(0, 1) == '1') {\\r\\n var sensibility = 'Enable, '\\r\\n enalbleDisable = '1'\\r\\n } else {\\r\\n var sensibility = 'Disable, '\\r\\n };\\r\\n if (fallStatus.substring(5, 6) == '1') {\\r\\n sensibility += 'Dial, '\\r\\n } else {\\r\\n sensibility += 'No Dial, '\\r\\n };\\r\\n var imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-FALLALERT;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n var sesibityOptionValue = hexToDecimal(value.substring(1, 2));\\r\\n sensibility += sesibityOptionValue;\\r\\n AddValue(codeValues, \\\"sensibility\\\", sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.FallSettings, sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadFallSettings.EnableDisableFallSettings, enalbleDisable);\\r\\n AddValue(configsToUpdate, configIds.ReadFallSettings.Sensitivity, sesibityOptionValue);\\r\\n configsToAck.push(configIds.ReadAlertSettings.FallSettings);\\r\\n configsToAck.push(configIds.ReadFallSettings.EnableDisableFallSettings);\\r\\n configsToAck.push(configIds.ReadFallSettings.Sensitivity);\\r\\n break;\\r\\n case '73': //BeaconList\\r\\n var beaconNumber = hexToDecimal(value.substring(1, 2));\\r\\n var beaconStatus = hex2bin(value.substring(0, 1));\\r\\n //if (beaconStatus.substring(4, 5) == '1') {\\r\\n // homeBeacon += ' Enable, '\\r\\n //} else {\\r\\n // homeBeacon += ' Disable, '\\r\\n //};\\r\\n beaconStatus = hex_to_ascii(value.substring(30, value.length));\\r\\n //beaconStatus = changeEndianness(value.substring(30, value.length));\\r\\n //homeBeacon += 'B' + (beaconNumber + 1) + ': ' + beaconStatus + ', ';\\r\\n homeBeacon += beaconStatus + ', ';\\r\\n AddValue(codeValues, \\\"homeBeacon\\\", homeBeacon);\\r\\n messageForReceiver = (`Roam;ACK-GDATA;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadAdditionalSettings.HomeBeacon, homeBeacon);\\r\\n configsToAck.push(configIds.ReadAdditionalSettings.HomeBeacon);\\r\\n break;\\r\\n case '4A': //Wifi Network List\\r\\n var wifiSSIDLenght = hexToDecimal(value.substring(2, 4));\\r\\n var wifiPasswordLenght = hexToDecimal(value.substring(4, 6));\\r\\n var wifiIndex = hexToDecimal(value.substring(1, 2));\\r\\n var wifiStatus = hexToDecimal(value.substring(0, 1));\\r\\n /*var enalbleDisable = wifiSSID = wifiPassword = homeWifi = '';\\r\\n /var homeWifi = '';\\r\\n if (wifiIndex == '0') { // Only first Wifi of the list\\r\\n if (wifiStatus == '8') {\\r\\n homeWifi += ' Enable, '\\r\\n enalbleDisable = '1';\\r\\n } else {\\r\\n homeWifi += ' Disable, '\\r\\n //enalbleDisable = '0';\\r\\n };*/\\r\\n if (wifiStatus == '8') {\\r\\n var wifiSSID = hex_to_ascii(value.substring(6, 6 + 2 * (wifiSSIDLenght)));\\r\\n var wifiPassword = hex_to_ascii(value.substring(6 + 2 * (wifiSSIDLenght), 6 + 2 * (wifiSSIDLenght + wifiPasswordLenght)));\\r\\n var imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-WIFI;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n //homeWiFi += 'W' + (wifiIndex + 1) + ': ' + wifiSSID + ', ' + wifiPassword + ';';\\r\\n homeWiFi += wifiSSID + ', ' + wifiPassword + ';';\\r\\n AddValue(codeValues, \\\"wifi\\\", homeWiFi);\\r\\n AddValue(configsToUpdate, configIds.ReadWiFiList.WiFiList, homeWiFi);\\r\\n configsToAck.push(configIds.ReadWiFiList.WiFiList);\\r\\n }\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.EnableDisableReadWiFiSettings, enalbleDisable);\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.SSID, wifiSSID);\\r\\n //AddValue(configsToUpdate, configIds.ReadWiFiSettings.Password, wifiPassword);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.EnableDisableReadWiFiSettings);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.SSID);\\r\\n //configsToAck.push(configIds.ReadWiFiSettings.Password);\\r\\n break;\\r\\n case '21': // Speed Dial Settings\\r\\n // [Value]:53 84 {\\\"call1Button\\\":{\\\"mode\\\":0,\\\"feedBack\\\":3,\\\"task\\\":2,\\\"time\\\":20,\\\"status\\\":1}}\\r\\n var status = hex2bin(value.substring(2, 4)); //always pass 2 HEXs to this function\\r\\n var alertSetting = '';\\r\\n var enalbleDisable = '';\\r\\n if (status.substring(0, 1) == '1') {\\r\\n alertSetting = 'Enable, '\\r\\n enalbleDisable = '1'\\r\\n } else {\\r\\n alertSetting = 'Disable, '\\r\\n //enableDisable = '0';\\r\\n };\\r\\n //var time = hexToDecimal(value.substring(2, 4) + value.substring(0, 2));\\r\\n //alertSetting += time;\\r\\n imei = serverParams.Imei;\\r\\n messageForReceiver = (`Roam;ACK-SPEED;${imei};`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"speed\\\", alertSetting);\\r\\n //AddValue(configsToUpdate, configIds.ReadAlertSettings.NoMotionAlert, value + '-' + alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadSpeedDialSettings.EnableDisableReadSpeedDialSettings, enalbleDisable);\\r\\n //AddValue(configsToUpdate, configIds.ReadNonMovementSettings.Time, time);\\r\\n //configsToAck.push(configIds.ReadAlertSettings.NoMotionAlert);\\r\\n configsToAck.push(configIds.ReadSpeedDialSettings.EnableDisableReadSpeedDialSettings);\\r\\n //configsToAck.push(configIds.ReadNonMovementSettings.Time);\\r\\n break;\\r\\n }\\r\\n }\\r\\n }\\r\\n if (command == '03') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n var keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n debug('key = ' + key);\\r\\n debug('value = ' + value);\\r\\n switch (key) {\\r\\n case '01': // Device ID\\r\\n var imei = hex_to_ascii(value);\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n break;\\r\\n //CustomID is not provided so far with command type 03.. commented in the mean time\\r\\n /* case '03':\\r\\n //update customID to check if belongs to this type of device\\r\\n customID = value;\\r\\n if (value != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n } else {\\r\\n if (serverParams.Imei === undefined || serverParams.Imei === null) {\\r\\n sendMessageToLocalhostNoWait(\\\"Eview-ASSOCIATE;\\\" + imei + \\\";\\\" + serverParams.Guid + \\\";\\\");\\r\\n }\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n general += 'customID:' + value + ',';\\r\\n break;\\r\\n }\\r\\n break; */\\r\\n case '10': // Heartbeat\\r\\n var heartbeat = hex_to_ascii(value);\\r\\n event_time = moment.utc().unix();\\r\\n if (index < total_length + 16) {\\r\\n var keyLengthHex = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLengthHex);\\r\\n key = message.substring(index, index = index + 2);\\r\\n if (key == '24') {\\r\\n // debug('key: ' + key) //comment those out\\r\\n value = message.substring(index, index = index + keyLength - 2);\\r\\n // debug(value)\\r\\n var timestampHex = value.substring(0, 8);\\r\\n // debug('timestampt hex: ' + timestampHex)\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n timestamp = hexToDecimal(timestampHex);\\r\\n event_time = timestamp;\\r\\n // debug(event_time)\\r\\n var statusHex = changeEndianness(value.substring(8, 16));\\r\\n // debug(statusHex)\\r\\n var statusInt = hexToDecimal(statusHex);\\r\\n var statusDevice = '';\\r\\n if ((statusInt & 1) == 1) {\\r\\n statusDevice += 'GPS,';\\r\\n }\\r\\n if ((statusInt & 2) == 2) {\\r\\n statusDevice += 'WIFISource,';\\r\\n }\\r\\n if ((statusInt & 4) == 4) {\\r\\n statusDevice += 'CellTower,';\\r\\n }\\r\\n if ((statusInt & 8) == 8) {\\r\\n statusDevice += 'BLELocation,';\\r\\n }\\r\\n if ((statusInt & 16) == 16) {\\r\\n statusDevice += 'Charging,';\\r\\n }\\r\\n if ((statusInt & 32) == 32) {\\r\\n statusDevice += 'FUllyCharged,';\\r\\n }\\r\\n if ((statusInt & 64) == 64) {\\r\\n statusDevice += 'Reboot,';\\r\\n }\\r\\n if ((statusInt & 128) == 128) {\\r\\n statusDevice += 'HistoricalData,';\\r\\n }\\r\\n if ((statusInt & 256) == 256) {\\r\\n statusDevice += 'AGPSDataValid,';\\r\\n }\\r\\n if ((statusInt & 512) == 512) {\\r\\n statusDevice += 'Motion,';\\r\\n }\\r\\n if ((statusInt & 1024) == 1024) {\\r\\n statusDevice += 'SmartLocating,';\\r\\n }\\r\\n if ((statusInt & 2048) == 2048) {\\r\\n statusDevice += 'BeaconLocation,';\\r\\n }\\r\\n if ((statusInt & 4096) == 4096) {\\r\\n statusDevice += 'BLEConnected,';\\r\\n }\\r\\n statusDevice = statusDevice.slice(0, -1);\\r\\n // debug('statusHex:' + statusHex)\\r\\n statusHex = (statusHex);\\r\\n statusHex = hex2bin(statusHex);\\r\\n statusHex = ('00000000000000000000000000000000' + statusHex).slice(-32);\\r\\n // debug(statusHex)\\r\\n battery_percentage = parseInt(statusHex.substring(0, 8), 2);\\r\\n // debug(battery_percentage)\\r\\n // debug(battery_percentage)\\r\\n // debug(statusHex.substring(8, 13))\\r\\n cellNetworkSignal = parseInt(statusHex.substring(8, 13), 2);\\r\\n // debug(cellNetworkSignal)\\r\\n workMode = parseInt(statusHex.substring(13, 16), 2);\\r\\n // debug(workMode)\\r\\n general += 'statusDevice:' + statusDevice + ';';\\r\\n if (battery_percentage) {\\r\\n general += 'battery:' + battery_percentage + ';';\\r\\n }\\r\\n if (cellNetworkSignal) {\\r\\n general += 'cellNetworkSignal:' + cellNetworkSignal + ';';\\r\\n }\\r\\n if (workMode) {\\r\\n general += 'workMode:' + workMode + ';';\\r\\n }\\r\\n }\\r\\n }\\r\\n // revisar\\r\\n var gen_location = '0';\\r\\n //CustomID is not provided so far with command type 03.. commented in the mean time\\r\\n /*if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }*/\\r\\n //messageForReceiver = (`Eview-HTB;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};SIGNAL=${cellNetworkSignal};WM=${workMode};SL=${systemLanguage};GENERAL=${general}`);\\r\\n messageForReceiver = (`Eview-HTB;${imei};STATUS=${status_data};TIME=${event_time};BATP=${battery_percentage};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n //messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '12': // Device requesting timestamp\\r\\n timestamp = moment.utc().unix();\\r\\n timestampHex = decimalToHex(timestamp);\\r\\n timestampHex = changeEndianness(timestampHex);\\r\\n keyLengthHex = ('00' + decimalToHex(1 + (timestampHex.length) / 2)).slice(-2);\\r\\n // respond to device with the timestamp of the server\\r\\n messageBody = messageBody + keyLengthHex + key + timestampHex;\\r\\n messageForReceiver = `Eview;${imei};${sequenceID};Get timestamp`;\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n break;\\r\\n case '21': //Cell Towers\\r\\n var mccHex = value.substring(0, 2);\\r\\n var mncHex = value.substring(2, 3);\\r\\n var mcc = hexToDecimal(mccHex);\\r\\n var mnc = hexToDecimal(mncHex);\\r\\n var numTowers = (keyLength - 4) / 5;\\r\\n var cellTowers = hex_to_ascii(value);\\r\\n messageBody = messageBody + keyLengthHex + key + value;\\r\\n break;\\r\\n case '22': // WIFI locations \\r\\n location_type = 'WIFI';\\r\\n var numWifi = Math.round((hexToDecimal(keyLengthHex) - 1) / 7);\\r\\n //location_time = timestamp;\\r\\n var wifiTowers = value;\\r\\n general += 'wifiTowers:';\\r\\n var indexWifi = 0;\\r\\n var bssid_array = [];\\r\\n gen_location = '';\\r\\n for (let i = 0; i < numWifi; i++) {\\r\\n gen_location += wifiTowers.substring(indexWifi + 2, indexWifi + 14) + ',';\\r\\n indexWifi += 14;\\r\\n }\\r\\n gen_location = gen_location.slice(0, -1);\\r\\n general += gen_location;\\r\\n //CustomID is not provided so far with command type 03\\r\\n /*if (customID != '04') {\\r\\n AddValue(codeValues, \\\"error\\\", \\\"customID not belongs to this protocol\\\");\\r\\n //AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n AddValue(codeValues, \\\"customID\\\", value);\\r\\n return\\r\\n }*/\\r\\n if (alarmCode) {\\r\\n messageForReceiver = (`Roam-${alarm};${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};GENERAL=${general};${info}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else if (statusDevice) {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n } else {\\r\\n messageForReceiver = (`Roam-CYC;${imei};STATUS=${status_data};LTIME=${location_time};ETIME=${event_time};BATP=${battery_percentage};LGPS=${gps_data};LWIF=${wifi_data};LLBS=${lbs_data};LBEACON=${beacon_data};BLE=${ble_data};SIGNAL=${cellNetworkSignal};WM=${workMode};GENERAL=${general}`);\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n }\\r\\n alarmCode = '';\\r\\n break;\\r\\n }\\r\\n }\\r\\n }\\r\\n if (command == '04') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n if (command == '7E') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n if (command == '7F') {\\r\\n // while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n imei = serverParams.Imei;\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n messageForReceiver = (`Roam-ACK;${imei};${message}`); // ${sequenceID}; add ${sequenceID}; 19-07\\r\\n sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n AddValue(configsToUpdate, configIds.ConfigureDevice.LastConfigured, moment().format('YYYY/MM/DD, HH:mm:ss'));\\r\\n configsToAck.push(configIds.ConfigureDevice.LastConfigured);\\r\\n //}\\r\\n }\\r\\n if (command == 'FE') {\\r\\n while (index < total_length + 16) {\\r\\n var keyLength = message.substring(index, index = index + 2);\\r\\n keyLength = 2 * hexToDecimal(keyLength);\\r\\n var key = message.substring(index, index = index + 2);\\r\\n var value = message.substring(index, index = index + keyLength - 2);\\r\\n }\\r\\n }\\r\\n // prepare the ACK msg and change config if it is needed\\r\\n lengthAck = messageBody.length / 2;\\r\\n lengthAck = ('0000' + decimalToHex(lengthAck)).slice(-4);\\r\\n lengthAck = lengthAck.toString().substring(2, 4) + lengthAck.toString().substring(0, 2);\\r\\n ////////////checksum CRC 16\\r\\n var checksumAck = byteStringToByteArray(messageBody);\\r\\n checksumAck = crc16byte(checksumAck);\\r\\n checksumAck = decimalToHex(checksumAck);\\r\\n checksumAck = ('0000' + checksumAck).slice(-4);\\r\\n checksumAck = checksumAck.toString().substring(2, 4) + checksumAck.toString().substring(0, 2);\\r\\n prefix = prefix + lengthAck + checksumAck + sequenceID;\\r\\n // To send ACK to the device previous to internal msg with parts\\r\\n if (needsAck == true) {\\r\\n if (messageBody.length <= 2) {\\r\\n ack = 'AB00030008C7' + sequenceID + '7F0100'; // change AB10030008C7 to AB00030008C7\\r\\n } else {\\r\\n ack = prefix + messageBody;\\r\\n }\\r\\n AddValue(codeValues, 'imei', imei);\\r\\n AddValue(codeValues, 'ack', ack);\\r\\n }\\r\\n } else { // checksum was invalid - print out useful debug info and bet quess at imei \\r\\n AddValue(codeValues, \\\"error\\\", \\\"checksum failed for message\\\");\\r\\n AddValue(codeValues, \\\"rawFromBytes\\\", rawFromBytes);\\r\\n i = rawFromBytes.search('3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]3[0-9]');\\r\\n if (i >= 0) {\\r\\n imei = hex_to_ascii(rawFromBytes.substring(i, i + 30));\\r\\n AddValue(codeValues, \\\"imei\\\", imei);\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n function ascii_to_hexa(str) { // ascii to hex \\r\\n var arr1 = [];\\r\\n for (var n = 0, l = str.length; n < l; n++) {\\r\\n var hex = Number(str.charCodeAt(n)).toString(16);\\r\\n arr1.push(hex);\\r\\n }\\r\\n return arr1.join('');\\r\\n }\\r\\n\\r\\n function byteStringToByteArray(str) { //\\r\\n var splitStr = [];\\r\\n var j = 0;\\r\\n for (let i = 0; i < str.length; i += 2) {\\r\\n splitStr[j] = str.substring(i, i + 2);\\r\\n j++;\\r\\n }\\r\\n var bytes = [];\\r\\n var bytePos = 0;\\r\\n for (let i = 0; i < splitStr.length; i++) {\\r\\n var byteStr = splitStr[i];\\r\\n var b = parseInt(byteStr, 16);\\r\\n if (b < 256) {\\r\\n bytes[bytePos] = b;\\r\\n bytePos++;\\r\\n }\\r\\n }\\r\\n return bytes;\\r\\n }\\r\\n\\r\\n function changeEndianness(string) { //\\r\\n const result = [];\\r\\n let len = string.length - 2;\\r\\n while (len >= 0) {\\r\\n result.push(string.substr(len, 2));\\r\\n len -= 2;\\r\\n }\\r\\n return result.join('');\\r\\n }\\r\\n\\r\\n function hex2bin(hex) { //\\r\\n return (parseInt(hex, 16).toString(2)).padStart(8, '0');\\r\\n }\\r\\n\\r\\n function calculateCheckSum(payloadData) { // check if payload checksum is valid\\r\\n var checksum = byteStringToByteArray(payloadData);\\r\\n checksum = crc16byte(checksum);\\r\\n checksum = decimalToHex(checksum);\\r\\n checksum = ('0000' + checksum).slice(-4).toUpperCase();\\r\\n return changeEndianness(checksum);\\r\\n }\\r\\n\\r\\n function crc16byte(s) { //\\r\\n var crc = 0x0000;\\r\\n var j, i;\\r\\n for (i = 0; i < s.length; i++) {\\r\\n c = s[i];\\r\\n if (c > 255) {\\r\\n throw new RangeError();\\r\\n }\\r\\n j = (c ^ (crc >> 8)) & 0xFF;\\r\\n crc = crcTable[j] ^ (crc << 8);\\r\\n }\\r\\n return ((crc ^ 0) & 0xFFFF);\\r\\n }\\r\\n\\r\\n function debug(str) { // write debug info to console log, if localTesting\\r\\n if (localTesting === \\\"True\\\") {\\r\\n console.log(str);\\r\\n }\\r\\n }\\r\\n\\r\\n function decimalToHex(x) { // decimal to hex\\r\\n x = x.toString(16).toUpperCase();\\r\\n return x;\\r\\n }\\r\\n\\r\\n function hex_to_ascii(str1) { // Hex to Ascii \\r\\n var hex = str1.toString();\\r\\n var str = '';\\r\\n for (var n = 0; n < hex.length; n += 2) {\\r\\n str += String.fromCharCode(parseInt(hex.substr(n, 2), 16));\\r\\n }\\r\\n return str;\\r\\n }\\r\\n\\r\\n function hexToDecimalSigned(hex) { // hex to decimal\\r\\n if (hex.length % 2 != 0) {\\r\\n hex = \\\"0\\\" + hex;\\r\\n }\\r\\n var num = parseInt(hex, 16);\\r\\n var maxVal = Math.pow(2, hex.length / 2 * 8);\\r\\n if (num > maxVal / 2 - 1) {\\r\\n num = num - maxVal;\\r\\n }\\r\\n return num;\\r\\n }\\r\\n\\r\\n function hexToDecimal(x) {\\r\\n x = parseInt(x, 16);\\r\\n return x;\\r\\n }\\r\\n\\r\\n function sendMessageToLocalhostNoWait(str) { // sends message to system, closing connection after\\r\\n var server;\\r\\n if (localTesting) {\\r\\n console.log('local testing - sending to acceptance server the message ... ');\\r\\n console.log(str);\\r\\n server = '52.174.17.77';\\r\\n } else {\\r\\n server = '127.0.0.1';\\r\\n }\\r\\n var c = net.createConnection(5678, server);\\r\\n c.on('error', function(error) {\\r\\n c = net.createConnection(5678, server);\\r\\n });\\r\\n c.write(`${str}`);\\r\\n c.end();\\r\\n }\\r\\n // modify to return the object that contains your data\\r\\n return dataToReceiver;\\r\\n}\\r\\n// params is not defined locally -> export as module\\r\\nif (typeof(params) === 'undefined') {\\r\\n module.exports = {\\r\\n execute_ops\\r\\n }\\r\\n} else { // on server use local defined vars\\r\\n let return_values = execute_ops(moment, msg, net, params, rawFromBytes, raw, oystaTemplate, globalTemplate, arrays, commandsToExecute, serverParams, messageTypeCode, messageTypeLocalCode, messageTypeName, configs, configIds, commandsWaiting, false)\\r\\n // define global returns\\r\\n msg = return_values;\\r\\n}\",\"Type\":0,\"ProtocolActionObjects\":[]}","Timestamp":1734522292}]}],"Groups":[{"Id":6206,"Parent":null,"Name":"Setup","Json":"{\"description\":null,\"columns\":3,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6207,"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Name":"Controls","Json":"{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6208,"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Name":"Configure Device","Json":"{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6209,"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Name":"On Device","Json":"{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6210,"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Read Additional Settings","Json":"{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":6210,\"Parent\":{\"Id\":6209,\"Name\":\"On Device\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[{\"Id\":6210,\"Name\":\"Read Additional Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6334,\"Name\":\"Read System Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":5,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6212,\"Name\":\"Read Communication Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6216,\"Name\":\"Read State\",\"Json\":{\"description\":null,\"columns\":1,\"order\":6,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6296,\"Name\":\"Read Performance Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6297,\"Name\":\"Read Alert Settings\",\"Json\":{\"description\":\"Read Alert Settings\",\"columns\":1,\"order\":4,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]}]},\"Name\":\"Read Additional Settings\",\"Json\":\"{\\\"description\\\":null,\\\"columns\\\":1,\\\"order\\\":2,\\\"listSize\\\":1,\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\"]}\",\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"ProtocolActionObjects\":[]}","Timestamp":1736425387},{"Type":1,"NewValue":"{\"Id\":6210,\"Parent\":{\"Id\":6209,\"Name\":\"On Device\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[{\"Id\":6210,\"Name\":\"Read Additional Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6334,\"Name\":\"Read System Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":5,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6212,\"Name\":\"Read Communication Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6216,\"Name\":\"Read State\",\"Json\":{\"description\":null,\"columns\":1,\"order\":6,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6296,\"Name\":\"Read Performance Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":4,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6297,\"Name\":\"Read Alert Settings\",\"Json\":{\"description\":\"Read Alert Settings\",\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]}]},\"Name\":\"Read Additional Settings\",\"Json\":\"{\\\"description\\\":null,\\\"columns\\\":1,\\\"order\\\":3,\\\"listSize\\\":1,\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\"]}\",\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"ProtocolActionObjects\":[]}","Timestamp":1736427637},{"Type":1,"NewValue":"{\"Id\":6210,\"Parent\":{\"Id\":6209,\"Name\":\"On Device\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[{\"Id\":6210,\"Name\":\"Read Additional Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":4,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6334,\"Name\":\"Read System Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":5,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6212,\"Name\":\"Read Communication Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6216,\"Name\":\"Read State\",\"Json\":{\"description\":null,\"columns\":1,\"order\":6,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6296,\"Name\":\"Read Performance Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6297,\"Name\":\"Read Alert Settings\",\"Json\":{\"description\":\"Read Alert Settings\",\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]}]},\"Name\":\"Read Additional Settings\",\"Json\":\"{\\\"description\\\":null,\\\"columns\\\":1,\\\"order\\\":4,\\\"listSize\\\":1,\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\"]}\",\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"ProtocolActionObjects\":[]}","Timestamp":1736427688}]},{"Id":6212,"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Read Communication Settings","Json":"{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6213,"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Additional Settings","Json":"{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":6213,\"Parent\":{\"Id\":6208,\"Name\":\"Configure Device\",\"Json\":{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[{\"Id\":6213,\"Name\":\"Additional Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":4,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6268,\"Name\":\"Performance Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6253,\"Name\":\"Alert Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6217,\"Name\":\"Communication Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6259,\"Name\":\"System Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":6,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]}]},\"Name\":\"Additional Settings\",\"Json\":\"{\\\"description\\\":null,\\\"columns\\\":1,\\\"order\\\":4,\\\"listSize\\\":1,\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\"]}\",\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"ProtocolActionObjects\":[]}","Timestamp":1736427737}]},{"Id":6214,"Parent":{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"No Activity","Json":"{\"description\":\"No Activity\",\"columns\":1,\"order\":5,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":6214,\"Parent\":{\"Id\":6253,\"Name\":\"Alert Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":4,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[{\"Id\":6214,\"Name\":\"No Activity\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":5,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6254,\"Name\":\"Fall Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6256,\"Name\":\"Non Movement Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]}]},\"Name\":\"No Activity\",\"Json\":\"{\\\"description\\\":\\\"\\\",\\\"columns\\\":1,\\\"order\\\":5,\\\"listSize\\\":1,\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\"]}\",\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"ProtocolActionObjects\":[]}","Timestamp":1736340470}]},{"Id":6216,"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Read State","Json":"{\"description\":null,\"columns\":1,\"order\":6,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6217,"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Communication Settings","Json":"{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6219,"Parent":{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Approved Contacts","Json":"{\"description\":\"Approved Contacts\",\"columns\":1,\"order\":2,\"listSize\":7,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":6219,\"Parent\":{\"Id\":6213,\"Name\":\"Additional Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[{\"Id\":6219,\"Name\":\"Approved Contacts\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":2,\"listSize\":7,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":true,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6652,\"Name\":\"Speed Dial\",\"Json\":{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6577,\"Name\":\"Beacon List\",\"Json\":{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":10,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":true,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]}]},\"Name\":\"Approved Contacts\",\"Json\":\"{\\\"description\\\":\\\"\\\",\\\"columns\\\":1,\\\"order\\\":2,\\\"listSize\\\":7,\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\"]}\",\"DeviceRelated\":true,\"IsList\":false,\"IsAdminOnly\":false,\"ProtocolActionObjects\":[]}","Timestamp":1736340390}]},{"Id":6253,"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Alert Settings","Json":"{\"description\":null,\"columns\":1,\"order\":4,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":6253,\"Parent\":{\"Id\":6208,\"Name\":\"Configure Device\",\"Json\":{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[{\"Id\":6253,\"Name\":\"Alert Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6268,\"Name\":\"Performance Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6213,\"Name\":\"Additional Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6217,\"Name\":\"Communication Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6259,\"Name\":\"System Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":6,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]}]},\"Name\":\"Alert Settings\",\"Json\":\"{\\\"description\\\":null,\\\"columns\\\":1,\\\"order\\\":2,\\\"listSize\\\":1,\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\"]}\",\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"ProtocolActionObjects\":[]}","Timestamp":1736427728}]},{"Id":6254,"Parent":{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Fall Settings","Json":"{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6256,"Parent":{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Non Movement Settings","Json":"{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6259,"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"System Settings","Json":"{\"description\":\"System Settings\",\"columns\":1,\"order\":6,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":6259,\"Parent\":{\"Id\":6208,\"Name\":\"Configure Device\",\"Json\":{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[{\"Id\":6259,\"Name\":\"System Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":6,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6268,\"Name\":\"Performance Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6253,\"Name\":\"Alert Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":4,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6213,\"Name\":\"Additional Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6217,\"Name\":\"Communication Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]}]},\"Name\":\"System Settings\",\"Json\":\"{\\\"description\\\":\\\"\\\",\\\"columns\\\":1,\\\"order\\\":6,\\\"listSize\\\":1,\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\"]}\",\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"ProtocolActionObjects\":[]}","Timestamp":1736340526},{"Type":1,"NewValue":"{\"Id\":6259,\"Parent\":{\"Id\":6208,\"Name\":\"Configure Device\",\"Json\":{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[{\"Id\":6259,\"Name\":\"System Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":5,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6268,\"Name\":\"Performance Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6253,\"Name\":\"Alert Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6213,\"Name\":\"Additional Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":4,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6217,\"Name\":\"Communication Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]}]},\"Name\":\"System Settings\",\"Json\":\"{\\\"description\\\":\\\"\\\",\\\"columns\\\":1,\\\"order\\\":5,\\\"listSize\\\":1,\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\"]}\",\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"ProtocolActionObjects\":[]}","Timestamp":1736427742}]},{"Id":6268,"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Performance Settings","Json":"{\"description\":\"\",\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":6268,\"Parent\":{\"Id\":6208,\"Name\":\"Configure Device\",\"Json\":{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[{\"Id\":6268,\"Name\":\"Performance Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6253,\"Name\":\"Alert Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6213,\"Name\":\"Additional Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6217,\"Name\":\"Communication Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6259,\"Name\":\"System Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":6,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]}]},\"Name\":\"Performance Settings\",\"Json\":\"{\\\"description\\\":\\\"\\\",\\\"columns\\\":1,\\\"order\\\":3,\\\"listSize\\\":1,\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\"]}\",\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"ProtocolActionObjects\":[]}","Timestamp":1736427733}]},{"Id":6296,"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Read Performance Settings","Json":"{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":6296,\"Parent\":{\"Id\":6209,\"Name\":\"On Device\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[{\"Id\":6296,\"Name\":\"Read Performance Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6334,\"Name\":\"Read System Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":5,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6210,\"Name\":\"Read Additional Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6212,\"Name\":\"Read Communication Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6216,\"Name\":\"Read State\",\"Json\":{\"description\":null,\"columns\":1,\"order\":6,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6297,\"Name\":\"Read Alert Settings\",\"Json\":{\"description\":\"Read Alert Settings\",\"columns\":1,\"order\":4,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]}]},\"Name\":\"Read Performance Settings\",\"Json\":\"{\\\"description\\\":null,\\\"columns\\\":1,\\\"order\\\":3,\\\"listSize\\\":1,\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\"]}\",\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"ProtocolActionObjects\":[]}","Timestamp":1736425391},{"Type":1,"NewValue":"{\"Id\":6296,\"Parent\":{\"Id\":6209,\"Name\":\"On Device\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[{\"Id\":6296,\"Name\":\"Read Performance Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":4,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6334,\"Name\":\"Read System Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":5,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6210,\"Name\":\"Read Additional Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6212,\"Name\":\"Read Communication Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6216,\"Name\":\"Read State\",\"Json\":{\"description\":null,\"columns\":1,\"order\":6,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6297,\"Name\":\"Read Alert Settings\",\"Json\":{\"description\":\"Read Alert Settings\",\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]}]},\"Name\":\"Read Performance Settings\",\"Json\":\"{\\\"description\\\":null,\\\"columns\\\":1,\\\"order\\\":4,\\\"listSize\\\":1,\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\"]}\",\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"ProtocolActionObjects\":[]}","Timestamp":1736425516},{"Type":1,"NewValue":"{\"Id\":6296,\"Parent\":{\"Id\":6209,\"Name\":\"On Device\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[{\"Id\":6296,\"Name\":\"Read Performance Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6334,\"Name\":\"Read System Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":5,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6210,\"Name\":\"Read Additional Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6212,\"Name\":\"Read Communication Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6216,\"Name\":\"Read State\",\"Json\":{\"description\":null,\"columns\":1,\"order\":6,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6297,\"Name\":\"Read Alert Settings\",\"Json\":{\"description\":\"Read Alert Settings\",\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]}]},\"Name\":\"Read Performance Settings\",\"Json\":\"{\\\"description\\\":null,\\\"columns\\\":1,\\\"order\\\":2,\\\"listSize\\\":1,\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\"]}\",\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"ProtocolActionObjects\":[]}","Timestamp":1736427677},{"Type":1,"NewValue":"{\"Id\":6296,\"Parent\":{\"Id\":6209,\"Name\":\"On Device\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[{\"Id\":6296,\"Name\":\"Read Performance Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6334,\"Name\":\"Read System Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":5,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6210,\"Name\":\"Read Additional Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":4,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6212,\"Name\":\"Read Communication Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6216,\"Name\":\"Read State\",\"Json\":{\"description\":null,\"columns\":1,\"order\":6,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6297,\"Name\":\"Read Alert Settings\",\"Json\":{\"description\":\"Read Alert Settings\",\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]}]},\"Name\":\"Read Performance Settings\",\"Json\":\"{\\\"description\\\":null,\\\"columns\\\":1,\\\"order\\\":3,\\\"listSize\\\":1,\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\"]}\",\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"ProtocolActionObjects\":[]}","Timestamp":1736427926},{"Type":1,"NewValue":"{\"Id\":6296,\"Parent\":{\"Id\":6209,\"Name\":\"On Device\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[{\"Id\":6296,\"Name\":\"Read Performance Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6334,\"Name\":\"Read System Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":5,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6210,\"Name\":\"Read Additional Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":4,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6212,\"Name\":\"Read Communication Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6216,\"Name\":\"Read State\",\"Json\":{\"description\":null,\"columns\":1,\"order\":6,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6297,\"Name\":\"Read Alert Settings\",\"Json\":{\"description\":\"Read Alert Settings\",\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]}]},\"Name\":\"Read Performance Settings\",\"Json\":\"{\\\"description\\\":null,\\\"columns\\\":1,\\\"order\\\":3,\\\"listSize\\\":1,\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\"]}\",\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"ProtocolActionObjects\":[]}","Timestamp":1736427938}]},{"Id":6297,"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Read Alert Settings","Json":"{\"description\":\"Read Alert Settings\",\"columns\":1,\"order\":4,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":6297,\"Parent\":{\"Id\":6209,\"Name\":\"On Device\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[{\"Id\":6297,\"Name\":\"Read Alert Settings\",\"Json\":{\"description\":\"Read Alert Settings\",\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6334,\"Name\":\"Read System Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":5,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6210,\"Name\":\"Read Additional Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6212,\"Name\":\"Read Communication Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6216,\"Name\":\"Read State\",\"Json\":{\"description\":null,\"columns\":1,\"order\":6,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6296,\"Name\":\"Read Performance Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]}]},\"Name\":\"Read Alert Settings\",\"Json\":\"{\\\"description\\\":\\\"Read Alert Settings\\\",\\\"columns\\\":1,\\\"order\\\":3,\\\"listSize\\\":1,\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\"]}\",\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"ProtocolActionObjects\":[]}","Timestamp":1736425512},{"Type":1,"NewValue":"{\"Id\":6297,\"Parent\":{\"Id\":6209,\"Name\":\"On Device\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[{\"Id\":6297,\"Name\":\"Read Alert Settings\",\"Json\":{\"description\":\"Read Alert Settings\",\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6334,\"Name\":\"Read System Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":5,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6210,\"Name\":\"Read Additional Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6212,\"Name\":\"Read Communication Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6216,\"Name\":\"Read State\",\"Json\":{\"description\":null,\"columns\":1,\"order\":6,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6296,\"Name\":\"Read Performance Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":4,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]}]},\"Name\":\"Read Alert Settings\",\"Json\":\"{\\\"description\\\":\\\"Read Alert Settings\\\",\\\"columns\\\":1,\\\"order\\\":2,\\\"listSize\\\":1,\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\"]}\",\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"ProtocolActionObjects\":[]}","Timestamp":1736427634},{"Type":1,"NewValue":"{\"Id\":6297,\"Parent\":{\"Id\":6209,\"Name\":\"On Device\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[{\"Id\":6297,\"Name\":\"Read Alert Settings\",\"Json\":{\"description\":\"Read Alert Settings\",\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6334,\"Name\":\"Read System Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":5,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6210,\"Name\":\"Read Additional Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6212,\"Name\":\"Read Communication Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6216,\"Name\":\"Read State\",\"Json\":{\"description\":null,\"columns\":1,\"order\":6,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6296,\"Name\":\"Read Performance Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]}]},\"Name\":\"Read Alert Settings\",\"Json\":\"{\\\"description\\\":\\\"Read Alert Settings\\\",\\\"columns\\\":1,\\\"order\\\":3,\\\"listSize\\\":1,\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\"]}\",\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"ProtocolActionObjects\":[]}","Timestamp":1736427684},{"Type":1,"NewValue":"{\"Id\":6297,\"Parent\":{\"Id\":6209,\"Name\":\"On Device\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[{\"Id\":6297,\"Name\":\"Read Alert Settings\",\"Json\":{\"description\":\"Read Alert Settings\",\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6334,\"Name\":\"Read System Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":5,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6210,\"Name\":\"Read Additional Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":4,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6212,\"Name\":\"Read Communication Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6216,\"Name\":\"Read State\",\"Json\":{\"description\":null,\"columns\":1,\"order\":6,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6296,\"Name\":\"Read Performance Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]}]},\"Name\":\"Read Alert Settings\",\"Json\":\"{\\\"description\\\":\\\"Read Alert Settings\\\",\\\"columns\\\":1,\\\"order\\\":2,\\\"listSize\\\":1,\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\"]}\",\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"ProtocolActionObjects\":[]}","Timestamp":1736427923}]},{"Id":6303,"Parent":{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Read Fall Settings","Json":"{\"description\":\"Read Fall Settings\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":6303,\"Parent\":{\"Id\":6297,\"Name\":\"Read Alert Settings\",\"Json\":{\"description\":\"Read Alert Settings\",\"columns\":1,\"order\":4,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[{\"Id\":6303,\"Name\":\"Read Fall Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6305,\"Name\":\"Read Non Movement Settings\",\"Json\":{\"description\":\"Read Non Movement Settings\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]}]},\"Name\":\"Read Fall Settings\",\"Json\":\"{\\\"description\\\":\\\"\\\",\\\"columns\\\":1,\\\"order\\\":1,\\\"listSize\\\":1,\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\"]}\",\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"ProtocolActionObjects\":[]}","Timestamp":1736340245}]},{"Id":6305,"Parent":{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Read Non Movement Settings","Json":"{\"description\":\"Read Non Movement Settings\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":6305,\"Parent\":{\"Id\":6297,\"Name\":\"Read Alert Settings\",\"Json\":{\"description\":\"Read Alert Settings\",\"columns\":1,\"order\":4,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[{\"Id\":6305,\"Name\":\"Read Non Movement Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6303,\"Name\":\"Read Fall Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]}]},\"Name\":\"Read Non Movement Settings\",\"Json\":\"{\\\"description\\\":\\\"\\\",\\\"columns\\\":1,\\\"order\\\":1,\\\"listSize\\\":1,\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\"]}\",\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"ProtocolActionObjects\":[]}","Timestamp":1736340275}]},{"Id":6334,"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Read System Settings","Json":"{\"description\":\"Read System Settings\",\"columns\":1,\"order\":5,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":6334,\"Parent\":{\"Id\":6209,\"Name\":\"On Device\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[{\"Id\":6334,\"Name\":\"Read System Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":5,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6210,\"Name\":\"Read Additional Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6212,\"Name\":\"Read Communication Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6216,\"Name\":\"Read State\",\"Json\":{\"description\":null,\"columns\":1,\"order\":6,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6296,\"Name\":\"Read Performance Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},{\"Id\":6297,\"Name\":\"Read Alert Settings\",\"Json\":{\"description\":\"Read Alert Settings\",\"columns\":1,\"order\":4,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]}]},\"Name\":\"Read System Settings\",\"Json\":\"{\\\"description\\\":\\\"\\\",\\\"columns\\\":1,\\\"order\\\":5,\\\"listSize\\\":1,\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\"]}\",\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"ProtocolActionObjects\":[]}","Timestamp":1736340297}]},{"Id":6577,"Parent":{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Beacon List","Json":"{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":10,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6652,"Parent":{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Speed Dial","Json":"{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6653,"Parent":{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Read Speed Dial Settings","Json":"{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6746,"Parent":{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"d2","Json":"{ \"description\": \"Approved Contacts\", \"columns\": 1, \"order\": 3, \"listSize\": 7, \"toTranslate\": [ \"name\", \"description\" ], \"index\": 2}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6747,"Parent":{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"d1","Json":"{ \"description\": \"Approved Contacts\", \"columns\": 1, \"order\": 3, \"listSize\": 7, \"toTranslate\": [ \"name\", \"description\" ], \"index\": 1}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6748,"Parent":{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"t1","Json":"{ \"description\": null, \"columns\": 1, \"order\": 2, \"listSize\": 10, \"toTranslate\": [ \"name\", \"description\" ], \"index\": 1}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6750,"Parent":{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"t3","Json":"{ \"description\": null, \"columns\": 1, \"order\": 2, \"listSize\": 10, \"toTranslate\": [ \"name\", \"description\" ], \"index\": 3}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6751,"Parent":{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"t2","Json":"{ \"description\": null, \"columns\": 1, \"order\": 2, \"listSize\": 10, \"toTranslate\": [ \"name\", \"description\" ], \"index\": 2}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6774,"Parent":{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"DG","Json":"{ \"description\": \"Approved Contacts\", \"columns\": 1, \"order\": 1, \"listSize\": 7, \"toTranslate\": [ \"name\", \"description\" ], \"index\": 1}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6775,"Parent":{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"DG","Json":"{ \"description\": \"Approved Contacts\", \"columns\": 1, \"order\": 1, \"listSize\": 7, \"toTranslate\": [ \"name\", \"description\" ], \"index\": 1}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6803,"Parent":{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Name":"WiFi List","Json":"{\"description\":\"WiFi List\",\"columns\":1,\"order\":1,\"listSize\":5,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":6803,\"Parent\":{\"Id\":6217,\"Name\":\"Communication Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[{\"Id\":6803,\"Name\":\"WiFi List\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":5,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":true,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]}]},\"Name\":\"WiFi List\",\"Json\":\"{\\\"description\\\":\\\"\\\",\\\"columns\\\":1,\\\"order\\\":1,\\\"listSize\\\":5,\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\"]}\",\"DeviceRelated\":true,\"IsList\":false,\"IsAdminOnly\":false,\"ProtocolActionObjects\":[]}","Timestamp":1736340361}]},{"Id":6805,"Parent":{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"A2","Json":"{ \"description\": \"Approved Contacts\", \"columns\": 1, \"order\": 2, \"listSize\": 7, \"toTranslate\": [ \"name\", \"description\" ], \"index\": 2}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6806,"Parent":{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"A3","Json":"{ \"description\": \"Approved Contacts\", \"columns\": 1, \"order\": 2, \"listSize\": 7, \"toTranslate\": [ \"name\", \"description\" ], \"index\": 3}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6809,"Parent":{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"B3","Json":"{ \"description\": null, \"columns\": 1, \"order\": 3, \"listSize\": 10, \"toTranslate\": [ \"name\", \"description\" ], \"index\": 3}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6814,"Parent":{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"B2","Json":"{ \"description\": null, \"columns\": 1, \"order\": 3, \"listSize\": 10, \"toTranslate\": [ \"name\", \"description\" ], \"index\": 1}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6815,"Parent":{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"B4","Json":"{ \"description\": null, \"columns\": 1, \"order\": 3, \"listSize\": 10, \"toTranslate\": [ \"name\", \"description\" ], \"index\": 2}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6820,"Parent":{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Read WiFi List","Json":"{\"description\":\"Read WiFi List\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":6820,\"Parent\":{\"Id\":6212,\"Name\":\"Read Communication Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[{\"Id\":6820,\"Name\":\"Read WiFi List\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]}]},\"Name\":\"Read WiFi List\",\"Json\":\"{\\\"description\\\":\\\"\\\",\\\"columns\\\":1,\\\"order\\\":1,\\\"listSize\\\":1,\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\"]}\",\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"ProtocolActionObjects\":[]}","Timestamp":1736340151}]},{"Id":6847,"Parent":{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"w113","Json":"{ \"description\": \"WiFi List\", \"columns\": 1, \"order\": 1, \"listSize\": 5, \"toTranslate\": [ \"name\", \"description\" ], \"index\": 1}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6848,"Parent":{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"w12","Json":"{ \"description\": \"WiFi List\", \"columns\": 1, \"order\": 1, \"listSize\": 5, \"toTranslate\": [ \"name\", \"description\" ], \"index\": 2}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6859,"Parent":{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Oysta Office","Json":"{ \"description\": \"WiFi List\", \"columns\": 1, \"order\": 1, \"listSize\": 5, \"toTranslate\": [ \"name\", \"description\" ], \"index\": 1}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6860,"Parent":{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Home","Json":"{ \"description\": \"WiFi List\", \"columns\": 1, \"order\": 1, \"listSize\": 5, \"toTranslate\": [ \"name\", \"description\" ], \"index\": 2}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6861,"Parent":{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"home","Json":"{ \"description\": \"Approved Contacts\", \"columns\": 1, \"order\": 2, \"listSize\": 7, \"toTranslate\": [ \"name\", \"description\" ], \"index\": 1}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6862,"Parent":{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"home","Json":"{ \"description\": \"Approved Contacts\", \"columns\": 1, \"order\": 2, \"listSize\": 7, \"toTranslate\": [ \"name\", \"description\" ], \"index\": 1}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6863,"Parent":{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Oysta Office","Json":"{ \"description\": \"WiFi List\", \"columns\": 1, \"order\": 1, \"listSize\": 5, \"toTranslate\": [ \"name\", \"description\" ], \"index\": 1}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6864,"Parent":{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Home","Json":"{ \"description\": \"WiFi List\", \"columns\": 1, \"order\": 1, \"listSize\": 5, \"toTranslate\": [ \"name\", \"description\" ], \"index\": 2}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":6865,"Parent":{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"home","Json":"{ \"description\": null, \"columns\": 1, \"order\": 3, \"listSize\": 10, \"toTranslate\": [ \"name\", \"description\" ], \"index\": 1}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]}],"GroupParams":[{"Id":11192,"Group":{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Get Current Config","Json":"{\"name\":\"Get Current Config\",\"default\":\"\",\"description\":\"Get Current Config\",\"type\":\"button\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Retrieve the current config from the device. Please do this before and after the configuration of the device\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"],\"order\":2}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11197,"Group":{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Power Off","Json":"{\"name\":\"Power Off\",\"default\":\"\",\"description\":\"Power Off\",\"type\":\"button\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Turn the device off remotely\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"],\"order\":7}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11326,"Group":{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Get Language / Performance","Json":"{\"name\":\"Get Language / Performance\",\"default\":\"\",\"description\":\"Get Language / Performance\",\"type\":\"button\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":true,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Get Language / Performance\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"],\"order\":13}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11271,"Group":{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Get Alert Settings","Json":"{\"name\":\"Get Alert Settings\",\"default\":\"\",\"description\":\"Get Alert Settings\",\"type\":\"button\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":true,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Get Alert Settings\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"],\"order\":11}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11198,"Group":{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Get Firmware Version","Json":"{\"name\":\"Get Firmware Version\",\"default\":\"\",\"description\":\"Get Firmware Version\",\"type\":\"button\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":true,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Retrieve the current firmware version from the device.\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"],\"order\":12}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11199,"Group":{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Configuration Mode","Json":"{\"name\":\"Configuration Mode\",\"default\":\"false\",\"description\":\"Configuration Mode\",\"type\":\"checkbox\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Makes the device connect to the server quicker to enable a faster setup time.\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"],\"order\":1}","Default":"true","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11220,"Group":{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Enable Disable Controls","Json":"{\"name\":\"Enable Disable Controls\",\"default\":\"\",\"description\":null,\"type\":\"enable\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"],\"order\":0}","Default":"false","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11191,"Group":{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Firmware Upgrade","Json":"{\"name\":\"Firmware Upgrade\",\"default\":\"\",\"description\":\"Firmware Upgrade\",\"type\":\"button\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Upgrade the device to the latest firmware (if available)\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"],\"order\":9}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11193,"Group":{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Real Time Locate","Json":"{\"name\":\"Real Time Locate\",\"default\":\"\",\"description\":\"Real Time Locate\",\"type\":\"button\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Sends a command to find the GPS location of the device\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"],\"order\":4}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11189,"Group":{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Factory Reset","Json":"{\"name\":\"Factory Reset\",\"default\":\"\",\"description\":\"Factory Reset\",\"type\":\"button\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Reset the device the Oysta factory defaults\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"],\"order\":10}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11194,"Group":{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Find Device","Json":"{\"name\":\"Find Device\",\"default\":\"\",\"description\":\"Find Device\",\"type\":\"button\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Click this to send a command to the device that will help the VIP find their device if lost in the home. The device will emit a sound.\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"],\"order\":6}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11195,"Group":{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Clear Buffered Messages","Json":"{\"name\":\"Clear Buffered Messages\",\"default\":\"\",\"description\":\"Clear Buffered Messages\",\"type\":\"button\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Clear all pending messages to the server\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"],\"order\":3}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11196,"Group":{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Reboot","Json":"{\"name\":\"Reboot\",\"default\":\"\",\"description\":\"Reboot\",\"type\":\"button\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Power cycle the device remotely.\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"],\"order\":8}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11222,"Group":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Enable Disable Configure Device","Json":"{\"name\":\"Enable Disable Configure Device\",\"default\":\"\",\"description\":null,\"type\":\"enable\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"false","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11201,"Group":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Last Configured","Json":"{\"name\":\"Last Configured\",\"default\":\"\",\"description\":\"Last Configured\",\"type\":\"datetime\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11221,"Group":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Enable Disable On Device","Json":"{\"name\":\"Enable Disable On Device\",\"default\":\"\",\"description\":null,\"type\":\"enable\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"false","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11200,"Group":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"LastDateTimeRead","Json":"{\"name\":\"LastDateTimeRead\",\"default\":\"\",\"description\":\"Last Update\",\"type\":\"datetime\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11203,"Group":{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Approved Contacts","Json":"{\"name\":\"Approved Contacts\",\"default\":\"\",\"description\":\"Current Approved Contacts\",\"type\":\"text\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11204,"Group":{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Home Beacon","Json":"{\"name\":\"Home Beacon\",\"default\":\"\",\"description\":\"Current Home Beacon\",\"type\":\"text\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11208,"Group":{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"APN","Json":"{\"name\":\"APN\",\"default\":\"\",\"description\":\"Current APN\",\"type\":\"text\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"The Access Point Name stored on the device will be reported and shown here.\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11206,"Group":{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"SMS Gateway","Json":"{\"name\":\"SMS Gateway\",\"default\":\"\",\"description\":\"SMS Gateway\",\"type\":\"text\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"The SMS gateway that the device is using to send and receive SMSs (Esendex UK/Esendex Spain)\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11207,"Group":{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Server","Json":"{\"name\":\"Server\",\"default\":\"\",\"description\":\"Current Server\",\"type\":\"text\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"The server the device is currently reporting to will be shown here: Acceptance/Production\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11209,"Group":{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"No Activity","Json":"{\"name\":\"No Activity\",\"default\":\"\",\"description\":\"Set No Activity Events\",\"type\":\"number\",\"suffix\":null,\"prefix\":null,\"min\":5,\"max\":10080,\"futureOnly\":false,\"integerOnly\":true,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Set No Activity Alerts in minutes. If the device does not report in the time frame it triggers a No Activity alert\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":11209,\"Group\":{\"Id\":6214,\"Name\":\"No Activity\",\"Json\":{\"description\":\"No Activity\",\"columns\":1,\"order\":5,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},\"Name\":\"No Activity\",\"Json\":\"{\\\"name\\\":\\\"No Activity\\\",\\\"default\\\":\\\"\\\",\\\"description\\\":\\\"Set No Activity Events\\\",\\\"type\\\":\\\"number\\\",\\\"suffix\\\":null,\\\"prefix\\\":null,\\\"min\\\":5,\\\"max\\\":10080,\\\"futureOnly\\\":false,\\\"integerOnly\\\":true,\\\"isReadOnly\\\":false,\\\"isHidden\\\":false,\\\"minLength\\\":null,\\\"maxLength\\\":null,\\\"helpText\\\":\\\"Set No Activity Alerts in minutes. If the device does not report in the time frame it triggers a No Activity alert\\\",\\\"options\\\":[],\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\",\\\"helpText\\\"]}\",\"Default\":\"\",\"Command\":null,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1734525297}],"Tags":[{"Id":2149,"Name":"noActivityInterval","BackendAction":"NoActivityInterval","Value":""}]},{"Id":11210,"Group":{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Enable Disable No Activity","Json":"{\"name\":\"Enable Disable No Activity\",\"default\":\"true\",\"description\":\"Enable Disable No Activity \",\"type\":\"enable\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Enable or disable no activity alerts\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"true","Command":null,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":11210,\"Group\":{\"Id\":6214,\"Name\":\"No Activity\",\"Json\":{\"description\":\"No Activity\",\"columns\":1,\"order\":5,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},\"Name\":\"Enable Disable No Activity\",\"Json\":\"{\\\"name\\\":\\\"Enable Disable No Activity\\\",\\\"default\\\":\\\"true\\\",\\\"description\\\":\\\"Enable Disable No Activity \\\",\\\"type\\\":\\\"enable\\\",\\\"suffix\\\":null,\\\"prefix\\\":null,\\\"min\\\":null,\\\"max\\\":null,\\\"futureOnly\\\":false,\\\"integerOnly\\\":false,\\\"isReadOnly\\\":false,\\\"isHidden\\\":false,\\\"minLength\\\":null,\\\"maxLength\\\":null,\\\"helpText\\\":\\\"Enable or disable no activity alerts\\\",\\\"options\\\":[],\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\",\\\"helpText\\\"]}\",\"Default\":\"true\",\"Command\":null,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1736339464}],"Tags":[{"Id":2152,"Name":"activateNoActivity","BackendAction":"ActivateNoActivity","Value":""}]},{"Id":11202,"Group":{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Current Firmware Version","Json":"{\"name\":\"Current Firmware Version\",\"default\":\"\",\"description\":\"Current Firmware Version\",\"type\":\"text\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11279,"Group":{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Custom Id","Json":"{\"name\":\"Custom Id\",\"default\":\"\",\"description\":\"Custom Id\",\"type\":\"text\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Custom Id\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11214,"Group":{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Name":"SMS Gateway","Json":"{\"name\":\"SMS Gateway\",\"default\":\"\",\"description\":\"Set SMS Gateway\",\"type\":\"select\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[{\"value\":\"00447781482635,Esendex UK\",\"label\":\"Esendex UK\"},{\"value\":\"0034627177148,Esendex Spain\",\"label\":\"Esendex Spain\"},{\"value\":\"00447507288240,Esendex UK Acceptance\",\"label\":\"Esendex UK Acceptance\"},{\"label\":\"default\",\"value\":\"default\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":11214,\"Group\":{\"Id\":6217,\"Name\":\"Communication Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},\"Name\":\"SMS Gateway\",\"Json\":\"{\\\"name\\\":\\\"SMS Gateway\\\",\\\"default\\\":\\\"\\\",\\\"description\\\":\\\"Set SMS Gateway\\\",\\\"type\\\":\\\"select\\\",\\\"suffix\\\":null,\\\"prefix\\\":null,\\\"min\\\":null,\\\"max\\\":null,\\\"futureOnly\\\":false,\\\"integerOnly\\\":false,\\\"isReadOnly\\\":false,\\\"isHidden\\\":false,\\\"minLength\\\":null,\\\"maxLength\\\":null,\\\"helpText\\\":\\\"Select the SMS gateway that the device will use to send and receive SMSs (Esendex UK/Esendex Spain)\\\",\\\"options\\\":[{\\\"value\\\":\\\"00447781482635,Esendex UK\\\",\\\"label\\\":\\\"Esendex UK\\\"},{\\\"value\\\":\\\"0034627177148,Esendex Spain\\\",\\\"label\\\":\\\"Esendex Spain\\\"},{\\\"value\\\":\\\"00447507288240,Esendex UK Acceptance\\\",\\\"label\\\":\\\"Esendex UK Acceptance\\\"},{\\\"value\\\":\\\"default\\\",\\\"label\\\":\\\"default\\\"}],\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\",\\\"helpText\\\",\\\"label\\\"]}\",\"Default\":\"\",\"Command\":null,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1736449062}],"Tags":[]},{"Id":11216,"Group":{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Name":"APN","Json":"{ \"name\": \"APN\", \"default\": \"\", \"description\": \"Set APN\", \"type\": \"apn\", \"suffix\": null, \"prefix\": null, \"min\": null, \"max\": null, \"futureOnly\": false, \"integerOnly\": false, \"isReadOnly\": false, \"isHidden\": false, \"minLength\": null, \"maxLength\": null, \"helpText\": null, \"options\": [ { \"value\": \" iot.cslm2m.com,,\", \"label\": \" CSL (NEW) [test]\" }, { \"value\": \"hs.vodafone.ie,,\", \"label\": \"Vodafone HS [Ireland]\" }, { \"value\": \"movistar.es,MOVISTAR,MOVISTAR\", \"label\": \"Movistar\" }, { \"value\": \"m2m.movistar.es,movistar,movistar\", \"label\": \"Movistar M2M Spain [Spain]\" }, { \"value\": \"inetd.vfes,,\", \"label\": \"Spainiot \" }, { \"value\": \"airtelwap.es,wap@wap,wap\", \"label\": \"Vodafone 4G [Spain]\" }, { \"value\": \"wlapn.com,deimos,deimos\", \"label\": \"DEIMOS [Spain]\" }, { \"value\": \" iot.cslm2m.com,,\", \"label\": \" CSL (NEW) [test]\" }, { \"value\": \"ukiot1,,\", \"label\": \"BT-EE-trial [UK]\" }, { \"value\": \"test,,\", \"label\": \"test []\" }, { \"value\": \"stream.co.uk,streamip,streamip\", \"label\": \"stream \" }, { \"value\": \"m2m.vodafone.es,Vodafone,Vodafone\", \"label\": \"m2m.vodafone.es [Spain]\" }, { \"value\": \"m2m.vodafone.es,vodafone,vodafone\", \"label\": \"m2m Vodafone Spain [Spain]\" }, { \"value\": \"autoselect,,\", \"label\": \"autoselect \" }, { \"value\": \"internet,0,0\", \"label\": \"China Mobile GPRS\" } ], \"toTranslate\": [ \"name\", \"description\", \"helpText\", \"label\" ]}","Default":"","Command":null,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":11216,\"Group\":{\"Id\":6217,\"Name\":\"Communication Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},\"Name\":\"APN\",\"Json\":\"{\\\"name\\\":\\\"APN\\\",\\\"default\\\":\\\"\\\",\\\"description\\\":\\\"Set APN\\\",\\\"type\\\":\\\"apn\\\",\\\"suffix\\\":null,\\\"prefix\\\":null,\\\"min\\\":null,\\\"max\\\":null,\\\"futureOnly\\\":false,\\\"integerOnly\\\":false,\\\"isReadOnly\\\":false,\\\"isHidden\\\":false,\\\"minLength\\\":null,\\\"maxLength\\\":null,\\\"helpText\\\":\\\"Select the Access Point Name of your provider\\\",\\\"options\\\":[{\\\"value\\\":\\\" iot.cslm2m.com,,\\\",\\\"label\\\":\\\" CSL (NEW) [test]\\\"},{\\\"value\\\":\\\"hs.vodafone.ie,,\\\",\\\"label\\\":\\\"Vodafone HS [Ireland]\\\"},{\\\"value\\\":\\\"movistar.es,MOVISTAR,MOVISTAR\\\",\\\"label\\\":\\\"Movistar\\\"},{\\\"value\\\":\\\"m2m.movistar.es,movistar,movistar\\\",\\\"label\\\":\\\"Movistar M2M Spain [Spain]\\\"},{\\\"value\\\":\\\"inetd.vfes,,\\\",\\\"label\\\":\\\"Spainiot \\\"},{\\\"value\\\":\\\"airtelwap.es,wap@wap,wap\\\",\\\"label\\\":\\\"Vodafone 4G [Spain]\\\"},{\\\"value\\\":\\\"wlapn.com,deimos,deimos\\\",\\\"label\\\":\\\"DEIMOS [Spain]\\\"},{\\\"value\\\":\\\" iot.cslm2m.com,,\\\",\\\"label\\\":\\\" CSL (NEW) [test]\\\"},{\\\"value\\\":\\\"ukiot1,,\\\",\\\"label\\\":\\\"BT-EE-trial [UK]\\\"},{\\\"value\\\":\\\"test,,\\\",\\\"label\\\":\\\"test []\\\"},{\\\"value\\\":\\\"stream.co.uk,streamip,streamip\\\",\\\"label\\\":\\\"stream \\\"},{\\\"value\\\":\\\"m2m.vodafone.es,Vodafone,Vodafone\\\",\\\"label\\\":\\\"m2m.vodafone.es [Spain]\\\"},{\\\"value\\\":\\\"m2m.vodafone.es,vodafone,vodafone\\\",\\\"label\\\":\\\"m2m Vodafone Spain [Spain]\\\"},{\\\"value\\\":\\\"autoselect,,\\\",\\\"label\\\":\\\"autoselect \\\"},{\\\"value\\\":\\\"internet,0,0\\\",\\\"label\\\":\\\"China Mobile GPRS\\\"}],\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\",\\\"helpText\\\",\\\"label\\\"]}\",\"Default\":\"\",\"Command\":null,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1736448942}],"Tags":[]},{"Id":11213,"Group":{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Name":"Server","Json":"{\"name\":\"Server\",\"default\":\"\",\"description\":\"Set Server\",\"type\":\"select\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[{\"value\":\"default\",\"label\":\"default\"},{\"value\":\"52.232.85.255,5678\",\"label\":\"Production\"},{\"value\":\"52.174.17.77,5678\",\"label\":\"Acceptance\"},{\"label\":\"Protocol-Import\",\"value\":\"52.174.17.77,5778\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":11213,\"Group\":{\"Id\":6217,\"Name\":\"Communication Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},\"Name\":\"Server\",\"Json\":\"{\\\"name\\\":\\\"Server\\\",\\\"default\\\":\\\"\\\",\\\"description\\\":\\\"Set Server\\\",\\\"type\\\":\\\"select\\\",\\\"suffix\\\":null,\\\"prefix\\\":null,\\\"min\\\":null,\\\"max\\\":null,\\\"futureOnly\\\":false,\\\"integerOnly\\\":false,\\\"isReadOnly\\\":false,\\\"isHidden\\\":false,\\\"minLength\\\":null,\\\"maxLength\\\":null,\\\"helpText\\\":\\\"Select the server the device will report: Acceptance/Production\\\",\\\"options\\\":[{\\\"value\\\":\\\"default\\\",\\\"label\\\":\\\"default\\\"},{\\\"value\\\":\\\"52.232.85.255,5678\\\",\\\"label\\\":\\\"Production\\\"},{\\\"value\\\":\\\"52.174.17.77,5678\\\",\\\"label\\\":\\\"Acceptance\\\"},{\\\"value\\\":\\\"52.174.17.77,5778\\\",\\\"label\\\":\\\"Protocol-Import\\\"}],\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\",\\\"helpText\\\",\\\"label\\\"]}\",\"Default\":\"\",\"Command\":null,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1736449011}],"Tags":[]},{"Id":11261,"Group":{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Contact","Json":"{\"name\":\"Contact\",\"default\":\"\",\"description\":\"Contact\",\"type\":\"phone\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":11261,\"Group\":{\"Id\":6219,\"Name\":\"Approved Contacts\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":2,\"listSize\":7,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":true,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},\"Name\":\"Contact\",\"Json\":\"{\\\"name\\\":\\\"Contact\\\",\\\"default\\\":\\\"\\\",\\\"description\\\":\\\"Contact\\\",\\\"type\\\":\\\"phone\\\",\\\"suffix\\\":null,\\\"prefix\\\":null,\\\"min\\\":null,\\\"max\\\":null,\\\"futureOnly\\\":false,\\\"integerOnly\\\":false,\\\"isReadOnly\\\":false,\\\"isHidden\\\":false,\\\"minLength\\\":null,\\\"maxLength\\\":null,\\\"helpText\\\":\\\"Phone number of the contact\\\",\\\"options\\\":[],\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\",\\\"helpText\\\"]}\",\"Default\":\"\",\"Command\":null,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1736449634}],"Tags":[]},{"Id":11296,"Group":{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Emergency Number","Json":"{\"name\":\"Emergency Number\",\"default\":\"\",\"description\":\"Emergency Number\",\"type\":\"phone\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"The number called when the default SOS button is pushed on the device (typically the ARC)\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11241,"Group":{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Enable Disable Fall Settings","Json":"{\"name\":\"Enable Disable Fall Settings\",\"default\":\"false\",\"description\":\"Toggle Fall alert\",\"type\":\"enable\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Toggle feature that raises an alarm when the VIP falls and breaches the specified sensitivity setting\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"true","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11242,"Group":{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Sensitivity","Json":"{\"name\":\"Sensitivity\",\"default\":\"\",\"description\":\"Sensitivity\",\"type\":\"radioGroup\",\"suffix\":null,\"prefix\":null,\"min\":1,\"max\":9,\"futureOnly\":false,\"integerOnly\":true,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"1-9 (9 high sensitivity/low trigger)\",\"options\":[{\"value\":\"3\",\"label\":\"Low\"},{\"value\":\"6\",\"label\":\"Medium\"},{\"value\":\"9\",\"label\":\"High\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11243,"Group":{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Enable Disable Non Movement Settings","Json":"{\"name\":\"Enable Disable Non Movement Settings\",\"default\":\"\",\"description\":\"Toggle Non-movement alert\",\"type\":\"enable\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Toggle feature on Rio for raising an alarm when VIP has not moved for a specified time.\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"false","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11244,"Group":{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Time","Json":"{\"name\":\"Time\",\"default\":\"\",\"description\":\"Time in non-movement\",\"type\":\"radioGroup\",\"suffix\":\"seconds\",\"prefix\":null,\"min\":60,\"max\":36000,\"futureOnly\":false,\"integerOnly\":true,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"The time the VIP has to be still before the non-movement alarm is raised\",\"options\":[{\"label\":\"30 minutes\",\"value\":\"1800\"},{\"label\":\"1 hour\",\"value\":\"3600\"},{\"label\":\"1 hour 30 minutes\",\"value\":\"5400\"},{\"label\":\"2 hours\",\"value\":\"7200\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11315,"Group":{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Volume","Json":"{\"name\":\"Volume\",\"default\":\"\",\"description\":\"Volume\",\"type\":\"radioGroup\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"The volume of the ring tone, speaker and voice prompt for the device.\",\"options\":[{\"value\":\"0\",\"label\":\"Off\"},{\"value\":\"20\",\"label\":\"Low\"},{\"value\":\"50\",\"label\":\"Medium\"},{\"value\":\"80\",\"label\":\"High\"},{\"value\":\"100\",\"label\":\"Max\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11273,"Group":{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"SystemLanguage","Json":"{\"name\":\"SystemLanguage\",\"default\":\"\",\"description\":\"System Language\",\"type\":\"select\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"System Language\",\"options\":[{\"value\":\"en-US\",\"label\":\"en-US\"},{\"value\":\"nl-NL\",\"label\":\"nl-NL\"},{\"value\":\"de\",\"label\":\"de\"},{\"value\":\"fr\",\"label\":\"fr\"},{\"value\":\"pt\",\"label\":\"pt\"},{\"value\":\"es\",\"label\":\"es\"},{\"value\":\"it\",\"label\":\"it\"},{\"label\":\"zh-CN\",\"value\":\"zh-CN\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11314,"Group":{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"AutoAnswer","Json":"{\"name\":\"AutoAnswer\",\"default\":\"true\",\"description\":\"AutoAnswer\",\"type\":\"checkbox\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Toggles feature that enables a number in the whitelist to call through the device without any interaction required by the VIP\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"true","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11313,"Group":{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Allow List","Json":"{\"name\":\"Allow List\",\"default\":\"true\",\"description\":\"Allow List\",\"type\":\"checkbox\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Toggles the allow list of members who can call the device\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"true","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11264,"Group":{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Mode","Json":"{\"name\":\"Mode\",\"default\":\"\",\"description\":\"Mode\",\"type\":\"radioGroup\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Mode settings\",\"options\":[{\"value\":\"0\",\"label\":\"No reporting\"},{\"value\":\"1\",\"label\":\"Power saving\"},{\"value\":\"2\",\"label\":\"Balanced\"},{\"value\":\"3\",\"label\":\"High frequency\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11270,"Group":{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Mode","Json":"{\"name\":\"Mode\",\"default\":\"\",\"description\":\"Mode\",\"type\":\"radioGroup\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Different modes for communication\",\"options\":[{\"label\":\"No reporting\",\"value\":\"0\"},{\"label\":\"Power saving\",\"value\":\"1\"},{\"label\":\"Balanced\",\"value\":\"2\"},{\"label\":\"High frequency\",\"value\":\"3\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11280,"Group":{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"No Motion Alert","Json":"{\"name\":\"No Motion Alert\",\"default\":\"\",\"description\":\"No Motion Alert\",\"type\":\"text\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":true,\"minLength\":null,\"maxLength\":null,\"helpText\":\"No Motion Alert Debugging only\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11278,"Group":{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Fall Settings","Json":"{\"name\":\"Fall Settings\",\"default\":\"\",\"description\":\"Fall Settings\",\"type\":\"text\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":true,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Fall Settings debugging only\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11297,"Group":{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Emergency Number","Json":"{\"name\":\"Emergency Number\",\"default\":\"\",\"description\":\"Current Emergency Number\",\"type\":\"text\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"This is the number the device will call when the SOS button is pushed\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11285,"Group":{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Enable Disable Fall Settings","Json":"{\"name\":\"Enable Disable Fall Settings\",\"default\":\"false\",\"description\":\"Enable Disable Fall Settings\",\"type\":\"enable\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Enable Disable Fall Settings\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"true","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11286,"Group":{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Sensitivity","Json":"{\"name\":\"Sensitivity\",\"default\":\"\",\"description\":\"Sensitivity\",\"type\":\"radioGroup\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"1-9 (9 high sensitivity/low trigger)\",\"options\":[{\"value\":\"3\",\"label\":\"Low\"},{\"label\":\"Medium\",\"value\":\"6\"},{\"label\":\"High\",\"value\":\"9\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11283,"Group":{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Enable Disable Non Movement Settings","Json":"{\"name\":\"Enable Disable Non Movement Settings\",\"default\":\"false\",\"description\":\"Enable Disable Non Movement Settings\",\"type\":\"enable\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Enable Disable Non Movement Settings\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"true","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11284,"Group":{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Time","Json":"{\"name\":\"Time\",\"default\":\"\",\"description\":\"Time in non-movement\",\"type\":\"radioGroup\",\"suffix\":\"seconds\",\"prefix\":null,\"min\":60,\"max\":123,\"futureOnly\":false,\"integerOnly\":true,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Time in non-movement\",\"options\":[{\"value\":\"1800\",\"label\":\"30 minutes\"},{\"value\":\"3600\",\"label\":\"1 hour\"},{\"value\":\"5400\",\"label\":\"1 hour 30 minutes\"},{\"value\":\"7200\",\"label\":\"2 hours\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11317,"Group":{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"System Language","Json":"{\"name\":\"System Language\",\"default\":\"\",\"description\":\"System Language\",\"type\":\"text\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"System Language\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"],\"order\":2}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11319,"Group":{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Allow List","Json":"{\"name\":\"Allow List\",\"default\":\"\",\"description\":\"Allow List\",\"type\":\"checkbox\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"false","Command":null,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":11319,\"Group\":{\"Id\":6334,\"Name\":\"Read System Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":5,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},\"Name\":\"Allow List\",\"Json\":\"{\\\"name\\\":\\\"Allow List\\\",\\\"default\\\":\\\"false\\\",\\\"description\\\":\\\"Allow List\\\",\\\"type\\\":\\\"checkbox\\\",\\\"suffix\\\":null,\\\"prefix\\\":null,\\\"min\\\":null,\\\"max\\\":null,\\\"futureOnly\\\":false,\\\"integerOnly\\\":false,\\\"isReadOnly\\\":true,\\\"isHidden\\\":false,\\\"minLength\\\":null,\\\"maxLength\\\":null,\\\"helpText\\\":\\\"Only authorized or all numbers to call in\\\",\\\"options\\\":[],\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\",\\\"helpText\\\"]}\",\"Default\":\"true\",\"Command\":null,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1736448669}],"Tags":[]},{"Id":11324,"Group":{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Volume","Json":"{\"name\":\"Volume\",\"default\":\"\",\"description\":\"Volume\",\"type\":\"radioGroup\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":1,\"maxLength\":100,\"helpText\":\"Volume\",\"options\":[{\"label\":\"Off\",\"value\":\"0\"},{\"label\":\"Low\",\"value\":\"20\"},{\"label\":\"Medium\",\"value\":\"50\"},{\"label\":\"High\",\"value\":\"80\"},{\"label\":\"Max\",\"value\":\"100\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"],\"order\":3}","Default":"","Command":null,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":11324,\"Group\":{\"Id\":6334,\"Name\":\"Read System Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":5,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},\"Name\":\"Volume\",\"Json\":\"{\\\"name\\\":\\\"Volume\\\",\\\"default\\\":\\\"\\\",\\\"description\\\":\\\"Volume\\\",\\\"type\\\":\\\"radioGroup\\\",\\\"suffix\\\":null,\\\"prefix\\\":null,\\\"min\\\":null,\\\"max\\\":null,\\\"futureOnly\\\":false,\\\"integerOnly\\\":false,\\\"isReadOnly\\\":true,\\\"isHidden\\\":false,\\\"minLength\\\":1,\\\"maxLength\\\":100,\\\"helpText\\\":\\\"Volume level\\\",\\\"options\\\":[{\\\"value\\\":\\\"0\\\",\\\"label\\\":\\\"Off\\\"},{\\\"value\\\":\\\"20\\\",\\\"label\\\":\\\"Low\\\"},{\\\"value\\\":\\\"50\\\",\\\"label\\\":\\\"Medium\\\"},{\\\"value\\\":\\\"80\\\",\\\"label\\\":\\\"High\\\"},{\\\"value\\\":\\\"100\\\",\\\"label\\\":\\\"Max\\\"}],\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\",\\\"helpText\\\",\\\"label\\\"]}\",\"Default\":\"\",\"Command\":null,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1736448746}],"Tags":[]},{"Id":11328,"Group":{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Auto Answer","Json":"{\"name\":\"Auto Answer\",\"default\":\"\",\"description\":\"Auto Answer\",\"type\":\"checkbox\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Auto Answer\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"false","Command":null,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":11328,\"Group\":{\"Id\":6334,\"Name\":\"Read System Settings\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":5,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},\"Name\":\"Auto Answer\",\"Json\":\"{\\\"name\\\":\\\"Auto Answer\\\",\\\"default\\\":\\\"false\\\",\\\"description\\\":\\\"Auto Answer\\\",\\\"type\\\":\\\"checkbox\\\",\\\"suffix\\\":null,\\\"prefix\\\":null,\\\"min\\\":null,\\\"max\\\":null,\\\"futureOnly\\\":false,\\\"integerOnly\\\":false,\\\"isReadOnly\\\":true,\\\"isHidden\\\":false,\\\"minLength\\\":null,\\\"maxLength\\\":null,\\\"helpText\\\":\\\"Auto Answer or Answer call by pressing button\\\",\\\"options\\\":[],\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\",\\\"helpText\\\"]}\",\"Default\":\"true\",\"Command\":null,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1736448712}],"Tags":[]},{"Id":11662,"Group":{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Beacon","Json":"{\"name\":\"Beacon\",\"default\":\"\",\"description\":null,\"type\":\"beacon\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":11662,\"Group\":{\"Id\":6577,\"Name\":\"Beacon List\",\"Json\":{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":10,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":true,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},\"Name\":\"Beacon\",\"Json\":\"{\\\"name\\\":\\\"Beacon\\\",\\\"default\\\":\\\"\\\",\\\"description\\\":null,\\\"type\\\":\\\"beacon\\\",\\\"suffix\\\":null,\\\"prefix\\\":null,\\\"min\\\":null,\\\"max\\\":null,\\\"futureOnly\\\":false,\\\"integerOnly\\\":false,\\\"isReadOnly\\\":false,\\\"isHidden\\\":false,\\\"minLength\\\":null,\\\"maxLength\\\":null,\\\"helpText\\\":\\\"Select beacon from the list\\\",\\\"options\\\":[],\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\",\\\"helpText\\\"]}\",\"Default\":\"\",\"Command\":null,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1736449672}],"Tags":[]},{"Id":11664,"Group":{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Enable Disable Speed Dial","Json":"{\"name\":\"Enable Disable Speed Dial\",\"default\":\"true\",\"description\":null,\"type\":\"enable\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"true","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11665,"Group":{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Speed Dial Number","Json":"{\"name\":\"Speed Dial Number\",\"default\":\"\",\"description\":null,\"type\":\"phone\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":11665,\"Group\":{\"Id\":6652,\"Name\":\"Speed Dial\",\"Json\":{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},\"Name\":\"Speed Dial Number\",\"Json\":\"{\\\"name\\\":\\\"Speed Dial Number\\\",\\\"default\\\":\\\"\\\",\\\"description\\\":null,\\\"type\\\":\\\"phone\\\",\\\"suffix\\\":null,\\\"prefix\\\":null,\\\"min\\\":null,\\\"max\\\":null,\\\"futureOnly\\\":false,\\\"integerOnly\\\":false,\\\"isReadOnly\\\":false,\\\"isHidden\\\":false,\\\"minLength\\\":null,\\\"maxLength\\\":null,\\\"helpText\\\":\\\"The number called when the Speed Dial button is pushed on the device\\\",\\\"options\\\":[],\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\",\\\"helpText\\\"]}\",\"Default\":\"\",\"Command\":null,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1736449551}],"Tags":[]},{"Id":11667,"Group":{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Speed Dial Number","Json":"{\"name\":\"Speed Dial Number\",\"default\":\"\",\"description\":\"Current Speed Dial Number\",\"type\":\"text\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":11667,\"Group\":{\"Id\":6653,\"Name\":\"Read Speed Dial Settings\",\"Json\":{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},\"Name\":\"Speed Dial Number\",\"Json\":\"{\\\"name\\\":\\\"Speed Dial Number\\\",\\\"default\\\":\\\"\\\",\\\"description\\\":\\\"Current Speed Dial Number\\\",\\\"type\\\":\\\"text\\\",\\\"suffix\\\":null,\\\"prefix\\\":null,\\\"min\\\":null,\\\"max\\\":null,\\\"futureOnly\\\":false,\\\"integerOnly\\\":false,\\\"isReadOnly\\\":true,\\\"isHidden\\\":false,\\\"minLength\\\":null,\\\"maxLength\\\":null,\\\"helpText\\\":\\\"The number called when the Speed Dial button is pushed on the device\\\",\\\"options\\\":[],\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\",\\\"helpText\\\"]}\",\"Default\":\"\",\"Command\":null,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1736448507}],"Tags":[]},{"Id":11666,"Group":{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Enable Disable Read Speed Dial Settings","Json":"{\"name\":\"Enable Disable Read Speed Dial Settings\",\"default\":\"\",\"description\":null,\"type\":\"enable\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"false","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11690,"Group":{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"SSID","Json":"{\"name\":\"SSID\",\"default\":\"\",\"description\":\"SSID\",\"type\":\"text\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":1,\"maxLength\":32,\"helpText\":null,\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"],\"order\":0}","Default":"","Command":null,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":11690,\"Group\":{\"Id\":6803,\"Name\":\"WiFi List\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":5,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":true,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},\"Name\":\"SSID\",\"Json\":\"{\\\"name\\\":\\\"SSID\\\",\\\"default\\\":\\\"\\\",\\\"description\\\":\\\"SSID\\\",\\\"type\\\":\\\"text\\\",\\\"suffix\\\":null,\\\"prefix\\\":null,\\\"min\\\":null,\\\"max\\\":null,\\\"futureOnly\\\":false,\\\"integerOnly\\\":false,\\\"isReadOnly\\\":false,\\\"isHidden\\\":false,\\\"minLength\\\":1,\\\"maxLength\\\":32,\\\"helpText\\\":\\\"Add service set identifier (name) of the WiFi network\\\",\\\"options\\\":[],\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\",\\\"helpText\\\"]}\",\"Default\":\"\",\"Command\":null,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1736449397}],"Tags":[]},{"Id":11691,"Group":{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"Password","Json":"{\"name\":\"Password\",\"default\":\"\",\"description\":\"Password\",\"type\":\"password\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":8,\"maxLength\":16,\"helpText\":null,\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"],\"order\":1}","Default":"","Command":null,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":11691,\"Group\":{\"Id\":6803,\"Name\":\"WiFi List\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":5,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":true,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},\"Name\":\"Password\",\"Json\":\"{\\\"name\\\":\\\"Password\\\",\\\"default\\\":\\\"\\\",\\\"description\\\":\\\"Password\\\",\\\"type\\\":\\\"password\\\",\\\"suffix\\\":null,\\\"prefix\\\":null,\\\"min\\\":null,\\\"max\\\":null,\\\"futureOnly\\\":false,\\\"integerOnly\\\":false,\\\"isReadOnly\\\":false,\\\"isHidden\\\":false,\\\"minLength\\\":8,\\\"maxLength\\\":16,\\\"helpText\\\":\\\"Add password of the WiFi network\\\",\\\"options\\\":[],\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\",\\\"helpText\\\"]}\",\"Default\":\"\",\"Command\":null,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1736449434}],"Tags":[]},{"Id":11692,"Group":{"Id":6820,"Name":"Read WiFi List","Json":{"description":"Read WiFi List","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6212,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6209,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6206,"Name":"Setup","Json":{"description":null,"columns":3,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6207,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6208,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6213,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6219,"Name":"Approved Contacts","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6746,"Name":"d2","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6747,"Name":"d1","Json":{"description":"Approved Contacts","columns":1,"order":3,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6774,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6775,"Name":"DG","Json":{"description":"Approved Contacts","columns":1,"order":1,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6805,"Name":"A2","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6806,"Name":"A3","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6861,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6862,"Name":"home","Json":{"description":"Approved Contacts","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6577,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6748,"Name":"t1","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6750,"Name":"t3","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6751,"Name":"t2","Json":{"description":null,"columns":1,"order":2,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6809,"Name":"B3","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":3},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6814,"Name":"B2","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6815,"Name":"B4","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6865,"Name":"home","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6652,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6217,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6803,"Name":"WiFi List","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6847,"Name":"w113","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6848,"Name":"w12","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6859,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6860,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6863,"Name":"Oysta Office","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6864,"Name":"Home","Json":{"description":"WiFi List","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":2},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":6253,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6214,"Name":"No Activity","Json":{"description":"No Activity","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6254,"Name":"Fall Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6256,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6259,"Name":"System Settings","Json":{"description":"System Settings","columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6268,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6210,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6653,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6216,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6296,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6297,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":6303,"Name":"Read Fall Settings","Json":{"description":"Read Fall Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":6305,"Name":"Read Non Movement Settings","Json":{"description":"Read Non Movement Settings","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":6334,"Name":"Read System Settings","Json":{"description":"Read System Settings","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"WiFi List","Json":"{\"name\":\"WiFi List\",\"default\":\"\",\"description\":\"Current WiFi List\",\"type\":\"text\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[{"Type":1,"NewValue":"{\"Id\":11692,\"Group\":{\"Id\":6820,\"Name\":\"Read WiFi List\",\"Json\":{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]},\"Parent\":null,\"Device\":null,\"DeviceRelated\":false,\"IsList\":false,\"IsAdminOnly\":false,\"Deleted\":false,\"Children\":[]},\"Name\":\"WiFi List\",\"Json\":\"{\\\"name\\\":\\\"WiFi List\\\",\\\"default\\\":\\\"\\\",\\\"description\\\":\\\"Current WiFi List\\\",\\\"type\\\":\\\"text\\\",\\\"suffix\\\":null,\\\"prefix\\\":null,\\\"min\\\":null,\\\"max\\\":null,\\\"futureOnly\\\":false,\\\"integerOnly\\\":false,\\\"isReadOnly\\\":true,\\\"isHidden\\\":false,\\\"minLength\\\":null,\\\"maxLength\\\":null,\\\"helpText\\\":\\\"SSID and password configurated in the device.\\\",\\\"options\\\":[],\\\"toTranslate\\\":[\\\"name\\\",\\\"description\\\",\\\"helpText\\\"]}\",\"Default\":\"\",\"Command\":null,\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1736448357}],"Tags":[]}],"ProtocolChanges":[{"Version":"0.2","UserName":"juanmi","Resource":"Command","Name":"getCurrentSettings2","Message":"(Update) (getCurrentSettings2) set parent command","Timestamp":1733390363},{"Version":"0.2","UserName":"juanmi","Resource":"Command","Name":"getCurrentSettings3","Message":"(Update) (getCurrentSettings3) set parent command","Timestamp":1733390414},{"Version":"0.2","UserName":"juanmi","Resource":"Command","Name":"getCurrentSettings4","Message":"(Update) (getCurrentSettings4) set parent command","Timestamp":1733390446},{"Version":"0.2","UserName":"juanmi","Resource":"Command","Name":"getCurrentSettings5","Message":"(Update) (getCurrentSettings5) set parent command","Timestamp":1733390475},{"Version":"0.2","UserName":"juanmi","Resource":"Protocol","Name":null,"Message":"set parent command to enable protocol import","Timestamp":1733390564},{"Version":"0.3","UserName":"juanmi","Resource":"Command","Name":"actionRealTimeLocation","Message":"(Update) (actionRealTimeLocation) Changed to Forced by SMS","Timestamp":1733954911},{"Version":"0.3","UserName":"juanmi","Resource":"Command","Name":"actionPowerOff","Message":"(Update) (actionPowerOff) changed to Forced by SMS","Timestamp":1733955031},{"Version":"0.3","UserName":"juanmi","Resource":"Command","Name":"actionFactoryReset","Message":"(Update) (actionFactoryReset) changed to Forced by SMS","Timestamp":1733955479},{"Version":"0.3","UserName":"juanmi","Resource":"Command","Name":"setGateway","Message":"(Update) (setGateway) changed to Forced by SMS","Timestamp":1733955599},{"Version":"0.3","UserName":"juanmi","Resource":"Command","Name":"actionDeviceReboot","Message":"(Update) (actionDeviceReboot) change to Forced by SMS","Timestamp":1734006832},{"Version":"0.3","UserName":"juanmi","Resource":"Protocol","Name":null,"Message":"Change some commands to Forced by SMS","Timestamp":1734021010},{"Version":"0.4","UserName":"juanmi","Resource":"Protocol","Name":null,"Message":"Pack again to test if import work","Timestamp":1734266064},{"Version":"0.5","UserName":"juanmi","Resource":"Operation","Name":"Access TEC Roam","Message":"(Update) (Access TEC Roam) Fix Read Enable Disable Speed Dial Settings","Timestamp":1734423608},{"Version":"0.5","UserName":"juanmi","Resource":"Operation","Name":"Access TEC Roam","Message":"(Update) (Access TEC Roam) fix read speed dial","Timestamp":1734424064},{"Version":"0.5","UserName":"juanmi","Resource":"Command","Name":"actionConfigurationMode","Message":"(Update) (actionConfigurationMode) When Config Mode is off, set HB to 240s.","Timestamp":1734458640},{"Version":"0.5","UserName":"juanmi","Resource":"Command","Name":"setPerformanceMode","Message":"(Update) (setPerformanceMode) Check params.Controls.ConfigurationMode on or off to set HB","Timestamp":1734459146},{"Version":"0.5","UserName":"juanmi","Resource":"Operation","Name":"Access TEC Roam","Message":"(Update) (Access TEC Roam) Get EnableDisableReadSpeedDialSettings (USER STORY 1485836)","Timestamp":1734461682},{"Version":"0.5","UserName":"juanmi","Resource":"Operation","Name":"Access TEC Roam","Message":"(Update) (Access TEC Roam) Fix Get Status Speed Dial (\nUSER STORY 1485836)","Timestamp":1734462462},{"Version":"0.5","UserName":"juanmi","Resource":"Operation","Name":"Access TEC Roam","Message":"(Update) (Access TEC Roam) continue last fix","Timestamp":1734463709},{"Version":"0.5","UserName":"juanmi","Resource":"Operation","Name":"Access TEC Roam","Message":"(Update) (Access TEC Roam) Remove prefix Ax in get Approved Numbers List (USER STORY 1485836)","Timestamp":1734463932},{"Version":"0.5","UserName":"juanmi","Resource":"Protocol","Name":null,"Message":"small fixes during Smoke Test. ConfigMode back to 240s, Get Speed Dial Status and Approved contacts list.","Timestamp":1734464663},{"Version":"0.6","UserName":"juanmi","Resource":"Operation","Name":"Access TEC Roam","Message":"(Update) (Access TEC Roam) modify case '21': // Speed Dial Settings","Timestamp":1734520814},{"Version":"0.6","UserName":"juanmi","Resource":"Operation","Name":"Access TEC Roam","Message":"(Update) (Access TEC Roam) Fix get key=2 case '21': // Speed Dial Settings","Timestamp":1734521810},{"Version":"0.6","UserName":"juanmi","Resource":"Operation","Name":"Access TEC Roam","Message":"(Update) (Access TEC Roam) Removed labels in Read Wifi and Beacons.","Timestamp":1734522292},{"Version":"0.6","UserName":"juanmi","Resource":"GroupParam","Name":"No Activity","Message":"(Update) (No Activity) Add noActivityInterval","Timestamp":1734525297},{"Version":"0.6","UserName":"Michael_Admin","Resource":"Command","Name":"actionFactoryReset","Message":"(Update) (actionFactoryReset) \tineedtoresetEV04!","Timestamp":1734595853},{"Version":"0.6","UserName":"juanmi","Resource":"Protocol","Name":null,"Message":"Small fixes for version 1.0 - SMS reset, get Speed dial settings, etc.","Timestamp":1734605686},{"Version":"0.7","UserName":"juanmi","Resource":"Command","Name":"setGateway","Message":"(Update) (setGateway) Assign gateway_number for SMS","Timestamp":1734622575},{"Version":"0.7","UserName":"juanmi","Resource":"Command","Name":"setGateway","Message":"(Update) (setGateway) doesn't accept SMS+ Untogle Call in SMS msg","Timestamp":1734632777},{"Version":"0.7","UserName":"juanmi","Resource":"Protocol","Name":null,"Message":"SetGateWat command : doesn't accept SMS+ Untogle Call in SMS msg","Timestamp":1736339136},{"Version":"0.8","UserName":"juanmi","Resource":"GroupParam","Name":"Enable Disable No Activity","Message":"(Update) (Enable Disable No Activity) add tag ActivateNoActivity","Timestamp":1736339464},{"Version":"0.8","UserName":"juanmi","Resource":"Group","Name":"Read WiFi List","Message":"(Update) (Read WiFi List) delete description","Timestamp":1736340151},{"Version":"0.8","UserName":"juanmi","Resource":"Group","Name":"Read Fall Settings","Message":"(Update) (Read Fall Settings) delete description","Timestamp":1736340245},{"Version":"0.8","UserName":"juanmi","Resource":"Group","Name":"Read Non Movement Settings","Message":"(Update) (Read Non Movement Settings) delete description","Timestamp":1736340275},{"Version":"0.8","UserName":"juanmi","Resource":"Group","Name":"Read System Settings","Message":"(Update) (Read System Settings) delete description","Timestamp":1736340297},{"Version":"0.8","UserName":"juanmi","Resource":"Group","Name":"WiFi List","Message":"(Update) (WiFi List) delete description","Timestamp":1736340361},{"Version":"0.8","UserName":"juanmi","Resource":"Group","Name":"Approved Contacts","Message":"(Update) (Approved Contacts) delete description","Timestamp":1736340390},{"Version":"0.8","UserName":"juanmi","Resource":"Group","Name":"No Activity","Message":"(Update) (No Activity) delete description","Timestamp":1736340470},{"Version":"0.8","UserName":"juanmi","Resource":"Group","Name":"System Settings","Message":"(Update) (System Settings) delete description","Timestamp":1736340526},{"Version":"0.8","UserName":"juanmi","Resource":"Group","Name":"Read Additional Settings","Message":"(Update) (Read Additional Settings) Reorder Groups","Timestamp":1736425387},{"Version":"0.8","UserName":"juanmi","Resource":"Group","Name":"Read Performance Settings","Message":"(Update) (Read Performance Settings) Reorder Groups","Timestamp":1736425391},{"Version":"0.8","UserName":"juanmi","Resource":"Group","Name":"Read Alert Settings","Message":"(Update) (Read Alert Settings) Reorder Groups","Timestamp":1736425512},{"Version":"0.8","UserName":"juanmi","Resource":"Group","Name":"Read Performance Settings","Message":"(Update) (Read Performance Settings) Reorder Groups","Timestamp":1736425516},{"Version":"0.8","UserName":"juanmi","Resource":"Group","Name":"Read Alert Settings","Message":"(Update) (Read Alert Settings) Reorder Groups","Timestamp":1736427634},{"Version":"0.8","UserName":"juanmi","Resource":"Group","Name":"Read Additional Settings","Message":"(Update) (Read Additional Settings) Reorder Groups","Timestamp":1736427637},{"Version":"0.8","UserName":"juanmi","Resource":"Group","Name":"Read Performance Settings","Message":"(Update) (Read Performance Settings) Reorder Groups","Timestamp":1736427677},{"Version":"0.8","UserName":"juanmi","Resource":"Group","Name":"Read Alert Settings","Message":"(Update) (Read Alert Settings) Reorder Groups","Timestamp":1736427684},{"Version":"0.8","UserName":"juanmi","Resource":"Group","Name":"Read Additional Settings","Message":"(Update) (Read Additional Settings) Reorder Groups","Timestamp":1736427688},{"Version":"0.8","UserName":"juanmi","Resource":"Group","Name":"Alert Settings","Message":"(Update) (Alert Settings) Reorder Groups","Timestamp":1736427728},{"Version":"0.8","UserName":"juanmi","Resource":"Group","Name":"Performance Settings","Message":"(Update) (Performance Settings) Reorder Groups","Timestamp":1736427733},{"Version":"0.8","UserName":"juanmi","Resource":"Group","Name":"Additional Settings","Message":"(Update) (Additional Settings) Reorder Groups","Timestamp":1736427737},{"Version":"0.8","UserName":"juanmi","Resource":"Group","Name":"System Settings","Message":"(Update) (System Settings) Reorder Groups","Timestamp":1736427742},{"Version":"0.8","UserName":"juanmi","Resource":"Group","Name":"Read Alert Settings","Message":"(Update) (Read Alert Settings) Reorder Groups","Timestamp":1736427923},{"Version":"0.8","UserName":"juanmi","Resource":"Group","Name":"Read Performance Settings","Message":"(Update) (Read Performance Settings) Reorder Groups","Timestamp":1736427926},{"Version":"0.8","UserName":"juanmi","Resource":"Group","Name":"Read Performance Settings","Message":"(Update) (Read Performance Settings) reorder","Timestamp":1736427938},{"Version":"0.8","UserName":"juanmi","Resource":"GroupParam","Name":"WiFi List","Message":"(Update) (WiFi List) add help text","Timestamp":1736448357},{"Version":"0.8","UserName":"juanmi","Resource":"GroupParam","Name":"Speed Dial Number","Message":"(Update) (Speed Dial Number) add help text","Timestamp":1736448507},{"Version":"0.8","UserName":"juanmi","Resource":"GroupParam","Name":"Allow List","Message":"(Update) (Allow List) add help text","Timestamp":1736448669},{"Version":"0.8","UserName":"juanmi","Resource":"GroupParam","Name":"Auto Answer","Message":"(Update) (Auto Answer) add help text","Timestamp":1736448712},{"Version":"0.8","UserName":"juanmi","Resource":"GroupParam","Name":"Volume","Message":"(Update) (Volume) add help text","Timestamp":1736448746},{"Version":"0.8","UserName":"juanmi","Resource":"GroupParam","Name":"APN","Message":"(Update) (APN) add help text","Timestamp":1736448942},{"Version":"0.8","UserName":"juanmi","Resource":"GroupParam","Name":"Server","Message":"(Update) (Server) add help text","Timestamp":1736449011},{"Version":"0.8","UserName":"juanmi","Resource":"GroupParam","Name":"SMS Gateway","Message":"(Update) (SMS Gateway) add help text","Timestamp":1736449062},{"Version":"0.8","UserName":"juanmi","Resource":"GroupParam","Name":"SSID","Message":"(Update) (SSID) add help text","Timestamp":1736449397},{"Version":"0.8","UserName":"juanmi","Resource":"GroupParam","Name":"Password","Message":"(Update) (Password) add help text","Timestamp":1736449434},{"Version":"0.8","UserName":"juanmi","Resource":"GroupParam","Name":"Speed Dial Number","Message":"(Update) (Speed Dial Number) add help text","Timestamp":1736449551},{"Version":"0.8","UserName":"juanmi","Resource":"GroupParam","Name":"Contact","Message":"(Update) (Contact) add help text","Timestamp":1736449634},{"Version":"0.8","UserName":"juanmi","Resource":"GroupParam","Name":"Beacon","Message":"(Update) (Beacon) add help text","Timestamp":1736449672},{"Version":"0.8","UserName":"juanmi","Resource":"Protocol","Name":null,"Message":"UI improvements: delete descriptions, reorder groups, add help texts","Timestamp":1736449827}],"ProtocolActionObjects":[],"Tags":[{"Id":2136,"Name":"OneCommandSender","BackendAction":"OneCommandSender","Value":"true"}]} |