From 073af431e98332df14cd739d7ddcf0d51f52f183 Mon Sep 17 00:00:00 2001 From: oysta_admin Date: Thu, 20 Feb 2025 19:01:55 +0000 Subject: [PATCH] (Update) (Home Beacon) remove command. this is only for read --- access-ps-sentry | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/access-ps-sentry b/access-ps-sentry index c4c1767..5c0f31d 100644 --- a/access-ps-sentry +++ b/access-ps-sentry @@ -1 +1 @@ -{"Id":253,"Name":null,"Description":null,"FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","InProgress":false,"MessageTypes":[{"Id":7797,"Code":"WSTP","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":2,"Template":"Sentry-WSTP;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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":"^Sentry-WSTP;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7796,"Code":"ALA-F","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":2,"Template":"Sentry-ALA-F;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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":"^Sentry-ALA-F;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7795,"Code":"ALA-W","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-ALA-W;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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":"^Sentry-ALA-W;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7794,"Code":"WTS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":2,"Template":"Sentry-WTS;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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":"^Sentry-WTS;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7702,"Code":"ACK-WELCHECK-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"{{welfare single<>|welfare off<>}}","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5586,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setCheckInOutWelfare","TemplateSMS":"<>","Template":"<>","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// setCheckInOutWelfare\r\n// Check In: AB 10 04 00 2F EC 03 00 04 02 43 01\r\n// Check Out: AB 10 04 00 0E FC 02 00 04 02 43 00\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar messageBody = '04';\r\nvar key = '43';\r\nvar keyLength = '02'\r\nvar value = '';\r\nvar dataSMS = '';\r\n// second version of the logic\r\nif ((params.ReadState.Charging == 'true') && (params.Welfare.Mode == '1')) {\r\n value += '00'; // '00' Check Out\r\n dataSMS = 'welfareoff';\r\n} else if ((params.ReadState.Charging == 'false') && (params.Welfare.Mode == '1')) {\r\n value += '01'; // '01' Check In\r\n dataSMS = 'checkin';\r\n}\r\n// manual check in and checkout\r\n/*\r\nif (params.Welfare.Check) {\r\n value += params.Welfare.Check ; // '00' Check Out '01' Check In\r\n dataSMS = 'checkin'; \r\n} else {\r\n value += '00'; // Default Check Out\r\n dataSMS = 'welfareoff'; \r\n} \r\n*/\r\nmessageBody += keyLength + key + value;\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar totalLength = '0400'\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":2,"Order":null},"CacheImei":false,"RegEx":"^(welfare single[^|]*|welfare off[^|]*)","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7701,"Code":"ACK-NEWWEL-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"{{Old welfare<>|New welfare<>}}","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5412,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setExtraEnableControl","TemplateSMS":"<>","Template":"<>","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// SMS newwelfare0: Disable the new welfare feature and switch to the old welfare. newwelfare1: Switch to the new welfare feature.\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar value = '';\r\nvar dataSMS = '';\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\n// 00000001000000000000000000001000\r\nvalue += '0000000';\r\nvalue += '1'; // Stop call sequence ON\r\nvalue += '00000000000000000000'; // other bits until 28\r\nif (params.Welfare.EnableDisableWelfare == 'false') {\r\n value += '0000'; // Force mode to old welfare amber \r\n dataSMS = 'newwelfare0';\r\n} else { // depends on the selection\r\n if (params.Welfare.Mode == '0') {\r\n value += '0000'; // old welfare amber\r\n dataSMS = 'newwelfare0';\r\n } else {\r\n value += '1000'; // new welfare cyclic // recurrent\r\n dataSMS = 'newwelfare1';\r\n }\r\n}\r\nvalue = reverseString(value);\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\nvar prefix = 'AB10' + '0700' + 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 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\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":5463,"Parent":{"Id":5463,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setWelfareCheck","TemplateSMS":"<>","Template":"<>","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// SMS version Example: Welfare1,600,120,1 Reply: Welfarealarm. Example: Welfare0 Reply: Welfarecheckoff. Welfare,,,\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar value = '';\r\nvar value2 = '';\r\nvar time;\r\nvar dataSMS = '';\r\n// [Time Out] - [Prealarm] must be >= 120 s.\r\nif (params.Welfare.EnableDisableWelfare == 'true') {\r\n // second version of the logic\r\n value += '1'; //Enable \r\n dataSMS = `Welfare1,${(params.Welfare.Timeout * 60)},${(params.Welfare.Prealarm * 60)},1`;\r\n // First version of the logic \r\n /* if ((params.ReadState.Charging == 'true') && (params.Welfare.Mode == '1')) {\r\n value += '0'; //Disable when device is charging (on the dock) and recurrent mode is selected\r\n dataSMS = 'Welfare0';\r\n } else {\r\n value += '1'; //Enable in the other options\r\n dataSMS = `Welfare1,${(params.Welfare.Timeout * 60)},${(params.Welfare.Prealarm * 60)},1`;\r\n } */\r\n} else {\r\n value += '0'; //Disable\r\n dataSMS = 'Welfare0';\r\n}\r\nif (params.Welfare.Timeout) {\r\n time = params.Welfare.Timeout * 60; //in seconds this is value in protocol\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\n//if (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 += '1'; // Enable Dial Warning Time\r\nif (params.Welfare.Prealarm) {\r\n if ((params.Welfare.Timeout - params.Welfare.Prealarm) >= 2) {\r\n time = params.Welfare.Prealarm * 60; //in seconds this is WarningTime in protocol\r\n value2 += ('0000000000000000000000000000000' + decimalToBinary(parseInt(time))).slice(-31);\r\n } else { // If the difference between them is less than 2 minutes, we fix Prealarm\r\n value2 += ('0000000000000000000000000000000' + decimalToBinary(parseInt((params.Welfare.Timeout - 2) * 60))).slice(-31);\r\n }\r\n} else {\r\n value2 += ('0000000000000000000000000000000' + decimalToBinary(parseInt(300))).slice(-31);\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\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\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":25},"HasAck":true,"HexString":true,"SendAttempts":2,"Order":26},"CacheImei":false,"RegEx":"^(Old welfare[^|]*|New welfare[^|]*)","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7700,"Code":"ACK-WELFARE-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Welfare<>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5463,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setWelfareCheck","TemplateSMS":"<>","Template":"<>","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// SMS version Example: Welfare1,600,120,1 Reply: Welfarealarm. Example: Welfare0 Reply: Welfarecheckoff. Welfare,,,\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar value = '';\r\nvar value2 = '';\r\nvar time;\r\nvar dataSMS = '';\r\n// [Time Out] - [Prealarm] must be >= 120 s.\r\nif (params.Welfare.EnableDisableWelfare == 'true') {\r\n // second version of the logic\r\n value += '1'; //Enable \r\n dataSMS = `Welfare1,${(params.Welfare.Timeout * 60)},${(params.Welfare.Prealarm * 60)},1`;\r\n // First version of the logic \r\n /* if ((params.ReadState.Charging == 'true') && (params.Welfare.Mode == '1')) {\r\n value += '0'; //Disable when device is charging (on the dock) and recurrent mode is selected\r\n dataSMS = 'Welfare0';\r\n } else {\r\n value += '1'; //Enable in the other options\r\n dataSMS = `Welfare1,${(params.Welfare.Timeout * 60)},${(params.Welfare.Prealarm * 60)},1`;\r\n } */\r\n} else {\r\n value += '0'; //Disable\r\n dataSMS = 'Welfare0';\r\n}\r\nif (params.Welfare.Timeout) {\r\n time = params.Welfare.Timeout * 60; //in seconds this is value in protocol\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\n//if (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 += '1'; // Enable Dial Warning Time\r\nif (params.Welfare.Prealarm) {\r\n if ((params.Welfare.Timeout - params.Welfare.Prealarm) >= 2) {\r\n time = params.Welfare.Prealarm * 60; //in seconds this is WarningTime in protocol\r\n value2 += ('0000000000000000000000000000000' + decimalToBinary(parseInt(time))).slice(-31);\r\n } else { // If the difference between them is less than 2 minutes, we fix Prealarm\r\n value2 += ('0000000000000000000000000000000' + decimalToBinary(parseInt((params.Welfare.Timeout - 2) * 60))).slice(-31);\r\n }\r\n} else {\r\n value2 += ('0000000000000000000000000000000' + decimalToBinary(parseInt(300))).slice(-31);\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\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\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":25},"CacheImei":false,"RegEx":"^Welfare[^e]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7681,"Code":"ALSOS-C","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-ALSOS-C;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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":"^Sentry-ALSOS-C;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7540,"Code":"ALA-C","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-ALA-C;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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":"^Sentry-ALA-C;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7680,"Code":"ALW","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-ALW;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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":"^Sentry-ALW;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7679,"Code":"WELFOK","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-WELFOK;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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":"^Sentry-WELFOK;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7513,"Code":"ALA","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-ALA;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;GENERAL=<>;<>","HasTemplateGlobal":false,"ResponseTemplate":"<>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-ALA;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7504,"Code":"F-ACK-Data Format Invalid","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB0003004BF3<>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":"^Sentry-ACK;[^;]*;AB0003004BF3[^ ]*7F0121","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7503,"Code":"ACK-Out Of Service","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB0003005BF1<>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":"^Sentry-ACK;[^;]*;AB0003005BF1[^ ]*7F0130","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7556,"Code":"ACK-NOMOTION","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry;ACK-NOMOTION;<>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5480,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getNoMotionAlert","TemplateSMS":"","Template":"<>","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":"^Sentry;ACK-NOMOTION;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7562,"Code":"ACK-GSRV","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry;ACK-GSRV;<>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5469,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getServer","TemplateSMS":null,"Template":"<>","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":"^Sentry;ACK-GSRV;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7563,"Code":"ACK-GAPN","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry;ACK-GAPN;<>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5465,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getAPN","TemplateSMS":null,"Template":"<>","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":"^Sentry;ACK-GAPN;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7560,"Code":"ACK-FIRM","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry;ACK-FIRM;<>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5483,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getFirmwareVersion","TemplateSMS":"<>","Template":"<>","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":"^Sentry;ACK-FIRM;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7557,"Code":"ACK-CUSTID","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry;ACK-CUSTID;<>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5481,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCustomId","TemplateSMS":"","Template":"<>","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":"^Sentry;ACK-CUSTID;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7582,"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":5407,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"actionDeviceReboot","TemplateSMS":"<>","Template":"<>","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":2,"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":7581,"Code":"ACK-FALLSENS-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Mode:<>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5451,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings2","TemplateSMS":"<>","Template":"<>","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":5452,"Parent":{"Id":5452,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings","TemplateSMS":"<>","Template":"<>","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 = '47214A1A3440414243567355571F445310333075';\r\n/* \r\n47 Get device or custom id \r\n21 SpeedDial\r\n4A Wifi Network\r\n1A Firmware Long\r\n34 Contacts\r\n40 APN\r\n41 APNusername\r\n42 APNpass\r\n43 server details\r\n56 fall sensitivity\r\n73 Beacon List\r\n55 Tilt Angle Alert\r\n57 Welfare\r\n1F System language\r\n44 time interval\r\n53 No motion alert\r\n10 Ring tome vol\r\n33 allow list\r\n30 Emergency numbers\r\n75 Extra */\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '15';\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' + '1700' + 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},"HasAck":true,"HexString":true,"SendAttempts":4,"Order":18},"CacheImei":false,"RegEx":"^Mode:[^:]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7580,"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: }}<>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5462,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"actionRequestLocation","TemplateSMS":null,"Template":"<>","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":7579,"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":5461,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setSMSPrefix","TemplateSMS":null,"Template":"<>","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":7578,"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":5460,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"actionFactoryReset","TemplateSMS":"<>","Template":"<>","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}","AvoidResending":false,"FollowParentSentType":false,"SendingType":2,"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":7577,"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":5459,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"actionDeleteRecords","TemplateSMS":"<>","Template":"<>","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":7576,"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":5458,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"actionPowerOff","TemplateSMS":"<>","Template":"<>","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":2,"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":7575,"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":5457,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"actionTrace","TemplateSMS":"<>","Template":"<>","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":7574,"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":5466,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"actionRealTimeLocation","TemplateSMS":"<>","Template":"<>","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":2,"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":7573,"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":5464,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setAPN","TemplateSMS":"<>","Template":"<>","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":7572,"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":5456,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setFallSettings","TemplateSMS":"<>","Template":"<>","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) Man Down Settings Sensitivity\r\n//var messageBody = '02';\r\nvar sensitivity = '';\r\nvar dataSMS = '';\r\nvar value = '';\r\nif (params.ManDownSettings.EnableDisableManDownSettings == 'true') {\r\n value += '1';\r\n value += '100'; //Dial\r\n //}\r\n if (params.ManDownSettings.Sensitivity) {\r\n var sensiString = params.ManDownSettings.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":7571,"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":5454,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setGateway","TemplateSMS":"<>","Template":"<>","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}","AvoidResending":false,"FollowParentSentType":false,"SendingType":2,"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":7570,"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":5453,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setServer","TemplateSMS":"<>","Template":"<>","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":7569,"Code":"ACK-FIRM-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"IMEI:<>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5452,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings","TemplateSMS":"<>","Template":"<>","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 = '47214A1A3440414243567355571F445310333075';\r\n/* \r\n47 Get device or custom id \r\n21 SpeedDial\r\n4A Wifi Network\r\n1A Firmware Long\r\n34 Contacts\r\n40 APN\r\n41 APNusername\r\n42 APNpass\r\n43 server details\r\n56 fall sensitivity\r\n73 Beacon List\r\n55 Tilt Angle Alert\r\n57 Welfare\r\n1F System language\r\n44 time interval\r\n53 No motion alert\r\n10 Ring tome vol\r\n33 allow list\r\n30 Emergency numbers\r\n75 Extra */\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '15';\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' + '1700' + 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":7568,"Code":"ACK-GDATA","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry;ACK-GDATA;<>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5452,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings","TemplateSMS":"<>","Template":"<>","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 = '47214A1A3440414243567355571F445310333075';\r\n/* \r\n47 Get device or custom id \r\n21 SpeedDial\r\n4A Wifi Network\r\n1A Firmware Long\r\n34 Contacts\r\n40 APN\r\n41 APNusername\r\n42 APNpass\r\n43 server details\r\n56 fall sensitivity\r\n73 Beacon List\r\n55 Tilt Angle Alert\r\n57 Welfare\r\n1F System language\r\n44 time interval\r\n53 No motion alert\r\n10 Ring tome vol\r\n33 allow list\r\n30 Emergency numbers\r\n75 Extra */\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '15';\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' + '1700' + 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":"^Sentry;ACK-GDATA;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7567,"Code":"ACK-BEAC-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"1,<>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5450,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings3","TemplateSMS":"<>","Template":"<>","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":5452,"Parent":{"Id":5452,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings","TemplateSMS":"<>","Template":"<>","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 = '47214A1A3440414243567355571F445310333075';\r\n/* \r\n47 Get device or custom id \r\n21 SpeedDial\r\n4A Wifi Network\r\n1A Firmware Long\r\n34 Contacts\r\n40 APN\r\n41 APNusername\r\n42 APNpass\r\n43 server details\r\n56 fall sensitivity\r\n73 Beacon List\r\n55 Tilt Angle Alert\r\n57 Welfare\r\n1F System language\r\n44 time interval\r\n53 No motion alert\r\n10 Ring tome vol\r\n33 allow list\r\n30 Emergency numbers\r\n75 Extra */\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '15';\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' + '1700' + 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},"HasAck":true,"HexString":true,"SendAttempts":4,"Order":19},"CacheImei":false,"RegEx":"^1,[^,]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7566,"Code":"ACK-CONTAC-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"A1:<>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5449,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings4","TemplateSMS":"<>","Template":"<>","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":5452,"Parent":{"Id":5452,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings","TemplateSMS":"<>","Template":"<>","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 = '47214A1A3440414243567355571F445310333075';\r\n/* \r\n47 Get device or custom id \r\n21 SpeedDial\r\n4A Wifi Network\r\n1A Firmware Long\r\n34 Contacts\r\n40 APN\r\n41 APNusername\r\n42 APNpass\r\n43 server details\r\n56 fall sensitivity\r\n73 Beacon List\r\n55 Tilt Angle Alert\r\n57 Welfare\r\n1F System language\r\n44 time interval\r\n53 No motion alert\r\n10 Ring tome vol\r\n33 allow list\r\n30 Emergency numbers\r\n75 Extra */\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '15';\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' + '1700' + 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},"HasAck":true,"HexString":true,"SendAttempts":4,"Order":20},"CacheImei":false,"RegEx":"^A1:[^:]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7565,"Code":"ACK-SERV-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"GRPS:<>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5448,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings5","TemplateSMS":"<>","Template":"<>","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":5452,"Parent":{"Id":5452,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings","TemplateSMS":"<>","Template":"<>","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 = '47214A1A3440414243567355571F445310333075';\r\n/* \r\n47 Get device or custom id \r\n21 SpeedDial\r\n4A Wifi Network\r\n1A Firmware Long\r\n34 Contacts\r\n40 APN\r\n41 APNusername\r\n42 APNpass\r\n43 server details\r\n56 fall sensitivity\r\n73 Beacon List\r\n55 Tilt Angle Alert\r\n57 Welfare\r\n1F System language\r\n44 time interval\r\n53 No motion alert\r\n10 Ring tome vol\r\n33 allow list\r\n30 Emergency numbers\r\n75 Extra */\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '15';\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' + '1700' + 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},"HasAck":true,"HexString":true,"SendAttempts":4,"Order":21},"CacheImei":false,"RegEx":"^GRPS:[^:]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7564,"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":5455,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setEmergencySettings","TemplateSMS":"<>","Template":"<>","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 = '10'; // Enable, no SMS,\r\nif (params.AlertSettings.ReportMode) { // Toggle Call\r\n confSOS += params.AlertSettings.ReportMode;\r\n}\r\nconfSOS += '00000'; // 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,';\r\n dataSMS += params.AlertSettings.ReportMode; // Toggle Call\r\n dataSMS += `,${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":7561,"Code":"ACK-HB-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Set heart beat<>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5467,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"actionConfigurationMode","TemplateSMS":null,"Template":"<>","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}","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":7559,"Code":"ACK-LANG","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry;ACK-LANG;<>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5485,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getSystemLanguage","TemplateSMS":"<>","Template":"<>","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":"^Sentry;ACK-LANG;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7558,"Code":"ACK-MODE","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry;ACK-MODE;<>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5482,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getPerformanceMode","TemplateSMS":"","Template":"<>","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":"^Sentry;ACK-MODE;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7555,"Code":"ACK-FALLALERT","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry;ACK-FALLALERT;<>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5479,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getFallDownAlert","TemplateSMS":"","Template":"<>","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":"^Sentry;ACK-FALLALERT;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7554,"Code":"ACK-VOL","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry;ACK-VOL;<>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5478,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getVolume","TemplateSMS":null,"Template":"<>","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":"^Sentry;ACK-VOL;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7553,"Code":"PWRN","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-PWRN;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;GENERAL=<>;<>","HasTemplateGlobal":false,"ResponseTemplate":"<>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-PWRN;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7552,"Code":"ALF","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-ALF;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;GENERAL=<>;<>","HasTemplateGlobal":false,"ResponseTemplate":"<>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-ALF;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7551,"Code":"ACK-SPEED","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry;ACK-SPEED;<>;","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":"^Sentry;ACK-SPEED;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7550,"Code":"ACK-WIFI","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry;ACK-WIFI;<>;","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":"^Sentry;ACK-WIFI;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7549,"Code":"BATCF","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-BATCF;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;GENERAL=<>;<>","HasTemplateGlobal":false,"ResponseTemplate":"<>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-BATCF;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7548,"Code":"BATCN","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-BATCN;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;GENERAL=<>;<>","HasTemplateGlobal":false,"ResponseTemplate":"<>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-BATCN;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7547,"Code":"COMM-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-SMS;<>;<>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":"esendex<>esendex<>","LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-SMS;[^;]*;[^;]*","RegExGlobal":"^esendex[^e]*esendex[^x]*","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7546,"Code":"NACT","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"+RESP:NACT,<>,<>$","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":7545,"Code":"ALA-O","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-ALA-O;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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":"^Sentry-ALA-O;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7544,"Code":"ENC-2","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"","HasTemplateGlobal":true,"ResponseTemplate":"<>","TemplateGlobal":"AB00<>","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":7543,"Code":"RTL-BEACON","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Beacon:Loc Time: <>","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":7542,"Code":"HRT","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-HRT;<>;STATUS=<>;ETIME=<>;GENERAL=<>;<>;HRT=<>;TLEVEL=<>;LABEL=<>","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":"^Sentry-HRT;[^;]*;STATUS=[^;;]*;ETIME=[^;;]*;GENERAL=[^;;]*;[^;;]*;HRT=[^;;]*;TLEVEL=[^;;]*;LABEL=[^=]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7541,"Code":"PWRF","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-PWRF;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;GENERAL=<>;<>","HasTemplateGlobal":false,"ResponseTemplate":"<>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-PWRF;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7539,"Code":"ENC","Name":null,"MessageCode":null,"NeedAck":true,"IsAck":false,"IsFailAck":false,"IsAckHexString":true,"NoOperation":false,"Type":0,"Template":"","HasTemplateGlobal":true,"ResponseTemplate":"<>","TemplateGlobal":"AB10<>","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":7538,"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: <>","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":7537,"Code":"COMM-GT","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Eview;<>;<>;Get timestamp","HasTemplateGlobal":false,"ResponseTemplate":"<>","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":7536,"Code":"F-ACK-Version Invalid","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB00030018C5<>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":"^Sentry-ACK;[^;]*;AB00030018C5[^ ]*7F0111","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7535,"Code":"F-ACK-Key Invalid","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB000300FFB5<>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":"^Sentry-ACK;[^;]*;AB000300FFB5[^ ]*7F0116","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7534,"Code":"F-ACK-Encryption Invalid","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB0003007BF5<>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":"^Sentry-ACK;[^;]*;AB0003007BF5[^ ]*7F0112","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7533,"Code":"F-ACK-Checksum Error","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB000300BD95<>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":"^Sentry-ACK;[^;]*;AB000300BD95[^ ]*7F0114","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7532,"Code":"F-ACK-BLE Password","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB000300CC8F<>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":"^Sentry-ACK;[^;]*;AB000300CC8F[^7;]*7F0140","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7531,"Code":"F-ACK-Address Resp","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB0003006262<>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":"^Sentry-ACK;[^;]*;AB0003006262[^ ]*7F0128","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7530,"Code":"ACK-global","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB00030008C7<>7F0100","HasTemplateGlobal":false,"ResponseTemplate":"<>","TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-ACK;[^;]*;AB00030008C7[^ ]*7F0100","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7529,"Code":"F-ACK-Invalid Parameter","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB000300EEA3<>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":"^Sentry-ACK;[^;]*;AB000300EEA3[^ ]*7F0124","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7528,"Code":"F-ACK-Length Error","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB0003005AE5<>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":"^Sentry-ACK;[^;]*;AB0003005AE5[^ ]*7F0113","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7527,"Code":"ALF-C","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-ALF-C;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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":"^Sentry-ALF-C;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7526,"Code":"ALNM","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-ALNM;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;GENERAL=<>;<>","HasTemplateGlobal":false,"ResponseTemplate":"<>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-ALNM;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7525,"Code":"ALSP","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-ALSP;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;GENERAL=<>;<>","HasTemplateGlobal":false,"ResponseTemplate":"<>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-ALSP;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7524,"Code":"RTL","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-RTL;<>;<>;<>;<>;<>;<>;<>;<>;<>;","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":"^Sentry-RTL;[^;]*;[^;;]*;[^;;]*;[^;;]*;[^;;]*;[^;;]*;[^;;]*;[^;;]*;[^;;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7523,"Code":"ALA-S","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-ALA-S;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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":"^Sentry-ALA-S;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7522,"Code":"STP","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-STP;<>;STATUS=<>;ETIME=<>;GENERAL=<>;<>;STP=<>;LABEL=<>","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":"^Sentry-STP;[^;]*;STATUS=[^;;]*;ETIME=[^;;]*;GENERAL=[^;;]*;[^;;]*;STP=[^;;]*;LABEL=[^=]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7521,"Code":"BATL","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-BATL;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;GENERAL=<>;<>","HasTemplateGlobal":false,"ResponseTemplate":"<>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-BATL;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7520,"Code":"BATF","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-BATF;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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":"^Sentry-BATF;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7519,"Code":"ALMOV","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-ALMOV;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;GENERAL=<>;<>","HasTemplateGlobal":false,"ResponseTemplate":"<>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-ALMOV;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7518,"Code":"ALSOS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-ALSOS;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;GENERAL=<>;<>","HasTemplateGlobal":false,"ResponseTemplate":"<>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-ALSOS;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7517,"Code":"F-ACK-No Memory","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB000300CFB3<>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":"^Sentry-ACK;[^;]*;AB000300CFB3[^ ]*7F0125","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7516,"Code":"CHK","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Eview-HTB;<>;STATUS=<>;TIME=<>;BATP=<>;SIGNAL=<>;WM=<>;GENERAL=<>","HasTemplateGlobal":false,"ResponseTemplate":"<>","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":7515,"Code":"CYC","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-CYC;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;SIGNAL=<>;WM=<>;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":"^Sentry-CYC;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;SIGNAL=[^;;]*;WM=[^;;]*;GENERAL=[^=]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7514,"Code":"Alert Finalized","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-SOSEnding;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;GENERAL=<>;<>","HasTemplateGlobal":false,"ResponseTemplate":"<>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-SOSEnding;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7512,"Code":"F-ACK-Invalid State","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB00030009D3<>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":"^Sentry-ACK;[^;]*;AB00030009D3[^ ]*7F0123","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7511,"Code":"F-ACK-SubFunction Not Supported","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB000300AC83<>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":"^Sentry-ACK;[^;]*;AB000300AC83[^ ]*7F0126","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7510,"Code":"CHK-ASSO","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Eview-ASSOCIATE;<>;<>;","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":7509,"Code":"F-ACK-Data Size Error","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB00030028C3<>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":"^Sentry-ACK;[^;]*;AB00030028C3[^ ]*7F0122","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7508,"Code":"ZNI","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"+RESP:ZIN,<>,<>,<>,<>,<>,<>,<>,<>$","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":7507,"Code":"F-ACK-GPS Is Not Ready","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB0003008D93<>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":"^Sentry-ACK;[^;]*;AB0003008D93[^ ]*7F0127","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7506,"Code":"ZNO","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"+RESP:ZOUT,<>,<>,<>,<>,<>,<>,<>,<>$","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":7505,"Code":"F-ACK-Key Length Error","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB000300DEA5<>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":"^Sentry-ACK;[^;]*;AB000300DEA5[^ ]*7F0117","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7502,"Code":"F-ACK-Command Invalid","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB0003009C85<>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":"^Sentry-ACK;[^;]*;AB0003009C85[^ ]*7F0115","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]}],"Commands":[{"Id":5467,"Name":"actionConfigurationMode","TemplateSMS":null,"Template":"<>","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":[]},{"Id":5412,"Name":"setExtraEnableControl","TemplateSMS":"<>","Template":"<>","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// SMS newwelfare0: Disable the new welfare feature and switch to the old welfare. newwelfare1: Switch to the new welfare feature.\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar value = '';\r\nvar dataSMS = '';\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\n// 00000001000000000000000000001000\r\nvalue += '0000000';\r\nvalue += '1'; // Stop call sequence ON\r\nvalue += '00000000000000000000'; // other bits until 28\r\nif (params.Welfare.EnableDisableWelfare == 'false') {\r\n value += '0000'; // Force mode to old welfare amber \r\n dataSMS = 'newwelfare0';\r\n} else { // depends on the selection\r\n if (params.Welfare.Mode == '0') {\r\n value += '0000'; // old welfare amber\r\n dataSMS = 'newwelfare0';\r\n } else {\r\n value += '1000'; // new welfare cyclic // recurrent\r\n dataSMS = 'newwelfare1';\r\n }\r\n}\r\nvalue = reverseString(value);\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\nvar prefix = 'AB10' + '0700' + 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 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\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":5463,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setWelfareCheck","TemplateSMS":"<>","Template":"<>","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// SMS version Example: Welfare1,600,120,1 Reply: Welfarealarm. Example: Welfare0 Reply: Welfarecheckoff. Welfare,,,\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar value = '';\r\nvar value2 = '';\r\nvar time;\r\nvar dataSMS = '';\r\n// [Time Out] - [Prealarm] must be >= 120 s.\r\nif (params.Welfare.EnableDisableWelfare == 'true') {\r\n // second version of the logic\r\n value += '1'; //Enable \r\n dataSMS = `Welfare1,${(params.Welfare.Timeout * 60)},${(params.Welfare.Prealarm * 60)},1`;\r\n // First version of the logic \r\n /* if ((params.ReadState.Charging == 'true') && (params.Welfare.Mode == '1')) {\r\n value += '0'; //Disable when device is charging (on the dock) and recurrent mode is selected\r\n dataSMS = 'Welfare0';\r\n } else {\r\n value += '1'; //Enable in the other options\r\n dataSMS = `Welfare1,${(params.Welfare.Timeout * 60)},${(params.Welfare.Prealarm * 60)},1`;\r\n } */\r\n} else {\r\n value += '0'; //Disable\r\n dataSMS = 'Welfare0';\r\n}\r\nif (params.Welfare.Timeout) {\r\n time = params.Welfare.Timeout * 60; //in seconds this is value in protocol\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\n//if (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 += '1'; // Enable Dial Warning Time\r\nif (params.Welfare.Prealarm) {\r\n if ((params.Welfare.Timeout - params.Welfare.Prealarm) >= 2) {\r\n time = params.Welfare.Prealarm * 60; //in seconds this is WarningTime in protocol\r\n value2 += ('0000000000000000000000000000000' + decimalToBinary(parseInt(time))).slice(-31);\r\n } else { // If the difference between them is less than 2 minutes, we fix Prealarm\r\n value2 += ('0000000000000000000000000000000' + decimalToBinary(parseInt((params.Welfare.Timeout - 2) * 60))).slice(-31);\r\n }\r\n} else {\r\n value2 += ('0000000000000000000000000000000' + decimalToBinary(parseInt(300))).slice(-31);\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\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\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":25},"AvoidResending":false,"FollowParentSentType":true,"SendingType":0,"HasAck":true,"HexString":true,"Order":26,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":5586,"Name":"setCheckInOutWelfare","TemplateSMS":"<>","Template":"<>","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// setCheckInOutWelfare\r\n// Check In: AB 10 04 00 2F EC 03 00 04 02 43 01\r\n// Check Out: AB 10 04 00 0E FC 02 00 04 02 43 00\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar messageBody = '04';\r\nvar key = '43';\r\nvar keyLength = '02'\r\nvar value = '';\r\nvar dataSMS = '';\r\n// second version of the logic\r\nif ((params.ReadState.Charging == 'true') && (params.Welfare.Mode == '1')) {\r\n value += '00'; // '00' Check Out\r\n dataSMS = 'welfareoff';\r\n} else if ((params.ReadState.Charging == 'false') && (params.Welfare.Mode == '1')) {\r\n value += '01'; // '01' Check In\r\n dataSMS = 'checkin';\r\n}\r\n// manual check in and checkout\r\n/*\r\nif (params.Welfare.Check) {\r\n value += params.Welfare.Check ; // '00' Check Out '01' Check In\r\n dataSMS = 'checkin'; \r\n} else {\r\n value += '00'; // Default Check Out\r\n dataSMS = 'welfareoff'; \r\n} \r\n*/\r\nmessageBody += keyLength + key + value;\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar totalLength = '0400'\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":null,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":5485,"Name":"getSystemLanguage","TemplateSMS":"<>","Template":"<>","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":5429,"Name":"setSystemSettings","TemplateSMS":null,"Template":"<>","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":5456,"Name":"setFallSettings","TemplateSMS":"<>","Template":"<>","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) Man Down Settings Sensitivity\r\n//var messageBody = '02';\r\nvar sensitivity = '';\r\nvar dataSMS = '';\r\nvar value = '';\r\nif (params.ManDownSettings.EnableDisableManDownSettings == 'true') {\r\n value += '1';\r\n value += '100'; //Dial\r\n //}\r\n if (params.ManDownSettings.Sensitivity) {\r\n var sensiString = params.ManDownSettings.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":5452,"Name":"getCurrentSettings","TemplateSMS":"<>","Template":"<>","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 = '47214A1A3440414243567355571F445310333075';\r\n/* \r\n47 Get device or custom id \r\n21 SpeedDial\r\n4A Wifi Network\r\n1A Firmware Long\r\n34 Contacts\r\n40 APN\r\n41 APNusername\r\n42 APNpass\r\n43 server details\r\n56 fall sensitivity\r\n73 Beacon List\r\n55 Tilt Angle Alert\r\n57 Welfare\r\n1F System language\r\n44 time interval\r\n53 No motion alert\r\n10 Ring tome vol\r\n33 allow list\r\n30 Emergency numbers\r\n75 Extra */\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '15';\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' + '1700' + 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":5477,"Name":"setSpeedDialNumber","TemplateSMS":null,"Template":"<>","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":5437,"Name":"setPerformanceMode","TemplateSMS":"<>","Template":"<>","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":[]},{"Id":5455,"Name":"setEmergencySettings","TemplateSMS":"<>","Template":"<>","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 = '10'; // Enable, no SMS,\r\nif (params.AlertSettings.ReportMode) { // Toggle Call\r\n confSOS += params.AlertSettings.ReportMode;\r\n}\r\nconfSOS += '00000'; // 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,';\r\n dataSMS += params.AlertSettings.ReportMode; // Toggle Call\r\n dataSMS += `,${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":5488,"Name":"setTiltAngle","TemplateSMS":"<>","Template":"<>","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//var params = {ManDownSettings:{'EnableDisableManDownSettings':'false','TiltAngle':'50'}}\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = []; //tilt1,45,30s,1\r\n// configuration command (0X02) Tilt Alert\r\n//var angle = ('00000000' + decimalToBinary(parseInt(45))).slice(-8).toUpperCase(); // 45 degrees default\r\n//var time = ('0000000000000000' + decimalToBinary(parseInt(30))).slice(-16).toUpperCase(); // 30 seconds default\r\nvar angle = '';\r\nvar time = '';\r\nvar value = '';\r\nvar dataSMS = '';\r\nif (params.ManDownSettings.EnableDisableManDownSettings == 'true') { //man down alert on\r\n if (params.ManDownSettings.TiltAngle != '0') { // Angle is not OFF\r\n if (params.ManDownSettings.TiltTimeout) {\r\n time = ('0000' + decimalToHex(parseInt(params.ManDownSettings.TiltTimeout))).slice(-4).toUpperCase();\r\n time = changeEndianness(time);\r\n }\r\n if (params.ManDownSettings.TiltAngle) {\r\n angle = ('00000000' + decimalToBinary(parseInt(params.ManDownSettings.TiltAngle))).slice(-8).toUpperCase();\r\n angle += '11'; //Enable an Dial\r\n angle += '000000'; //reserved\r\n angle = ('0000' + binaryToHex(angle)).slice(-4).toUpperCase();\r\n }\r\n // For GPRS\r\n value += time + angle;\r\n // For SMS\r\n dataSMS = `tilt1,${parseInt(params.ManDownSettings.TiltAngle)},${parseInt(params.ManDownSettings.TiltTimeout)}s,1`; // {\"angle\":angle,\"time\":30,\"status\":1,\"dial\":1}\r\n } else { // Angle is OFF\r\n if (params.ManDownSettings.TiltTimeout) {\r\n time = ('0000' + decimalToHex(parseInt(params.ManDownSettings.TiltTimeout))).slice(-4).toUpperCase();\r\n time = changeEndianness(time);\r\n }\r\n value += time + '1E00'; // {\"angle\":30,\"time\":time,\"status\":0,\"dial\":0}\r\n dataSMS = `tilt0,30,${parseInt(params.ManDownSettings.TiltTimeout)}s,0`; //ACK is Set tilt alarm 30 degrees ok.\r\n }\r\n // mandown alert off\r\n} else {\r\n if (params.ManDownSettings.TiltTimeout) {\r\n time = ('0000' + decimalToHex(parseInt(params.ManDownSettings.TiltTimeout))).slice(-4).toUpperCase();\r\n time = changeEndianness(time);\r\n }\r\n value += time + '1E00'; // {\"angle\":30,\"time\":time,\"status\":0,\"dial\":0}\r\n dataSMS = `tilt0,30,${parseInt(params.ManDownSettings.TiltTimeout)}s,0`; //ACK is Set tilt alarm 30 degrees ok.\r\n}\r\n// create HEADER\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '05';\r\nvar key = '55';\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' + '0700' + 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":5434,"Name":"setFallSensitivitybySMS","TemplateSMS":"<>","Template":"<>","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":5435,"Name":"setOverSpeedAlert","TemplateSMS":null,"Template":"<>","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":5468,"Name":"setSOSNumber","TemplateSMS":null,"Template":"<>","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":5469,"Name":"getServer","TemplateSMS":null,"Template":"<>","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":5470,"Name":"setMicVolume","TemplateSMS":null,"Template":"<>","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":5471,"Name":"setPowerAlert","TemplateSMS":null,"Template":"<>","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":5472,"Name":"actionInitializeMileage","TemplateSMS":null,"Template":"<>","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":5473,"Name":"setAuthorisedNumbers","TemplateSMS":"","Template":"<>","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":5474,"Name":"actionFindDevice","TemplateSMS":"<>","Template":"<>","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":5475,"Name":"setWifiSettings","TemplateSMS":"<>","Template":"<>","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":5476,"Name":"getSystemSettings","TemplateSMS":"<>","Template":"<>","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":5478,"Name":"getVolume","TemplateSMS":null,"Template":"<>","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":5479,"Name":"getFallDownAlert","TemplateSMS":"","Template":"<>","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":5432,"Name":"setEmergencyNumberbySMS","TemplateSMS":"<>","Template":"<>","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":5480,"Name":"getNoMotionAlert","TemplateSMS":"","Template":"<>","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":5481,"Name":"getCustomId","TemplateSMS":"","Template":"<>","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":5407,"Name":"actionDeviceReboot","TemplateSMS":"<>","Template":"<>","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":[]},{"Id":5408,"Name":"setSOSOption","TemplateSMS":null,"Template":"<>","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":5409,"Name":"setSpeedDialSettings","TemplateSMS":null,"Template":"<>","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":5410,"Name":"setOystaNumber","TemplateSMS":null,"Template":"<>","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":5411,"Name":"setSMSPassword","TemplateSMS":null,"Template":"<>","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":5413,"Name":"setHeartRateDetectingInterval","TemplateSMS":null,"Template":"<>","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":5414,"Name":"setFallDownAlert","TemplateSMS":null,"Template":"<>","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":5415,"Name":"setSOSButtonSettings","TemplateSMS":null,"Template":"<>","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":5416,"Name":"setEnableControl","TemplateSMS":null,"Template":"<>","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":5417,"Name":"setVoicePromptVolume","TemplateSMS":null,"Template":"<>","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":5418,"Name":"setAlarmClock4","TemplateSMS":null,"Template":"<>","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":5419,"Name":"setAlarmClock3","TemplateSMS":null,"Template":"<>","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":5420,"Name":"setAlarmClock2","TemplateSMS":null,"Template":"<>","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":5421,"Name":"setCustom ID","TemplateSMS":null,"Template":"<>","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":5422,"Name":"setHomeBeacon","TemplateSMS":"<>","Template":"<>","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":5423,"Name":"setSystemLanguage","TemplateSMS":"<>","Template":"<>","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":5424,"Name":"setNoMotionAlert","TemplateSMS":null,"Template":"<>","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":5425,"Name":"setContinuousLocate","TemplateSMS":null,"Template":"<>","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":5426,"Name":"setStepCollectSettings","TemplateSMS":null,"Template":"<>","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":5427,"Name":"setSMSGatewayNumber","TemplateSMS":null,"Template":"<>","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":5428,"Name":"getHomeBeacon","TemplateSMS":null,"Template":"<>","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":5430,"Name":"getAuthorisedNumbers","TemplateSMS":null,"Template":"<>","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":5431,"Name":"setServerSMS","TemplateSMS":"<>","Template":"<>","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":5482,"Name":"getPerformanceMode","TemplateSMS":"","Template":"<>","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":5483,"Name":"getFirmwareVersion","TemplateSMS":"<>","Template":"<>","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":5436,"Name":"setAPNSMS","TemplateSMS":"<>","Template":"<>","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":5438,"Name":"setAlarmClock1","TemplateSMS":null,"Template":"<>","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":5439,"Name":"setSpeakerVolume","TemplateSMS":null,"Template":"<>","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":5440,"Name":"setNoDisturb","TemplateSMS":null,"Template":"<>","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":5441,"Name":"setMotionAlert","TemplateSMS":null,"Template":"<>","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":5442,"Name":"setCycle","TemplateSMS":null,"Template":"<>","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":5443,"Name":"setVoicePrompt","TemplateSMS":null,"Template":"<>","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":5444,"Name":"setGatewayNumberbySMS","TemplateSMS":"<>","Template":"<>","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":5445,"Name":"setTiltAlertSettings","TemplateSMS":null,"Template":"<>","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":[]},{"Id":5446,"Name":"setRingToneVolume","TemplateSMS":null,"Template":"<>","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":5447,"Name":"setPhoneSettings","TemplateSMS":null,"Template":"<>","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":5453,"Name":"setServer","TemplateSMS":"<>","Template":"<>","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":5454,"Name":"setGateway","TemplateSMS":"<>","Template":"<>","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":[]},{"Id":5457,"Name":"actionTrace","TemplateSMS":"<>","Template":"<>","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":5458,"Name":"actionPowerOff","TemplateSMS":"<>","Template":"<>","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":[]},{"Id":5459,"Name":"actionDeleteRecords","TemplateSMS":"<>","Template":"<>","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":5460,"Name":"actionFactoryReset","TemplateSMS":"<>","Template":"<>","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":[]},{"Id":5461,"Name":"setSMSPrefix","TemplateSMS":null,"Template":"<>","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":5462,"Name":"actionRequestLocation","TemplateSMS":null,"Template":"<>","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":5463,"Name":"setWelfareCheck","TemplateSMS":"<>","Template":"<>","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// SMS version Example: Welfare1,600,120,1 Reply: Welfarealarm. Example: Welfare0 Reply: Welfarecheckoff. Welfare,,,\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar value = '';\r\nvar value2 = '';\r\nvar time;\r\nvar dataSMS = '';\r\n// [Time Out] - [Prealarm] must be >= 120 s.\r\nif (params.Welfare.EnableDisableWelfare == 'true') {\r\n // second version of the logic\r\n value += '1'; //Enable \r\n dataSMS = `Welfare1,${(params.Welfare.Timeout * 60)},${(params.Welfare.Prealarm * 60)},1`;\r\n // First version of the logic \r\n /* if ((params.ReadState.Charging == 'true') && (params.Welfare.Mode == '1')) {\r\n value += '0'; //Disable when device is charging (on the dock) and recurrent mode is selected\r\n dataSMS = 'Welfare0';\r\n } else {\r\n value += '1'; //Enable in the other options\r\n dataSMS = `Welfare1,${(params.Welfare.Timeout * 60)},${(params.Welfare.Prealarm * 60)},1`;\r\n } */\r\n} else {\r\n value += '0'; //Disable\r\n dataSMS = 'Welfare0';\r\n}\r\nif (params.Welfare.Timeout) {\r\n time = params.Welfare.Timeout * 60; //in seconds this is value in protocol\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\n//if (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 += '1'; // Enable Dial Warning Time\r\nif (params.Welfare.Prealarm) {\r\n if ((params.Welfare.Timeout - params.Welfare.Prealarm) >= 2) {\r\n time = params.Welfare.Prealarm * 60; //in seconds this is WarningTime in protocol\r\n value2 += ('0000000000000000000000000000000' + decimalToBinary(parseInt(time))).slice(-31);\r\n } else { // If the difference between them is less than 2 minutes, we fix Prealarm\r\n value2 += ('0000000000000000000000000000000' + decimalToBinary(parseInt((params.Welfare.Timeout - 2) * 60))).slice(-31);\r\n }\r\n} else {\r\n value2 += ('0000000000000000000000000000000' + decimalToBinary(parseInt(300))).slice(-31);\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\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\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":25,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":5464,"Name":"setAPN","TemplateSMS":"<>","Template":"<>","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":5465,"Name":"getAPN","TemplateSMS":null,"Template":"<>","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":5466,"Name":"actionRealTimeLocation","TemplateSMS":"<>","Template":"<>","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":[]},{"Id":5484,"Name":"setWifiList","TemplateSMS":null,"Template":"<>","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":5433,"Name":"setBeacons","TemplateSMS":null,"Template":"<>","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":5451,"Name":"getCurrentSettings2","TemplateSMS":"<>","Template":"<>","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":5452,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings","TemplateSMS":"<>","Template":"<>","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 = '47214A1A3440414243567355571F445310333075';\r\n/* \r\n47 Get device or custom id \r\n21 SpeedDial\r\n4A Wifi Network\r\n1A Firmware Long\r\n34 Contacts\r\n40 APN\r\n41 APNusername\r\n42 APNpass\r\n43 server details\r\n56 fall sensitivity\r\n73 Beacon List\r\n55 Tilt Angle Alert\r\n57 Welfare\r\n1F System language\r\n44 time interval\r\n53 No motion alert\r\n10 Ring tome vol\r\n33 allow list\r\n30 Emergency numbers\r\n75 Extra */\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '15';\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' + '1700' + 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":[]},{"Id":5450,"Name":"getCurrentSettings3","TemplateSMS":"<>","Template":"<>","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":5452,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings","TemplateSMS":"<>","Template":"<>","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 = '47214A1A3440414243567355571F445310333075';\r\n/* \r\n47 Get device or custom id \r\n21 SpeedDial\r\n4A Wifi Network\r\n1A Firmware Long\r\n34 Contacts\r\n40 APN\r\n41 APNusername\r\n42 APNpass\r\n43 server details\r\n56 fall sensitivity\r\n73 Beacon List\r\n55 Tilt Angle Alert\r\n57 Welfare\r\n1F System language\r\n44 time interval\r\n53 No motion alert\r\n10 Ring tome vol\r\n33 allow list\r\n30 Emergency numbers\r\n75 Extra */\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '15';\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' + '1700' + 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":[]},{"Id":5449,"Name":"getCurrentSettings4","TemplateSMS":"<>","Template":"<>","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":5452,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings","TemplateSMS":"<>","Template":"<>","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 = '47214A1A3440414243567355571F445310333075';\r\n/* \r\n47 Get device or custom id \r\n21 SpeedDial\r\n4A Wifi Network\r\n1A Firmware Long\r\n34 Contacts\r\n40 APN\r\n41 APNusername\r\n42 APNpass\r\n43 server details\r\n56 fall sensitivity\r\n73 Beacon List\r\n55 Tilt Angle Alert\r\n57 Welfare\r\n1F System language\r\n44 time interval\r\n53 No motion alert\r\n10 Ring tome vol\r\n33 allow list\r\n30 Emergency numbers\r\n75 Extra */\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '15';\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' + '1700' + 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":[]},{"Id":5448,"Name":"getCurrentSettings5","TemplateSMS":"<>","Template":"<>","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":5452,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings","TemplateSMS":"<>","Template":"<>","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 = '47214A1A3440414243567355571F445310333075';\r\n/* \r\n47 Get device or custom id \r\n21 SpeedDial\r\n4A Wifi Network\r\n1A Firmware Long\r\n34 Contacts\r\n40 APN\r\n41 APNusername\r\n42 APNpass\r\n43 server details\r\n56 fall sensitivity\r\n73 Beacon List\r\n55 Tilt Angle Alert\r\n57 Welfare\r\n1F System language\r\n44 time interval\r\n53 No motion alert\r\n10 Ring tome vol\r\n33 allow list\r\n30 Emergency numbers\r\n75 Extra */\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '15';\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' + '1700' + 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":[]}],"Operations":[{"Id":362,"Name":"Access PS Sentry","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 // Sentry protocol - please see variables and typical values in order below\r\n // Sentry-CYC;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;SIGNAL=<>;WM=<>;GENERAL=<>\r\n // Sentry-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: Juanmi N.\r\n // Created: 01/01/2025\r\n // Last modified: 14/02/2025\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', 'Sentry');\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 = (`Sentry-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 //<>,<>,<> \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 //<>,<>,<> \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 Sentry-')) {\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 = (`Sentry-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 = (`Sentry;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 = (`Sentry;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 = (`Sentry-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 // 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 AddConfig(codeValueArray, configName, newvalue) {\r\n if (newvalue !== undefined) { // don't add if newvalue is undefined\r\n var cvpair = {\r\n 'code': configName,\r\n 'value': newvalue, // ? newvalue : \"Not Defined\" \r\n 'forced': true\r\n };\r\n codeValueArray.push(cvpair);\r\n };\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 ¿qué es fall OFF?\r\n if ((alarmCodeExtInt & 1) == 1) {\r\n var alarm = 'ALF-C'; // Fall-DownAlertending\r\n }\r\n // Welfare Check-out\r\n else if ((alarmCodeExtInt & 2) == 2) {\r\n var alarm = 'WSTP';\r\n if (configs.Welfare.Mode == '1') {\r\n info = 'Recurrent';\r\n } else info = 'Amber';\r\n }\r\n //Geo 5 in\r\n //else if ((alarmCodeInt & 16) == 16) {\r\n // var alarm = 'BATL';\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 Alert\r\n else if ((alarmCodeInt & 8) == 8) {\r\n var alarm = 'Tilt';\r\n }\r\n // Geo IN - OUT\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 Alert\r\n else if ((alarmCodeInt & 256) == 256) {\r\n var alarm = 'PWRF';\r\n }\r\n //Power On Alert\r\n else if ((alarmCodeInt & 512) == 512) {\r\n var alarm = 'PWRN';\r\n }\r\n //Motion Alert\r\n else if ((alarmCodeInt & 1024) == 1024) {\r\n var alarm = 'ALMOV';\r\n }\r\n //No Motion Alert\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 }\r\n // Side call button 1\r\n else if ((alarmCodeInt & 8192) == 8192) {\r\n var alarm = 'Side1';\r\n }\r\n // Side call button 2\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 AddValue(configsToUpdate, configIds.ReadState.Charging, 'true');\r\n configsToAck.push(configIds.ReadState.Charging);\r\n //configs.AlertSettings.Welfare.Mode\r\n if ((configs.Welfare.EnableDisableWelfare == 'true') && (configs.Welfare.Mode == '1')) {\r\n AddValue(configsToUpdate, configIds.ReadState.Welfare, 'false');\r\n //AddConfig(configsToSend, configIds.Welfare.EnableDisableWelfare, 'true');\r\n AddConfig(configsToSend, configIds.ReadState.Welfare, 'false');\r\n configsToAck.push(configIds.ReadState.Welfare);\r\n }\r\n }\r\n //Battery no charging\r\n else if ((alarmCodeInt & 65536) == 65536) {\r\n var alarm = 'BATCF';\r\n AddValue(configsToUpdate, configIds.ReadState.Charging, 'false');\r\n configsToAck.push(configIds.ReadState.Charging);\r\n if ((configs.Welfare.EnableDisableWelfare == 'true') && (configs.Welfare.Mode == '1')) {\r\n AddValue(configsToUpdate, configIds.ReadState.Welfare, 'true');\r\n //AddConfig(configsToSend, configIds.Welfare.EnableDisableWelfare, 'false');\r\n AddConfig(configsToSend, configIds.ReadState.Welfare, 'true');\r\n configsToAck.push(configIds.ReadState.Welfare);\r\n }\r\n }\r\n //Alert End\r\n else if ((alarmCodeInt & 131072) == 131072) {\r\n var alarm = 'ALA-F';\r\n if (configs.Welfare.Mode == '1') {\r\n info = 'Recurrent';\r\n } else info = 'Amber';\r\n }\r\n //Amber Alert ON Don`t know the dfference between ALA and ALA-O\r\n else if ((alarmCodeInt & 262144) == 262144) {\r\n var alarm = 'ALA';\r\n }\r\n // welfare check in\r\n else if ((alarmCodeInt & 524288) == 524288) {\r\n var alarm = 'WTS';\r\n if (configs.Welfare.Mode == '1') {\r\n info = 'Recurrent';\r\n } else info = 'Amber';\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\r\n else if ((alarmCodeInt & 4194304) == 4194304) {\r\n var alarm = 'ALA-W';\r\n if (configs.Welfare.Mode == '1') {\r\n info = 'Recurrent';\r\n } else info = 'Amber';\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 != '64') {\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 //<>,<>,<>,<>,<>\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 != '64') {\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 = (`Sentry-${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 = (`Sentry-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 if ((statusInt & 16) == 16) {\r\n statusDevice += 'Charging,';\r\n // AddValue(configsToUpdate, configIds.ReadState.Charging, 'true');\r\n // configsToAck.push(configIds.ReadState.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) { //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 != '64') {\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 = (`Sentry-${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 != '64') {\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 = (`Sentry-${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;<>;STATUS=<>;TIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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 = (`Sentry-${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 = (`Sentry-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 = (`Sentry;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 = (`Sentry;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 = (`Sentry;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 = (`Sentry;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 = (`Sentry;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 var report;\r\n switch (contactNumber) {\r\n // Emergency Number\r\n // [Value]:80 2B 33 34 36 33 35 36 30 37 39 33 30\r\n //{\"number\":{\"call\":0,\"noCard\":0,\"number\":\"+34635607930\",\"enable\":1,\"sms\":0,\"index\":0}}\r\n case '0':\r\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\r\n report = hex2bin(value.substring(0, 2)); // To find report mode Call &data or DAta only\r\n AddValue(codeValues, \"EmergencyNumber\", tel);\r\n AddValue(codeValues, \"ReportMode\", report.substring(2, 3));\r\n AddValue(configsToUpdate, configIds.ReadAlertSettings.EmergencyNumber, tel);\r\n AddValue(configsToUpdate, configIds.ReadAlertSettings.ReportMode, report.substring(2, 3));\r\n configsToAck.push(configIds.ReadAlertSettings.EmergencyNumber);\r\n configsToAck.push(configIds.ReadAlertSettings.ReportMode);\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 = (`Sentry;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 if (serverDetails.includes('52.174.17.77:5878')) {\r\n serverDetails = 'Protocol-Dev'\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 = (`Sentry;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 = (`Sentry;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 = (`Sentry;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 '55': // Tilt Angle Alert\r\n //[Value]:0A 00 1E 00\r\n //{\"tiltAlert\":{\"angle\":30,\"time\":10,\"status\":0,\"dial\":0}}\r\n var angle = hexToDecimal(value.substring(4, 6));\r\n var timeout = hexToDecimal(value.substring(0, 2));\r\n var status = hexToDecimal(value.substring(6, 8));\r\n if (status == 0) angle = 0;\r\n //var alertSetting = angle;\r\n //imei = serverParams.Imei;\r\n //messageForReceiver = (`Sentry;ACK-TILTANG;${imei};`);\r\n //sendMessageToLocalhostNoWait(messageForReceiver);\r\n AddValue(codeValues, \"tiltangle\", angle);\r\n AddValue(codeValues, \"tiltimeout\", timeout);\r\n AddValue(codeValues, \"tiltstatus\", status);\r\n //AddValue(configsToUpdate, configIds.ReadAlertSettings.NoMotionAlert, value + '-' + alertSetting);\r\n AddValue(configsToUpdate, configIds.ReadManDownSettings.TiltTimeout, timeout);\r\n AddValue(configsToUpdate, configIds.ReadManDownSettings.TiltAngle, angle);\r\n //configsToAck.push(configIds.ReadAlertSettings.NoMotionAlert);\r\n configsToAck.push(configIds.ReadManDownSettings.TiltTimeout);\r\n configsToAck.push(configIds.ReadManDownSettings.TiltAngle);\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 = (`Sentry;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.ManDownSettings, sensibility);\r\n AddValue(configsToUpdate, configIds.ReadManDownSettings.EnableDisableManDownSettings, enalbleDisable);\r\n AddValue(configsToUpdate, configIds.ReadManDownSettings.Sensitivity, sesibityOptionValue);\r\n //configsToAck.push(configIds.ReadAlertSettings.FallSettings);\r\n configsToAck.push(configIds.ReadManDownSettings.EnableDisableManDownSettings);\r\n configsToAck.push(configIds.ReadManDownSettings.Sensitivity);\r\n break;\r\n case '57': // Welfare\r\n // [Value]:10 0E 00 80 58 02 00 80\r\n //{\"welfareAlert\":{\"time\":600,\"value\":3600,\"status\":1,\"dial\":1}}\r\n var welfareStatus = hex2bin(value.substring(6, 8)); // check status\r\n var welfareValue = hexToDecimal(changeEndianness(value.substring(0, 6)));\r\n var welfareTime = hexToDecimal(changeEndianness(value.substring(8, 14)));\r\n var enalbleDisable = '';\r\n if ((configs.ReadState.Charging == 'true') && (configs.Welfare.Mode == '1') && (configs.Welfare.EnableDisableWelfare == 'true')) { // Force Read to enable welfare when device is charging in recurrent mode\r\n var sensibility = 'Enable, '\r\n enalbleDisable = '1'\r\n } else {\r\n if (welfareStatus.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 };\r\n //var imei = serverParams.Imei;\r\n //messageForReceiver = (`Sentry;ACK-WELFALERT;${imei};`);\r\n //sendMessageToLocalhostNoWait(messageForReceiver);\r\n sensibility += ', ' + welfareValue / 60;\r\n sensibility += ', ' + welfareTime / 60;\r\n AddValue(codeValues, \"welfare\", sensibility);\r\n AddValue(configsToUpdate, configIds.ReadWelfareSettings.EnableDisableReadWelfare, enalbleDisable);\r\n AddValue(configsToUpdate, configIds.ReadWelfareSettings.Prealarm, welfareTime / 60);\r\n AddValue(configsToUpdate, configIds.ReadWelfareSettings.Timeout, welfareValue / 60);\r\n configsToAck.push(configIds.ReadWelfareSettings.EnableDisableReadWelfare);\r\n configsToAck.push(configIds.ReadWelfareSettings.Prealarm);\r\n configsToAck.push(configIds.ReadWelfareSettings.Timeout);\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 = (`Sentry;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 '75': // Extra Enable control Welfare Mode\r\n //[Value]:80 00 00 10 last two digit for new/old welfare\r\n //{\"extraControl\":{\"bit29\":0,\"bit27\":0,\"bit28\":1,\"bit25\":0,\"bit26\":0,\"flagValue\":268435584,\"bit23\":0,\"bit24\":0,\"bit21\":0,\"bit22\":0,\"bit20\":0,\"bit9\":0,\"bit18\":0,\"bit19\":0,\"bit7\":1,\"bit16\":0,\"bit8\":0,\"bit17\":0,\"bit5\":0,\"bit14\":0,\"bit6\":0,\"bit15\":0,\"bit3\":0,\"bit4\":0,\"bit1\":0,\"bit2\":0,\"bit0\":0,\"bit12\":0,\"bit13\":0,\"bit10\":0,\"bit11\":0,\"bit30\":0,\"bit31\":0}}\r\n var extraStatus = hex2bin(value.substring(6, 7)).substring(7, 8);\r\n //if (extraStatus.substring(7, 8) == '1') {\r\n // extra += ' Enable, '\r\n //} else {\r\n // extra += ' 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, \"welfare Mode\", extraStatus);\r\n // messageForReceiver = (`Sentry;ACK-EXTRA;${imei};`);\r\n // sendMessageToLocalhostNoWait(messageForReceiver);\r\n AddValue(configsToUpdate, configIds.ReadWelfareSettings.Mode, extraStatus);\r\n configsToAck.push(configIds.ReadWelfareSettings.Mode);\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 = (`Sentry;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 = (`Sentry;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 = (`Sentry-${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 = (`Sentry-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 = (`Sentry-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 = (`Sentry-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\":362,\"Name\":\"Access PS Sentry\",\"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 // Sentry protocol - please see variables and typical values in order below\\r\\n // Sentry-CYC;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;SIGNAL=<>;WM=<>;GENERAL=<>\\r\\n // Sentry-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: Juanmi N.\\r\\n // Created: 01/01/2025\\r\\n // Last modified: 14/02/2025\\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', 'Sentry');\\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 = (`Sentry-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 //<>,<>,<> \\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 //<>,<>,<> \\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 Sentry-')) {\\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 = (`Sentry-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 = (`Sentry;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 = (`Sentry;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 = (`Sentry-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 // 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 AddConfig(codeValueArray, configName, newvalue) {\\r\\n if (newvalue !== undefined) { // don't add if newvalue is undefined\\r\\n var cvpair = {\\r\\n 'code': configName,\\r\\n 'value': newvalue, // ? newvalue : \\\"Not Defined\\\" \\r\\n 'forced': true\\r\\n };\\r\\n codeValueArray.push(cvpair);\\r\\n };\\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 ¿qué es fall OFF?\\r\\n if ((alarmCodeExtInt & 1) == 1) {\\r\\n var alarm = 'ALF-C'; // Fall-DownAlertending\\r\\n }\\r\\n // Welfare Check-out\\r\\n else if ((alarmCodeExtInt & 2) == 2) {\\r\\n var alarm = 'WSTP';\\r\\n if (configs.Welfare.Mode == '1') {\\r\\n info = 'Recurrent';\\r\\n } else info = 'Amber';\\r\\n }\\r\\n //Geo 5 in\\r\\n //else if ((alarmCodeInt & 16) == 16) {\\r\\n // var alarm = 'BATL';\\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 Alert\\r\\n else if ((alarmCodeInt & 8) == 8) {\\r\\n var alarm = 'Tilt';\\r\\n }\\r\\n // Geo IN - OUT\\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 Alert\\r\\n else if ((alarmCodeInt & 256) == 256) {\\r\\n var alarm = 'PWRF';\\r\\n }\\r\\n //Power On Alert\\r\\n else if ((alarmCodeInt & 512) == 512) {\\r\\n var alarm = 'PWRN';\\r\\n }\\r\\n //Motion Alert\\r\\n else if ((alarmCodeInt & 1024) == 1024) {\\r\\n var alarm = 'ALMOV';\\r\\n }\\r\\n //No Motion Alert\\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 }\\r\\n // Side call button 1\\r\\n else if ((alarmCodeInt & 8192) == 8192) {\\r\\n var alarm = 'Side1';\\r\\n }\\r\\n // Side call button 2\\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 AddValue(configsToUpdate, configIds.ReadState.Charging, 'true');\\r\\n configsToAck.push(configIds.ReadState.Charging);\\r\\n //configs.AlertSettings.Welfare.Mode\\r\\n if ((configs.Welfare.EnableDisableWelfare == 'true') && (configs.Welfare.Mode == '1')) {\\r\\n AddValue(configsToUpdate, configIds.ReadState.Welfare, 'false');\\r\\n //AddConfig(configsToSend, configIds.Welfare.EnableDisableWelfare, 'true');\\r\\n AddConfig(configsToSend, configIds.ReadState.Welfare, 'false');\\r\\n configsToAck.push(configIds.ReadState.Welfare);\\r\\n }\\r\\n }\\r\\n //Battery no charging\\r\\n else if ((alarmCodeInt & 65536) == 65536) {\\r\\n var alarm = 'BATCF';\\r\\n AddValue(configsToUpdate, configIds.ReadState.Charging, 'false');\\r\\n configsToAck.push(configIds.ReadState.Charging);\\r\\n if ((configs.Welfare.EnableDisableWelfare == 'true') && (configs.Welfare.Mode == '1')) {\\r\\n AddValue(configsToUpdate, configIds.ReadState.Welfare, 'true');\\r\\n //AddConfig(configsToSend, configIds.Welfare.EnableDisableWelfare, 'false');\\r\\n AddConfig(configsToSend, configIds.ReadState.Welfare, 'true');\\r\\n configsToAck.push(configIds.ReadState.Welfare);\\r\\n }\\r\\n }\\r\\n //Alert End\\r\\n else if ((alarmCodeInt & 131072) == 131072) {\\r\\n var alarm = 'ALA-F';\\r\\n if (configs.Welfare.Mode == '1') {\\r\\n info = 'Recurrent';\\r\\n } else info = 'Amber';\\r\\n }\\r\\n //Amber Alert ON Don`t know the dfference between ALA and ALA-O\\r\\n else if ((alarmCodeInt & 262144) == 262144) {\\r\\n var alarm = 'ALA';\\r\\n }\\r\\n // welfare check in\\r\\n else if ((alarmCodeInt & 524288) == 524288) {\\r\\n var alarm = 'WTS';\\r\\n if (configs.Welfare.Mode == '1') {\\r\\n info = 'Recurrent';\\r\\n } else info = 'Amber';\\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\\r\\n else if ((alarmCodeInt & 4194304) == 4194304) {\\r\\n var alarm = 'ALA-W';\\r\\n if (configs.Welfare.Mode == '1') {\\r\\n info = 'Recurrent';\\r\\n } else info = 'Amber';\\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 != '64') {\\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 //<>,<>,<>,<>,<>\\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 != '64') {\\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 = (`Sentry-${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 = (`Sentry-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 if ((statusInt & 16) == 16) {\\r\\n statusDevice += 'Charging,';\\r\\n // AddValue(configsToUpdate, configIds.ReadState.Charging, 'true');\\r\\n // configsToAck.push(configIds.ReadState.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) { //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 != '64') {\\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 = (`Sentry-${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 != '64') {\\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 = (`Sentry-${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;<>;STATUS=<>;TIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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 = (`Sentry-${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 = (`Sentry-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 = (`Sentry;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 = (`Sentry;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 = (`Sentry;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 = (`Sentry;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 = (`Sentry;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 var report;\\r\\n switch (contactNumber) {\\r\\n // Emergency Number\\r\\n // [Value]:80 2B 33 34 36 33 35 36 30 37 39 33 30\\r\\n //{\\\"number\\\":{\\\"call\\\":0,\\\"noCard\\\":0,\\\"number\\\":\\\"+34635607930\\\",\\\"enable\\\":1,\\\"sms\\\":0,\\\"index\\\":0}}\\r\\n case '0':\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n report = hex2bin(value.substring(0, 2)); // To find report mode Call &data or DAta only\\r\\n AddValue(codeValues, \\\"EmergencyNumber\\\", tel);\\r\\n AddValue(codeValues, \\\"ReportMode\\\", report.substring(2, 3));\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.EmergencyNumber, tel);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.ReportMode, report.substring(2, 3));\\r\\n configsToAck.push(configIds.ReadAlertSettings.EmergencyNumber);\\r\\n configsToAck.push(configIds.ReadAlertSettings.ReportMode);\\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 = (`Sentry;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 if (serverDetails.includes('52.174.17.77:5878')) {\\r\\n serverDetails = 'Protocol-Dev'\\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 = (`Sentry;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 = (`Sentry;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 = (`Sentry;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 '55': // Tilt Angle Alert\\r\\n //[Value]:0A 00 1E 00\\r\\n //{\\\"tiltAlert\\\":{\\\"angle\\\":30,\\\"time\\\":10,\\\"status\\\":0,\\\"dial\\\":0}}\\r\\n var angle = hexToDecimal(value.substring(4, 6));\\r\\n var timeout = hexToDecimal(value.substring(0, 2));\\r\\n var status = hexToDecimal(value.substring(6, 8));\\r\\n if (status == 0) angle = 0;\\r\\n //var alertSetting = angle;\\r\\n //imei = serverParams.Imei;\\r\\n //messageForReceiver = (`Sentry;ACK-TILTANG;${imei};`);\\r\\n //sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"tiltangle\\\", angle);\\r\\n AddValue(codeValues, \\\"tiltimeout\\\", timeout);\\r\\n AddValue(codeValues, \\\"tiltstatus\\\", status);\\r\\n //AddValue(configsToUpdate, configIds.ReadAlertSettings.NoMotionAlert, value + '-' + alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadManDownSettings.TiltTimeout, timeout);\\r\\n AddValue(configsToUpdate, configIds.ReadManDownSettings.TiltAngle, angle);\\r\\n //configsToAck.push(configIds.ReadAlertSettings.NoMotionAlert);\\r\\n configsToAck.push(configIds.ReadManDownSettings.TiltTimeout);\\r\\n configsToAck.push(configIds.ReadManDownSettings.TiltAngle);\\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 = (`Sentry;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.ManDownSettings, sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadManDownSettings.EnableDisableManDownSettings, enalbleDisable);\\r\\n AddValue(configsToUpdate, configIds.ReadManDownSettings.Sensitivity, sesibityOptionValue);\\r\\n //configsToAck.push(configIds.ReadAlertSettings.FallSettings);\\r\\n configsToAck.push(configIds.ReadManDownSettings.EnableDisableManDownSettings);\\r\\n configsToAck.push(configIds.ReadManDownSettings.Sensitivity);\\r\\n break;\\r\\n case '57': // Welfare\\r\\n // [Value]:10 0E 00 80 58 02 00 80\\r\\n //{\\\"welfareAlert\\\":{\\\"time\\\":600,\\\"value\\\":3600,\\\"status\\\":1,\\\"dial\\\":1}}\\r\\n var welfareStatus = hex2bin(value.substring(6, 8)); // check status\\r\\n var welfareValue = hexToDecimal(changeEndianness(value.substring(0, 6)));\\r\\n var welfareTime = hexToDecimal(changeEndianness(value.substring(8, 14)));\\r\\n var enalbleDisable = '';\\r\\n if ((configs.ReadState.Charging == 'true') && (configs.Welfare.Mode == '1') && (configs.Welfare.EnableDisableWelfare == 'true')) { // Force Read to enable welfare when device is charging in recurrent mode\\r\\n var sensibility = 'Enable, '\\r\\n enalbleDisable = '1'\\r\\n } else {\\r\\n if (welfareStatus.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 };\\r\\n //var imei = serverParams.Imei;\\r\\n //messageForReceiver = (`Sentry;ACK-WELFALERT;${imei};`);\\r\\n //sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n sensibility += ', ' + welfareValue / 60;\\r\\n sensibility += ', ' + welfareTime / 60;\\r\\n AddValue(codeValues, \\\"welfare\\\", sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadWelfareSettings.EnableDisableReadWelfare, enalbleDisable);\\r\\n AddValue(configsToUpdate, configIds.ReadWelfareSettings.Prealarm, welfareTime / 60);\\r\\n AddValue(configsToUpdate, configIds.ReadWelfareSettings.Timeout, welfareValue / 60);\\r\\n configsToAck.push(configIds.ReadWelfareSettings.EnableDisableReadWelfare);\\r\\n configsToAck.push(configIds.ReadWelfareSettings.Prealarm);\\r\\n configsToAck.push(configIds.ReadWelfareSettings.Timeout);\\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 = (`Sentry;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 '75': // Extra Enable control Welfare Mode\\r\\n //[Value]:80 00 00 10 last two digit for new/old welfare\\r\\n //{\\\"extraControl\\\":{\\\"bit29\\\":0,\\\"bit27\\\":0,\\\"bit28\\\":1,\\\"bit25\\\":0,\\\"bit26\\\":0,\\\"flagValue\\\":268435584,\\\"bit23\\\":0,\\\"bit24\\\":0,\\\"bit21\\\":0,\\\"bit22\\\":0,\\\"bit20\\\":0,\\\"bit9\\\":0,\\\"bit18\\\":0,\\\"bit19\\\":0,\\\"bit7\\\":1,\\\"bit16\\\":0,\\\"bit8\\\":0,\\\"bit17\\\":0,\\\"bit5\\\":0,\\\"bit14\\\":0,\\\"bit6\\\":0,\\\"bit15\\\":0,\\\"bit3\\\":0,\\\"bit4\\\":0,\\\"bit1\\\":0,\\\"bit2\\\":0,\\\"bit0\\\":0,\\\"bit12\\\":0,\\\"bit13\\\":0,\\\"bit10\\\":0,\\\"bit11\\\":0,\\\"bit30\\\":0,\\\"bit31\\\":0}}\\r\\n var extraStatus = hex2bin(value.substring(6, 7)).substring(7, 8);\\r\\n //if (extraStatus.substring(7, 8) == '1') {\\r\\n // extra += ' Enable, '\\r\\n //} else {\\r\\n // extra += ' 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, \\\"welfare Mode\\\", extraStatus);\\r\\n // messageForReceiver = (`Sentry;ACK-EXTRA;${imei};`);\\r\\n // sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadWelfareSettings.Mode, extraStatus);\\r\\n configsToAck.push(configIds.ReadWelfareSettings.Mode);\\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 = value.substring(1, 2);\\r\\n //var wifiStatus = hexToDecimal(value.substring(0, 1));\\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') || (wifiStatus == 'C')) { // 8 == ON OR C== ON and Connected\\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 = (`Sentry;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 = (`Sentry;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 = (`Sentry-${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 = (`Sentry-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 = (`Sentry-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 = (`Sentry-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":1740071496},{"Type":1,"NewValue":"{\"Id\":362,\"Name\":\"Access PS Sentry\",\"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 // Sentry protocol - please see variables and typical values in order below\\r\\n // Sentry-CYC;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;SIGNAL=<>;WM=<>;GENERAL=<>\\r\\n // Sentry-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: Juanmi N.\\r\\n // Created: 01/01/2025\\r\\n // Last modified: 14/02/2025\\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', 'Sentry');\\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 = (`Sentry-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 //<>,<>,<> \\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 //<>,<>,<> \\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 Sentry-')) {\\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 = (`Sentry-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 = (`Sentry;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 = (`Sentry;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 = (`Sentry-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 // 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 AddConfig(codeValueArray, configName, newvalue) {\\r\\n if (newvalue !== undefined) { // don't add if newvalue is undefined\\r\\n var cvpair = {\\r\\n 'code': configName,\\r\\n 'value': newvalue, // ? newvalue : \\\"Not Defined\\\" \\r\\n 'forced': true\\r\\n };\\r\\n codeValueArray.push(cvpair);\\r\\n };\\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 ¿qué es fall OFF?\\r\\n if ((alarmCodeExtInt & 1) == 1) {\\r\\n var alarm = 'ALF-C'; // Fall-DownAlertending\\r\\n }\\r\\n // Welfare Check-out\\r\\n else if ((alarmCodeExtInt & 2) == 2) {\\r\\n var alarm = 'WSTP';\\r\\n if (configs.Welfare.Mode == '1') {\\r\\n info = 'Recurrent';\\r\\n } else info = 'Amber';\\r\\n }\\r\\n //Geo 5 in\\r\\n //else if ((alarmCodeInt & 16) == 16) {\\r\\n // var alarm = 'BATL';\\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 Alert\\r\\n else if ((alarmCodeInt & 8) == 8) {\\r\\n var alarm = 'Tilt';\\r\\n }\\r\\n // Geo IN - OUT\\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 Alert\\r\\n else if ((alarmCodeInt & 256) == 256) {\\r\\n var alarm = 'PWRF';\\r\\n }\\r\\n //Power On Alert\\r\\n else if ((alarmCodeInt & 512) == 512) {\\r\\n var alarm = 'PWRN';\\r\\n }\\r\\n //Motion Alert\\r\\n else if ((alarmCodeInt & 1024) == 1024) {\\r\\n var alarm = 'ALMOV';\\r\\n }\\r\\n //No Motion Alert\\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 }\\r\\n // Side call button 1\\r\\n else if ((alarmCodeInt & 8192) == 8192) {\\r\\n var alarm = 'Side1';\\r\\n }\\r\\n // Side call button 2\\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 AddValue(configsToUpdate, configIds.ReadState.Charging, 'true');\\r\\n configsToAck.push(configIds.ReadState.Charging);\\r\\n //configs.AlertSettings.Welfare.Mode\\r\\n if ((configs.Welfare.EnableDisableWelfare == 'true') && (configs.Welfare.Mode == '1')) {\\r\\n AddValue(configsToUpdate, configIds.ReadState.Welfare, 'false');\\r\\n //AddConfig(configsToSend, configIds.Welfare.EnableDisableWelfare, 'true');\\r\\n AddConfig(configsToSend, configIds.ReadState.Welfare, 'false');\\r\\n configsToAck.push(configIds.ReadState.Welfare);\\r\\n }\\r\\n }\\r\\n //Battery no charging\\r\\n else if ((alarmCodeInt & 65536) == 65536) {\\r\\n var alarm = 'BATCF';\\r\\n AddValue(configsToUpdate, configIds.ReadState.Charging, 'false');\\r\\n configsToAck.push(configIds.ReadState.Charging);\\r\\n if ((configs.Welfare.EnableDisableWelfare == 'true') && (configs.Welfare.Mode == '1')) {\\r\\n AddValue(configsToUpdate, configIds.ReadState.Welfare, 'true');\\r\\n //AddConfig(configsToSend, configIds.Welfare.EnableDisableWelfare, 'false');\\r\\n AddConfig(configsToSend, configIds.ReadState.Welfare, 'true');\\r\\n configsToAck.push(configIds.ReadState.Welfare);\\r\\n }\\r\\n }\\r\\n //Alert End\\r\\n else if ((alarmCodeInt & 131072) == 131072) {\\r\\n var alarm = 'ALA-F';\\r\\n if (configs.Welfare.Mode == '1') {\\r\\n info = 'Recurrent';\\r\\n } else info = 'Amber';\\r\\n }\\r\\n //Amber Alert ON Don`t know the dfference between ALA and ALA-O\\r\\n else if ((alarmCodeInt & 262144) == 262144) {\\r\\n var alarm = 'ALA';\\r\\n }\\r\\n // welfare check in\\r\\n else if ((alarmCodeInt & 524288) == 524288) {\\r\\n var alarm = 'WTS';\\r\\n if (configs.Welfare.Mode == '1') {\\r\\n info = 'Recurrent';\\r\\n } else info = 'Amber';\\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\\r\\n else if ((alarmCodeInt & 4194304) == 4194304) {\\r\\n var alarm = 'ALA-W';\\r\\n if (configs.Welfare.Mode == '1') {\\r\\n info = 'Recurrent';\\r\\n } else info = 'Amber';\\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 != '64') {\\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 //<>,<>,<>,<>,<>\\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 != '64') {\\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 = (`Sentry-${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 = (`Sentry-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 if ((statusInt & 16) == 16) {\\r\\n statusDevice += 'Charging,';\\r\\n // AddValue(configsToUpdate, configIds.ReadState.Charging, 'true');\\r\\n // configsToAck.push(configIds.ReadState.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) { //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 != '64') {\\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 = (`Sentry-${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 != '64') {\\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 = (`Sentry-${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;<>;STATUS=<>;TIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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 = (`Sentry-${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 = (`Sentry-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 = (`Sentry;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 = (`Sentry;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 = (`Sentry;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 = (`Sentry;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 = (`Sentry;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 var report;\\r\\n switch (contactNumber) {\\r\\n // Emergency Number\\r\\n // [Value]:80 2B 33 34 36 33 35 36 30 37 39 33 30\\r\\n //{\\\"number\\\":{\\\"call\\\":0,\\\"noCard\\\":0,\\\"number\\\":\\\"+34635607930\\\",\\\"enable\\\":1,\\\"sms\\\":0,\\\"index\\\":0}}\\r\\n case '0':\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n report = hex2bin(value.substring(0, 2)); // To find report mode Call &data or DAta only\\r\\n AddValue(codeValues, \\\"EmergencyNumber\\\", tel);\\r\\n AddValue(codeValues, \\\"ReportMode\\\", report.substring(2, 3));\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.EmergencyNumber, tel);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.ReportMode, report.substring(2, 3));\\r\\n configsToAck.push(configIds.ReadAlertSettings.EmergencyNumber);\\r\\n configsToAck.push(configIds.ReadAlertSettings.ReportMode);\\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 = (`Sentry;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 if (serverDetails.includes('52.174.17.77:5878')) {\\r\\n serverDetails = 'Protocol-Dev'\\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 = (`Sentry;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 = (`Sentry;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 = (`Sentry;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 '55': // Tilt Angle Alert\\r\\n //[Value]:0A 00 1E 00\\r\\n //{\\\"tiltAlert\\\":{\\\"angle\\\":30,\\\"time\\\":10,\\\"status\\\":0,\\\"dial\\\":0}}\\r\\n var angle = hexToDecimal(value.substring(4, 6));\\r\\n var timeout = hexToDecimal(value.substring(0, 2));\\r\\n var status = hexToDecimal(value.substring(6, 8));\\r\\n if (status == 0) angle = 0;\\r\\n //var alertSetting = angle;\\r\\n //imei = serverParams.Imei;\\r\\n //messageForReceiver = (`Sentry;ACK-TILTANG;${imei};`);\\r\\n //sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"tiltangle\\\", angle);\\r\\n AddValue(codeValues, \\\"tiltimeout\\\", timeout);\\r\\n AddValue(codeValues, \\\"tiltstatus\\\", status);\\r\\n //AddValue(configsToUpdate, configIds.ReadAlertSettings.NoMotionAlert, value + '-' + alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadManDownSettings.TiltTimeout, timeout);\\r\\n AddValue(configsToUpdate, configIds.ReadManDownSettings.TiltAngle, angle);\\r\\n //configsToAck.push(configIds.ReadAlertSettings.NoMotionAlert);\\r\\n configsToAck.push(configIds.ReadManDownSettings.TiltTimeout);\\r\\n configsToAck.push(configIds.ReadManDownSettings.TiltAngle);\\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 = (`Sentry;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.ManDownSettings, sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadManDownSettings.EnableDisableManDownSettings, enalbleDisable);\\r\\n AddValue(configsToUpdate, configIds.ReadManDownSettings.Sensitivity, sesibityOptionValue);\\r\\n //configsToAck.push(configIds.ReadAlertSettings.FallSettings);\\r\\n configsToAck.push(configIds.ReadManDownSettings.EnableDisableManDownSettings);\\r\\n configsToAck.push(configIds.ReadManDownSettings.Sensitivity);\\r\\n break;\\r\\n case '57': // Welfare\\r\\n // [Value]:10 0E 00 80 58 02 00 80\\r\\n //{\\\"welfareAlert\\\":{\\\"time\\\":600,\\\"value\\\":3600,\\\"status\\\":1,\\\"dial\\\":1}}\\r\\n var welfareStatus = hex2bin(value.substring(6, 8)); // check status\\r\\n var welfareValue = hexToDecimal(changeEndianness(value.substring(0, 6)));\\r\\n var welfareTime = hexToDecimal(changeEndianness(value.substring(8, 14)));\\r\\n var enalbleDisable = '';\\r\\n if ((configs.ReadState.Charging == 'true') && (configs.Welfare.Mode == '1') && (configs.Welfare.EnableDisableWelfare == 'true')) { // Force Read to enable welfare when device is charging in recurrent mode\\r\\n var sensibility = 'Enable, '\\r\\n enalbleDisable = '1'\\r\\n } else {\\r\\n if (welfareStatus.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 };\\r\\n //var imei = serverParams.Imei;\\r\\n //messageForReceiver = (`Sentry;ACK-WELFALERT;${imei};`);\\r\\n //sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n sensibility += ', ' + welfareValue / 60;\\r\\n sensibility += ', ' + welfareTime / 60;\\r\\n AddValue(codeValues, \\\"welfare\\\", sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadWelfareSettings.EnableDisableReadWelfare, enalbleDisable);\\r\\n AddValue(configsToUpdate, configIds.ReadWelfareSettings.Prealarm, welfareTime / 60);\\r\\n AddValue(configsToUpdate, configIds.ReadWelfareSettings.Timeout, welfareValue / 60);\\r\\n configsToAck.push(configIds.ReadWelfareSettings.EnableDisableReadWelfare);\\r\\n configsToAck.push(configIds.ReadWelfareSettings.Prealarm);\\r\\n configsToAck.push(configIds.ReadWelfareSettings.Timeout);\\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 = (`Sentry;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 '75': // Extra Enable control Welfare Mode\\r\\n //[Value]:80 00 00 10 last two digit for new/old welfare\\r\\n //{\\\"extraControl\\\":{\\\"bit29\\\":0,\\\"bit27\\\":0,\\\"bit28\\\":1,\\\"bit25\\\":0,\\\"bit26\\\":0,\\\"flagValue\\\":268435584,\\\"bit23\\\":0,\\\"bit24\\\":0,\\\"bit21\\\":0,\\\"bit22\\\":0,\\\"bit20\\\":0,\\\"bit9\\\":0,\\\"bit18\\\":0,\\\"bit19\\\":0,\\\"bit7\\\":1,\\\"bit16\\\":0,\\\"bit8\\\":0,\\\"bit17\\\":0,\\\"bit5\\\":0,\\\"bit14\\\":0,\\\"bit6\\\":0,\\\"bit15\\\":0,\\\"bit3\\\":0,\\\"bit4\\\":0,\\\"bit1\\\":0,\\\"bit2\\\":0,\\\"bit0\\\":0,\\\"bit12\\\":0,\\\"bit13\\\":0,\\\"bit10\\\":0,\\\"bit11\\\":0,\\\"bit30\\\":0,\\\"bit31\\\":0}}\\r\\n var extraStatus = hex2bin(value.substring(6, 7)).substring(7, 8);\\r\\n //if (extraStatus.substring(7, 8) == '1') {\\r\\n // extra += ' Enable, '\\r\\n //} else {\\r\\n // extra += ' 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, \\\"welfare Mode\\\", extraStatus);\\r\\n // messageForReceiver = (`Sentry;ACK-EXTRA;${imei};`);\\r\\n // sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadWelfareSettings.Mode, extraStatus);\\r\\n configsToAck.push(configIds.ReadWelfareSettings.Mode);\\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 wifiStatus = 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') || (wifiStatus == 'C')) { // 8 == ON OR C== ON and Connected\\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 = (`Sentry;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 = (`Sentry;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 = (`Sentry-${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 = (`Sentry-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 = (`Sentry-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 = (`Sentry-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":1740072152}]},{"Id":361,"Name":"OnUpdateProtocol_Sentry","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":[]}],"Groups":[{"Id":6999,"Parent":null,"Name":"Setup","Json":"{\"description\":null,\"columns\":3,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7000,"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":3,"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":7001,"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":3,"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":7002,"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":3,"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":7003,"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":"Read Performance Settings","Json":"{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7004,"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":"Read State","Json":"{\"description\":null,\"columns\":1,\"order\":6,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7005,"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":"Read Communication Settings","Json":"{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7006,"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":"Read Additional Settings","Json":"{\"description\":null,\"columns\":1,\"order\":4,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7007,"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"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":[]},{"Id":7008,"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":3,"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":7009,"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":3,"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\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7010,"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":3,"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\":4,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7011,"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":"Read Alert Settings","Json":"{\"description\":\"Read Alert Settings\",\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7012,"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":3,"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\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7013,"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":"Read System Settings","Json":"{\"description\":\"\",\"columns\":1,\"order\":5,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7014,"Parent":{"Id":7008,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"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":[]},{"Id":7015,"Parent":{"Id":7005,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7015,"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":"Read WiFi List","Json":"{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7016,"Parent":{"Id":7006,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7016,"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":7017,"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"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":"Man Down Settings","Json":"{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7018,"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"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\":\"\",\"columns\":1,\"order\":4,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7019,"Parent":{"Id":7010,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7019,"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":7022,"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":7023,"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":"Speed Dial","Json":"{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7020,"Parent":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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":"Read Man Down Settings","Json":"{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7021,"Parent":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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":"Read Non Movement Settings","Json":"{\"description\":\"\",\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7022,"Parent":{"Id":7010,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7019,"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":7022,"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":7023,"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":"Beacon List","Json":"{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":10,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7023,"Parent":{"Id":7010,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7019,"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":7022,"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":7023,"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":"Approved Contacts","Json":"{\"description\":\"\",\"columns\":1,\"order\":2,\"listSize\":7,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7024,"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"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\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7029,"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"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":"Welfare","Json":"{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7030,"Parent":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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":"Read Welfare Settings","Json":"{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7076,"Parent":{"Id":7014,"Name":"WiFi List","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":{"Id":7008,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"home","Json":"{ \"description\": \"\", \"columns\": 1, \"order\": 1, \"listSize\": 5, \"toTranslate\": [ \"name\", \"description\" ], \"index\": 1}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]}],"GroupParams":[{"Id":11805,"Group":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":"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\"],\"order\":1}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11804,"Group":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":"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\"],\"order\":0}","Default":"false","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11810,"Group":{"Id":7001,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11812,"Group":{"Id":7001,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11813,"Group":{"Id":7001,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11814,"Group":{"Id":7001,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11815,"Group":{"Id":7001,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11816,"Group":{"Id":7001,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11817,"Group":{"Id":7001,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11803,"Group":{"Id":7001,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11807,"Group":{"Id":7001,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11808,"Group":{"Id":7001,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11819,"Group":{"Id":7001,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11818,"Group":{"Id":7001,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11809,"Group":{"Id":7001,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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 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":11806,"Group":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":3,"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":11811,"Group":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":3,"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":11832,"Group":{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"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":11942,"Group":{"Id":7004,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Welfare","Json":"{\"name\":\"Welfare\",\"default\":\"true\",\"description\":\"Welfare Check Status\",\"type\":\"checkbox\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":true,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"true","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11941,"Group":{"Id":7004,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Charging","Json":"{\"name\":\"Charging\",\"default\":\"false\",\"description\":\"Charging Status\",\"type\":\"checkbox\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":true,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"true","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11825,"Group":{"Id":7004,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"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\"],\"order\":3}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11824,"Group":{"Id":7004,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"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\"],\"order\":2}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11822,"Group":{"Id":7005,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7015,"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":"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":11821,"Group":{"Id":7005,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7015,"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":"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":11823,"Group":{"Id":7005,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7015,"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":"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":11820,"Group":{"Id":7006,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7016,"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":11831,"Group":{"Id":7006,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7016,"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":[{"Type":1,"NewValue":"{\"Id\":11831,\"Group\":{\"Id\":7006,\"Name\":\"Read Additional 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\":[]},\"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\":[]}","Timestamp":1740078087},{"Type":2,"NewValue":"{\"Id\":11831,\"Group\":{\"Id\":7006,\"Name\":\"Read Additional 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\":[]},\"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\":{\"Id\":5430,\"Protocol\":{\"Id\":253,\"Code\":\"Access PS Sentry\",\"Version\":\"0.3\",\"FirmwareVersion\":\"V04b.8601.2411.1.0.16.4411.2409.25\",\"Product\":null,\"AvailableVersions\":[],\"HistoryVersions\":[],\"IsChanged\":true},\"Name\":\"getAuthorisedNumbers\",\"TemplateSMS\":null,\"Template\":\"<>\",\"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}\",\"AvoidResending\":false,\"FollowParentSentType\":false,\"SendingType\":0,\"CommandToUpdateId\":null,\"ParentId\":null,\"Parent\":null,\"HasAck\":true,\"HexString\":true,\"SendAttempts\":3,\"Order\":null},\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1740078091}],"Tags":[]},{"Id":11841,"Group":{"Id":7007,"Name":"System Settings","Json":{"description":"","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11835,"Group":{"Id":7007,"Name":"System Settings","Json":{"description":"","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11837,"Group":{"Id":7007,"Name":"System Settings","Json":{"description":"","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11842,"Group":{"Id":7007,"Name":"System Settings","Json":{"description":"","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11834,"Group":{"Id":7008,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"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\":\"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":[]},{"Id":11838,"Group":{"Id":7008,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"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\":\"Select the server the device will report: Acceptance/Production\",\"options\":[{\"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\"},{\"label\":\"Protocol-Dev\",\"value\":\"52.174.17.77,5878\"},{\"label\":\"Default\",\"value\":\"Default\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11839,"Group":{"Id":7008,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"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\":\"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\"},{\"label\":\"Esendex Protocol-Dev\",\"value\":\"00447908675874,Esendex Protocol-Dev\"},{\"label\":\"default\",\"value\":\"default\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11863,"Group":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"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":"Report Mode","Json":"{\"name\":\"Report Mode\",\"default\":\"\",\"description\":\"Report Mode\",\"type\":\"radioGroup\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"\",\"options\":[{\"label\":\"Data & Call\",\"value\":\"1\"},{\"label\":\"Data Only\",\"value\":\"0\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11836,"Group":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"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":11828,"Group":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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\":\"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\"],\"order\":0}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11826,"Group":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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 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\"],\"order\":3}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11827,"Group":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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":"{\"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\"],\"order\":2}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11865,"Group":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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":"Report Mode","Json":"{\"name\":\"Report Mode\",\"default\":\"\",\"description\":\"Current Report Mode\",\"type\":\"radioGroup\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[{\"label\":\"Data & Call\",\"value\":\"1\"},{\"label\":\"Data Only\",\"value\":\"0\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11833,"Group":{"Id":7012,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]}]},"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":11840,"Group":{"Id":7013,"Name":"Read System Settings","Json":{"description":"","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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":"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":[]},{"Id":11829,"Group":{"Id":7013,"Name":"Read System Settings","Json":{"description":"","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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":"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":11830,"Group":{"Id":7013,"Name":"Read System Settings","Json":{"description":"","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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":"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":[]},{"Id":11843,"Group":{"Id":7013,"Name":"Read System Settings","Json":{"description":"","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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":"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":[]},{"Id":11850,"Group":{"Id":7014,"Name":"WiFi List","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":{"Id":7008,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"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\"],\"order\":1}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11851,"Group":{"Id":7014,"Name":"WiFi List","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":{"Id":7008,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"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\"],\"order\":0}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11846,"Group":{"Id":7015,"Name":"Read WiFi List","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7005,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"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\":\"SSID and password configurated in the device.\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11844,"Group":{"Id":7016,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7006,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"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":11845,"Group":{"Id":7016,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7006,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"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\":\"The number called when the Speed Dial button is pushed on the device\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11855,"Group":{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"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 Man Down Settings","Json":"{\"name\":\"Enable Disable Man Down Settings\",\"default\":\"true\",\"description\":\"Toggle Man Down 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 Man Down and breaches the specified sensitivity setting\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"true","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11944,"Group":{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"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":"Tilt Timeout","Json":"{\"name\":\"Tilt Timeout\",\"default\":\"\",\"description\":\"Tilt Timeout\",\"type\":\"radioGroup\",\"suffix\":\"degrees\",\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Select Tilt Timeout\",\"options\":[{\"label\":\"10s\",\"value\":\"10\"},{\"label\":\"30s\",\"value\":\"30\"},{\"label\":\"60s\",\"value\":\"60\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11864,"Group":{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"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":"Tilt Angle","Json":"{\"name\":\"Tilt Angle\",\"default\":\"\",\"description\":\"Tilt Angle\",\"type\":\"radioGroup\",\"suffix\":\"degrees\",\"prefix\":null,\"min\":10,\"max\":90,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Select Tilt Angle\",\"options\":[{\"label\":\"Off\",\"value\":\"0\"},{\"label\":\"45º\",\"value\":\"45\"},{\"label\":\"90º\",\"value\":\"90\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11854,"Group":{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"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\":\"Fall 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":11857,"Group":{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"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":[],"Tags":[{"Id":2155,"Name":"noActivityInterval","BackendAction":"NoActivityInterval","Value":""}]},{"Id":11856,"Group":{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"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":[],"Tags":[{"Id":2154,"Name":"activateNoActivity","BackendAction":"ActivateNoActivity","Value":""}]},{"Id":11858,"Group":{"Id":7019,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7010,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7022,"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":7023,"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":[]}]},"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":[]},{"Id":11859,"Group":{"Id":7019,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7010,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7022,"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":7023,"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":[]}]},"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":11866,"Group":{"Id":7020,"Name":"Read Man Down Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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":"Tilt Angle","Json":"{\"name\":\"Tilt Angle\",\"default\":\"\",\"description\":\"Current Tilt Angle\",\"type\":\"radioGroup\",\"suffix\":\"degress\",\"prefix\":null,\"min\":10,\"max\":90,\"futureOnly\":false,\"integerOnly\":true,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[{\"label\":\"Off\",\"value\":\"0\"},{\"label\":\"45º\",\"value\":\"45\"},{\"label\":\"90º\",\"value\":\"90\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11848,"Group":{"Id":7020,"Name":"Read Man Down Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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\":\"Fall 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\"},{\"value\":\"6\",\"label\":\"Medium\"},{\"value\":\"9\",\"label\":\"High\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11847,"Group":{"Id":7020,"Name":"Read Man Down Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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 Man Down Settings","Json":"{\"name\":\"Enable Disable Man Down Settings\",\"default\":\"true\",\"description\":\"Enable Disable Man Down 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 Man Down Settings\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"true","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11943,"Group":{"Id":7020,"Name":"Read Man Down Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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":"Tilt Timeout","Json":"{\"name\":\"Tilt Timeout\",\"default\":\"\",\"description\":\"Current Tilt Timeout\",\"type\":\"radioGroup\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[{\"label\":\"10s\",\"value\":\"10\"},{\"label\":\"30s\",\"value\":\"30\"},{\"label\":\"60s\",\"value\":\"60\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11862,"Group":{"Id":7021,"Name":"Read Non Movement Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7030,"Name":"Read Welfare Settings","Json":{"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":"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":11861,"Group":{"Id":7021,"Name":"Read Non Movement Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7030,"Name":"Read Welfare Settings","Json":{"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 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":11860,"Group":{"Id":7022,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":{"Id":7010,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7019,"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":7023,"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":[]}]},"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":[]},{"Id":11849,"Group":{"Id":7023,"Name":"Approved Contacts","Json":{"description":"","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":{"Id":7010,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7019,"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":7022,"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":[]}]},"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":[]},{"Id":11853,"Group":{"Id":7024,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7029,"Name":"Welfare","Json":{"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 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":11852,"Group":{"Id":7024,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7029,"Name":"Welfare","Json":{"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":"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":11873,"Group":{"Id":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Prealarm","Json":"{\"name\":\"Prealarm\",\"default\":\"\",\"description\":\"Prealarm\",\"type\":\"number\",\"suffix\":\"minutes\",\"prefix\":null,\"min\":2,\"max\":10,\"futureOnly\":false,\"integerOnly\":true,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"min=2; max=10 [Time Out] - [Prealarm] must be >= 120 s.\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11874,"Group":{"Id":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Timeout","Json":"{\"name\":\"Timeout\",\"default\":\"\",\"description\":\"Timeout\",\"type\":\"number\",\"suffix\":\"minutes\",\"prefix\":null,\"min\":10,\"max\":6000,\"futureOnly\":false,\"integerOnly\":true,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"min=10; max=6000 [Time Out] - [Prealarm] must be >= 120 s.\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11976,"Group":{"Id":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Check","Json":"{\"name\":\"Check\",\"default\":\"\",\"description\":\"Check In/Out\",\"type\":\"radioGroup\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":true,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[{\"value\":\"01\",\"label\":\"Check In\"},{\"value\":\"00\",\"label\":\"Check Out\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11872,"Group":{"Id":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":[]}]},"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\":null,\"options\":[{\"value\":\"0\",\"label\":\"Amber Timer\"},{\"label\":\"Recurrent\",\"value\":\"1\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11871,"Group":{"Id":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Enable Disable Welfare","Json":"{\"name\":\"Enable Disable Welfare\",\"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":11870,"Group":{"Id":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":"Timeout","Json":"{\"name\":\"Timeout\",\"default\":\"\",\"description\":\"Current Timeout\",\"type\":\"number\",\"suffix\":\"minutes\",\"prefix\":null,\"min\":10,\"max\":6000,\"futureOnly\":false,\"integerOnly\":true,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"min=10; max=6000 [Time Out] - [Prealarm] must be >= 120 s.\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11869,"Group":{"Id":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":"Prealarm","Json":"{\"name\":\"Prealarm\",\"default\":\"\",\"description\":\"Current Prealarm\",\"type\":\"number\",\"suffix\":\"minutes\",\"prefix\":null,\"min\":2,\"max\":10,\"futureOnly\":false,\"integerOnly\":true,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"min=2; max=10 [Time Out] - [Prealarm] must be >= 120 s.\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11868,"Group":{"Id":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":"Enable Disable Read Welfare","Json":"{\"name\":\"Enable Disable Read Welfare\",\"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":11867,"Group":{"Id":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":"Mode","Json":"{\"name\":\"Mode\",\"default\":\"\",\"description\":\"Current Mode\",\"type\":\"radioGroup\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[{\"label\":\"Ambert Timer\",\"value\":\"0\"},{\"label\":\"Recurrent\",\"value\":\"1\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]}],"ProtocolChanges":[{"Version":"0.2","UserName":"juanmi","Resource":"Operation","Name":"Access PS Sentry","Message":"(Update) (Access PS Sentry) fix Get wifi list bug","Timestamp":1740071496},{"Version":"0.2","UserName":"juanmi","Resource":"Operation","Name":"Access PS Sentry","Message":"(Update) (Access PS Sentry) fix get wifi list bug 2","Timestamp":1740072152},{"Version":"0.2","UserName":"juanmi","Resource":"Protocol","Name":null,"Message":"Fix Get WiFi list bug. now the list is done with all networks that are both ON or connected","Timestamp":1740072865},{"Version":"0.3","UserName":"juanmi","Resource":"GroupParam","Name":"Approved Contacts","Message":"(Update) (Approved Contacts) remove command.. this is only for read","Timestamp":1740078087},{"Version":"0.3","UserName":"juanmi","Resource":"GroupParam","Name":"Approved Contacts","Message":"Dissociate groupParam Approved Contacts from command getAuthorisedNumbers","Timestamp":1740078091}],"ProtocolActionObjects":[],"Tags":[{"Id":2153,"Name":"OneCommandSender","BackendAction":"OneCommandSender","Value":"true"}]} \ No newline at end of file +{"Id":253,"Name":null,"Description":null,"FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","InProgress":false,"MessageTypes":[{"Id":7797,"Code":"WSTP","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":2,"Template":"Sentry-WSTP;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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":"^Sentry-WSTP;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7796,"Code":"ALA-F","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":2,"Template":"Sentry-ALA-F;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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":"^Sentry-ALA-F;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7795,"Code":"ALA-W","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-ALA-W;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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":"^Sentry-ALA-W;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7794,"Code":"WTS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":2,"Template":"Sentry-WTS;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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":"^Sentry-WTS;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7702,"Code":"ACK-WELCHECK-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"{{welfare single<>|welfare off<>}}","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5586,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setCheckInOutWelfare","TemplateSMS":"<>","Template":"<>","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// setCheckInOutWelfare\r\n// Check In: AB 10 04 00 2F EC 03 00 04 02 43 01\r\n// Check Out: AB 10 04 00 0E FC 02 00 04 02 43 00\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar messageBody = '04';\r\nvar key = '43';\r\nvar keyLength = '02'\r\nvar value = '';\r\nvar dataSMS = '';\r\n// second version of the logic\r\nif ((params.ReadState.Charging == 'true') && (params.Welfare.Mode == '1')) {\r\n value += '00'; // '00' Check Out\r\n dataSMS = 'welfareoff';\r\n} else if ((params.ReadState.Charging == 'false') && (params.Welfare.Mode == '1')) {\r\n value += '01'; // '01' Check In\r\n dataSMS = 'checkin';\r\n}\r\n// manual check in and checkout\r\n/*\r\nif (params.Welfare.Check) {\r\n value += params.Welfare.Check ; // '00' Check Out '01' Check In\r\n dataSMS = 'checkin'; \r\n} else {\r\n value += '00'; // Default Check Out\r\n dataSMS = 'welfareoff'; \r\n} \r\n*/\r\nmessageBody += keyLength + key + value;\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar totalLength = '0400'\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":2,"Order":null},"CacheImei":false,"RegEx":"^(welfare single[^|]*|welfare off[^|]*)","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7701,"Code":"ACK-NEWWEL-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"{{Old welfare<>|New welfare<>}}","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5412,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setExtraEnableControl","TemplateSMS":"<>","Template":"<>","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// SMS newwelfare0: Disable the new welfare feature and switch to the old welfare. newwelfare1: Switch to the new welfare feature.\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar value = '';\r\nvar dataSMS = '';\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\n// 00000001000000000000000000001000\r\nvalue += '0000000';\r\nvalue += '1'; // Stop call sequence ON\r\nvalue += '00000000000000000000'; // other bits until 28\r\nif (params.Welfare.EnableDisableWelfare == 'false') {\r\n value += '0000'; // Force mode to old welfare amber \r\n dataSMS = 'newwelfare0';\r\n} else { // depends on the selection\r\n if (params.Welfare.Mode == '0') {\r\n value += '0000'; // old welfare amber\r\n dataSMS = 'newwelfare0';\r\n } else {\r\n value += '1000'; // new welfare cyclic // recurrent\r\n dataSMS = 'newwelfare1';\r\n }\r\n}\r\nvalue = reverseString(value);\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\nvar prefix = 'AB10' + '0700' + 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 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\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":5463,"Parent":{"Id":5463,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setWelfareCheck","TemplateSMS":"<>","Template":"<>","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// SMS version Example: Welfare1,600,120,1 Reply: Welfarealarm. Example: Welfare0 Reply: Welfarecheckoff. Welfare,,,\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar value = '';\r\nvar value2 = '';\r\nvar time;\r\nvar dataSMS = '';\r\n// [Time Out] - [Prealarm] must be >= 120 s.\r\nif (params.Welfare.EnableDisableWelfare == 'true') {\r\n // second version of the logic\r\n value += '1'; //Enable \r\n dataSMS = `Welfare1,${(params.Welfare.Timeout * 60)},${(params.Welfare.Prealarm * 60)},1`;\r\n // First version of the logic \r\n /* if ((params.ReadState.Charging == 'true') && (params.Welfare.Mode == '1')) {\r\n value += '0'; //Disable when device is charging (on the dock) and recurrent mode is selected\r\n dataSMS = 'Welfare0';\r\n } else {\r\n value += '1'; //Enable in the other options\r\n dataSMS = `Welfare1,${(params.Welfare.Timeout * 60)},${(params.Welfare.Prealarm * 60)},1`;\r\n } */\r\n} else {\r\n value += '0'; //Disable\r\n dataSMS = 'Welfare0';\r\n}\r\nif (params.Welfare.Timeout) {\r\n time = params.Welfare.Timeout * 60; //in seconds this is value in protocol\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\n//if (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 += '1'; // Enable Dial Warning Time\r\nif (params.Welfare.Prealarm) {\r\n if ((params.Welfare.Timeout - params.Welfare.Prealarm) >= 2) {\r\n time = params.Welfare.Prealarm * 60; //in seconds this is WarningTime in protocol\r\n value2 += ('0000000000000000000000000000000' + decimalToBinary(parseInt(time))).slice(-31);\r\n } else { // If the difference between them is less than 2 minutes, we fix Prealarm\r\n value2 += ('0000000000000000000000000000000' + decimalToBinary(parseInt((params.Welfare.Timeout - 2) * 60))).slice(-31);\r\n }\r\n} else {\r\n value2 += ('0000000000000000000000000000000' + decimalToBinary(parseInt(300))).slice(-31);\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\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\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":25},"HasAck":true,"HexString":true,"SendAttempts":2,"Order":26},"CacheImei":false,"RegEx":"^(Old welfare[^|]*|New welfare[^|]*)","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7700,"Code":"ACK-WELFARE-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Welfare<>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5463,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setWelfareCheck","TemplateSMS":"<>","Template":"<>","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// SMS version Example: Welfare1,600,120,1 Reply: Welfarealarm. Example: Welfare0 Reply: Welfarecheckoff. Welfare,,,\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar value = '';\r\nvar value2 = '';\r\nvar time;\r\nvar dataSMS = '';\r\n// [Time Out] - [Prealarm] must be >= 120 s.\r\nif (params.Welfare.EnableDisableWelfare == 'true') {\r\n // second version of the logic\r\n value += '1'; //Enable \r\n dataSMS = `Welfare1,${(params.Welfare.Timeout * 60)},${(params.Welfare.Prealarm * 60)},1`;\r\n // First version of the logic \r\n /* if ((params.ReadState.Charging == 'true') && (params.Welfare.Mode == '1')) {\r\n value += '0'; //Disable when device is charging (on the dock) and recurrent mode is selected\r\n dataSMS = 'Welfare0';\r\n } else {\r\n value += '1'; //Enable in the other options\r\n dataSMS = `Welfare1,${(params.Welfare.Timeout * 60)},${(params.Welfare.Prealarm * 60)},1`;\r\n } */\r\n} else {\r\n value += '0'; //Disable\r\n dataSMS = 'Welfare0';\r\n}\r\nif (params.Welfare.Timeout) {\r\n time = params.Welfare.Timeout * 60; //in seconds this is value in protocol\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\n//if (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 += '1'; // Enable Dial Warning Time\r\nif (params.Welfare.Prealarm) {\r\n if ((params.Welfare.Timeout - params.Welfare.Prealarm) >= 2) {\r\n time = params.Welfare.Prealarm * 60; //in seconds this is WarningTime in protocol\r\n value2 += ('0000000000000000000000000000000' + decimalToBinary(parseInt(time))).slice(-31);\r\n } else { // If the difference between them is less than 2 minutes, we fix Prealarm\r\n value2 += ('0000000000000000000000000000000' + decimalToBinary(parseInt((params.Welfare.Timeout - 2) * 60))).slice(-31);\r\n }\r\n} else {\r\n value2 += ('0000000000000000000000000000000' + decimalToBinary(parseInt(300))).slice(-31);\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\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\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":25},"CacheImei":false,"RegEx":"^Welfare[^e]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7681,"Code":"ALSOS-C","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-ALSOS-C;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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":"^Sentry-ALSOS-C;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7540,"Code":"ALA-C","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-ALA-C;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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":"^Sentry-ALA-C;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7680,"Code":"ALW","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-ALW;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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":"^Sentry-ALW;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7679,"Code":"WELFOK","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-WELFOK;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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":"^Sentry-WELFOK;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7513,"Code":"ALA","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-ALA;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;GENERAL=<>;<>","HasTemplateGlobal":false,"ResponseTemplate":"<>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-ALA;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7504,"Code":"F-ACK-Data Format Invalid","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB0003004BF3<>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":"^Sentry-ACK;[^;]*;AB0003004BF3[^ ]*7F0121","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7503,"Code":"ACK-Out Of Service","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB0003005BF1<>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":"^Sentry-ACK;[^;]*;AB0003005BF1[^ ]*7F0130","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7556,"Code":"ACK-NOMOTION","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry;ACK-NOMOTION;<>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5480,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getNoMotionAlert","TemplateSMS":"","Template":"<>","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":"^Sentry;ACK-NOMOTION;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7562,"Code":"ACK-GSRV","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry;ACK-GSRV;<>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5469,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getServer","TemplateSMS":null,"Template":"<>","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":"^Sentry;ACK-GSRV;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7563,"Code":"ACK-GAPN","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry;ACK-GAPN;<>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5465,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getAPN","TemplateSMS":null,"Template":"<>","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":"^Sentry;ACK-GAPN;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7560,"Code":"ACK-FIRM","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry;ACK-FIRM;<>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5483,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getFirmwareVersion","TemplateSMS":"<>","Template":"<>","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":"^Sentry;ACK-FIRM;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7557,"Code":"ACK-CUSTID","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry;ACK-CUSTID;<>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5481,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCustomId","TemplateSMS":"","Template":"<>","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":"^Sentry;ACK-CUSTID;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7582,"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":5407,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"actionDeviceReboot","TemplateSMS":"<>","Template":"<>","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":2,"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":7581,"Code":"ACK-FALLSENS-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Mode:<>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5451,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings2","TemplateSMS":"<>","Template":"<>","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":5452,"Parent":{"Id":5452,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings","TemplateSMS":"<>","Template":"<>","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 = '47214A1A3440414243567355571F445310333075';\r\n/* \r\n47 Get device or custom id \r\n21 SpeedDial\r\n4A Wifi Network\r\n1A Firmware Long\r\n34 Contacts\r\n40 APN\r\n41 APNusername\r\n42 APNpass\r\n43 server details\r\n56 fall sensitivity\r\n73 Beacon List\r\n55 Tilt Angle Alert\r\n57 Welfare\r\n1F System language\r\n44 time interval\r\n53 No motion alert\r\n10 Ring tome vol\r\n33 allow list\r\n30 Emergency numbers\r\n75 Extra */\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '15';\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' + '1700' + 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},"HasAck":true,"HexString":true,"SendAttempts":4,"Order":18},"CacheImei":false,"RegEx":"^Mode:[^:]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7580,"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: }}<>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5462,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"actionRequestLocation","TemplateSMS":null,"Template":"<>","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":7579,"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":5461,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setSMSPrefix","TemplateSMS":null,"Template":"<>","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":7578,"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":5460,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"actionFactoryReset","TemplateSMS":"<>","Template":"<>","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}","AvoidResending":false,"FollowParentSentType":false,"SendingType":2,"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":7577,"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":5459,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"actionDeleteRecords","TemplateSMS":"<>","Template":"<>","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":7576,"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":5458,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"actionPowerOff","TemplateSMS":"<>","Template":"<>","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":2,"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":7575,"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":5457,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"actionTrace","TemplateSMS":"<>","Template":"<>","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":7574,"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":5466,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"actionRealTimeLocation","TemplateSMS":"<>","Template":"<>","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":2,"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":7573,"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":5464,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setAPN","TemplateSMS":"<>","Template":"<>","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":7572,"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":5456,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setFallSettings","TemplateSMS":"<>","Template":"<>","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) Man Down Settings Sensitivity\r\n//var messageBody = '02';\r\nvar sensitivity = '';\r\nvar dataSMS = '';\r\nvar value = '';\r\nif (params.ManDownSettings.EnableDisableManDownSettings == 'true') {\r\n value += '1';\r\n value += '100'; //Dial\r\n //}\r\n if (params.ManDownSettings.Sensitivity) {\r\n var sensiString = params.ManDownSettings.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":7571,"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":5454,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setGateway","TemplateSMS":"<>","Template":"<>","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}","AvoidResending":false,"FollowParentSentType":false,"SendingType":2,"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":7570,"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":5453,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setServer","TemplateSMS":"<>","Template":"<>","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":7569,"Code":"ACK-FIRM-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"IMEI:<>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5452,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings","TemplateSMS":"<>","Template":"<>","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 = '47214A1A3440414243567355571F445310333075';\r\n/* \r\n47 Get device or custom id \r\n21 SpeedDial\r\n4A Wifi Network\r\n1A Firmware Long\r\n34 Contacts\r\n40 APN\r\n41 APNusername\r\n42 APNpass\r\n43 server details\r\n56 fall sensitivity\r\n73 Beacon List\r\n55 Tilt Angle Alert\r\n57 Welfare\r\n1F System language\r\n44 time interval\r\n53 No motion alert\r\n10 Ring tome vol\r\n33 allow list\r\n30 Emergency numbers\r\n75 Extra */\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '15';\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' + '1700' + 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":7568,"Code":"ACK-GDATA","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry;ACK-GDATA;<>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5452,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings","TemplateSMS":"<>","Template":"<>","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 = '47214A1A3440414243567355571F445310333075';\r\n/* \r\n47 Get device or custom id \r\n21 SpeedDial\r\n4A Wifi Network\r\n1A Firmware Long\r\n34 Contacts\r\n40 APN\r\n41 APNusername\r\n42 APNpass\r\n43 server details\r\n56 fall sensitivity\r\n73 Beacon List\r\n55 Tilt Angle Alert\r\n57 Welfare\r\n1F System language\r\n44 time interval\r\n53 No motion alert\r\n10 Ring tome vol\r\n33 allow list\r\n30 Emergency numbers\r\n75 Extra */\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '15';\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' + '1700' + 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":"^Sentry;ACK-GDATA;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7567,"Code":"ACK-BEAC-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"1,<>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5450,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings3","TemplateSMS":"<>","Template":"<>","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":5452,"Parent":{"Id":5452,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings","TemplateSMS":"<>","Template":"<>","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 = '47214A1A3440414243567355571F445310333075';\r\n/* \r\n47 Get device or custom id \r\n21 SpeedDial\r\n4A Wifi Network\r\n1A Firmware Long\r\n34 Contacts\r\n40 APN\r\n41 APNusername\r\n42 APNpass\r\n43 server details\r\n56 fall sensitivity\r\n73 Beacon List\r\n55 Tilt Angle Alert\r\n57 Welfare\r\n1F System language\r\n44 time interval\r\n53 No motion alert\r\n10 Ring tome vol\r\n33 allow list\r\n30 Emergency numbers\r\n75 Extra */\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '15';\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' + '1700' + 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},"HasAck":true,"HexString":true,"SendAttempts":4,"Order":19},"CacheImei":false,"RegEx":"^1,[^,]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7566,"Code":"ACK-CONTAC-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"A1:<>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5449,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings4","TemplateSMS":"<>","Template":"<>","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":5452,"Parent":{"Id":5452,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings","TemplateSMS":"<>","Template":"<>","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 = '47214A1A3440414243567355571F445310333075';\r\n/* \r\n47 Get device or custom id \r\n21 SpeedDial\r\n4A Wifi Network\r\n1A Firmware Long\r\n34 Contacts\r\n40 APN\r\n41 APNusername\r\n42 APNpass\r\n43 server details\r\n56 fall sensitivity\r\n73 Beacon List\r\n55 Tilt Angle Alert\r\n57 Welfare\r\n1F System language\r\n44 time interval\r\n53 No motion alert\r\n10 Ring tome vol\r\n33 allow list\r\n30 Emergency numbers\r\n75 Extra */\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '15';\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' + '1700' + 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},"HasAck":true,"HexString":true,"SendAttempts":4,"Order":20},"CacheImei":false,"RegEx":"^A1:[^:]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7565,"Code":"ACK-SERV-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"GRPS:<>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5448,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings5","TemplateSMS":"<>","Template":"<>","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":5452,"Parent":{"Id":5452,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings","TemplateSMS":"<>","Template":"<>","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 = '47214A1A3440414243567355571F445310333075';\r\n/* \r\n47 Get device or custom id \r\n21 SpeedDial\r\n4A Wifi Network\r\n1A Firmware Long\r\n34 Contacts\r\n40 APN\r\n41 APNusername\r\n42 APNpass\r\n43 server details\r\n56 fall sensitivity\r\n73 Beacon List\r\n55 Tilt Angle Alert\r\n57 Welfare\r\n1F System language\r\n44 time interval\r\n53 No motion alert\r\n10 Ring tome vol\r\n33 allow list\r\n30 Emergency numbers\r\n75 Extra */\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '15';\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' + '1700' + 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},"HasAck":true,"HexString":true,"SendAttempts":4,"Order":21},"CacheImei":false,"RegEx":"^GRPS:[^:]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7564,"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":5455,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setEmergencySettings","TemplateSMS":"<>","Template":"<>","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 = '10'; // Enable, no SMS,\r\nif (params.AlertSettings.ReportMode) { // Toggle Call\r\n confSOS += params.AlertSettings.ReportMode;\r\n}\r\nconfSOS += '00000'; // 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,';\r\n dataSMS += params.AlertSettings.ReportMode; // Toggle Call\r\n dataSMS += `,${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":7561,"Code":"ACK-HB-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Set heart beat<>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5467,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"actionConfigurationMode","TemplateSMS":null,"Template":"<>","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}","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":7559,"Code":"ACK-LANG","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry;ACK-LANG;<>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5485,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getSystemLanguage","TemplateSMS":"<>","Template":"<>","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":"^Sentry;ACK-LANG;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7558,"Code":"ACK-MODE","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry;ACK-MODE;<>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5482,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getPerformanceMode","TemplateSMS":"","Template":"<>","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":"^Sentry;ACK-MODE;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7555,"Code":"ACK-FALLALERT","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry;ACK-FALLALERT;<>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5479,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getFallDownAlert","TemplateSMS":"","Template":"<>","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":"^Sentry;ACK-FALLALERT;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7554,"Code":"ACK-VOL","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry;ACK-VOL;<>;","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":{"Id":5478,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getVolume","TemplateSMS":null,"Template":"<>","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":"^Sentry;ACK-VOL;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7553,"Code":"PWRN","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-PWRN;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;GENERAL=<>;<>","HasTemplateGlobal":false,"ResponseTemplate":"<>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-PWRN;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7552,"Code":"ALF","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-ALF;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;GENERAL=<>;<>","HasTemplateGlobal":false,"ResponseTemplate":"<>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-ALF;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7551,"Code":"ACK-SPEED","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry;ACK-SPEED;<>;","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":"^Sentry;ACK-SPEED;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7550,"Code":"ACK-WIFI","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry;ACK-WIFI;<>;","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":"^Sentry;ACK-WIFI;[^;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7549,"Code":"BATCF","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-BATCF;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;GENERAL=<>;<>","HasTemplateGlobal":false,"ResponseTemplate":"<>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-BATCF;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7548,"Code":"BATCN","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-BATCN;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;GENERAL=<>;<>","HasTemplateGlobal":false,"ResponseTemplate":"<>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-BATCN;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7547,"Code":"COMM-SMS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-SMS;<>;<>","HasTemplateGlobal":false,"ResponseTemplate":null,"TemplateGlobal":"esendex<>esendex<>","LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-SMS;[^;]*;[^;]*","RegExGlobal":"^esendex[^e]*esendex[^x]*","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7546,"Code":"NACT","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"+RESP:NACT,<>,<>$","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":7545,"Code":"ALA-O","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-ALA-O;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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":"^Sentry-ALA-O;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7544,"Code":"ENC-2","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"","HasTemplateGlobal":true,"ResponseTemplate":"<>","TemplateGlobal":"AB00<>","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":7543,"Code":"RTL-BEACON","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Beacon:Loc Time: <>","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":7542,"Code":"HRT","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-HRT;<>;STATUS=<>;ETIME=<>;GENERAL=<>;<>;HRT=<>;TLEVEL=<>;LABEL=<>","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":"^Sentry-HRT;[^;]*;STATUS=[^;;]*;ETIME=[^;;]*;GENERAL=[^;;]*;[^;;]*;HRT=[^;;]*;TLEVEL=[^;;]*;LABEL=[^=]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7541,"Code":"PWRF","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-PWRF;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;GENERAL=<>;<>","HasTemplateGlobal":false,"ResponseTemplate":"<>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-PWRF;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7539,"Code":"ENC","Name":null,"MessageCode":null,"NeedAck":true,"IsAck":false,"IsFailAck":false,"IsAckHexString":true,"NoOperation":false,"Type":0,"Template":"","HasTemplateGlobal":true,"ResponseTemplate":"<>","TemplateGlobal":"AB10<>","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":7538,"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: <>","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":7537,"Code":"COMM-GT","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Eview;<>;<>;Get timestamp","HasTemplateGlobal":false,"ResponseTemplate":"<>","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":7536,"Code":"F-ACK-Version Invalid","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB00030018C5<>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":"^Sentry-ACK;[^;]*;AB00030018C5[^ ]*7F0111","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7535,"Code":"F-ACK-Key Invalid","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB000300FFB5<>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":"^Sentry-ACK;[^;]*;AB000300FFB5[^ ]*7F0116","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7534,"Code":"F-ACK-Encryption Invalid","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB0003007BF5<>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":"^Sentry-ACK;[^;]*;AB0003007BF5[^ ]*7F0112","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7533,"Code":"F-ACK-Checksum Error","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB000300BD95<>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":"^Sentry-ACK;[^;]*;AB000300BD95[^ ]*7F0114","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7532,"Code":"F-ACK-BLE Password","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB000300CC8F<>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":"^Sentry-ACK;[^;]*;AB000300CC8F[^7;]*7F0140","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7531,"Code":"F-ACK-Address Resp","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB0003006262<>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":"^Sentry-ACK;[^;]*;AB0003006262[^ ]*7F0128","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7530,"Code":"ACK-global","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":true,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB00030008C7<>7F0100","HasTemplateGlobal":false,"ResponseTemplate":"<>","TemplateGlobal":null,"LongConnection":true,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":false,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-ACK;[^;]*;AB00030008C7[^ ]*7F0100","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7529,"Code":"F-ACK-Invalid Parameter","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB000300EEA3<>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":"^Sentry-ACK;[^;]*;AB000300EEA3[^ ]*7F0124","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7528,"Code":"F-ACK-Length Error","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB0003005AE5<>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":"^Sentry-ACK;[^;]*;AB0003005AE5[^ ]*7F0113","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7527,"Code":"ALF-C","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-ALF-C;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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":"^Sentry-ALF-C;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7526,"Code":"ALNM","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-ALNM;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;GENERAL=<>;<>","HasTemplateGlobal":false,"ResponseTemplate":"<>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-ALNM;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7525,"Code":"ALSP","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-ALSP;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;GENERAL=<>;<>","HasTemplateGlobal":false,"ResponseTemplate":"<>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-ALSP;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7524,"Code":"RTL","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-RTL;<>;<>;<>;<>;<>;<>;<>;<>;<>;","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":"^Sentry-RTL;[^;]*;[^;;]*;[^;;]*;[^;;]*;[^;;]*;[^;;]*;[^;;]*;[^;;]*;[^;;]*;","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7523,"Code":"ALA-S","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-ALA-S;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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":"^Sentry-ALA-S;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7522,"Code":"STP","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-STP;<>;STATUS=<>;ETIME=<>;GENERAL=<>;<>;STP=<>;LABEL=<>","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":"^Sentry-STP;[^;]*;STATUS=[^;;]*;ETIME=[^;;]*;GENERAL=[^;;]*;[^;;]*;STP=[^;;]*;LABEL=[^=]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7521,"Code":"BATL","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-BATL;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;GENERAL=<>;<>","HasTemplateGlobal":false,"ResponseTemplate":"<>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-BATL;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7520,"Code":"BATF","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-BATF;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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":"^Sentry-BATF;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7519,"Code":"ALMOV","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-ALMOV;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;GENERAL=<>;<>","HasTemplateGlobal":false,"ResponseTemplate":"<>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-ALMOV;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7518,"Code":"ALSOS","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"Sentry-ALSOS;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;GENERAL=<>;<>","HasTemplateGlobal":false,"ResponseTemplate":"<>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-ALSOS;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7517,"Code":"F-ACK-No Memory","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB000300CFB3<>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":"^Sentry-ACK;[^;]*;AB000300CFB3[^ ]*7F0125","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7516,"Code":"CHK","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Eview-HTB;<>;STATUS=<>;TIME=<>;BATP=<>;SIGNAL=<>;WM=<>;GENERAL=<>","HasTemplateGlobal":false,"ResponseTemplate":"<>","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":7515,"Code":"CYC","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-CYC;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;SIGNAL=<>;WM=<>;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":"^Sentry-CYC;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;SIGNAL=[^;;]*;WM=[^;;]*;GENERAL=[^=]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7514,"Code":"Alert Finalized","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-SOSEnding;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;GENERAL=<>;<>","HasTemplateGlobal":false,"ResponseTemplate":"<>","TemplateGlobal":null,"LongConnection":false,"HexString":false,"AckFirst":false,"ScaipH":false,"DoNotSendCommands":true,"ProtocolsLibraryMethod":null,"ProtocolsLibraryMethodArgs":null,"Command":null,"CacheImei":false,"RegEx":"^Sentry-SOSEnding;[^;]*;STATUS=[^;;]*;LTIME=[^;;]*;ETIME=[^;;]*;BATP=[^;;]*;LGPS=[^;;]*;LWIF=[^;;]*;LLBS=[^;;]*;LBEACON=[^;;]*;BLE=[^;;]*;GENERAL=[^;;]*;[^;]*","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7512,"Code":"F-ACK-Invalid State","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB00030009D3<>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":"^Sentry-ACK;[^;]*;AB00030009D3[^ ]*7F0123","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7511,"Code":"F-ACK-SubFunction Not Supported","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB000300AC83<>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":"^Sentry-ACK;[^;]*;AB000300AC83[^ ]*7F0126","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7510,"Code":"CHK-ASSO","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Eview-ASSOCIATE;<>;<>;","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":7509,"Code":"F-ACK-Data Size Error","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB00030028C3<>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":"^Sentry-ACK;[^;]*;AB00030028C3[^ ]*7F0122","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7508,"Code":"ZNI","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"+RESP:ZIN,<>,<>,<>,<>,<>,<>,<>,<>$","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":7507,"Code":"F-ACK-GPS Is Not Ready","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB0003008D93<>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":"^Sentry-ACK;[^;]*;AB0003008D93[^ ]*7F0127","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7506,"Code":"ZNO","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":false,"IsAckHexString":false,"NoOperation":false,"Type":1,"Template":"+RESP:ZOUT,<>,<>,<>,<>,<>,<>,<>,<>$","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":7505,"Code":"F-ACK-Key Length Error","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB000300DEA5<>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":"^Sentry-ACK;[^;]*;AB000300DEA5[^ ]*7F0117","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]},{"Id":7502,"Code":"F-ACK-Command Invalid","Name":null,"MessageCode":null,"NeedAck":false,"IsAck":false,"IsFailAck":true,"IsAckHexString":false,"NoOperation":false,"Type":0,"Template":"Sentry-ACK;<>;AB0003009C85<>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":"^Sentry-ACK;[^;]*;AB0003009C85[^ ]*7F0115","RegExGlobal":"","IsDeviceUpdate":false,"ProtocolActionObjects":[],"Tags":[]}],"Commands":[{"Id":5467,"Name":"actionConfigurationMode","TemplateSMS":null,"Template":"<>","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":[]},{"Id":5412,"Name":"setExtraEnableControl","TemplateSMS":"<>","Template":"<>","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// SMS newwelfare0: Disable the new welfare feature and switch to the old welfare. newwelfare1: Switch to the new welfare feature.\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar value = '';\r\nvar dataSMS = '';\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\n// 00000001000000000000000000001000\r\nvalue += '0000000';\r\nvalue += '1'; // Stop call sequence ON\r\nvalue += '00000000000000000000'; // other bits until 28\r\nif (params.Welfare.EnableDisableWelfare == 'false') {\r\n value += '0000'; // Force mode to old welfare amber \r\n dataSMS = 'newwelfare0';\r\n} else { // depends on the selection\r\n if (params.Welfare.Mode == '0') {\r\n value += '0000'; // old welfare amber\r\n dataSMS = 'newwelfare0';\r\n } else {\r\n value += '1000'; // new welfare cyclic // recurrent\r\n dataSMS = 'newwelfare1';\r\n }\r\n}\r\nvalue = reverseString(value);\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\nvar prefix = 'AB10' + '0700' + 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 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\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":5463,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"setWelfareCheck","TemplateSMS":"<>","Template":"<>","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// SMS version Example: Welfare1,600,120,1 Reply: Welfarealarm. Example: Welfare0 Reply: Welfarecheckoff. Welfare,,,\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar value = '';\r\nvar value2 = '';\r\nvar time;\r\nvar dataSMS = '';\r\n// [Time Out] - [Prealarm] must be >= 120 s.\r\nif (params.Welfare.EnableDisableWelfare == 'true') {\r\n // second version of the logic\r\n value += '1'; //Enable \r\n dataSMS = `Welfare1,${(params.Welfare.Timeout * 60)},${(params.Welfare.Prealarm * 60)},1`;\r\n // First version of the logic \r\n /* if ((params.ReadState.Charging == 'true') && (params.Welfare.Mode == '1')) {\r\n value += '0'; //Disable when device is charging (on the dock) and recurrent mode is selected\r\n dataSMS = 'Welfare0';\r\n } else {\r\n value += '1'; //Enable in the other options\r\n dataSMS = `Welfare1,${(params.Welfare.Timeout * 60)},${(params.Welfare.Prealarm * 60)},1`;\r\n } */\r\n} else {\r\n value += '0'; //Disable\r\n dataSMS = 'Welfare0';\r\n}\r\nif (params.Welfare.Timeout) {\r\n time = params.Welfare.Timeout * 60; //in seconds this is value in protocol\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\n//if (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 += '1'; // Enable Dial Warning Time\r\nif (params.Welfare.Prealarm) {\r\n if ((params.Welfare.Timeout - params.Welfare.Prealarm) >= 2) {\r\n time = params.Welfare.Prealarm * 60; //in seconds this is WarningTime in protocol\r\n value2 += ('0000000000000000000000000000000' + decimalToBinary(parseInt(time))).slice(-31);\r\n } else { // If the difference between them is less than 2 minutes, we fix Prealarm\r\n value2 += ('0000000000000000000000000000000' + decimalToBinary(parseInt((params.Welfare.Timeout - 2) * 60))).slice(-31);\r\n }\r\n} else {\r\n value2 += ('0000000000000000000000000000000' + decimalToBinary(parseInt(300))).slice(-31);\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\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\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":25},"AvoidResending":false,"FollowParentSentType":true,"SendingType":0,"HasAck":true,"HexString":true,"Order":26,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":5586,"Name":"setCheckInOutWelfare","TemplateSMS":"<>","Template":"<>","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// setCheckInOutWelfare\r\n// Check In: AB 10 04 00 2F EC 03 00 04 02 43 01\r\n// Check Out: AB 10 04 00 0E FC 02 00 04 02 43 00\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar messageBody = '04';\r\nvar key = '43';\r\nvar keyLength = '02'\r\nvar value = '';\r\nvar dataSMS = '';\r\n// second version of the logic\r\nif ((params.ReadState.Charging == 'true') && (params.Welfare.Mode == '1')) {\r\n value += '00'; // '00' Check Out\r\n dataSMS = 'welfareoff';\r\n} else if ((params.ReadState.Charging == 'false') && (params.Welfare.Mode == '1')) {\r\n value += '01'; // '01' Check In\r\n dataSMS = 'checkin';\r\n}\r\n// manual check in and checkout\r\n/*\r\nif (params.Welfare.Check) {\r\n value += params.Welfare.Check ; // '00' Check Out '01' Check In\r\n dataSMS = 'checkin'; \r\n} else {\r\n value += '00'; // Default Check Out\r\n dataSMS = 'welfareoff'; \r\n} \r\n*/\r\nmessageBody += keyLength + key + value;\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar totalLength = '0400'\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":null,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":5485,"Name":"getSystemLanguage","TemplateSMS":"<>","Template":"<>","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":5429,"Name":"setSystemSettings","TemplateSMS":null,"Template":"<>","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":5456,"Name":"setFallSettings","TemplateSMS":"<>","Template":"<>","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) Man Down Settings Sensitivity\r\n//var messageBody = '02';\r\nvar sensitivity = '';\r\nvar dataSMS = '';\r\nvar value = '';\r\nif (params.ManDownSettings.EnableDisableManDownSettings == 'true') {\r\n value += '1';\r\n value += '100'; //Dial\r\n //}\r\n if (params.ManDownSettings.Sensitivity) {\r\n var sensiString = params.ManDownSettings.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":5452,"Name":"getCurrentSettings","TemplateSMS":"<>","Template":"<>","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 = '47214A1A3440414243567355571F445310333075';\r\n/* \r\n47 Get device or custom id \r\n21 SpeedDial\r\n4A Wifi Network\r\n1A Firmware Long\r\n34 Contacts\r\n40 APN\r\n41 APNusername\r\n42 APNpass\r\n43 server details\r\n56 fall sensitivity\r\n73 Beacon List\r\n55 Tilt Angle Alert\r\n57 Welfare\r\n1F System language\r\n44 time interval\r\n53 No motion alert\r\n10 Ring tome vol\r\n33 allow list\r\n30 Emergency numbers\r\n75 Extra */\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '15';\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' + '1700' + 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":5477,"Name":"setSpeedDialNumber","TemplateSMS":null,"Template":"<>","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":5437,"Name":"setPerformanceMode","TemplateSMS":"<>","Template":"<>","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":[]},{"Id":5455,"Name":"setEmergencySettings","TemplateSMS":"<>","Template":"<>","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 = '10'; // Enable, no SMS,\r\nif (params.AlertSettings.ReportMode) { // Toggle Call\r\n confSOS += params.AlertSettings.ReportMode;\r\n}\r\nconfSOS += '00000'; // 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,';\r\n dataSMS += params.AlertSettings.ReportMode; // Toggle Call\r\n dataSMS += `,${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":5488,"Name":"setTiltAngle","TemplateSMS":"<>","Template":"<>","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//var params = {ManDownSettings:{'EnableDisableManDownSettings':'false','TiltAngle':'50'}}\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = []; //tilt1,45,30s,1\r\n// configuration command (0X02) Tilt Alert\r\n//var angle = ('00000000' + decimalToBinary(parseInt(45))).slice(-8).toUpperCase(); // 45 degrees default\r\n//var time = ('0000000000000000' + decimalToBinary(parseInt(30))).slice(-16).toUpperCase(); // 30 seconds default\r\nvar angle = '';\r\nvar time = '';\r\nvar value = '';\r\nvar dataSMS = '';\r\nif (params.ManDownSettings.EnableDisableManDownSettings == 'true') { //man down alert on\r\n if (params.ManDownSettings.TiltAngle != '0') { // Angle is not OFF\r\n if (params.ManDownSettings.TiltTimeout) {\r\n time = ('0000' + decimalToHex(parseInt(params.ManDownSettings.TiltTimeout))).slice(-4).toUpperCase();\r\n time = changeEndianness(time);\r\n }\r\n if (params.ManDownSettings.TiltAngle) {\r\n angle = ('00000000' + decimalToBinary(parseInt(params.ManDownSettings.TiltAngle))).slice(-8).toUpperCase();\r\n angle += '11'; //Enable an Dial\r\n angle += '000000'; //reserved\r\n angle = ('0000' + binaryToHex(angle)).slice(-4).toUpperCase();\r\n }\r\n // For GPRS\r\n value += time + angle;\r\n // For SMS\r\n dataSMS = `tilt1,${parseInt(params.ManDownSettings.TiltAngle)},${parseInt(params.ManDownSettings.TiltTimeout)}s,1`; // {\"angle\":angle,\"time\":30,\"status\":1,\"dial\":1}\r\n } else { // Angle is OFF\r\n if (params.ManDownSettings.TiltTimeout) {\r\n time = ('0000' + decimalToHex(parseInt(params.ManDownSettings.TiltTimeout))).slice(-4).toUpperCase();\r\n time = changeEndianness(time);\r\n }\r\n value += time + '1E00'; // {\"angle\":30,\"time\":time,\"status\":0,\"dial\":0}\r\n dataSMS = `tilt0,30,${parseInt(params.ManDownSettings.TiltTimeout)}s,0`; //ACK is Set tilt alarm 30 degrees ok.\r\n }\r\n // mandown alert off\r\n} else {\r\n if (params.ManDownSettings.TiltTimeout) {\r\n time = ('0000' + decimalToHex(parseInt(params.ManDownSettings.TiltTimeout))).slice(-4).toUpperCase();\r\n time = changeEndianness(time);\r\n }\r\n value += time + '1E00'; // {\"angle\":30,\"time\":time,\"status\":0,\"dial\":0}\r\n dataSMS = `tilt0,30,${parseInt(params.ManDownSettings.TiltTimeout)}s,0`; //ACK is Set tilt alarm 30 degrees ok.\r\n}\r\n// create HEADER\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '05';\r\nvar key = '55';\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' + '0700' + 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":5434,"Name":"setFallSensitivitybySMS","TemplateSMS":"<>","Template":"<>","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":5435,"Name":"setOverSpeedAlert","TemplateSMS":null,"Template":"<>","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":5468,"Name":"setSOSNumber","TemplateSMS":null,"Template":"<>","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":5469,"Name":"getServer","TemplateSMS":null,"Template":"<>","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":5470,"Name":"setMicVolume","TemplateSMS":null,"Template":"<>","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":5471,"Name":"setPowerAlert","TemplateSMS":null,"Template":"<>","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":5472,"Name":"actionInitializeMileage","TemplateSMS":null,"Template":"<>","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":5473,"Name":"setAuthorisedNumbers","TemplateSMS":"","Template":"<>","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":5474,"Name":"actionFindDevice","TemplateSMS":"<>","Template":"<>","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":5475,"Name":"setWifiSettings","TemplateSMS":"<>","Template":"<>","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":5476,"Name":"getSystemSettings","TemplateSMS":"<>","Template":"<>","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":5478,"Name":"getVolume","TemplateSMS":null,"Template":"<>","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":5479,"Name":"getFallDownAlert","TemplateSMS":"","Template":"<>","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":5432,"Name":"setEmergencyNumberbySMS","TemplateSMS":"<>","Template":"<>","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":5480,"Name":"getNoMotionAlert","TemplateSMS":"","Template":"<>","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":5481,"Name":"getCustomId","TemplateSMS":"","Template":"<>","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":5407,"Name":"actionDeviceReboot","TemplateSMS":"<>","Template":"<>","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":[]},{"Id":5408,"Name":"setSOSOption","TemplateSMS":null,"Template":"<>","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":5409,"Name":"setSpeedDialSettings","TemplateSMS":null,"Template":"<>","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":5410,"Name":"setOystaNumber","TemplateSMS":null,"Template":"<>","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":5411,"Name":"setSMSPassword","TemplateSMS":null,"Template":"<>","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":5413,"Name":"setHeartRateDetectingInterval","TemplateSMS":null,"Template":"<>","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":5414,"Name":"setFallDownAlert","TemplateSMS":null,"Template":"<>","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":5415,"Name":"setSOSButtonSettings","TemplateSMS":null,"Template":"<>","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":5416,"Name":"setEnableControl","TemplateSMS":null,"Template":"<>","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":5417,"Name":"setVoicePromptVolume","TemplateSMS":null,"Template":"<>","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":5418,"Name":"setAlarmClock4","TemplateSMS":null,"Template":"<>","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":5419,"Name":"setAlarmClock3","TemplateSMS":null,"Template":"<>","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":5420,"Name":"setAlarmClock2","TemplateSMS":null,"Template":"<>","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":5421,"Name":"setCustom ID","TemplateSMS":null,"Template":"<>","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":5422,"Name":"setHomeBeacon","TemplateSMS":"<>","Template":"<>","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":5423,"Name":"setSystemLanguage","TemplateSMS":"<>","Template":"<>","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":5424,"Name":"setNoMotionAlert","TemplateSMS":null,"Template":"<>","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":5425,"Name":"setContinuousLocate","TemplateSMS":null,"Template":"<>","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":5426,"Name":"setStepCollectSettings","TemplateSMS":null,"Template":"<>","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":5427,"Name":"setSMSGatewayNumber","TemplateSMS":null,"Template":"<>","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":5428,"Name":"getHomeBeacon","TemplateSMS":null,"Template":"<>","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":5430,"Name":"getAuthorisedNumbers","TemplateSMS":null,"Template":"<>","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":5431,"Name":"setServerSMS","TemplateSMS":"<>","Template":"<>","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":5482,"Name":"getPerformanceMode","TemplateSMS":"","Template":"<>","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":5483,"Name":"getFirmwareVersion","TemplateSMS":"<>","Template":"<>","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":5436,"Name":"setAPNSMS","TemplateSMS":"<>","Template":"<>","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":5438,"Name":"setAlarmClock1","TemplateSMS":null,"Template":"<>","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":5439,"Name":"setSpeakerVolume","TemplateSMS":null,"Template":"<>","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":5440,"Name":"setNoDisturb","TemplateSMS":null,"Template":"<>","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":5441,"Name":"setMotionAlert","TemplateSMS":null,"Template":"<>","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":5442,"Name":"setCycle","TemplateSMS":null,"Template":"<>","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":5443,"Name":"setVoicePrompt","TemplateSMS":null,"Template":"<>","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":5444,"Name":"setGatewayNumberbySMS","TemplateSMS":"<>","Template":"<>","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":5445,"Name":"setTiltAlertSettings","TemplateSMS":null,"Template":"<>","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":[]},{"Id":5446,"Name":"setRingToneVolume","TemplateSMS":null,"Template":"<>","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":5447,"Name":"setPhoneSettings","TemplateSMS":null,"Template":"<>","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":5453,"Name":"setServer","TemplateSMS":"<>","Template":"<>","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":5454,"Name":"setGateway","TemplateSMS":"<>","Template":"<>","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":[]},{"Id":5457,"Name":"actionTrace","TemplateSMS":"<>","Template":"<>","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":5458,"Name":"actionPowerOff","TemplateSMS":"<>","Template":"<>","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":[]},{"Id":5459,"Name":"actionDeleteRecords","TemplateSMS":"<>","Template":"<>","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":5460,"Name":"actionFactoryReset","TemplateSMS":"<>","Template":"<>","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":[]},{"Id":5461,"Name":"setSMSPrefix","TemplateSMS":null,"Template":"<>","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":5462,"Name":"actionRequestLocation","TemplateSMS":null,"Template":"<>","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":5463,"Name":"setWelfareCheck","TemplateSMS":"<>","Template":"<>","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// SMS version Example: Welfare1,600,120,1 Reply: Welfarealarm. Example: Welfare0 Reply: Welfarecheckoff. Welfare,,,\r\nvar msg = [];\r\nvar configs = [];\r\nvar configsSMS = [];\r\nvar value = '';\r\nvar value2 = '';\r\nvar time;\r\nvar dataSMS = '';\r\n// [Time Out] - [Prealarm] must be >= 120 s.\r\nif (params.Welfare.EnableDisableWelfare == 'true') {\r\n // second version of the logic\r\n value += '1'; //Enable \r\n dataSMS = `Welfare1,${(params.Welfare.Timeout * 60)},${(params.Welfare.Prealarm * 60)},1`;\r\n // First version of the logic \r\n /* if ((params.ReadState.Charging == 'true') && (params.Welfare.Mode == '1')) {\r\n value += '0'; //Disable when device is charging (on the dock) and recurrent mode is selected\r\n dataSMS = 'Welfare0';\r\n } else {\r\n value += '1'; //Enable in the other options\r\n dataSMS = `Welfare1,${(params.Welfare.Timeout * 60)},${(params.Welfare.Prealarm * 60)},1`;\r\n } */\r\n} else {\r\n value += '0'; //Disable\r\n dataSMS = 'Welfare0';\r\n}\r\nif (params.Welfare.Timeout) {\r\n time = params.Welfare.Timeout * 60; //in seconds this is value in protocol\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\n//if (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 += '1'; // Enable Dial Warning Time\r\nif (params.Welfare.Prealarm) {\r\n if ((params.Welfare.Timeout - params.Welfare.Prealarm) >= 2) {\r\n time = params.Welfare.Prealarm * 60; //in seconds this is WarningTime in protocol\r\n value2 += ('0000000000000000000000000000000' + decimalToBinary(parseInt(time))).slice(-31);\r\n } else { // If the difference between them is less than 2 minutes, we fix Prealarm\r\n value2 += ('0000000000000000000000000000000' + decimalToBinary(parseInt((params.Welfare.Timeout - 2) * 60))).slice(-31);\r\n }\r\n} else {\r\n value2 += ('0000000000000000000000000000000' + decimalToBinary(parseInt(300))).slice(-31);\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\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\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":25,"SendAttempts":2,"ProtocolActionObjects":[],"Tags":[]},{"Id":5464,"Name":"setAPN","TemplateSMS":"<>","Template":"<>","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":5465,"Name":"getAPN","TemplateSMS":null,"Template":"<>","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":5466,"Name":"actionRealTimeLocation","TemplateSMS":"<>","Template":"<>","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":[]},{"Id":5484,"Name":"setWifiList","TemplateSMS":null,"Template":"<>","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":5433,"Name":"setBeacons","TemplateSMS":null,"Template":"<>","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":5451,"Name":"getCurrentSettings2","TemplateSMS":"<>","Template":"<>","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":5452,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings","TemplateSMS":"<>","Template":"<>","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 = '47214A1A3440414243567355571F445310333075';\r\n/* \r\n47 Get device or custom id \r\n21 SpeedDial\r\n4A Wifi Network\r\n1A Firmware Long\r\n34 Contacts\r\n40 APN\r\n41 APNusername\r\n42 APNpass\r\n43 server details\r\n56 fall sensitivity\r\n73 Beacon List\r\n55 Tilt Angle Alert\r\n57 Welfare\r\n1F System language\r\n44 time interval\r\n53 No motion alert\r\n10 Ring tome vol\r\n33 allow list\r\n30 Emergency numbers\r\n75 Extra */\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '15';\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' + '1700' + 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":[]},{"Id":5450,"Name":"getCurrentSettings3","TemplateSMS":"<>","Template":"<>","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":5452,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings","TemplateSMS":"<>","Template":"<>","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 = '47214A1A3440414243567355571F445310333075';\r\n/* \r\n47 Get device or custom id \r\n21 SpeedDial\r\n4A Wifi Network\r\n1A Firmware Long\r\n34 Contacts\r\n40 APN\r\n41 APNusername\r\n42 APNpass\r\n43 server details\r\n56 fall sensitivity\r\n73 Beacon List\r\n55 Tilt Angle Alert\r\n57 Welfare\r\n1F System language\r\n44 time interval\r\n53 No motion alert\r\n10 Ring tome vol\r\n33 allow list\r\n30 Emergency numbers\r\n75 Extra */\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '15';\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' + '1700' + 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":[]},{"Id":5449,"Name":"getCurrentSettings4","TemplateSMS":"<>","Template":"<>","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":5452,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings","TemplateSMS":"<>","Template":"<>","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 = '47214A1A3440414243567355571F445310333075';\r\n/* \r\n47 Get device or custom id \r\n21 SpeedDial\r\n4A Wifi Network\r\n1A Firmware Long\r\n34 Contacts\r\n40 APN\r\n41 APNusername\r\n42 APNpass\r\n43 server details\r\n56 fall sensitivity\r\n73 Beacon List\r\n55 Tilt Angle Alert\r\n57 Welfare\r\n1F System language\r\n44 time interval\r\n53 No motion alert\r\n10 Ring tome vol\r\n33 allow list\r\n30 Emergency numbers\r\n75 Extra */\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '15';\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' + '1700' + 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":[]},{"Id":5448,"Name":"getCurrentSettings5","TemplateSMS":"<>","Template":"<>","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":5452,"Protocol":{"Id":253,"Code":"Access PS Sentry","Version":"0.1","FirmwareVersion":"V04b.8601.2411.1.0.16.4411.2409.25","Product":null,"AvailableVersions":[],"HistoryVersions":[],"IsChanged":false},"Name":"getCurrentSettings","TemplateSMS":"<>","Template":"<>","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 = '47214A1A3440414243567355571F445310333075';\r\n/* \r\n47 Get device or custom id \r\n21 SpeedDial\r\n4A Wifi Network\r\n1A Firmware Long\r\n34 Contacts\r\n40 APN\r\n41 APNusername\r\n42 APNpass\r\n43 server details\r\n56 fall sensitivity\r\n73 Beacon List\r\n55 Tilt Angle Alert\r\n57 Welfare\r\n1F System language\r\n44 time interval\r\n53 No motion alert\r\n10 Ring tome vol\r\n33 allow list\r\n30 Emergency numbers\r\n75 Extra */\r\nvar sequenceID = (+new Date()).toString(16).slice(-4).toUpperCase();\r\nvar command = '02';\r\nvar keyLength = '15';\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' + '1700' + 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":[]}],"Operations":[{"Id":362,"Name":"Access PS Sentry","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 // Sentry protocol - please see variables and typical values in order below\r\n // Sentry-CYC;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;SIGNAL=<>;WM=<>;GENERAL=<>\r\n // Sentry-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: Juanmi N.\r\n // Created: 01/01/2025\r\n // Last modified: 14/02/2025\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', 'Sentry');\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 = (`Sentry-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 //<>,<>,<> \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 //<>,<>,<> \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 Sentry-')) {\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 = (`Sentry-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 = (`Sentry;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 = (`Sentry;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 = (`Sentry-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 // 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 AddConfig(codeValueArray, configName, newvalue) {\r\n if (newvalue !== undefined) { // don't add if newvalue is undefined\r\n var cvpair = {\r\n 'code': configName,\r\n 'value': newvalue, // ? newvalue : \"Not Defined\" \r\n 'forced': true\r\n };\r\n codeValueArray.push(cvpair);\r\n };\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 ¿qué es fall OFF?\r\n if ((alarmCodeExtInt & 1) == 1) {\r\n var alarm = 'ALF-C'; // Fall-DownAlertending\r\n }\r\n // Welfare Check-out\r\n else if ((alarmCodeExtInt & 2) == 2) {\r\n var alarm = 'WSTP';\r\n if (configs.Welfare.Mode == '1') {\r\n info = 'Recurrent';\r\n } else info = 'Amber';\r\n }\r\n //Geo 5 in\r\n //else if ((alarmCodeInt & 16) == 16) {\r\n // var alarm = 'BATL';\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 Alert\r\n else if ((alarmCodeInt & 8) == 8) {\r\n var alarm = 'Tilt';\r\n }\r\n // Geo IN - OUT\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 Alert\r\n else if ((alarmCodeInt & 256) == 256) {\r\n var alarm = 'PWRF';\r\n }\r\n //Power On Alert\r\n else if ((alarmCodeInt & 512) == 512) {\r\n var alarm = 'PWRN';\r\n }\r\n //Motion Alert\r\n else if ((alarmCodeInt & 1024) == 1024) {\r\n var alarm = 'ALMOV';\r\n }\r\n //No Motion Alert\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 }\r\n // Side call button 1\r\n else if ((alarmCodeInt & 8192) == 8192) {\r\n var alarm = 'Side1';\r\n }\r\n // Side call button 2\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 AddValue(configsToUpdate, configIds.ReadState.Charging, 'true');\r\n configsToAck.push(configIds.ReadState.Charging);\r\n //configs.AlertSettings.Welfare.Mode\r\n if ((configs.Welfare.EnableDisableWelfare == 'true') && (configs.Welfare.Mode == '1')) {\r\n AddValue(configsToUpdate, configIds.ReadState.Welfare, 'false');\r\n //AddConfig(configsToSend, configIds.Welfare.EnableDisableWelfare, 'true');\r\n AddConfig(configsToSend, configIds.ReadState.Welfare, 'false');\r\n configsToAck.push(configIds.ReadState.Welfare);\r\n }\r\n }\r\n //Battery no charging\r\n else if ((alarmCodeInt & 65536) == 65536) {\r\n var alarm = 'BATCF';\r\n AddValue(configsToUpdate, configIds.ReadState.Charging, 'false');\r\n configsToAck.push(configIds.ReadState.Charging);\r\n if ((configs.Welfare.EnableDisableWelfare == 'true') && (configs.Welfare.Mode == '1')) {\r\n AddValue(configsToUpdate, configIds.ReadState.Welfare, 'true');\r\n //AddConfig(configsToSend, configIds.Welfare.EnableDisableWelfare, 'false');\r\n AddConfig(configsToSend, configIds.ReadState.Welfare, 'true');\r\n configsToAck.push(configIds.ReadState.Welfare);\r\n }\r\n }\r\n //Alert End\r\n else if ((alarmCodeInt & 131072) == 131072) {\r\n var alarm = 'ALA-F';\r\n if (configs.Welfare.Mode == '1') {\r\n info = 'Recurrent';\r\n } else info = 'Amber';\r\n }\r\n //Amber Alert ON Don`t know the dfference between ALA and ALA-O\r\n else if ((alarmCodeInt & 262144) == 262144) {\r\n var alarm = 'ALA';\r\n }\r\n // welfare check in\r\n else if ((alarmCodeInt & 524288) == 524288) {\r\n var alarm = 'WTS';\r\n if (configs.Welfare.Mode == '1') {\r\n info = 'Recurrent';\r\n } else info = 'Amber';\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\r\n else if ((alarmCodeInt & 4194304) == 4194304) {\r\n var alarm = 'ALA-W';\r\n if (configs.Welfare.Mode == '1') {\r\n info = 'Recurrent';\r\n } else info = 'Amber';\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 != '64') {\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 //<>,<>,<>,<>,<>\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 != '64') {\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 = (`Sentry-${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 = (`Sentry-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 if ((statusInt & 16) == 16) {\r\n statusDevice += 'Charging,';\r\n // AddValue(configsToUpdate, configIds.ReadState.Charging, 'true');\r\n // configsToAck.push(configIds.ReadState.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) { //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 != '64') {\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 = (`Sentry-${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 != '64') {\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 = (`Sentry-${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;<>;STATUS=<>;TIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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 = (`Sentry-${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 = (`Sentry-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 = (`Sentry;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 = (`Sentry;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 = (`Sentry;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 = (`Sentry;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 = (`Sentry;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 var report;\r\n switch (contactNumber) {\r\n // Emergency Number\r\n // [Value]:80 2B 33 34 36 33 35 36 30 37 39 33 30\r\n //{\"number\":{\"call\":0,\"noCard\":0,\"number\":\"+34635607930\",\"enable\":1,\"sms\":0,\"index\":0}}\r\n case '0':\r\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\r\n report = hex2bin(value.substring(0, 2)); // To find report mode Call &data or DAta only\r\n AddValue(codeValues, \"EmergencyNumber\", tel);\r\n AddValue(codeValues, \"ReportMode\", report.substring(2, 3));\r\n AddValue(configsToUpdate, configIds.ReadAlertSettings.EmergencyNumber, tel);\r\n AddValue(configsToUpdate, configIds.ReadAlertSettings.ReportMode, report.substring(2, 3));\r\n configsToAck.push(configIds.ReadAlertSettings.EmergencyNumber);\r\n configsToAck.push(configIds.ReadAlertSettings.ReportMode);\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 = (`Sentry;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 if (serverDetails.includes('52.174.17.77:5878')) {\r\n serverDetails = 'Protocol-Dev'\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 = (`Sentry;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 = (`Sentry;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 = (`Sentry;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 '55': // Tilt Angle Alert\r\n //[Value]:0A 00 1E 00\r\n //{\"tiltAlert\":{\"angle\":30,\"time\":10,\"status\":0,\"dial\":0}}\r\n var angle = hexToDecimal(value.substring(4, 6));\r\n var timeout = hexToDecimal(value.substring(0, 2));\r\n var status = hexToDecimal(value.substring(6, 8));\r\n if (status == 0) angle = 0;\r\n //var alertSetting = angle;\r\n //imei = serverParams.Imei;\r\n //messageForReceiver = (`Sentry;ACK-TILTANG;${imei};`);\r\n //sendMessageToLocalhostNoWait(messageForReceiver);\r\n AddValue(codeValues, \"tiltangle\", angle);\r\n AddValue(codeValues, \"tiltimeout\", timeout);\r\n AddValue(codeValues, \"tiltstatus\", status);\r\n //AddValue(configsToUpdate, configIds.ReadAlertSettings.NoMotionAlert, value + '-' + alertSetting);\r\n AddValue(configsToUpdate, configIds.ReadManDownSettings.TiltTimeout, timeout);\r\n AddValue(configsToUpdate, configIds.ReadManDownSettings.TiltAngle, angle);\r\n //configsToAck.push(configIds.ReadAlertSettings.NoMotionAlert);\r\n configsToAck.push(configIds.ReadManDownSettings.TiltTimeout);\r\n configsToAck.push(configIds.ReadManDownSettings.TiltAngle);\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 = (`Sentry;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.ManDownSettings, sensibility);\r\n AddValue(configsToUpdate, configIds.ReadManDownSettings.EnableDisableManDownSettings, enalbleDisable);\r\n AddValue(configsToUpdate, configIds.ReadManDownSettings.Sensitivity, sesibityOptionValue);\r\n //configsToAck.push(configIds.ReadAlertSettings.FallSettings);\r\n configsToAck.push(configIds.ReadManDownSettings.EnableDisableManDownSettings);\r\n configsToAck.push(configIds.ReadManDownSettings.Sensitivity);\r\n break;\r\n case '57': // Welfare\r\n // [Value]:10 0E 00 80 58 02 00 80\r\n //{\"welfareAlert\":{\"time\":600,\"value\":3600,\"status\":1,\"dial\":1}}\r\n var welfareStatus = hex2bin(value.substring(6, 8)); // check status\r\n var welfareValue = hexToDecimal(changeEndianness(value.substring(0, 6)));\r\n var welfareTime = hexToDecimal(changeEndianness(value.substring(8, 14)));\r\n var enalbleDisable = '';\r\n if ((configs.ReadState.Charging == 'true') && (configs.Welfare.Mode == '1') && (configs.Welfare.EnableDisableWelfare == 'true')) { // Force Read to enable welfare when device is charging in recurrent mode\r\n var sensibility = 'Enable, '\r\n enalbleDisable = '1'\r\n } else {\r\n if (welfareStatus.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 };\r\n //var imei = serverParams.Imei;\r\n //messageForReceiver = (`Sentry;ACK-WELFALERT;${imei};`);\r\n //sendMessageToLocalhostNoWait(messageForReceiver);\r\n sensibility += ', ' + welfareValue / 60;\r\n sensibility += ', ' + welfareTime / 60;\r\n AddValue(codeValues, \"welfare\", sensibility);\r\n AddValue(configsToUpdate, configIds.ReadWelfareSettings.EnableDisableReadWelfare, enalbleDisable);\r\n AddValue(configsToUpdate, configIds.ReadWelfareSettings.Prealarm, welfareTime / 60);\r\n AddValue(configsToUpdate, configIds.ReadWelfareSettings.Timeout, welfareValue / 60);\r\n configsToAck.push(configIds.ReadWelfareSettings.EnableDisableReadWelfare);\r\n configsToAck.push(configIds.ReadWelfareSettings.Prealarm);\r\n configsToAck.push(configIds.ReadWelfareSettings.Timeout);\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 = (`Sentry;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 '75': // Extra Enable control Welfare Mode\r\n //[Value]:80 00 00 10 last two digit for new/old welfare\r\n //{\"extraControl\":{\"bit29\":0,\"bit27\":0,\"bit28\":1,\"bit25\":0,\"bit26\":0,\"flagValue\":268435584,\"bit23\":0,\"bit24\":0,\"bit21\":0,\"bit22\":0,\"bit20\":0,\"bit9\":0,\"bit18\":0,\"bit19\":0,\"bit7\":1,\"bit16\":0,\"bit8\":0,\"bit17\":0,\"bit5\":0,\"bit14\":0,\"bit6\":0,\"bit15\":0,\"bit3\":0,\"bit4\":0,\"bit1\":0,\"bit2\":0,\"bit0\":0,\"bit12\":0,\"bit13\":0,\"bit10\":0,\"bit11\":0,\"bit30\":0,\"bit31\":0}}\r\n var extraStatus = hex2bin(value.substring(6, 7)).substring(7, 8);\r\n //if (extraStatus.substring(7, 8) == '1') {\r\n // extra += ' Enable, '\r\n //} else {\r\n // extra += ' 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, \"welfare Mode\", extraStatus);\r\n // messageForReceiver = (`Sentry;ACK-EXTRA;${imei};`);\r\n // sendMessageToLocalhostNoWait(messageForReceiver);\r\n AddValue(configsToUpdate, configIds.ReadWelfareSettings.Mode, extraStatus);\r\n configsToAck.push(configIds.ReadWelfareSettings.Mode);\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 = (`Sentry;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 = (`Sentry;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 = (`Sentry-${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 = (`Sentry-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 = (`Sentry-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 = (`Sentry-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\":362,\"Name\":\"Access PS Sentry\",\"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 // Sentry protocol - please see variables and typical values in order below\\r\\n // Sentry-CYC;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;SIGNAL=<>;WM=<>;GENERAL=<>\\r\\n // Sentry-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: Juanmi N.\\r\\n // Created: 01/01/2025\\r\\n // Last modified: 14/02/2025\\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', 'Sentry');\\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 = (`Sentry-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 //<>,<>,<> \\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 //<>,<>,<> \\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 Sentry-')) {\\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 = (`Sentry-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 = (`Sentry;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 = (`Sentry;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 = (`Sentry-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 // 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 AddConfig(codeValueArray, configName, newvalue) {\\r\\n if (newvalue !== undefined) { // don't add if newvalue is undefined\\r\\n var cvpair = {\\r\\n 'code': configName,\\r\\n 'value': newvalue, // ? newvalue : \\\"Not Defined\\\" \\r\\n 'forced': true\\r\\n };\\r\\n codeValueArray.push(cvpair);\\r\\n };\\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 ¿qué es fall OFF?\\r\\n if ((alarmCodeExtInt & 1) == 1) {\\r\\n var alarm = 'ALF-C'; // Fall-DownAlertending\\r\\n }\\r\\n // Welfare Check-out\\r\\n else if ((alarmCodeExtInt & 2) == 2) {\\r\\n var alarm = 'WSTP';\\r\\n if (configs.Welfare.Mode == '1') {\\r\\n info = 'Recurrent';\\r\\n } else info = 'Amber';\\r\\n }\\r\\n //Geo 5 in\\r\\n //else if ((alarmCodeInt & 16) == 16) {\\r\\n // var alarm = 'BATL';\\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 Alert\\r\\n else if ((alarmCodeInt & 8) == 8) {\\r\\n var alarm = 'Tilt';\\r\\n }\\r\\n // Geo IN - OUT\\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 Alert\\r\\n else if ((alarmCodeInt & 256) == 256) {\\r\\n var alarm = 'PWRF';\\r\\n }\\r\\n //Power On Alert\\r\\n else if ((alarmCodeInt & 512) == 512) {\\r\\n var alarm = 'PWRN';\\r\\n }\\r\\n //Motion Alert\\r\\n else if ((alarmCodeInt & 1024) == 1024) {\\r\\n var alarm = 'ALMOV';\\r\\n }\\r\\n //No Motion Alert\\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 }\\r\\n // Side call button 1\\r\\n else if ((alarmCodeInt & 8192) == 8192) {\\r\\n var alarm = 'Side1';\\r\\n }\\r\\n // Side call button 2\\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 AddValue(configsToUpdate, configIds.ReadState.Charging, 'true');\\r\\n configsToAck.push(configIds.ReadState.Charging);\\r\\n //configs.AlertSettings.Welfare.Mode\\r\\n if ((configs.Welfare.EnableDisableWelfare == 'true') && (configs.Welfare.Mode == '1')) {\\r\\n AddValue(configsToUpdate, configIds.ReadState.Welfare, 'false');\\r\\n //AddConfig(configsToSend, configIds.Welfare.EnableDisableWelfare, 'true');\\r\\n AddConfig(configsToSend, configIds.ReadState.Welfare, 'false');\\r\\n configsToAck.push(configIds.ReadState.Welfare);\\r\\n }\\r\\n }\\r\\n //Battery no charging\\r\\n else if ((alarmCodeInt & 65536) == 65536) {\\r\\n var alarm = 'BATCF';\\r\\n AddValue(configsToUpdate, configIds.ReadState.Charging, 'false');\\r\\n configsToAck.push(configIds.ReadState.Charging);\\r\\n if ((configs.Welfare.EnableDisableWelfare == 'true') && (configs.Welfare.Mode == '1')) {\\r\\n AddValue(configsToUpdate, configIds.ReadState.Welfare, 'true');\\r\\n //AddConfig(configsToSend, configIds.Welfare.EnableDisableWelfare, 'false');\\r\\n AddConfig(configsToSend, configIds.ReadState.Welfare, 'true');\\r\\n configsToAck.push(configIds.ReadState.Welfare);\\r\\n }\\r\\n }\\r\\n //Alert End\\r\\n else if ((alarmCodeInt & 131072) == 131072) {\\r\\n var alarm = 'ALA-F';\\r\\n if (configs.Welfare.Mode == '1') {\\r\\n info = 'Recurrent';\\r\\n } else info = 'Amber';\\r\\n }\\r\\n //Amber Alert ON Don`t know the dfference between ALA and ALA-O\\r\\n else if ((alarmCodeInt & 262144) == 262144) {\\r\\n var alarm = 'ALA';\\r\\n }\\r\\n // welfare check in\\r\\n else if ((alarmCodeInt & 524288) == 524288) {\\r\\n var alarm = 'WTS';\\r\\n if (configs.Welfare.Mode == '1') {\\r\\n info = 'Recurrent';\\r\\n } else info = 'Amber';\\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\\r\\n else if ((alarmCodeInt & 4194304) == 4194304) {\\r\\n var alarm = 'ALA-W';\\r\\n if (configs.Welfare.Mode == '1') {\\r\\n info = 'Recurrent';\\r\\n } else info = 'Amber';\\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 != '64') {\\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 //<>,<>,<>,<>,<>\\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 != '64') {\\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 = (`Sentry-${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 = (`Sentry-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 if ((statusInt & 16) == 16) {\\r\\n statusDevice += 'Charging,';\\r\\n // AddValue(configsToUpdate, configIds.ReadState.Charging, 'true');\\r\\n // configsToAck.push(configIds.ReadState.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) { //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 != '64') {\\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 = (`Sentry-${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 != '64') {\\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 = (`Sentry-${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;<>;STATUS=<>;TIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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 = (`Sentry-${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 = (`Sentry-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 = (`Sentry;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 = (`Sentry;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 = (`Sentry;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 = (`Sentry;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 = (`Sentry;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 var report;\\r\\n switch (contactNumber) {\\r\\n // Emergency Number\\r\\n // [Value]:80 2B 33 34 36 33 35 36 30 37 39 33 30\\r\\n //{\\\"number\\\":{\\\"call\\\":0,\\\"noCard\\\":0,\\\"number\\\":\\\"+34635607930\\\",\\\"enable\\\":1,\\\"sms\\\":0,\\\"index\\\":0}}\\r\\n case '0':\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n report = hex2bin(value.substring(0, 2)); // To find report mode Call &data or DAta only\\r\\n AddValue(codeValues, \\\"EmergencyNumber\\\", tel);\\r\\n AddValue(codeValues, \\\"ReportMode\\\", report.substring(2, 3));\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.EmergencyNumber, tel);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.ReportMode, report.substring(2, 3));\\r\\n configsToAck.push(configIds.ReadAlertSettings.EmergencyNumber);\\r\\n configsToAck.push(configIds.ReadAlertSettings.ReportMode);\\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 = (`Sentry;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 if (serverDetails.includes('52.174.17.77:5878')) {\\r\\n serverDetails = 'Protocol-Dev'\\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 = (`Sentry;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 = (`Sentry;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 = (`Sentry;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 '55': // Tilt Angle Alert\\r\\n //[Value]:0A 00 1E 00\\r\\n //{\\\"tiltAlert\\\":{\\\"angle\\\":30,\\\"time\\\":10,\\\"status\\\":0,\\\"dial\\\":0}}\\r\\n var angle = hexToDecimal(value.substring(4, 6));\\r\\n var timeout = hexToDecimal(value.substring(0, 2));\\r\\n var status = hexToDecimal(value.substring(6, 8));\\r\\n if (status == 0) angle = 0;\\r\\n //var alertSetting = angle;\\r\\n //imei = serverParams.Imei;\\r\\n //messageForReceiver = (`Sentry;ACK-TILTANG;${imei};`);\\r\\n //sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"tiltangle\\\", angle);\\r\\n AddValue(codeValues, \\\"tiltimeout\\\", timeout);\\r\\n AddValue(codeValues, \\\"tiltstatus\\\", status);\\r\\n //AddValue(configsToUpdate, configIds.ReadAlertSettings.NoMotionAlert, value + '-' + alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadManDownSettings.TiltTimeout, timeout);\\r\\n AddValue(configsToUpdate, configIds.ReadManDownSettings.TiltAngle, angle);\\r\\n //configsToAck.push(configIds.ReadAlertSettings.NoMotionAlert);\\r\\n configsToAck.push(configIds.ReadManDownSettings.TiltTimeout);\\r\\n configsToAck.push(configIds.ReadManDownSettings.TiltAngle);\\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 = (`Sentry;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.ManDownSettings, sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadManDownSettings.EnableDisableManDownSettings, enalbleDisable);\\r\\n AddValue(configsToUpdate, configIds.ReadManDownSettings.Sensitivity, sesibityOptionValue);\\r\\n //configsToAck.push(configIds.ReadAlertSettings.FallSettings);\\r\\n configsToAck.push(configIds.ReadManDownSettings.EnableDisableManDownSettings);\\r\\n configsToAck.push(configIds.ReadManDownSettings.Sensitivity);\\r\\n break;\\r\\n case '57': // Welfare\\r\\n // [Value]:10 0E 00 80 58 02 00 80\\r\\n //{\\\"welfareAlert\\\":{\\\"time\\\":600,\\\"value\\\":3600,\\\"status\\\":1,\\\"dial\\\":1}}\\r\\n var welfareStatus = hex2bin(value.substring(6, 8)); // check status\\r\\n var welfareValue = hexToDecimal(changeEndianness(value.substring(0, 6)));\\r\\n var welfareTime = hexToDecimal(changeEndianness(value.substring(8, 14)));\\r\\n var enalbleDisable = '';\\r\\n if ((configs.ReadState.Charging == 'true') && (configs.Welfare.Mode == '1') && (configs.Welfare.EnableDisableWelfare == 'true')) { // Force Read to enable welfare when device is charging in recurrent mode\\r\\n var sensibility = 'Enable, '\\r\\n enalbleDisable = '1'\\r\\n } else {\\r\\n if (welfareStatus.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 };\\r\\n //var imei = serverParams.Imei;\\r\\n //messageForReceiver = (`Sentry;ACK-WELFALERT;${imei};`);\\r\\n //sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n sensibility += ', ' + welfareValue / 60;\\r\\n sensibility += ', ' + welfareTime / 60;\\r\\n AddValue(codeValues, \\\"welfare\\\", sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadWelfareSettings.EnableDisableReadWelfare, enalbleDisable);\\r\\n AddValue(configsToUpdate, configIds.ReadWelfareSettings.Prealarm, welfareTime / 60);\\r\\n AddValue(configsToUpdate, configIds.ReadWelfareSettings.Timeout, welfareValue / 60);\\r\\n configsToAck.push(configIds.ReadWelfareSettings.EnableDisableReadWelfare);\\r\\n configsToAck.push(configIds.ReadWelfareSettings.Prealarm);\\r\\n configsToAck.push(configIds.ReadWelfareSettings.Timeout);\\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 = (`Sentry;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 '75': // Extra Enable control Welfare Mode\\r\\n //[Value]:80 00 00 10 last two digit for new/old welfare\\r\\n //{\\\"extraControl\\\":{\\\"bit29\\\":0,\\\"bit27\\\":0,\\\"bit28\\\":1,\\\"bit25\\\":0,\\\"bit26\\\":0,\\\"flagValue\\\":268435584,\\\"bit23\\\":0,\\\"bit24\\\":0,\\\"bit21\\\":0,\\\"bit22\\\":0,\\\"bit20\\\":0,\\\"bit9\\\":0,\\\"bit18\\\":0,\\\"bit19\\\":0,\\\"bit7\\\":1,\\\"bit16\\\":0,\\\"bit8\\\":0,\\\"bit17\\\":0,\\\"bit5\\\":0,\\\"bit14\\\":0,\\\"bit6\\\":0,\\\"bit15\\\":0,\\\"bit3\\\":0,\\\"bit4\\\":0,\\\"bit1\\\":0,\\\"bit2\\\":0,\\\"bit0\\\":0,\\\"bit12\\\":0,\\\"bit13\\\":0,\\\"bit10\\\":0,\\\"bit11\\\":0,\\\"bit30\\\":0,\\\"bit31\\\":0}}\\r\\n var extraStatus = hex2bin(value.substring(6, 7)).substring(7, 8);\\r\\n //if (extraStatus.substring(7, 8) == '1') {\\r\\n // extra += ' Enable, '\\r\\n //} else {\\r\\n // extra += ' 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, \\\"welfare Mode\\\", extraStatus);\\r\\n // messageForReceiver = (`Sentry;ACK-EXTRA;${imei};`);\\r\\n // sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadWelfareSettings.Mode, extraStatus);\\r\\n configsToAck.push(configIds.ReadWelfareSettings.Mode);\\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 = value.substring(1, 2);\\r\\n //var wifiStatus = hexToDecimal(value.substring(0, 1));\\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') || (wifiStatus == 'C')) { // 8 == ON OR C== ON and Connected\\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 = (`Sentry;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 = (`Sentry;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 = (`Sentry-${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 = (`Sentry-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 = (`Sentry-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 = (`Sentry-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":1740071496},{"Type":1,"NewValue":"{\"Id\":362,\"Name\":\"Access PS Sentry\",\"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 // Sentry protocol - please see variables and typical values in order below\\r\\n // Sentry-CYC;<>;STATUS=<>;LTIME=<>;ETIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;SIGNAL=<>;WM=<>;GENERAL=<>\\r\\n // Sentry-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: Juanmi N.\\r\\n // Created: 01/01/2025\\r\\n // Last modified: 14/02/2025\\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', 'Sentry');\\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 = (`Sentry-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 //<>,<>,<> \\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 //<>,<>,<> \\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 Sentry-')) {\\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 = (`Sentry-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 = (`Sentry;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 = (`Sentry;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 = (`Sentry-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 // 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 AddConfig(codeValueArray, configName, newvalue) {\\r\\n if (newvalue !== undefined) { // don't add if newvalue is undefined\\r\\n var cvpair = {\\r\\n 'code': configName,\\r\\n 'value': newvalue, // ? newvalue : \\\"Not Defined\\\" \\r\\n 'forced': true\\r\\n };\\r\\n codeValueArray.push(cvpair);\\r\\n };\\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 ¿qué es fall OFF?\\r\\n if ((alarmCodeExtInt & 1) == 1) {\\r\\n var alarm = 'ALF-C'; // Fall-DownAlertending\\r\\n }\\r\\n // Welfare Check-out\\r\\n else if ((alarmCodeExtInt & 2) == 2) {\\r\\n var alarm = 'WSTP';\\r\\n if (configs.Welfare.Mode == '1') {\\r\\n info = 'Recurrent';\\r\\n } else info = 'Amber';\\r\\n }\\r\\n //Geo 5 in\\r\\n //else if ((alarmCodeInt & 16) == 16) {\\r\\n // var alarm = 'BATL';\\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 Alert\\r\\n else if ((alarmCodeInt & 8) == 8) {\\r\\n var alarm = 'Tilt';\\r\\n }\\r\\n // Geo IN - OUT\\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 Alert\\r\\n else if ((alarmCodeInt & 256) == 256) {\\r\\n var alarm = 'PWRF';\\r\\n }\\r\\n //Power On Alert\\r\\n else if ((alarmCodeInt & 512) == 512) {\\r\\n var alarm = 'PWRN';\\r\\n }\\r\\n //Motion Alert\\r\\n else if ((alarmCodeInt & 1024) == 1024) {\\r\\n var alarm = 'ALMOV';\\r\\n }\\r\\n //No Motion Alert\\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 }\\r\\n // Side call button 1\\r\\n else if ((alarmCodeInt & 8192) == 8192) {\\r\\n var alarm = 'Side1';\\r\\n }\\r\\n // Side call button 2\\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 AddValue(configsToUpdate, configIds.ReadState.Charging, 'true');\\r\\n configsToAck.push(configIds.ReadState.Charging);\\r\\n //configs.AlertSettings.Welfare.Mode\\r\\n if ((configs.Welfare.EnableDisableWelfare == 'true') && (configs.Welfare.Mode == '1')) {\\r\\n AddValue(configsToUpdate, configIds.ReadState.Welfare, 'false');\\r\\n //AddConfig(configsToSend, configIds.Welfare.EnableDisableWelfare, 'true');\\r\\n AddConfig(configsToSend, configIds.ReadState.Welfare, 'false');\\r\\n configsToAck.push(configIds.ReadState.Welfare);\\r\\n }\\r\\n }\\r\\n //Battery no charging\\r\\n else if ((alarmCodeInt & 65536) == 65536) {\\r\\n var alarm = 'BATCF';\\r\\n AddValue(configsToUpdate, configIds.ReadState.Charging, 'false');\\r\\n configsToAck.push(configIds.ReadState.Charging);\\r\\n if ((configs.Welfare.EnableDisableWelfare == 'true') && (configs.Welfare.Mode == '1')) {\\r\\n AddValue(configsToUpdate, configIds.ReadState.Welfare, 'true');\\r\\n //AddConfig(configsToSend, configIds.Welfare.EnableDisableWelfare, 'false');\\r\\n AddConfig(configsToSend, configIds.ReadState.Welfare, 'true');\\r\\n configsToAck.push(configIds.ReadState.Welfare);\\r\\n }\\r\\n }\\r\\n //Alert End\\r\\n else if ((alarmCodeInt & 131072) == 131072) {\\r\\n var alarm = 'ALA-F';\\r\\n if (configs.Welfare.Mode == '1') {\\r\\n info = 'Recurrent';\\r\\n } else info = 'Amber';\\r\\n }\\r\\n //Amber Alert ON Don`t know the dfference between ALA and ALA-O\\r\\n else if ((alarmCodeInt & 262144) == 262144) {\\r\\n var alarm = 'ALA';\\r\\n }\\r\\n // welfare check in\\r\\n else if ((alarmCodeInt & 524288) == 524288) {\\r\\n var alarm = 'WTS';\\r\\n if (configs.Welfare.Mode == '1') {\\r\\n info = 'Recurrent';\\r\\n } else info = 'Amber';\\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\\r\\n else if ((alarmCodeInt & 4194304) == 4194304) {\\r\\n var alarm = 'ALA-W';\\r\\n if (configs.Welfare.Mode == '1') {\\r\\n info = 'Recurrent';\\r\\n } else info = 'Amber';\\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 != '64') {\\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 //<>,<>,<>,<>,<>\\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 != '64') {\\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 = (`Sentry-${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 = (`Sentry-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 if ((statusInt & 16) == 16) {\\r\\n statusDevice += 'Charging,';\\r\\n // AddValue(configsToUpdate, configIds.ReadState.Charging, 'true');\\r\\n // configsToAck.push(configIds.ReadState.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) { //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 != '64') {\\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 = (`Sentry-${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 != '64') {\\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 = (`Sentry-${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;<>;STATUS=<>;TIME=<>;BATP=<>;LGPS=<>;LWIF=<>;LLBS=<>;LBEACON=<>;BLE=<>;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 = (`Sentry-${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 = (`Sentry-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 = (`Sentry;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 = (`Sentry;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 = (`Sentry;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 = (`Sentry;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 = (`Sentry;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 var report;\\r\\n switch (contactNumber) {\\r\\n // Emergency Number\\r\\n // [Value]:80 2B 33 34 36 33 35 36 30 37 39 33 30\\r\\n //{\\\"number\\\":{\\\"call\\\":0,\\\"noCard\\\":0,\\\"number\\\":\\\"+34635607930\\\",\\\"enable\\\":1,\\\"sms\\\":0,\\\"index\\\":0}}\\r\\n case '0':\\r\\n tel = hex_to_ascii(value.substring(4, 4 + (2 * telLength)));\\r\\n report = hex2bin(value.substring(0, 2)); // To find report mode Call &data or DAta only\\r\\n AddValue(codeValues, \\\"EmergencyNumber\\\", tel);\\r\\n AddValue(codeValues, \\\"ReportMode\\\", report.substring(2, 3));\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.EmergencyNumber, tel);\\r\\n AddValue(configsToUpdate, configIds.ReadAlertSettings.ReportMode, report.substring(2, 3));\\r\\n configsToAck.push(configIds.ReadAlertSettings.EmergencyNumber);\\r\\n configsToAck.push(configIds.ReadAlertSettings.ReportMode);\\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 = (`Sentry;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 if (serverDetails.includes('52.174.17.77:5878')) {\\r\\n serverDetails = 'Protocol-Dev'\\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 = (`Sentry;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 = (`Sentry;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 = (`Sentry;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 '55': // Tilt Angle Alert\\r\\n //[Value]:0A 00 1E 00\\r\\n //{\\\"tiltAlert\\\":{\\\"angle\\\":30,\\\"time\\\":10,\\\"status\\\":0,\\\"dial\\\":0}}\\r\\n var angle = hexToDecimal(value.substring(4, 6));\\r\\n var timeout = hexToDecimal(value.substring(0, 2));\\r\\n var status = hexToDecimal(value.substring(6, 8));\\r\\n if (status == 0) angle = 0;\\r\\n //var alertSetting = angle;\\r\\n //imei = serverParams.Imei;\\r\\n //messageForReceiver = (`Sentry;ACK-TILTANG;${imei};`);\\r\\n //sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(codeValues, \\\"tiltangle\\\", angle);\\r\\n AddValue(codeValues, \\\"tiltimeout\\\", timeout);\\r\\n AddValue(codeValues, \\\"tiltstatus\\\", status);\\r\\n //AddValue(configsToUpdate, configIds.ReadAlertSettings.NoMotionAlert, value + '-' + alertSetting);\\r\\n AddValue(configsToUpdate, configIds.ReadManDownSettings.TiltTimeout, timeout);\\r\\n AddValue(configsToUpdate, configIds.ReadManDownSettings.TiltAngle, angle);\\r\\n //configsToAck.push(configIds.ReadAlertSettings.NoMotionAlert);\\r\\n configsToAck.push(configIds.ReadManDownSettings.TiltTimeout);\\r\\n configsToAck.push(configIds.ReadManDownSettings.TiltAngle);\\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 = (`Sentry;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.ManDownSettings, sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadManDownSettings.EnableDisableManDownSettings, enalbleDisable);\\r\\n AddValue(configsToUpdate, configIds.ReadManDownSettings.Sensitivity, sesibityOptionValue);\\r\\n //configsToAck.push(configIds.ReadAlertSettings.FallSettings);\\r\\n configsToAck.push(configIds.ReadManDownSettings.EnableDisableManDownSettings);\\r\\n configsToAck.push(configIds.ReadManDownSettings.Sensitivity);\\r\\n break;\\r\\n case '57': // Welfare\\r\\n // [Value]:10 0E 00 80 58 02 00 80\\r\\n //{\\\"welfareAlert\\\":{\\\"time\\\":600,\\\"value\\\":3600,\\\"status\\\":1,\\\"dial\\\":1}}\\r\\n var welfareStatus = hex2bin(value.substring(6, 8)); // check status\\r\\n var welfareValue = hexToDecimal(changeEndianness(value.substring(0, 6)));\\r\\n var welfareTime = hexToDecimal(changeEndianness(value.substring(8, 14)));\\r\\n var enalbleDisable = '';\\r\\n if ((configs.ReadState.Charging == 'true') && (configs.Welfare.Mode == '1') && (configs.Welfare.EnableDisableWelfare == 'true')) { // Force Read to enable welfare when device is charging in recurrent mode\\r\\n var sensibility = 'Enable, '\\r\\n enalbleDisable = '1'\\r\\n } else {\\r\\n if (welfareStatus.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 };\\r\\n //var imei = serverParams.Imei;\\r\\n //messageForReceiver = (`Sentry;ACK-WELFALERT;${imei};`);\\r\\n //sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n sensibility += ', ' + welfareValue / 60;\\r\\n sensibility += ', ' + welfareTime / 60;\\r\\n AddValue(codeValues, \\\"welfare\\\", sensibility);\\r\\n AddValue(configsToUpdate, configIds.ReadWelfareSettings.EnableDisableReadWelfare, enalbleDisable);\\r\\n AddValue(configsToUpdate, configIds.ReadWelfareSettings.Prealarm, welfareTime / 60);\\r\\n AddValue(configsToUpdate, configIds.ReadWelfareSettings.Timeout, welfareValue / 60);\\r\\n configsToAck.push(configIds.ReadWelfareSettings.EnableDisableReadWelfare);\\r\\n configsToAck.push(configIds.ReadWelfareSettings.Prealarm);\\r\\n configsToAck.push(configIds.ReadWelfareSettings.Timeout);\\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 = (`Sentry;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 '75': // Extra Enable control Welfare Mode\\r\\n //[Value]:80 00 00 10 last two digit for new/old welfare\\r\\n //{\\\"extraControl\\\":{\\\"bit29\\\":0,\\\"bit27\\\":0,\\\"bit28\\\":1,\\\"bit25\\\":0,\\\"bit26\\\":0,\\\"flagValue\\\":268435584,\\\"bit23\\\":0,\\\"bit24\\\":0,\\\"bit21\\\":0,\\\"bit22\\\":0,\\\"bit20\\\":0,\\\"bit9\\\":0,\\\"bit18\\\":0,\\\"bit19\\\":0,\\\"bit7\\\":1,\\\"bit16\\\":0,\\\"bit8\\\":0,\\\"bit17\\\":0,\\\"bit5\\\":0,\\\"bit14\\\":0,\\\"bit6\\\":0,\\\"bit15\\\":0,\\\"bit3\\\":0,\\\"bit4\\\":0,\\\"bit1\\\":0,\\\"bit2\\\":0,\\\"bit0\\\":0,\\\"bit12\\\":0,\\\"bit13\\\":0,\\\"bit10\\\":0,\\\"bit11\\\":0,\\\"bit30\\\":0,\\\"bit31\\\":0}}\\r\\n var extraStatus = hex2bin(value.substring(6, 7)).substring(7, 8);\\r\\n //if (extraStatus.substring(7, 8) == '1') {\\r\\n // extra += ' Enable, '\\r\\n //} else {\\r\\n // extra += ' 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, \\\"welfare Mode\\\", extraStatus);\\r\\n // messageForReceiver = (`Sentry;ACK-EXTRA;${imei};`);\\r\\n // sendMessageToLocalhostNoWait(messageForReceiver);\\r\\n AddValue(configsToUpdate, configIds.ReadWelfareSettings.Mode, extraStatus);\\r\\n configsToAck.push(configIds.ReadWelfareSettings.Mode);\\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 wifiStatus = 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') || (wifiStatus == 'C')) { // 8 == ON OR C== ON and Connected\\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 = (`Sentry;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 = (`Sentry;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 = (`Sentry-${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 = (`Sentry-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 = (`Sentry-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 = (`Sentry-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":1740072152}]},{"Id":361,"Name":"OnUpdateProtocol_Sentry","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":[]}],"Groups":[{"Id":6999,"Parent":null,"Name":"Setup","Json":"{\"description\":null,\"columns\":3,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7000,"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":3,"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":7001,"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":3,"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":7002,"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":3,"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":7003,"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":"Read Performance Settings","Json":"{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7004,"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":"Read State","Json":"{\"description\":null,\"columns\":1,\"order\":6,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7005,"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":"Read Communication Settings","Json":"{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7006,"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":"Read Additional Settings","Json":"{\"description\":null,\"columns\":1,\"order\":4,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7007,"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"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":[]},{"Id":7008,"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":3,"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":7009,"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":3,"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\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7010,"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":3,"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\":4,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7011,"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":"Read Alert Settings","Json":"{\"description\":\"Read Alert Settings\",\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7012,"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":3,"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\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7013,"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":"Read System Settings","Json":"{\"description\":\"\",\"columns\":1,\"order\":5,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7014,"Parent":{"Id":7008,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"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":[]},{"Id":7015,"Parent":{"Id":7005,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7015,"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":"Read WiFi List","Json":"{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7016,"Parent":{"Id":7006,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7016,"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":7017,"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"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":"Man Down Settings","Json":"{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7018,"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"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\":\"\",\"columns\":1,\"order\":4,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7019,"Parent":{"Id":7010,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7019,"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":7022,"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":7023,"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":"Speed Dial","Json":"{\"description\":null,\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7020,"Parent":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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":"Read Man Down Settings","Json":"{\"description\":\"\",\"columns\":1,\"order\":1,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7021,"Parent":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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":"Read Non Movement Settings","Json":"{\"description\":\"\",\"columns\":1,\"order\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7022,"Parent":{"Id":7010,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7019,"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":7022,"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":7023,"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":"Beacon List","Json":"{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":10,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7023,"Parent":{"Id":7010,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7019,"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":7022,"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":7023,"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":"Approved Contacts","Json":"{\"description\":\"\",\"columns\":1,\"order\":2,\"listSize\":7,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7024,"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"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\":2,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7029,"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"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":"Welfare","Json":"{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7030,"Parent":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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":"Read Welfare Settings","Json":"{\"description\":null,\"columns\":1,\"order\":3,\"listSize\":1,\"toTranslate\":[\"name\",\"description\"]}","DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]},{"Id":7076,"Parent":{"Id":7014,"Name":"WiFi List","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":{"Id":7008,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},"Name":"home","Json":"{ \"description\": \"\", \"columns\": 1, \"order\": 1, \"listSize\": 5, \"toTranslate\": [ \"name\", \"description\" ], \"index\": 1}","DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"ProtocolActionObjects":[]}],"GroupParams":[{"Id":11805,"Group":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":"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\"],\"order\":1}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11804,"Group":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":"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\"],\"order\":0}","Default":"false","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11810,"Group":{"Id":7001,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11812,"Group":{"Id":7001,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11813,"Group":{"Id":7001,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11814,"Group":{"Id":7001,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11815,"Group":{"Id":7001,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11816,"Group":{"Id":7001,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11817,"Group":{"Id":7001,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11803,"Group":{"Id":7001,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11807,"Group":{"Id":7001,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11808,"Group":{"Id":7001,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11819,"Group":{"Id":7001,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11818,"Group":{"Id":7001,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11809,"Group":{"Id":7001,"Name":"Controls","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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 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":11806,"Group":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":3,"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":11811,"Group":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":3,"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":11832,"Group":{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"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":11942,"Group":{"Id":7004,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Welfare","Json":"{\"name\":\"Welfare\",\"default\":\"true\",\"description\":\"Welfare Check Status\",\"type\":\"checkbox\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":true,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"true","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11941,"Group":{"Id":7004,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Charging","Json":"{\"name\":\"Charging\",\"default\":\"false\",\"description\":\"Charging Status\",\"type\":\"checkbox\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":true,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"true","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11825,"Group":{"Id":7004,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"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\"],\"order\":3}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11824,"Group":{"Id":7004,"Name":"Read State","Json":{"description":null,"columns":1,"order":6,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"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\"],\"order\":2}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11822,"Group":{"Id":7005,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7015,"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":"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":11821,"Group":{"Id":7005,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7015,"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":"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":11823,"Group":{"Id":7005,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7015,"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":"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":11820,"Group":{"Id":7006,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7016,"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":[{"Type":1,"NewValue":"{\"Id\":11820,\"Group\":{\"Id\":7006,\"Name\":\"Read Additional 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\":[]},\"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\":[]}","Timestamp":1740078115}],"Tags":[]},{"Id":11831,"Group":{"Id":7006,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7016,"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":[{"Type":1,"NewValue":"{\"Id\":11831,\"Group\":{\"Id\":7006,\"Name\":\"Read Additional 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\":[]},\"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\":[]}","Timestamp":1740078087},{"Type":2,"NewValue":"{\"Id\":11831,\"Group\":{\"Id\":7006,\"Name\":\"Read Additional 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\":[]},\"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\":{\"Id\":5430,\"Protocol\":{\"Id\":253,\"Code\":\"Access PS Sentry\",\"Version\":\"0.3\",\"FirmwareVersion\":\"V04b.8601.2411.1.0.16.4411.2409.25\",\"Product\":null,\"AvailableVersions\":[],\"HistoryVersions\":[],\"IsChanged\":true},\"Name\":\"getAuthorisedNumbers\",\"TemplateSMS\":null,\"Template\":\"<>\",\"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}\",\"AvoidResending\":false,\"FollowParentSentType\":false,\"SendingType\":0,\"CommandToUpdateId\":null,\"ParentId\":null,\"Parent\":null,\"HasAck\":true,\"HexString\":true,\"SendAttempts\":3,\"Order\":null},\"ProtocolActionObjects\":[],\"Tags\":[]}","Timestamp":1740078091}],"Tags":[]},{"Id":11841,"Group":{"Id":7007,"Name":"System Settings","Json":{"description":"","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11835,"Group":{"Id":7007,"Name":"System Settings","Json":{"description":"","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11837,"Group":{"Id":7007,"Name":"System Settings","Json":{"description":"","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11842,"Group":{"Id":7007,"Name":"System Settings","Json":{"description":"","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":"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":11834,"Group":{"Id":7008,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"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\":\"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":[]},{"Id":11838,"Group":{"Id":7008,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"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\":\"Select the server the device will report: Acceptance/Production\",\"options\":[{\"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\"},{\"label\":\"Protocol-Dev\",\"value\":\"52.174.17.77,5878\"},{\"label\":\"Default\",\"value\":\"Default\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11839,"Group":{"Id":7008,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"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\":\"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\"},{\"label\":\"Esendex Protocol-Dev\",\"value\":\"00447908675874,Esendex Protocol-Dev\"},{\"label\":\"default\",\"value\":\"default\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11863,"Group":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"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":"Report Mode","Json":"{\"name\":\"Report Mode\",\"default\":\"\",\"description\":\"Report Mode\",\"type\":\"radioGroup\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"\",\"options\":[{\"label\":\"Data & Call\",\"value\":\"1\"},{\"label\":\"Data Only\",\"value\":\"0\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11836,"Group":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"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":11828,"Group":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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\":\"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\"],\"order\":0}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11826,"Group":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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 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\"],\"order\":3}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11827,"Group":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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":"{\"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\"],\"order\":2}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11865,"Group":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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":"Report Mode","Json":"{\"name\":\"Report Mode\",\"default\":\"\",\"description\":\"Current Report Mode\",\"type\":\"radioGroup\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[{\"label\":\"Data & Call\",\"value\":\"1\"},{\"label\":\"Data Only\",\"value\":\"0\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11833,"Group":{"Id":7012,"Name":"Performance Settings","Json":{"description":"","columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]}]},"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":11840,"Group":{"Id":7013,"Name":"Read System Settings","Json":{"description":"","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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":"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":[]},{"Id":11829,"Group":{"Id":7013,"Name":"Read System Settings","Json":{"description":"","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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":"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":11830,"Group":{"Id":7013,"Name":"Read System Settings","Json":{"description":"","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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":"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":[]},{"Id":11843,"Group":{"Id":7013,"Name":"Read System Settings","Json":{"description":"","columns":1,"order":5,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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":"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":[]},{"Id":11850,"Group":{"Id":7014,"Name":"WiFi List","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":{"Id":7008,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"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\"],\"order\":1}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11851,"Group":{"Id":7014,"Name":"WiFi List","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"]},"Parent":{"Id":7008,"Name":"Communication Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[]},"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"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\"],\"order\":0}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11846,"Group":{"Id":7015,"Name":"Read WiFi List","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7005,"Name":"Read Communication Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"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\":\"SSID and password configurated in the device.\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11844,"Group":{"Id":7016,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7006,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"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":11845,"Group":{"Id":7016,"Name":"Read Speed Dial Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7006,"Name":"Read Additional Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},"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\":\"The number called when the Speed Dial button is pushed on the device\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11855,"Group":{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"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 Man Down Settings","Json":"{\"name\":\"Enable Disable Man Down Settings\",\"default\":\"true\",\"description\":\"Toggle Man Down 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 Man Down and breaches the specified sensitivity setting\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"true","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11944,"Group":{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"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":"Tilt Timeout","Json":"{\"name\":\"Tilt Timeout\",\"default\":\"\",\"description\":\"Tilt Timeout\",\"type\":\"radioGroup\",\"suffix\":\"degrees\",\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Select Tilt Timeout\",\"options\":[{\"label\":\"10s\",\"value\":\"10\"},{\"label\":\"30s\",\"value\":\"30\"},{\"label\":\"60s\",\"value\":\"60\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11864,"Group":{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"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":"Tilt Angle","Json":"{\"name\":\"Tilt Angle\",\"default\":\"\",\"description\":\"Tilt Angle\",\"type\":\"radioGroup\",\"suffix\":\"degrees\",\"prefix\":null,\"min\":10,\"max\":90,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"Select Tilt Angle\",\"options\":[{\"label\":\"Off\",\"value\":\"0\"},{\"label\":\"45º\",\"value\":\"45\"},{\"label\":\"90º\",\"value\":\"90\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11854,"Group":{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"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\":\"Fall 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":11857,"Group":{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"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":[],"Tags":[{"Id":2155,"Name":"noActivityInterval","BackendAction":"NoActivityInterval","Value":""}]},{"Id":11856,"Group":{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"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":[],"Tags":[{"Id":2154,"Name":"activateNoActivity","BackendAction":"ActivateNoActivity","Value":""}]},{"Id":11858,"Group":{"Id":7019,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7010,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7022,"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":7023,"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":[]}]},"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":[]},{"Id":11859,"Group":{"Id":7019,"Name":"Speed Dial","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7010,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7022,"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":7023,"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":[]}]},"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":11866,"Group":{"Id":7020,"Name":"Read Man Down Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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":"Tilt Angle","Json":"{\"name\":\"Tilt Angle\",\"default\":\"\",\"description\":\"Current Tilt Angle\",\"type\":\"radioGroup\",\"suffix\":\"degress\",\"prefix\":null,\"min\":10,\"max\":90,\"futureOnly\":false,\"integerOnly\":true,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[{\"label\":\"Off\",\"value\":\"0\"},{\"label\":\"45º\",\"value\":\"45\"},{\"label\":\"90º\",\"value\":\"90\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11848,"Group":{"Id":7020,"Name":"Read Man Down Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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\":\"Fall 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\"},{\"value\":\"6\",\"label\":\"Medium\"},{\"value\":\"9\",\"label\":\"High\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11847,"Group":{"Id":7020,"Name":"Read Man Down Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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 Man Down Settings","Json":"{\"name\":\"Enable Disable Man Down Settings\",\"default\":\"true\",\"description\":\"Enable Disable Man Down 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 Man Down Settings\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"true","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11943,"Group":{"Id":7020,"Name":"Read Man Down Settings","Json":{"description":"","columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"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":"Tilt Timeout","Json":"{\"name\":\"Tilt Timeout\",\"default\":\"\",\"description\":\"Current Tilt Timeout\",\"type\":\"radioGroup\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[{\"label\":\"10s\",\"value\":\"10\"},{\"label\":\"30s\",\"value\":\"30\"},{\"label\":\"60s\",\"value\":\"60\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11862,"Group":{"Id":7021,"Name":"Read Non Movement Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7030,"Name":"Read Welfare Settings","Json":{"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":"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":11861,"Group":{"Id":7021,"Name":"Read Non Movement Settings","Json":{"description":"","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7030,"Name":"Read Welfare Settings","Json":{"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 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":11860,"Group":{"Id":7022,"Name":"Beacon List","Json":{"description":null,"columns":1,"order":3,"listSize":10,"toTranslate":["name","description"]},"Parent":{"Id":7010,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7019,"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":7023,"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":[]}]},"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":[]},{"Id":11849,"Group":{"Id":7023,"Name":"Approved Contacts","Json":{"description":"","columns":1,"order":2,"listSize":7,"toTranslate":["name","description"]},"Parent":{"Id":7010,"Name":"Additional Settings","Json":{"description":null,"columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7019,"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":7022,"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":[]}]},"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":[]},{"Id":11853,"Group":{"Id":7024,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7029,"Name":"Welfare","Json":{"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 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":11852,"Group":{"Id":7024,"Name":"Non Movement Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7029,"Name":"Welfare","Json":{"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":"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":11873,"Group":{"Id":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Prealarm","Json":"{\"name\":\"Prealarm\",\"default\":\"\",\"description\":\"Prealarm\",\"type\":\"number\",\"suffix\":\"minutes\",\"prefix\":null,\"min\":2,\"max\":10,\"futureOnly\":false,\"integerOnly\":true,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"min=2; max=10 [Time Out] - [Prealarm] must be >= 120 s.\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11874,"Group":{"Id":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Timeout","Json":"{\"name\":\"Timeout\",\"default\":\"\",\"description\":\"Timeout\",\"type\":\"number\",\"suffix\":\"minutes\",\"prefix\":null,\"min\":10,\"max\":6000,\"futureOnly\":false,\"integerOnly\":true,\"isReadOnly\":false,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"min=10; max=6000 [Time Out] - [Prealarm] must be >= 120 s.\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11976,"Group":{"Id":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Check","Json":"{\"name\":\"Check\",\"default\":\"\",\"description\":\"Check In/Out\",\"type\":\"radioGroup\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":false,\"isHidden\":true,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[{\"value\":\"01\",\"label\":\"Check In\"},{\"value\":\"00\",\"label\":\"Check Out\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11872,"Group":{"Id":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":[]}]},"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\":null,\"options\":[{\"value\":\"0\",\"label\":\"Amber Timer\"},{\"label\":\"Recurrent\",\"value\":\"1\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11871,"Group":{"Id":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7009,"Name":"Alert Settings","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7002,"Name":"Configure Device","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7000,"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":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7013,"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":[]}]},{"Id":7001,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},"Name":"Enable Disable Welfare","Json":"{\"name\":\"Enable Disable Welfare\",\"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":11870,"Group":{"Id":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":"Timeout","Json":"{\"name\":\"Timeout\",\"default\":\"\",\"description\":\"Current Timeout\",\"type\":\"number\",\"suffix\":\"minutes\",\"prefix\":null,\"min\":10,\"max\":6000,\"futureOnly\":false,\"integerOnly\":true,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"min=10; max=6000 [Time Out] - [Prealarm] must be >= 120 s.\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11869,"Group":{"Id":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":"Prealarm","Json":"{\"name\":\"Prealarm\",\"default\":\"\",\"description\":\"Current Prealarm\",\"type\":\"number\",\"suffix\":\"minutes\",\"prefix\":null,\"min\":2,\"max\":10,\"futureOnly\":false,\"integerOnly\":true,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":\"min=2; max=10 [Time Out] - [Prealarm] must be >= 120 s.\",\"options\":[],\"toTranslate\":[\"name\",\"description\",\"helpText\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]},{"Id":11868,"Group":{"Id":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":"Enable Disable Read Welfare","Json":"{\"name\":\"Enable Disable Read Welfare\",\"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":11867,"Group":{"Id":7030,"Name":"Read Welfare Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7011,"Name":"Read Alert Settings","Json":{"description":"Read Alert Settings","columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":7000,"Name":"On Device","Json":{"description":null,"columns":1,"order":2,"listSize":1,"toTranslate":["name","description"]},"Parent":{"Id":6999,"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":7001,"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":7002,"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":7007,"Name":"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":[]},{"Id":7008,"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":7014,"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":[{"Id":7076,"Name":"home","Json":{"description":"","columns":1,"order":1,"listSize":5,"toTranslate":["name","description"],"index":1},"Parent":null,"Device":null,"DeviceRelated":true,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]}]},{"Id":7009,"Name":"Alert 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":7017,"Name":"Man Down Settings","Json":{"description":null,"columns":1,"order":1,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7018,"Name":"No Activity","Json":{"description":"","columns":1,"order":4,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7024,"Name":"Non Movement 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":7029,"Name":"Welfare","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]}]},{"Id":7010,"Name":"Additional 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":7019,"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":7022,"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":7023,"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":[]}]},{"Id":7012,"Name":"Performance Settings","Json":{"description":"","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":[{"Id":7003,"Name":"Read Performance Settings","Json":{"description":null,"columns":1,"order":3,"listSize":1,"toTranslate":["name","description"]},"Parent":null,"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[]},{"Id":7004,"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":7005,"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":7015,"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":[]}]},{"Id":7006,"Name":"Read Additional 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":7016,"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":7013,"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":[]}]},"Device":null,"DeviceRelated":false,"IsList":false,"IsAdminOnly":false,"Deleted":false,"Children":[{"Id":7020,"Name":"Read Man Down 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":7021,"Name":"Read Non Movement 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":"Mode","Json":"{\"name\":\"Mode\",\"default\":\"\",\"description\":\"Current Mode\",\"type\":\"radioGroup\",\"suffix\":null,\"prefix\":null,\"min\":null,\"max\":null,\"futureOnly\":false,\"integerOnly\":false,\"isReadOnly\":true,\"isHidden\":false,\"minLength\":null,\"maxLength\":null,\"helpText\":null,\"options\":[{\"label\":\"Ambert Timer\",\"value\":\"0\"},{\"label\":\"Recurrent\",\"value\":\"1\"}],\"toTranslate\":[\"name\",\"description\",\"helpText\",\"label\"]}","Default":"","Command":null,"ProtocolActionObjects":[],"Tags":[]}],"ProtocolChanges":[{"Version":"0.2","UserName":"juanmi","Resource":"Operation","Name":"Access PS Sentry","Message":"(Update) (Access PS Sentry) fix Get wifi list bug","Timestamp":1740071496},{"Version":"0.2","UserName":"juanmi","Resource":"Operation","Name":"Access PS Sentry","Message":"(Update) (Access PS Sentry) fix get wifi list bug 2","Timestamp":1740072152},{"Version":"0.2","UserName":"juanmi","Resource":"Protocol","Name":null,"Message":"Fix Get WiFi list bug. now the list is done with all networks that are both ON or connected","Timestamp":1740072865},{"Version":"0.3","UserName":"juanmi","Resource":"GroupParam","Name":"Approved Contacts","Message":"(Update) (Approved Contacts) remove command.. this is only for read","Timestamp":1740078087},{"Version":"0.3","UserName":"juanmi","Resource":"GroupParam","Name":"Approved Contacts","Message":"Dissociate groupParam Approved Contacts from command getAuthorisedNumbers","Timestamp":1740078091},{"Version":"0.3","UserName":"juanmi","Resource":"GroupParam","Name":"Home Beacon","Message":"(Update) (Home Beacon) remove command. this is only for read","Timestamp":1740078115}],"ProtocolActionObjects":[],"Tags":[{"Id":2153,"Name":"OneCommandSender","BackendAction":"OneCommandSender","Value":"true"}]} \ No newline at end of file