﻿{
  "broadcast": {
    "165_P_CP_CP_1": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "ACK",
      "desc": "Message Received"
    },
    "165_P_BC_CP_2": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Status",
      "name": "Equipment Status",
      "desc": "Reflects the current state of circuits, features, bodies, and equipment attached to the OCP.",
      "payload": [
        {
          "start": 0,
          "length": 1,
          "name": "Hours",
          "desc": "Current time hours (24-hour format)",
          "dataType": "byte",
          "values": "0-23"
        },
        {
          "start": 1,
          "length": 1,
          "name": "Minutes",
          "desc": "Current time minutes",
          "dataType": "byte",
          "values": "0-59"
        },
        {
          "start": 2,
          "length": 1,
          "name": "Circuit States 1-8",
          "dataType": "bits",
          "desc": "Bit flags for circuits 1-8",
          "values": "Bit 0=Circuit 1 (Spa), Bit 5=Circuit 6 (Pool)"
        },
        {
          "start": 3,
          "length": 1,
          "name": "Circuit States 9-16",
          "dataType": "bits",
          "desc": "Bit flags for circuits 9-16",
          "values": "Bit 3=Circuit 12 (Body 3)"
        },
        {
          "start": 4,
          "length": 1,
          "name": "Circuit States 17-24",
          "dataType": "bits",
          "desc": "Bit flags for circuits 17-24"
        },
        {
          "start": 5,
          "length": 1,
          "name": "Circuit States 25-32",
          "dataType": "bits",
          "desc": "Bit flags for circuits 25-32",
          "values": "Bit 5=Circuit 22 (Body 4)"
        },
        {
          "start": 6,
          "length": 1,
          "name": "Circuit States 33-40",
          "dataType": "bits",
          "desc": "Bit flags for circuits 33-40"
        },
        {
          "start": 7,
          "length": 1,
          "name": "Feature States (Partial)",
          "dataType": "bits",
          "desc": "Upper 4 bits contain first 4 feature states. Lower 4 bits undefined. Full feature states in Action 204."
        },
        {
          "start": 8,
          "length": 1,
          "name": "Reserved",
          "desc": "Reserved/Unknown"
        },
        {
          "start": 9,
          "length": 1,
          "name": "Panel Mode",
          "dataType": "bits",
          "desc": "Panel mode and settings bit flags",
          "values": "Bit 0=Service mode, Bit 2=Temp units (0=F, 1=C), Bit 3=Freeze protection, Bit 7=Timeout (*Touch only)"
        },
        {
          "start": 10,
          "length": 1,
          "name": "Valve State",
          "desc": "Current valve position/state"
        },
        {
          "start": 11,
          "length": 1,
          "name": "Heat Status",
          "dataType": "bits",
          "desc": "Lower nibble=Body 1, Upper nibble=Body 2",
          "values": {
            "0": "Off",
            "1": "Heater",
            "2": "Cooling",
            "3": "Solar/HeatPump"
          }
        },
        {
          "start": 12,
          "length": 1,
          "name": "Delay",
          "dataType": "byte",
          "desc": "Delay countdown value",
          "values": "0-63 (lower 6 bits)"
        },
        {
          "start": 13,
          "length": 1,
          "name": "Reserved",
          "desc": "Reserved/Unknown"
        },
        {
          "start": 14,
          "length": 1,
          "name": "Water Sensor 1",
          "desc": "Water temperature sensor 1 (Body 1/Pool or shared body)",
          "dataType": "byte"
        },
        {
          "start": 15,
          "length": 1,
          "name": "Water Sensor 2",
          "desc": "Water temperature sensor 2 (Body 2/Spa, only on dual/multi-body systems)",
          "dataType": "byte"
        },
        {
          "start": 16,
          "length": 1,
          "name": "Reserved",
          "desc": "Reserved/Unknown"
        },
        {
          "start": 17,
          "length": 1,
          "name": "Solar Sensor 2",
          "desc": "Solar temperature sensor 2 (dual/multi-body systems)",
          "dataType": "byte"
        },
        {
          "start": 18,
          "length": 1,
          "name": "Air Temperature",
          "desc": "Air temperature sensor",
          "dataType": "byte"
        },
        {
          "start": 19,
          "length": 1,
          "name": "Solar Sensor 1",
          "desc": "Solar temperature sensor 1",
          "dataType": "byte"
        },
        {
          "start": 20,
          "length": 1,
          "name": "Water Sensor 3",
          "desc": "Water temperature sensor 3 (Body 3, multi-body IntelliCenter only)",
          "dataType": "byte"
        },
        {
          "start": 21,
          "length": 1,
          "name": "Water Sensor 4",
          "desc": "Water temperature sensor 4 (Body 4, multi-body IntelliCenter only)",
          "dataType": "byte"
        },
        {
          "start": 22,
          "length": 1,
          "name": "Heat Mode Body 1&2",
          "dataType": "bits",
          "desc": "Lower 4 bits=Body 1, Upper 4 bits=Body 2",
          "values": {
            "0": "Off",
            "1": "Heater",
            "2": "Solar Preferred",
            "3": "Solar Only",
            "16": "Dual (hybrid: bits 0,4,5)"
          }
        },
        {
          "start": 23,
          "length": 1,
          "name": "Heat Mode Body 3&4 / DST",
          "dataType": "bits",
          "desc": "Controller-specific multi-purpose byte",
          "values": "*Touch: Lower 4 bits=Body 3, Upper 4 bits=Body 4. IntelliCenter: Bit 0=Auto DST (inverted)"
        },
        {
          "start": 24,
          "length": 1,
          "name": "Reserved",
          "desc": "Reserved/Unknown"
        },
        {
          "start": 25,
          "length": 1,
          "name": "Reserved",
          "desc": "Reserved/Unknown"
        },
        {
          "start": 26,
          "length": 1,
          "name": "Reserved",
          "desc": "Reserved/Unknown"
        },
        {
          "start": 27,
          "length": 1,
          "name": "Model Byte 1",
          "desc": "Controller model identifier byte 1. Used for controller detection.",
          "dataType": "byte"
        },
        {
          "start": 28,
          "length": 1,
          "name": "Model Byte 2",
          "desc": "Controller model identifier byte 2 - determines controller type",
          "dataType": "byte",
          "values": "0-5=IntelliTouch, 11=SunTouch, 13-14=EasyTouch, 0/2=IntelliCenter"
        }
      ]
    },
    "165_P_BC_CP_96": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "State[IntelliBrite]",
      "name": "IntelliBrite Light Mode Status",
      "desc": "Status broadcast for IntelliBrite light systems containing theme and mode information. Used for light synchronization and theme changes.",
      "payload": [
        {
          "start": 0,
          "length": 1,
          "name": "Theme/Command",
          "desc": "Light theme or command code",
          "dataType": "byte",
          "values": {
            "0": "Off",
            "1": "On",
            "128": "Sync",
            "144": "Swim",
            "160": "Set",
            "190": "Save",
            "191": "Recall",
            "193": "SAM (Color Swim)",
            "194": "Party (Color Sync)",
            "195": "Romance (Color Set)",
            "196": "Caribbean (Color Swim)",
            "197": "American (Color Sync)",
            "198": "Sunset (Color Set)",
            "199": "Royal (Color Swim)"
          }
        }
      ]
    },
    "165_P_BC_CP_164": {
      "proto": "broadcast",
      "ocpSpecific": true,
      "messageType": "response",
      "shortName": "State[version]",
      "name": "Configuration Version Response",
      "desc": "Response from the IntelliCenter panel containing the current configuration version numbers for all configuration categories.",
      "payload": [
        {
          "start": 6,
          "length": 2,
          "name": "Options Version",
          "desc": "Version number for options configuration",
          "dataType": "int"
        },
        {
          "start": 8,
          "length": 2,
          "name": "Circuits Version",
          "desc": "Version number for circuits configuration",
          "dataType": "int"
        },
        {
          "start": 10,
          "length": 2,
          "name": "Features Version",
          "desc": "Version number for features configuration",
          "dataType": "int"
        },
        {
          "start": 12,
          "length": 2,
          "name": "Schedules Version",
          "desc": "Version number for schedules configuration",
          "dataType": "int"
        },
        {
          "start": 14,
          "length": 2,
          "name": "Pumps Version",
          "desc": "Version number for pumps configuration",
          "dataType": "int"
        },
        {
          "start": 16,
          "length": 2,
          "name": "Remotes Version",
          "desc": "Version number for remotes configuration",
          "dataType": "int"
        },
        {
          "start": 18,
          "length": 2,
          "name": "Circuit Groups Version",
          "desc": "Version number for circuit/light groups configuration",
          "dataType": "int"
        },
        {
          "start": 20,
          "length": 2,
          "name": "Chlorinators Version",
          "desc": "Version number for chlorinators configuration",
          "dataType": "int"
        },
        {
          "start": 22,
          "length": 2,
          "name": "IntelliChem Version",
          "desc": "Version number for IntelliChem configuration",
          "dataType": "int"
        },
        {
          "start": 24,
          "length": 2,
          "name": "Valves Version",
          "desc": "Version number for valves configuration",
          "dataType": "int"
        },
        {
          "start": 26,
          "length": 2,
          "name": "Heaters Version",
          "desc": "Version number for heaters configuration",
          "dataType": "int"
        },
        {
          "start": 28,
          "length": 2,
          "name": "Security Version",
          "desc": "Version number for security configuration",
          "dataType": "int"
        },
        {
          "start": 30,
          "length": 2,
          "name": "General Version",
          "desc": "Version number for general settings configuration",
          "dataType": "int"
        },
        {
          "start": 32,
          "length": 2,
          "name": "Equipment Version",
          "desc": "Version number for equipment configuration",
          "dataType": "int"
        },
        {
          "start": 34,
          "length": 2,
          "name": "Covers Version",
          "desc": "Version number for covers configuration",
          "dataType": "int"
        },
        {
          "start": 36,
          "length": 2,
          "name": "System State Version",
          "desc": "Version number for system state configuration",
          "dataType": "int"
        }
      ]
    },
    "165_P_BC_CP_179": {
      "proto": "broadcast",
      "ocpSpecific": true,
      "messageType": "broadcast",
      "shortName": "State[WirelessRemote]",
      "name": "Wireless Remote Status",
      "desc": "Status/heartbeat message from wireless remote devices (typically device 36). Added in IntelliCenter firmware v3.004+. Sent periodically by wireless remote to indicate presence and connection status."
    },
    "165_P_BC_CP_184": {
      "proto": "broadcast",
      "ocpSpecific": true,
      "messageType": "control",
      "shortName": "Ctrl[Circuit]",
      "name": "Circuit Control from Wireless Remote",
      "desc": "Circuit control command from wireless remote (replaces Action 134 from earlier firmware). Added in IntelliCenter firmware v3.004+.",
      "payload": [
        {
          "start": 3,
          "length": 1,
          "name": "Circuit/Device ID",
          "desc": "The ID of the circuit or device to control",
          "dataType": "byte"
        },
        {
          "start": 7,
          "length": 1,
          "name": "State",
          "desc": "Desired state of the circuit",
          "dataType": "byte",
          "values": {
            "0": "Off",
            "1": "On"
          }
        }
      ]
    },
    "165_P_BC_CP_204": {
      "proto": "broadcast",
      "ocpSpecific": true,
      "messageType": "broadcast",
      "shortName": "Ext Status",
      "name": "Extended Status",
      "desc": "Reflects the current state of IntelliCenter features, bodies, and equipment attached to the OCP. Contains expansion module info, firmware version, date/time, and equipment states.",
      "payload": [
        {
          "start": 2,
          "length": 1,
          "name": "Battery Voltage",
          "desc": "Battery voltage in volts. Divide byte value by 50 to get voltage.",
          "dataType": "byte"
        },
        {
          "start": 4,
          "length": 4,
          "name": "Keep Alives",
          "desc": "Count of communication keepalive messages",
          "dataType": "int"
        },
        {
          "start": 6,
          "length": 1,
          "name": "Date (Day)",
          "desc": "Current day of month",
          "dataType": "byte",
          "values": "1-31"
        },
        {
          "start": 7,
          "length": 1,
          "name": "Month",
          "desc": "Current month",
          "dataType": "byte",
          "values": "1-12"
        },
        {
          "start": 8,
          "length": 1,
          "name": "Year",
          "desc": "Current year (2-digit)",
          "dataType": "byte"
        },
        {
          "start": 9,
          "length": 32,
          "name": "Feature States",
          "desc": "32 bytes of feature state bits (features 1-256 represented as bit flags). Processed by ExternalMessage.processFeatureState()",
          "dataType": "bits"
        },
        {
          "start": 13,
          "length": 1,
          "name": "Master Module Byte 1",
          "desc": "Master expansion module identifier byte 1. Used for determining installed equipment capabilities.",
          "dataType": "byte"
        },
        {
          "start": 14,
          "length": 1,
          "name": "Master Module Byte 2",
          "desc": "Master expansion module identifier byte 2. Used for determining installed equipment capabilities.",
          "dataType": "byte"
        },
        {
          "start": 15,
          "length": 1,
          "name": "EXP1 Module Byte 1",
          "desc": "Expansion 1 module identifier byte 1",
          "dataType": "byte",
          "values": "Only present if bit 0 of byte 40 is set"
        },
        {
          "start": 16,
          "length": 1,
          "name": "EXP1 Module Byte 2",
          "desc": "Expansion 1 module identifier byte 2",
          "dataType": "byte",
          "values": "Only present if bit 0 of byte 40 is set"
        },
        {
          "start": 17,
          "length": 1,
          "name": "EXP2 Module Byte 1",
          "desc": "Expansion 2 module identifier byte 1",
          "dataType": "byte",
          "values": "Only present if bit 1 of byte 40 is set"
        },
        {
          "start": 18,
          "length": 1,
          "name": "EXP2 Module Byte 2",
          "desc": "Expansion 2 module identifier byte 2",
          "dataType": "byte",
          "values": "Only present if bit 1 of byte 40 is set"
        },
        {
          "start": 19,
          "length": 1,
          "name": "EXP3 Module Byte 1",
          "desc": "Expansion 3 module identifier byte 1",
          "dataType": "byte",
          "values": "Only present if bit 2 of byte 40 is set"
        },
        {
          "start": 20,
          "length": 1,
          "name": "EXP3 Module Byte 2",
          "desc": "Expansion 3 module identifier byte 2",
          "dataType": "byte",
          "values": "Only present if bit 2 of byte 40 is set"
        },
        {
          "start": 26,
          "length": 1,
          "name": "Body State (i10D)",
          "desc": "For IntelliCenter i10D: Body state flags",
          "dataType": "bits",
          "values": "Bit 4 (0x10)=Pool circuit 6 state"
        },
        {
          "start": 30,
          "length": 1,
          "name": "Cover States",
          "desc": "Cover position states",
          "dataType": "bits",
          "values": "Bit 0 (0x01)=Cover 1 closed, Bit 1 (0x02)=Cover 2 closed"
        },
        {
          "start": 37,
          "length": 1,
          "name": "SuperChlor Hours",
          "desc": "SuperChlor remaining time in hours",
          "dataType": "byte",
          "values": "255=SuperChlor off"
        },
        {
          "start": 38,
          "length": 1,
          "name": "SuperChlor Minutes",
          "desc": "SuperChlor remaining time in minutes",
          "dataType": "byte",
          "values": "0-59 (only valid if byte 37 ≠ 255)"
        },
        {
          "start": 40,
          "length": 1,
          "name": "Expansion Present",
          "desc": "Bit flags indicating which expansion modules are installed",
          "dataType": "bits",
          "values": "Bit 0=EXP1, Bit 1=EXP2, Bit 2=EXP3"
        },
        {
          "start": 42,
          "length": 1,
          "name": "Firmware Version (Major)",
          "desc": "Controller firmware version major number",
          "dataType": "byte"
        },
        {
          "start": 43,
          "length": 1,
          "name": "Firmware Version (Minor)",
          "desc": "Controller firmware version minor number (divide by 1000 for decimal representation)",
          "dataType": "byte"
        },
        {
          "start": 44,
          "length": 1,
          "name": "Time Hour (v3.004+)",
          "desc": "Current hour in 24-hour format. Added in firmware v3.004+.",
          "dataType": "byte",
          "values": "0-23"
        },
        {
          "start": 45,
          "length": 1,
          "name": "Time Minute (v3.004+)",
          "desc": "Current minute. Added in firmware v3.004+.",
          "dataType": "byte",
          "values": "0-59"
        },
        {
          "start": 46,
          "length": 1,
          "name": "Time Second (v3.004+)",
          "desc": "Current second. Added in firmware v3.004+.",
          "dataType": "byte",
          "values": "0-59"
        },
        {
          "start": 47,
          "length": 1,
          "name": "Status Flags (v3.004+)",
          "desc": "Status flags. Possibly DST indicator or other status information. Added in firmware v3.004+.",
          "dataType": "byte"
        }
      ]
    },
    "165_P_BC_CP_217": {
      "proto": "broadcast",
      "ocpSpecific": true,
      "messageType": "broadcast",
      "shortName": "State[DeviceList]",
      "name": "Device List Broadcast",
      "desc": "OCP broadcasts registered devices after Action 251→253 handshake. Added in IntelliCenter firmware v3.004+. Payload includes device addresses and firmware versions."
    },
    "165_P_BC_CP_251": {
      "proto": "broadcast",
      "ocpSpecific": true,
      "messageType": "announcement",
      "shortName": "Announce[Device]",
      "name": "Device Announcement",
      "desc": "Devices send this to announce presence to OCP and request registration. Added in IntelliCenter firmware v3.004+.",
      "payload": [
        {
          "start": 0,
          "length": 1,
          "name": "Device Address",
          "desc": "The address of the device announcing itself",
          "dataType": "byte"
        }
      ]
    },
    "165_P_BC_CP_253": {
      "proto": "broadcast",
      "ocpSpecific": true,
      "messageType": "response",
      "shortName": "Confirm[Registration]",
      "name": "Device Registration Confirmation",
      "desc": "OCP sends this in response to Action 251 to confirm device registration. Added in IntelliCenter firmware v3.004+.",
      "payload": [
        {
          "start": 2,
          "length": 1,
          "name": "Registration Status",
          "desc": "Whether the device was successfully registered",
          "dataType": "byte",
          "values": {
            "0": "Not Registered",
            "1": "Registered"
          }
        }
      ]
    },
    "165_P_BC_CP_5": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "state[DateTime]",
      "name": "Date and Time broadcast",
      "desc": "Reflects the current date and time for IntelliTouch controllers. Action 2 contains time for all controllers.",
      "payload": [
        {
          "start": 0,
          "length": 1,
          "name": "Hours",
          "desc": "Current hour (24-hour format)",
          "dataType": "byte",
          "values": "0-23"
        },
        {
          "start": 1,
          "length": 1,
          "name": "Minutes",
          "desc": "Current minutes",
          "dataType": "byte",
          "values": "0-59"
        },
        {
          "start": 2,
          "length": 1,
          "name": "Day of Week",
          "desc": "Day of week (1=Sunday, 7=Saturday)",
          "dataType": "byte",
          "values": "1-7"
        },
        {
          "start": 3,
          "length": 1,
          "name": "Day",
          "desc": "Day of month",
          "dataType": "byte",
          "values": "1-31"
        },
        {
          "start": 4,
          "length": 1,
          "name": "Month",
          "desc": "Month of year",
          "dataType": "byte",
          "values": "1-12"
        },
        {
          "start": 5,
          "length": 1,
          "name": "Year",
          "desc": "Year (offset from 2000, e.g., 25 = 2025)",
          "dataType": "byte"
        },
        {
          "start": 6,
          "length": 1,
          "name": "Reserved",
          "desc": "Reserved/Unknown"
        },
        {
          "start": 7,
          "length": 1,
          "name": "Auto Adjust DST",
          "desc": "Daylight Saving Time adjustment enabled",
          "dataType": "byte",
          "values": {
            "0": "Disabled",
            "1": "Enabled"
          }
        }
      ]
    },
    "165_P_BC_CP_133": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "set[DateTime]",
      "name": "Sets the date and time on the OCP",
      "desc": "Sets the date and time for all *Touch controllers."
    },
    "165_P_CP_CP_197": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Get[DateTime]",
      "name": "Gets the date and time on the OCP",
      "desc": "Gets the date and time for all *Touch controllers."
    },
    "165_P_BC_CP_8": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "State[heat/temp]",
      "name": "Heat/Temperature state",
      "desc": "Reflects the current heating state and temperature setpoints for IntelliTouch controllers.",
      "payload": [
        {
          "start": 0,
          "length": 1,
          "name": "Water Sensor 1",
          "desc": "Water temperature sensor 1 (Pool/Body 1)",
          "dataType": "byte"
        },
        {
          "start": 1,
          "length": 1,
          "name": "Water Sensor 2",
          "desc": "Water temperature sensor 2 (Spa/Body 2, dual systems only)",
          "dataType": "byte"
        },
        {
          "start": 2,
          "length": 1,
          "name": "Air Temperature",
          "desc": "Air temperature sensor",
          "dataType": "byte"
        },
        {
          "start": 3,
          "length": 1,
          "name": "Body 1 Setpoint",
          "desc": "Heating setpoint for Body 1 (Pool)",
          "dataType": "byte"
        },
        {
          "start": 4,
          "length": 1,
          "name": "Body 2 Setpoint",
          "desc": "Heating setpoint for Body 2 (Spa)",
          "dataType": "byte"
        },
        {
          "start": 5,
          "length": 1,
          "name": "Heat Mode Body 1&2",
          "dataType": "bits",
          "desc": "Lower 4 bits=Body 1, Upper 4 bits=Body 2 (bits 0,4,5 for hybrid support)",
          "values": {
            "0": "Off",
            "1": "Heater",
            "2": "Solar Preferred",
            "3": "Solar Only"
          }
        },
        {
          "start": 6,
          "length": 1,
          "name": "Water Sensor 3",
          "desc": "Water temperature sensor 3 (Body 3, multi-body systems)",
          "dataType": "byte"
        },
        {
          "start": 7,
          "length": 1,
          "name": "Water Sensor 4",
          "desc": "Water temperature sensor 4 (Body 4, multi-body systems)",
          "dataType": "byte"
        },
        {
          "start": 8,
          "length": 1,
          "name": "Reserved Air",
          "desc": "Reserved for additional air sensor",
          "dataType": "byte"
        },
        {
          "start": 9,
          "length": 1,
          "name": "Body 1 Cool Setpoint",
          "desc": "Cooling setpoint for Body 1 (for UltraTemp ETi heatpumps)",
          "dataType": "byte"
        },
        {
          "start": 10,
          "length": 1,
          "name": "Body 2 Cool Setpoint",
          "desc": "Cooling setpoint for Body 2 (for UltraTemp ETi heatpumps)",
          "dataType": "byte"
        },
        {
          "start": 11,
          "length": 1,
          "name": "Heat Mode Body 3&4",
          "dataType": "bits",
          "desc": "Lower 4 bits=Body 3 heat mode, Upper 4 bits=Body 4 heat mode. 0=Off, 2=Solar Preferred"
        },
        {
          "start": 12,
          "length": 1,
          "name": "Reserved",
          "desc": "Reserved/Unknown"
        }
      ]
    },
    "165_P_CP_CP_136": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Set[heat/temp]",
      "name": "Set the Heat/Temperature settings",
      "desc": "Sets the current current heating state for all *Touch controllers."
    },
    "165_P_CP_CP_200": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Get[heat/temp]",
      "name": "Get the Heat/Temperature settings",
      "desc": "Gets the current current heating state for all *Touch controllers."
    },
    "165_P_BC_CP_10": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Cfg[custom name]",
      "name": "A Custom Name",
      "desc": "Reflects a custom name for all *Touch controllers."
    },
    "165_P_CP_CP_138": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Set[custom name]",
      "name": "Sets a custom name",
      "desc": "Reflects a custom name for all *Touch controllers."
    },
    "165_P_CP_CP_202": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Get[custom name]",
      "name": "Gets a Custom Name",
      "desc": "Reflects a custom name for all *Touch controllers."
    },
    "165_P_BC_CP_11": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Cfg[circuit]",
      "name": "A circuit/feature configuration",
      "desc": "Reflects a configuration for a circuit/feature for all *Touch controllers."
    },
    "165_P_CP_CP_139": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Set[circuit]",
      "name": "Sets a circuit/feature configuration",
      "desc": "Sets a configuration for a circuit/feature for all *Touch controllers."
    },
    "165_P_CP_CP_203": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Get[circuit]",
      "name": "Gets a circuit/feature configuration",
      "desc": "Gets a configuration for a circuit/feature for all *Touch controllers."
    },
    "165_P_BC_CP_16": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Cfg[heat pump]",
      "name": "Heat pump configuraiton",
      "desc": "Reflects the heat pump configuration for all *Touch controllers."
    },
    "165_P_CP_CP_144": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Set[heat pump]",
      "name": "Sets a heat pump configuration",
      "desc": "Sets a configuration for a heat pump for all *Touch controllers."
    },
    "165_P_CP_CP_208": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Get[heat pump]",
      "name": "Gets a heat pump configuration",
      "desc": "Gets a configuration for a heat pump for all *Touch controllers."
    },
    "165_P_BC_CP_17": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Cfg[schedule]",
      "name": "A defined schedule",
      "desc": "Reflects a schedule for all *Touch controllers."
    },
    "165_P_CP_CP_145": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Set[schedule]",
      "name": "Sets a schedule configuration",
      "desc": "Sets a configuration for a schedule for all *Touch controllers."
    },
    "165_P_CP_CP_209": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Get[schedule]",
      "name": "Gets a schedule configuration",
      "desc": "Gets a configuration for a schedule for all *Touch controllers."
    },
    "165_P_CP_CP_19": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Cfg[intellichem]",
      "name": "IntelliChem configuration",
      "desc": "Reflects an IntelliChem config for all *Touch controllers."
    },
    "165_P_BC_CP_147": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Set[intellichem]",
      "name": "Sets the IntelliChem configuration",
      "desc": "Sets the IntelliChem configuration for all *Touch controllers."
    },
    "165_P_CP_CP_211": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Get[intellichem]",
      "name": "Gets the IntelliChem configuration",
      "desc": "Gets the IntelliChem configuration for all *Touch controllers."
    },
    "165_P_BC_CP_24": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Cfg[pump]",
      "name": "A configuration for a pump",
      "desc": "Reflects a pump config for all *Touch controllers."
    },
    "165_P_CP_CP_152": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Set[pump]",
      "name": "Sets a pump configuration",
      "desc": "Sets a pump configuration for all *Touch controllers."
    },
    "165_P_CP_CP_216": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Get[pump]",
      "name": "Gets a pump configuration",
      "desc": "Gets a pump configuration for all *Touch controllers."
    },
    "165_P_BC_CP_23": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Cfg[pump status]",
      "name": "A configuration for a pump status",
      "desc": "Reflects a pump status config for all *Touch controllers."
    },
    "165_P_CP_CP_215": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Get[pump status]",
      "name": "Gets a pump status",
      "desc": "Gets a pump status for all *Touch controllers."
    },
    "165_P_BC_CP_22": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Cfg[spa side]",
      "name": "A configuration for a spa side controller",
      "desc": "Reflects a spa side controller config for all *Touch controllers."
    },
    "165_P_CP_CP_150": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Set[spa side]",
      "name": "Sets a spa side controller configuration",
      "desc": "Sets a spa side controller configuration for all *Touch controllers."
    },
    "165_P_CP_CP_214": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Get[spa side]",
      "name": "Gets a spa side controller configuration",
      "desc": "Gets a spa side controller configuration for all *Touch controllers."
    },
    "165_P_BC_CP_25": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Cfg[chlor]",
      "name": "A configuration for a chlorinator",
      "desc": "Reflects a chlorinator config for all *Touch controllers."
    },
    "165_P_CP_CP_153": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Set[chlor]",
      "name": "Sets a chlorinator configuration",
      "desc": "Sets a chlorinaor configuration for all *Touch controllers."
    },
    "165_P_CP_CP_217": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Get[chlor]",
      "name": "Gets a chlorinator configuration",
      "desc": "Gets a chlorinator configuration for all *Touch controllers."
    },
    "165_P_BC_CP_29": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Cfg[valve]",
      "name": "Valve configuration",
      "desc": "Reflects the valve config for all *Touch controllers."
    },
    "165_P_CP_CP_157": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Set[valve]",
      "name": "Sets the valve configuration",
      "desc": "Sets the valve configuration for all *Touch controllers."
    },
    "165_P_CP_CP_221": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Get[valve]",
      "name": "Gets the valve configuration",
      "desc": "Gets the valve configuration for all *Touch controllers."
    },
    "165_P_BC_CP_34": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Cfg[solar/heatpump]",
      "name": "A configuration for a solar/heatpump",
      "desc": "Reflects the solar/heatpump config for all *Touch controllers."
    },
    "165_P_CP_CP_162": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Set[solar/heatpump]",
      "name": "Sets the solar/heatpump configuration",
      "desc": "Sets the solar/heatpump configuration for all *Touch controllers."
    },
    "165_P_CP_CP_226": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Get[solar/heatpump]",
      "name": "Gets the solar/heatpump configuration",
      "desc": "Gets the solar/heatpump configuration for all *Touch controllers."
    },
    "165_P_BC_CP_35": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Cfg[delays]",
      "name": "A configuration for a delays",
      "desc": "Reflects the delay config for all *Touch controllers."
    },
    "165_P_CP_CP_163": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Set[delays]",
      "name": "Sets the delay configuration",
      "desc": "Sets the delay configuration for all *Touch controllers."
    },
    "165_P_CP_CP_131": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Cmd[cancel delay]",
      "name": "Cancels all delays",
      "desc": "Cancels delays for all *Touch controllers."
    },
    "165_P_CP_CP_227": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Get[delays]",
      "name": "Gets the delay configuration",
      "desc": "Gets the delay configuration for all *Touch controllers."
    },
    "165_P_CP_CP_228": {
      "proto": "broadcast",
      "ocpSpecific": true,
      "messageType": "request",
      "shortName": "Get[version]",
      "name": "Request Configuration Version",
      "desc": "Broadcast request to get the current configuration version from the IntelliCenter panel. Expects a response with action 164 containing version numbers for all configuration categories."
    },
    "165_P_BC_CP_39": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Cfg[intellibrite]",
      "name": "The configuration for IntelliBrite",
      "desc": "Reflects the IntelliBrite config for all *Touch controllers."
    },
    "165_P_CP_CP_167": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Set[intellibrite]",
      "name": "Sets the IntelliBrite configuration",
      "desc": "Sets the IntelliBrite configuration for all *Touch controllers."
    },
    "165_P_17_CP_110": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Probe[exp1]",
      "name": "Probes for EXP",
      "desc": "Probes for expansion panels on IntelliTouch controllers."
    },
    "165_P_18_CP_110": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Probe[exp2]",
      "name": "Probes for EXP",
      "desc": "Probes for expansion panels on IntelliTouch controllers."
    },
    "165_P_19_CP_110": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Probe[exp3]",
      "name": "Probes for EXP",
      "desc": "Probes for expansion panels on IntelliTouch controllers."
    },
  
    "165_P_CP_CP_231": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Get[intellibrite]",
      "name": "Gets the IntelliBrite configuration",
      "desc": "Gets the IntelliBrite configuration for all *Touch controllers."
    },
  
    "165_P_BC_CP_40": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Cfg[settings]",
      "name": "The settings configuration",
      "desc": "Reflects the settings config for all *Touch controllers."
    },
    "165_P_CP_CP_168": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Set[settings]",
      "name": "Sets the settings configuration",
      "desc": "Sets the settings configuration for all *Touch controllers."
    },
    "165_P_CP_CP_232": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Get[settings]",
      "name": "Gets a settings configuration",
      "desc": "Gets a settings configuration for all *Touch controllers."
    },
    "165_P_BC_CP_32": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Cfg[is4/is10]",
      "name": "A configuration for is4/is10 remotes",
      "desc": "Reflects a is4/is10 remote config for all *Touch controllers."
    },
    "165_P_CP_CP_160": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Set[is4/is10]",
      "name": "Sets a remote is4/is10 configuration",
      "desc": "Sets a remote is4/is10 configuration for all *Touch controllers."
    },
    "165_P_CP_CP_224": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Get[is4/is10]",
      "name": "Gets a remote is4/is10 configuration",
      "desc": "Gets a remote is4/is10 configuration for all *Touch controllers."
    },
    "165_P_BC_CP_33": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Cfg[remote]",
      "name": "A configuration for remotes",
      "desc": "Reflects a remote config for all *Touch controllers."
    },
    "165_P_CP_CP_161": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Set[remote]",
      "name": "Sets a remote configuration",
      "desc": "Sets a remote configuration for all *Touch controllers."
    },
    "165_P_CP_CP_225": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "Get[remote]",
      "name": "Gets a remote configuration",
      "desc": "Gets a remote configuration for all *Touch controllers."
    },
    "165_P_BC_CP_168": {
      "proto": "broadcast",
      "keyBytes": [0, 1],
      "ocpSpecific": true,
      "messageType": "request",
      "shortName": "Set[item]",
      "name": "Set Config Item (IntelliCenter)",
      "desc": "Set a configuration item on the IntelliCenter OCP. The first byte identifies the configuration category, second byte the sub-item, and third byte typically the item index (0-based).",
      "payload": [
        {
          "start": 0,
          "length": 1,
          "name": "Config Category",
          "desc": "The configuration category for the item being set.",
          "dataType": "byte",
          "values": {
            "0": "Options (temp calibration, clock, delays, body heat)",
            "1": "Circuits",
            "2": "Features",
            "3": "Schedules",
            "4": "Pumps",
            "5": "Remotes",
            "6": "Circuit/Light Groups",
            "7": "Chlorinators",
            "8": "IntelliChem Controllers",
            "9": "Valves",
            "10": "Heaters",
            "11": "Security",
            "12": "General (alias, owner, location)",
            "13": "Bodies/Equipment",
            "14": "Covers",
            "15": "System State (circuit states)"
          }
        },
        {
          "start": 1,
          "length": 1,
          "name": "Sub-Item",
          "desc": "The sub-item within the category. Meaning varies by category.",
          "dataType": "byte"
        },
        {
          "start": 2,
          "length": 1,
          "name": "Item Index",
          "desc": "The 0-based index of the item being configured (e.g., circuit id - 1).",
          "dataType": "byte"
        }
      ],
      "payloadKeys": {
        "0_0": {
          "shortName": "Set[options]",
          "name": "Set Options/Body Heat Settings",
          "desc": "Sets options configuration including temp sensor calibration, clock settings, delays, and body heat setpoints. Byte 2 identifies specific option item.",
          "payload": [
            {
              "start": 0,
              "length": 1,
              "name": "Category",
              "desc": "Options category = 0",
              "dataType": "byte",
              "values": { "0": "Options" }
            },
            {
              "start": 1,
              "length": 1,
              "name": "Sub-Item",
              "desc": "Always 0 for options",
              "dataType": "byte"
            },
            {
              "start": 2,
              "length": 1,
              "name": "Option Item",
              "desc": "Identifies which option is being set",
              "dataType": "byte",
              "values": {
                "1": "Water Temp Calibration 1 (byte 4)",
                "2": "Solar Temp Calibration 1 (byte 5)",
                "3": "Air Temp Calibration (byte 6)",
                "4": "Water Temp Calibration 2 (byte 7)",
                "5": "Solar Temp Calibration 2 (byte 8)",
                "6": "Water Temp Calibration 3 (byte 9)",
                "7": "Solar Temp Calibration 3 (byte 10)",
                "8": "Water Temp Calibration 4 (byte 11) / Solar Temp Calibration 4 (byte 12)",
                "11": "Clock Mode/DST (byte 14) / Clock Source (byte 17)",
                "22": "Body 1 Heat Mode (via heat settings payload)",
                "23": "Body 2 Heat Mode (via heat settings payload)",
                "27": "Pump Delay (byte 30)",
                "28": "Cooldown Delay (byte 31)",
                "36": "Manual Priority (byte 39)",
                "37": "Manual Heat (byte 40)"
              }
            },
            {
              "start": 3,
              "length": 1,
              "name": "Unknown",
              "desc": "Usually 1",
              "dataType": "byte"
            },
            {
              "start": 4,
              "length": 1,
              "name": "Water Temp Adj 1",
              "desc": "Water temp sensor 1 calibration. Signed: bit 7 = negative, bits 0-6 = magnitude",
              "dataType": "byte"
            },
            {
              "start": 5,
              "length": 1,
              "name": "Solar Temp Adj 1",
              "desc": "Solar temp sensor 1 calibration. Signed byte.",
              "dataType": "byte"
            },
            {
              "start": 6,
              "length": 1,
              "name": "Air Temp Adj",
              "desc": "Air temp sensor calibration. Signed byte.",
              "dataType": "byte"
            },
            {
              "start": 7,
              "length": 1,
              "name": "Water Temp Adj 2",
              "desc": "Water temp sensor 2 calibration. Signed byte.",
              "dataType": "byte"
            },
            {
              "start": 8,
              "length": 1,
              "name": "Solar Temp Adj 2",
              "desc": "Solar temp sensor 2 calibration. Signed byte.",
              "dataType": "byte"
            },
            {
              "start": 9,
              "length": 1,
              "name": "Water Temp Adj 3",
              "desc": "Water temp sensor 3 calibration. Signed byte.",
              "dataType": "byte"
            },
            {
              "start": 10,
              "length": 1,
              "name": "Solar Temp Adj 3",
              "desc": "Solar temp sensor 3 calibration. Signed byte.",
              "dataType": "byte"
            },
            {
              "start": 11,
              "length": 1,
              "name": "Water Temp Adj 4",
              "desc": "Water temp sensor 4 calibration. Signed byte.",
              "dataType": "byte"
            },
            {
              "start": 12,
              "length": 1,
              "name": "Solar Temp Adj 4",
              "desc": "Solar temp sensor 4 calibration. Signed byte.",
              "dataType": "byte"
            },
            {
              "start": 13,
              "length": 1,
              "name": "Unknown",
              "desc": "Reserved/Unknown",
              "dataType": "byte"
            },
            {
              "start": 14,
              "length": 1,
              "name": "Clock Settings",
              "desc": "Clock mode and DST settings",
              "dataType": "bits",
              "values": "Bit 4-5=0x30 always set, Bit 6=24hr mode, Bit 7=Adjust DST, Bit 5=Internet clock source"
            },
            {
              "start": 17,
              "length": 1,
              "name": "Clock Source",
              "desc": "Clock source setting",
              "dataType": "byte",
              "values": { "0": "Manual", "1": "Internet" }
            },
            {
              "start": 21,
              "length": 1,
              "name": "Body 1 Heat Setpoint",
              "desc": "Pool/Body 1 heat setpoint temperature",
              "dataType": "byte"
            },
            {
              "start": 22,
              "length": 1,
              "name": "Body 1 Cool Setpoint",
              "desc": "Pool/Body 1 cool setpoint temperature",
              "dataType": "byte"
            },
            {
              "start": 23,
              "length": 1,
              "name": "Body 2 Heat Setpoint",
              "desc": "Spa/Body 2 heat setpoint temperature",
              "dataType": "byte"
            },
            {
              "start": 24,
              "length": 1,
              "name": "Body 2 Cool Setpoint",
              "desc": "Spa/Body 2 cool setpoint temperature",
              "dataType": "byte"
            },
            {
              "start": 25,
              "length": 1,
              "name": "Body 1 Heat Mode",
              "desc": "Pool/Body 1 heat mode",
              "dataType": "byte",
              "values": { "1": "Off", "2": "Heater", "3": "Solar Pref", "4": "Solar Only" }
            },
            {
              "start": 26,
              "length": 1,
              "name": "Body 2 Heat Mode",
              "desc": "Spa/Body 2 heat mode",
              "dataType": "byte"
            },
            {
              "start": 30,
              "length": 1,
              "name": "Pump Delay",
              "desc": "Pump delay enabled",
              "dataType": "byte",
              "values": { "0": "Disabled", "1": "Enabled" }
            },
            {
              "start": 31,
              "length": 1,
              "name": "Cooldown Delay",
              "desc": "Cooldown delay enabled",
              "dataType": "byte",
              "values": { "0": "Disabled", "1": "Enabled" }
            },
            {
              "start": 39,
              "length": 1,
              "name": "Manual Priority",
              "desc": "Manual operation takes priority over schedules",
              "dataType": "byte",
              "values": { "0": "Disabled", "1": "Enabled" }
            },
            {
              "start": 40,
              "length": 1,
              "name": "Manual Heat",
              "desc": "Manual heat control enabled",
              "dataType": "byte",
              "values": { "0": "Disabled", "1": "Enabled" }
            }
          ]
        },
        "1_0": {
          "shortName": "Set[circuit]",
          "name": "Set Circuit Configuration",
          "desc": "Sets circuit configuration including type, freeze protection, egg timer, and name.",
          "payload": [
            {
              "start": 0,
              "length": 1,
              "name": "Category",
              "desc": "Circuits category = 1",
              "dataType": "byte",
              "values": { "1": "Circuits" }
            },
            {
              "start": 1,
              "length": 1,
              "name": "Sub-Item",
              "desc": "Always 0 for circuit config",
              "dataType": "byte"
            },
            {
              "start": 2,
              "length": 1,
              "name": "Circuit Index",
              "desc": "Circuit ID - 1 (0-based index)",
              "dataType": "byte"
            },
            {
              "start": 3,
              "length": 1,
              "name": "Circuit Type",
              "desc": "Circuit function type",
              "dataType": "byte",
              "values": "See circuitFunctions valueMap"
            },
            {
              "start": 4,
              "length": 1,
              "name": "Freeze Protection",
              "desc": "Freeze protection enabled for this circuit",
              "dataType": "byte",
              "values": { "0": "Disabled", "1": "Enabled" }
            },
            {
              "start": 5,
              "length": 1,
              "name": "Show In Features",
              "desc": "Show this circuit in features list",
              "dataType": "byte",
              "values": { "0": "No", "1": "Yes" }
            },
            {
              "start": 6,
              "length": 1,
              "name": "Theme/Level",
              "desc": "Light theme for light circuits, dimmer level for dimmers (type 9)",
              "dataType": "byte"
            },
            {
              "start": 7,
              "length": 1,
              "name": "Egg Timer Hours",
              "desc": "Hours portion of egg timer (0-24)",
              "dataType": "byte"
            },
            {
              "start": 8,
              "length": 1,
              "name": "Egg Timer Minutes",
              "desc": "Minutes portion of egg timer (0-59)",
              "dataType": "byte"
            },
            {
              "start": 9,
              "length": 1,
              "name": "Don't Stop",
              "desc": "Circuit runs indefinitely (egg timer = 1440 mins)",
              "dataType": "byte",
              "values": { "0": "Uses egg timer", "1": "Don't stop" }
            },
            {
              "start": 10,
              "length": 16,
              "name": "Circuit Name",
              "desc": "Circuit name (16 byte string, null padded)",
              "dataType": "string"
            }
          ]
        },
        "2_0": {
          "shortName": "Set[feature]",
          "name": "Set Feature Configuration",
          "desc": "Sets feature configuration including type, freeze protection, egg timer, and name.",
          "payload": [
            {
              "start": 0,
              "length": 1,
              "name": "Category",
              "desc": "Features category = 2",
              "dataType": "byte",
              "values": { "2": "Features" }
            },
            {
              "start": 1,
              "length": 1,
              "name": "Sub-Item",
              "desc": "Always 0 for feature config",
              "dataType": "byte"
            },
            {
              "start": 2,
              "length": 1,
              "name": "Feature Index",
              "desc": "Feature ID - features.start (0-based index)",
              "dataType": "byte"
            },
            {
              "start": 3,
              "length": 1,
              "name": "Feature Type",
              "desc": "Feature function type. Set to 255 to delete.",
              "dataType": "byte"
            },
            {
              "start": 4,
              "length": 1,
              "name": "Freeze Protection",
              "desc": "Freeze protection enabled",
              "dataType": "byte",
              "values": { "0": "Disabled", "1": "Enabled" }
            },
            {
              "start": 5,
              "length": 1,
              "name": "Show In Features",
              "desc": "Show in features list",
              "dataType": "byte",
              "values": { "0": "No", "1": "Yes" }
            },
            {
              "start": 6,
              "length": 1,
              "name": "Egg Timer Hours",
              "desc": "Hours portion of egg timer",
              "dataType": "byte"
            },
            {
              "start": 7,
              "length": 1,
              "name": "Egg Timer Minutes",
              "desc": "Minutes portion of egg timer",
              "dataType": "byte"
            },
            {
              "start": 8,
              "length": 1,
              "name": "Don't Stop",
              "desc": "Feature runs indefinitely",
              "dataType": "byte",
              "values": { "0": "Uses egg timer", "1": "Don't stop" }
            },
            {
              "start": 9,
              "length": 16,
              "name": "Feature Name",
              "desc": "Feature name (16 byte string)",
              "dataType": "string"
            }
          ]
        },
        "3_0": {
          "shortName": "Set[schedule]",
          "name": "Set Schedule Configuration",
          "desc": "Sets or deletes a schedule including start/end times, circuit, days, and heat settings.",
          "payload": [
            {
              "start": 0,
              "length": 1,
              "name": "Category",
              "desc": "Schedules category = 3",
              "dataType": "byte",
              "values": { "3": "Schedules" }
            },
            {
              "start": 1,
              "length": 1,
              "name": "Sub-Item",
              "desc": "Always 0 for schedule config",
              "dataType": "byte"
            },
            {
              "start": 2,
              "length": 1,
              "name": "Schedule Index",
              "desc": "Schedule ID - 1 (0-based, IntelliCenter schedules start at 0)",
              "dataType": "byte"
            },
            {
              "start": 3,
              "length": 2,
              "name": "Start Time",
              "desc": "Start time in minutes from midnight (little endian). E.g., 480 = 8:00 AM",
              "dataType": "int16"
            },
            {
              "start": 5,
              "length": 2,
              "name": "End Time",
              "desc": "End time in minutes from midnight (little endian). E.g., 1020 = 5:00 PM",
              "dataType": "int16"
            },
            {
              "start": 7,
              "length": 1,
              "name": "Circuit",
              "desc": "Circuit ID - 1 (0-based index). Set to 255 to delete schedule.",
              "dataType": "byte"
            },
            {
              "start": 8,
              "length": 1,
              "name": "Run Once / Time Types",
              "desc": "Schedule type and time type flags",
              "dataType": "bits",
              "values": "Bit 0=Run once (129) vs Repeating (128), Bits 2-3=Start time type (0=manual, 1=sunrise, 2=sunset), Bits 4-5=End time type"
            },
            {
              "start": 9,
              "length": 1,
              "name": "Schedule Days",
              "desc": "Days of week bitmask for repeating schedules",
              "dataType": "bits",
              "values": "Bit 0=Sunday, Bit 1=Monday, ..., Bit 6=Saturday"
            },
            {
              "start": 10,
              "length": 1,
              "name": "Start Month",
              "desc": "Start date month (1-12)",
              "dataType": "byte"
            },
            {
              "start": 11,
              "length": 1,
              "name": "Start Day",
              "desc": "Start date day of month (1-31)",
              "dataType": "byte"
            },
            {
              "start": 12,
              "length": 1,
              "name": "Start Year",
              "desc": "Start date year - 2000 (e.g., 24 = 2024)",
              "dataType": "byte"
            },
            {
              "start": 13,
              "length": 1,
              "name": "Heat Source",
              "desc": "Heat source for scheduled circuit. 0=No change in fw 1.047+",
              "dataType": "byte",
              "values": { "0": "No Change", "1": "Off", "2": "Heater", "3": "Solar Pref", "4": "Solar Only" }
            },
            {
              "start": 14,
              "length": 1,
              "name": "Heat Setpoint",
              "desc": "Heat setpoint temperature",
              "dataType": "byte"
            },
            {
              "start": 15,
              "length": 1,
              "name": "Cool Setpoint",
              "desc": "Cool setpoint temperature (for UltraTemp)",
              "dataType": "byte"
            }
          ]
        },
        "4_0": {
          "shortName": "Set[pump settings]",
          "name": "Set Pump Settings",
          "desc": "Sets pump configuration including type, address, speed/flow ranges, and circuit assignments.",
          "payload": [
            {
              "start": 0,
              "length": 1,
              "name": "Category",
              "desc": "Pumps category = 4",
              "dataType": "byte",
              "values": { "4": "Pumps" }
            },
            {
              "start": 1,
              "length": 1,
              "name": "Sub-Item",
              "desc": "0 = Settings, 1 = Name and speeds/flows",
              "dataType": "byte",
              "values": { "0": "Settings", "1": "Name/Speeds" }
            },
            {
              "start": 2,
              "length": 1,
              "name": "Pump Index",
              "desc": "Pump ID - 1 (0-based index)",
              "dataType": "byte"
            },
            {
              "start": 3,
              "length": 1,
              "name": "Pump Type",
              "desc": "Pump type. 0 = delete/no pump",
              "dataType": "byte",
              "values": { "0": "None", "1": "SS (Single Speed)", "2": "DS (Dual Speed)", "3": "VS", "4": "VSF", "5": "VF" }
            },
            {
              "start": 4,
              "length": 1,
              "name": "Unknown",
              "desc": "Usually 0",
              "dataType": "byte"
            },
            {
              "start": 5,
              "length": 1,
              "name": "Address",
              "desc": "RS-485 address for VS/VF pumps (96-111 = pump 1-16)",
              "dataType": "byte"
            },
            {
              "start": 6,
              "length": 2,
              "name": "Min Speed",
              "desc": "Minimum speed in RPM (little endian)",
              "dataType": "int16"
            },
            {
              "start": 8,
              "length": 2,
              "name": "Max Speed",
              "desc": "Maximum speed in RPM (little endian)",
              "dataType": "int16"
            },
            {
              "start": 10,
              "length": 1,
              "name": "Min Flow",
              "desc": "Minimum flow in GPM",
              "dataType": "byte"
            },
            {
              "start": 11,
              "length": 1,
              "name": "Max Flow",
              "desc": "Maximum flow in GPM",
              "dataType": "byte"
            },
            {
              "start": 12,
              "length": 1,
              "name": "Flow Step Size",
              "desc": "Flow increment step size",
              "dataType": "byte"
            },
            {
              "start": 13,
              "length": 2,
              "name": "Priming Speed",
              "desc": "Priming speed in RPM (little endian)",
              "dataType": "int16"
            },
            {
              "start": 15,
              "length": 1,
              "name": "Speed Step Size",
              "desc": "Speed step size / 10",
              "dataType": "byte"
            },
            {
              "start": 16,
              "length": 1,
              "name": "Priming Time",
              "desc": "Priming time in minutes",
              "dataType": "byte"
            },
            {
              "start": 17,
              "length": 1,
              "name": "Unknown",
              "desc": "Usually 5 or 255",
              "dataType": "byte"
            },
            {
              "start": 18,
              "length": 8,
              "name": "Circuit Assignments",
              "desc": "Circuit IDs - 1 for each of 8 pump circuits (255 = unassigned)",
              "dataType": "byte[]"
            },
            {
              "start": 26,
              "length": 8,
              "name": "Circuit Units",
              "desc": "Units for each circuit: 0=RPM, 1=GPM",
              "dataType": "byte[]"
            }
          ]
        },
        "4_1": {
          "shortName": "Set[pump name]",
          "name": "Set Pump Name and Speeds",
          "desc": "Sets pump name and speed/flow values for each circuit assignment.",
          "payload": [
            {
              "start": 0,
              "length": 1,
              "name": "Category",
              "desc": "Pumps category = 4",
              "dataType": "byte"
            },
            {
              "start": 1,
              "length": 1,
              "name": "Sub-Item",
              "desc": "1 = Name and speeds",
              "dataType": "byte",
              "values": { "1": "Name/Speeds" }
            },
            {
              "start": 2,
              "length": 1,
              "name": "Pump Index",
              "desc": "Pump ID - 1",
              "dataType": "byte"
            },
            {
              "start": 3,
              "length": 16,
              "name": "Circuit Speeds/Flows",
              "desc": "8 x 2-byte values (little endian): speed in RPM or flow in GPM for each circuit",
              "dataType": "int16[]"
            },
            {
              "start": 19,
              "length": 16,
              "name": "Pump Name",
              "desc": "Pump name (16 byte string)",
              "dataType": "string"
            }
          ]
        },
        "6_0": {
          "shortName": "Set[group config]",
          "name": "Set Circuit/Light Group Configuration",
          "desc": "Sets circuit group or light group configuration including type, circuits, and egg timer.",
          "payload": [
            {
              "start": 0,
              "length": 1,
              "name": "Category",
              "desc": "Circuit Groups category = 6",
              "dataType": "byte",
              "values": { "6": "Circuit/Light Groups" }
            },
            {
              "start": 1,
              "length": 1,
              "name": "Sub-Item",
              "desc": "0=Config, 1=Name, 2=Colors/States",
              "dataType": "byte",
              "values": { "0": "Config", "1": "Name", "2": "Colors/Desired States" }
            },
            {
              "start": 2,
              "length": 1,
              "name": "Group Index",
              "desc": "Group ID - circuitGroups.start (0-based)",
              "dataType": "byte"
            },
            {
              "start": 3,
              "length": 1,
              "name": "Group Type",
              "desc": "1=Light Group, 2=Circuit Group, 0=Delete",
              "dataType": "byte",
              "values": { "0": "Delete", "1": "Light Group", "2": "Circuit Group" }
            },
            {
              "start": 4,
              "length": 1,
              "name": "Theme/Flags",
              "desc": "For light groups: (theme << 2) + 1",
              "dataType": "byte"
            },
            {
              "start": 5,
              "length": 1,
              "name": "Don't Stop",
              "desc": "Should be don't stop flag but may be bugged",
              "dataType": "byte"
            },
            {
              "start": 6,
              "length": 16,
              "name": "Circuit IDs",
              "desc": "16 circuit assignments (circuit ID - 1, 255 = unassigned)",
              "dataType": "byte[]"
            },
            {
              "start": 22,
              "length": 16,
              "name": "Swim Delays",
              "desc": "For light groups: swim delay for each circuit. For circuit groups: all 0s",
              "dataType": "byte[]"
            },
            {
              "start": 38,
              "length": 1,
              "name": "Egg Timer Hours",
              "desc": "Hours portion of egg timer",
              "dataType": "byte"
            },
            {
              "start": 39,
              "length": 1,
              "name": "Egg Timer Minutes",
              "desc": "Minutes portion of egg timer",
              "dataType": "byte"
            }
          ]
        },
        "6_1": {
          "shortName": "Set[group name]",
          "name": "Set Group Name",
          "desc": "Sets the name for a circuit or light group.",
          "payload": [
            {
              "start": 0,
              "length": 1,
              "name": "Category",
              "desc": "Circuit Groups category = 6",
              "dataType": "byte"
            },
            {
              "start": 1,
              "length": 1,
              "name": "Sub-Item",
              "desc": "1 = Name",
              "dataType": "byte",
              "values": { "1": "Name" }
            },
            {
              "start": 2,
              "length": 1,
              "name": "Group Index",
              "desc": "Group ID - circuitGroups.start",
              "dataType": "byte"
            },
            {
              "start": 3,
              "length": 16,
              "name": "Unknown",
              "desc": "16 bytes, usually 255s. Byte 0 = 10 for light groups",
              "dataType": "byte[]"
            },
            {
              "start": 19,
              "length": 16,
              "name": "Group Name",
              "desc": "Group name (16 byte string)",
              "dataType": "string"
            }
          ]
        },
        "6_2": {
          "shortName": "Set[group colors]",
          "name": "Set Group Colors/Desired States",
          "desc": "Sets colors for light groups or desired states for circuit groups.",
          "payload": [
            {
              "start": 0,
              "length": 1,
              "name": "Category",
              "desc": "Circuit Groups category = 6",
              "dataType": "byte"
            },
            {
              "start": 1,
              "length": 1,
              "name": "Sub-Item",
              "desc": "2 = Colors/States",
              "dataType": "byte",
              "values": { "2": "Colors/Desired States" }
            },
            {
              "start": 2,
              "length": 1,
              "name": "Group Index",
              "desc": "Group ID - circuitGroups.start",
              "dataType": "byte"
            },
            {
              "start": 3,
              "length": 16,
              "name": "Colors",
              "desc": "Light colors for each of 16 circuits (light groups only)",
              "dataType": "byte[]"
            },
            {
              "start": 19,
              "length": 16,
              "name": "Desired States",
              "desc": "Desired on/off state for each circuit (circuit groups: 1=on, 255=unassigned)",
              "dataType": "byte[]"
            }
          ]
        },
        "7_0": {
          "shortName": "Set[chlorinator]",
          "name": "Set Chlorinator Configuration",
          "desc": "Sets chlorinator configuration including body, setpoints, and super chlorination.",
          "payload": [
            {
              "start": 0,
              "length": 1,
              "name": "Category",
              "desc": "Chlorinators category = 7",
              "dataType": "byte",
              "values": { "7": "Chlorinators" }
            },
            {
              "start": 1,
              "length": 1,
              "name": "Sub-Item",
              "desc": "Always 0",
              "dataType": "byte"
            },
            {
              "start": 2,
              "length": 1,
              "name": "Chlorinator Index",
              "desc": "Chlorinator ID - 1",
              "dataType": "byte"
            },
            {
              "start": 3,
              "length": 1,
              "name": "Body",
              "desc": "Body assignment",
              "dataType": "byte",
              "values": { "0": "Pool", "1": "Spa", "32": "Pool+Spa" }
            },
            {
              "start": 4,
              "length": 1,
              "name": "Enabled",
              "desc": "Chlorinator enabled. 0 = delete/disable",
              "dataType": "byte",
              "values": { "0": "Disabled/Delete", "1": "Enabled" }
            },
            {
              "start": 5,
              "length": 1,
              "name": "Pool Setpoint",
              "desc": "Pool chlorination setpoint percentage (0-100)",
              "dataType": "byte"
            },
            {
              "start": 6,
              "length": 1,
              "name": "Spa Setpoint",
              "desc": "Spa chlorination setpoint percentage (0-100)",
              "dataType": "byte"
            },
            {
              "start": 7,
              "length": 1,
              "name": "Super Chlorinate",
              "desc": "Super chlorination enabled",
              "dataType": "byte",
              "values": { "0": "Off", "1": "On" }
            },
            {
              "start": 8,
              "length": 1,
              "name": "Super Chlor Hours",
              "desc": "Super chlorination duration in hours",
              "dataType": "byte"
            },
            {
              "start": 9,
              "length": 1,
              "name": "Unknown",
              "desc": "Usually 0",
              "dataType": "byte"
            },
            {
              "start": 10,
              "length": 1,
              "name": "Unknown",
              "desc": "Usually 1",
              "dataType": "byte"
            }
          ]
        },
        "8_0": {
          "shortName": "Set[intellichem]",
          "name": "Set IntelliChem Configuration",
          "desc": "Sets IntelliChem controller configuration including setpoints and water chemistry values.",
          "payload": [
            {
              "start": 0,
              "length": 1,
              "name": "Category",
              "desc": "IntelliChem category = 8",
              "dataType": "byte",
              "values": { "8": "IntelliChem" }
            },
            {
              "start": 1,
              "length": 1,
              "name": "Sub-Item",
              "desc": "Always 0",
              "dataType": "byte"
            },
            {
              "start": 2,
              "length": 1,
              "name": "Controller Index",
              "desc": "Chem controller ID - 1",
              "dataType": "byte"
            },
            {
              "start": 3,
              "length": 1,
              "name": "Body",
              "desc": "Body assignment",
              "dataType": "byte",
              "values": { "0": "Pool", "1": "Spa", "32": "Pool+Spa" }
            },
            {
              "start": 4,
              "length": 1,
              "name": "Unknown",
              "desc": "Usually 1",
              "dataType": "byte"
            },
            {
              "start": 5,
              "length": 1,
              "name": "Address",
              "desc": "IntelliChem RS-485 address (144-158)",
              "dataType": "byte"
            },
            {
              "start": 6,
              "length": 1,
              "name": "Unknown",
              "desc": "Usually 1",
              "dataType": "byte"
            },
            {
              "start": 7,
              "length": 2,
              "name": "pH Setpoint",
              "desc": "pH setpoint x 100 (e.g., 740 = 7.40)",
              "dataType": "int16"
            },
            {
              "start": 9,
              "length": 2,
              "name": "ORP Setpoint",
              "desc": "ORP setpoint in mV (400-800)",
              "dataType": "int16"
            },
            {
              "start": 11,
              "length": 1,
              "name": "Acid Tank Level",
              "desc": "Acid tank level + 1",
              "dataType": "byte"
            },
            {
              "start": 12,
              "length": 1,
              "name": "ORP Tank Level",
              "desc": "ORP/Chlorine tank level + 1",
              "dataType": "byte"
            },
            {
              "start": 13,
              "length": 2,
              "name": "Calcium Hardness",
              "desc": "Calcium hardness in ppm",
              "dataType": "int16"
            },
            {
              "start": 15,
              "length": 2,
              "name": "Cyanuric Acid",
              "desc": "Cyanuric acid (CYA) in ppm",
              "dataType": "int16"
            },
            {
              "start": 17,
              "length": 2,
              "name": "Alkalinity",
              "desc": "Total alkalinity in ppm",
              "dataType": "int16"
            }
          ]
        },
        "9_0": {
          "shortName": "Set[valve]",
          "name": "Set Valve Configuration",
          "desc": "Sets valve configuration including circuit assignment and name.",
          "payload": [
            {
              "start": 0,
              "length": 1,
              "name": "Category",
              "desc": "Valves category = 9",
              "dataType": "byte",
              "values": { "9": "Valves" }
            },
            {
              "start": 1,
              "length": 1,
              "name": "Sub-Item",
              "desc": "Always 0",
              "dataType": "byte"
            },
            {
              "start": 2,
              "length": 1,
              "name": "Valve Index",
              "desc": "Valve ID - 1 (0-based)",
              "dataType": "byte"
            },
            {
              "start": 3,
              "length": 1,
              "name": "Circuit",
              "desc": "Associated circuit ID - 1 (0-based)",
              "dataType": "byte"
            },
            {
              "start": 4,
              "length": 16,
              "name": "Valve Name",
              "desc": "Valve name (16 byte string)",
              "dataType": "string"
            }
          ]
        },
        "10_0": {
          "shortName": "Set[heater]",
          "name": "Set Heater Configuration",
          "desc": "Sets heater configuration including type, body, address, and operating parameters.",
          "payload": [
            {
              "start": 0,
              "length": 1,
              "name": "Category",
              "desc": "Heaters category = 10",
              "dataType": "byte",
              "values": { "10": "Heaters" }
            },
            {
              "start": 1,
              "length": 1,
              "name": "Sub-Item",
              "desc": "Always 0",
              "dataType": "byte"
            },
            {
              "start": 2,
              "length": 1,
              "name": "Heater Index",
              "desc": "Heater ID - 1 (0-based). Type=0 to delete.",
              "dataType": "byte"
            },
            {
              "start": 3,
              "length": 1,
              "name": "Heater Type",
              "desc": "Heater type. 0 = delete",
              "dataType": "byte",
              "values": { "0": "None/Delete", "1": "Gas", "2": "Solar", "3": "Heat Pump", "4": "UltraTemp", "5": "Hybrid" }
            },
            {
              "start": 4,
              "length": 1,
              "name": "Body",
              "desc": "Body assignment",
              "dataType": "byte"
            },
            {
              "start": 5,
              "length": 1,
              "name": "Cooldown Delay",
              "desc": "Cooldown delay in minutes",
              "dataType": "byte"
            },
            {
              "start": 6,
              "length": 1,
              "name": "Start Temp Delta",
              "desc": "Temperature delta to start heater",
              "dataType": "byte"
            },
            {
              "start": 7,
              "length": 1,
              "name": "Stop Temp Delta",
              "desc": "Temperature delta to stop heater",
              "dataType": "byte"
            },
            {
              "start": 8,
              "length": 1,
              "name": "Cooling Enabled",
              "desc": "Cooling mode enabled (for heat pumps)",
              "dataType": "byte",
              "values": { "0": "Disabled", "1": "Enabled" }
            },
            {
              "start": 9,
              "length": 1,
              "name": "Differential Temp",
              "desc": "Differential temperature",
              "dataType": "byte"
            },
            {
              "start": 10,
              "length": 1,
              "name": "Address",
              "desc": "RS-485 address for addressable heaters (112-128)",
              "dataType": "byte"
            },
            {
              "start": 11,
              "length": 16,
              "name": "Heater Name",
              "desc": "Heater name (16 byte string)",
              "dataType": "string"
            },
            {
              "start": 27,
              "length": 1,
              "name": "Efficiency Mode",
              "desc": "Efficiency mode setting",
              "dataType": "byte"
            },
            {
              "start": 28,
              "length": 1,
              "name": "Max Boost Temp",
              "desc": "Maximum boost temperature",
              "dataType": "byte"
            },
            {
              "start": 29,
              "length": 1,
              "name": "Economy Time",
              "desc": "Economy time setting",
              "dataType": "byte"
            }
          ]
        },
        "12_0": {
          "shortName": "Set[general]",
          "name": "Set General Configuration",
          "desc": "Sets general configuration items including alias, owner info, and location.",
          "payload": [
            {
              "start": 0,
              "length": 1,
              "name": "Category",
              "desc": "General category = 12",
              "dataType": "byte",
              "values": { "12": "General" }
            },
            {
              "start": 1,
              "length": 1,
              "name": "Sub-Item",
              "desc": "Always 0",
              "dataType": "byte"
            },
            {
              "start": 2,
              "length": 1,
              "name": "Item",
              "desc": "General item being set",
              "dataType": "byte",
              "values": {
                "0": "System Alias (16 byte string follows)",
                "1": "Address (32 byte string)",
                "2": "Owner Name (16 byte string)",
                "3": "Owner Email (32 byte string)",
                "4": "Owner Email 2 (32 byte string)",
                "5": "Owner Phone (16 byte string)",
                "6": "Owner Phone 2 (16 byte string)",
                "7": "Zip Code (6 byte string)",
                "8": "Country (32 byte string)",
                "9": "City (32 byte string)",
                "10": "State (32 byte string)",
                "11": "Latitude (2 bytes: high byte, low byte, value = abs(lat) * 100)",
                "12": "Longitude (2 bytes: high byte, low byte, value = abs(lon) * 100)",
                "13": "TimeZone (1 byte)"
              }
            },
            {
              "start": 3,
              "length": "variable",
              "name": "Value",
              "desc": "Value to set - string length or byte count depends on item",
              "dataType": "variable"
            }
          ]
        },
        "13_0": {
          "shortName": "Set[body]",
          "name": "Set Body Configuration",
          "desc": "Sets body configuration including name, capacity, and manual heat.",
          "payload": [
            {
              "start": 0,
              "length": 1,
              "name": "Category",
              "desc": "Bodies/Equipment category = 13",
              "dataType": "byte",
              "values": { "13": "Bodies/Equipment" }
            },
            {
              "start": 1,
              "length": 1,
              "name": "Sub-Item",
              "desc": "Always 0",
              "dataType": "byte"
            },
            {
              "start": 2,
              "length": 1,
              "name": "Body Item",
              "desc": "Body index and item type combined",
              "dataType": "byte",
              "values": {
                "0": "Body 1 Name (16 byte string follows)",
                "1": "Body 3 Name",
                "2": "Body 2 Name",
                "3": "Body 4 Name",
                "4": "Body 1 Capacity (1 byte: capacity / 1000)",
                "5": "Body 3 Capacity",
                "6": "Body 2 Capacity",
                "7": "Body 4 Capacity",
                "8": "Body 1 Manual Heat (1 byte: 0=off, 1=on)",
                "9": "Body 3 Manual Heat",
                "10": "Body 2 Manual Heat",
                "11": "Body 4 Manual Heat"
              }
            },
            {
              "start": 3,
              "length": "variable",
              "name": "Value",
              "desc": "Value to set - 16 byte string for names, 1 byte for capacity/manual heat",
              "dataType": "variable"
            }
          ]
        },
        "15_0": {
          "shortName": "Set[circuit state]",
          "name": "Set Circuit/Feature States",
          "desc": "Sets the on/off state of circuits and features. Used internally by createCircuitStateMessage.",
          "payload": [
            {
              "start": 0,
              "length": 1,
              "name": "Category",
              "desc": "System State category = 15",
              "dataType": "byte",
              "values": { "15": "System State" }
            },
            {
              "start": 1,
              "length": 1,
              "name": "Sub-Item",
              "desc": "Always 0",
              "dataType": "byte"
            },
            {
              "start": 2,
              "length": 5,
              "name": "Circuit States 1-40",
              "desc": "Bitmask of circuit on/off states (5 bytes = 40 circuits)",
              "dataType": "bits"
            },
            {
              "start": 7,
              "length": 4,
              "name": "Feature States",
              "desc": "Bitmask of feature on/off states (4 bytes = 32 features)",
              "dataType": "bits"
            },
            {
              "start": 11,
              "length": 2,
              "name": "Circuit Group States",
              "desc": "Bitmask of circuit group on/off states",
              "dataType": "bits"
            }
          ]
        }
      }
    },
    "165_P_CP_CP_222": {
      "proto": "broadcast",
      "ocpSpecific": true,
      "messageType": "request",
      "name": "Request high speed circuits",
      "shortName": "Get[high speed circ]"
    },
    "165_P_BC_CP_252": {
      "proto": "broadcast",
      "ocpSpecific": true,
      "messageType": "request",
      "name": "Request high speed circuits",
      "shortName": "Get[high speed circ]"
    },
    "165_P_CP_CP_253": {
      "proto": "broadcast",
      "ocpSpecific": true,
      "messageType": "request",
      "name": "Request software version",
      "shortName": "State[soft ver]"
    },
    "165_P_BC_CP_222": {
      "proto": "broadcast",
      "keyBytes": [ 0, 1 ],
      "ocpSpecific": true,
      "messageType": "request",
      "name": "Request Config Item",
      "shortName": "Ask[config item]",
      "hasCategories": true,
      "payload": [
        {
          "start": 0,
          "length": 1,
          "name": "Config Category",
          "desc": "The configuration category for the item.",
          "values": {
            "0": "Options",
            "1": "Circuits",
            "2": "Features",
            "3": "Schedules",
            "4": "Pumps",
            "5": "Remotes",
            "6": "Circuit/Light Groups",
            "7": "Chlorinator",
            "8": "Chem Controller",
            "9": "Valves",
            "10": "Heaters",
            "11": "Security",
            "12": "General",
            "13": "Intalled Equipment",
            "14": "Covers",
            "15": "System State"
          }
        },
        {
          "start": 1,
          "length": 1,
          "name": "Category Item",
          "desc": "The underlying item requested from the OCP",
          "values": "Depends on the config item"
        }
      ],
      "payloadKeys": {
        "0_0": {
          "shortName": "options 0",
          "category": "Options",
          "name": "Request Advanced Options",
          "desc": "Request the options from the server",
          "response": "165_63_16_15_30:0_0",
          "payload": [
            {
              "start": 0,
              "length": 1,
              "name": "Config Category Options",
              "desc": "When set to 0 the options will be requested from the server",
              "values": {
                "0": "Identifies this as a request for options settings."
              }
            },
            {
              "start": 1,
              "length": 0,
              "name": "Advanced options",
              "desc": "Signifies that we are requesting the advanced options from the server",
              "values": {
                "0": "The configuration item is advanced options."
              }
            }
          ]
        },
        "0_1": {
          "shortName": "options 1",
          "category": "Options",
          "name": "Request Options Extension",
          "desc": "Requests the unknown extension from the server",
          "response": "165_63_16_15_30:0_1",
          "payload": [
            {
              "start": 0,
              "length": 1,
              "name": "Config Category Options",
              "desc": "When set to 0 the options will be requested from the server",
              "values": {
                "0": "Identifies this as a request for options settings."
              }
            },
            {
              "start": 1,
              "length": 0,
              "name": "Advanced options",
              "desc": "Signifies that we are requesting the advanced options from the server",
              "values": {
                "1": "The configuration item is extended options"
              }
            }
          ]
        },
        "1_0": {
          "shortName": "circuit function",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Requests the configuration for circuit functions",
          "response": "165_63_16_15_30:1_0"
        },
        "1_1": {
          "shortName": "circ freeze prot",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Requests the configuration for freeze protection",
          "response": "165_63_16_15_30:1_1"
        },
        "1_2": {
          "shortName": "circ show feature",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Requests the configuration for show as feature",
          "response": "165_63_16_15_30:1_2"
        },
        "1_3": {
          "shortName": "circ #1&2 name",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_3"
        },
        "1_4": {
          "shortName": "circ #3&4 name",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_4"
        },
        "1_5": {
          "shortName": "circ #5&6 name",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_5"
        },
        "1_6": {
          "shortName": "circ #7&8 name",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_6"
        },
        "1_7": {
          "shortName": "circ #9&10 name",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_7"
        },
        "1_8": {
          "shortName": "circ #11&12 name",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_8"
        },
        "1_9": {
          "shortName": "circ #13&14 name",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_9"
        },
        "1_10": {
          "shortName": "circ #15&16 name",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_10"
        },
        "1_11": {
          "shortName": "circ #17&18 name",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_11"
        },
        "1_12": {
          "shortName": "circ #19&20 name",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_12"
        },
        "1_13": {
          "shortName": "circ #21&22 name",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_1"
        },
        "1_14": {
          "shortName": "circ #23&24 name",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_14"
        },
        "1_15": {
          "shortName": "circ #25&26 name",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_15"
        },
        "1_16": {
          "shortName": "circ #27&28 name",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_16"
        },
        "1_17": {
          "shortName": "circ #29&30 name",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_17"
        },
        "1_18": {
          "shortName": "circ #31&32 name",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_18"
        },
        "1_19": {
          "shortName": "circ #33&34 name",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_19"
        },
        "1_20": {
          "shortName": "circ #35&36 name",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_20"
        },
        "1_21": {
          "shortName": "circ #37&38 name",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_21"
        },
        "1_22": {
          "shortName": "circ #39&40 name",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_22"
        },
        "1_23": {
          "shortName": "circ #41&42 name",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_23"
        },
        "1_24": {
          "shortName": "circ #43&44 name",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_24"
        },
        "1_25": {
          "shortName": "Unk circuit",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Unknown",
          "response": "165_63_16_15_30:1_25"
        },
        "1_26": {
          "shortName": "circ light theme",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Lighting theme for the circuit",
          "response": "165_63_16_15_30:1_25"
        },
        "1_27": {
          "shortName": "circ egg hours",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Egg timer hours for the circuit",
          "response": "165_63_16_15_30:1_27"
        },
        "1_28": {
          "shortName": "circ egg min",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Egg timer minutes for the circuit",
          "response": "165_63_16_15_30:1_28"
        },
        "1_29": {
          "shortName": "circ egg don't stop",
          "category": "Circuits",
          "name": "Request panel configuration",
          "desc": "Egg timer don't stop for circuits",
          "response": "165_63_16_15_30:1_29"
        },
        "2_0": {
          "shortName": "feature function",
          "category": "Features",
          "name": "Request panel configuration",
          "desc": "Requests the configuration for feature functions",
          "response": "165_63_16_15_30:2_0"
        },
        "2_1": {
          "shortName": "feat freeze prot",
          "category": "Features",
          "name": "Request panel configuration",
          "desc": "Requests the configuration for freeze protection",
          "response": "165_63_16_15_30:2_1"
        },
        "2_2": {
          "shortName": "feat show feature",
          "category": "Features",
          "name": "Request panel configuration",
          "desc": "Requests the configuration for show as feature",
          "response": "165_63_16_15_30:2_2"
        },
        "2_3": {
          "shortName": "feat egg hours",
          "category": "Features",
          "name": "Request panel configuration",
          "desc": "Egg timer hours for the feature",
          "response": "165_63_16_15_30:2_3"
        },
        "2_4": {
          "shortName": "feat egg min",
          "category": "Features",
          "name": "Request panel configuration",
          "desc": "Egg timer minutes for the feature",
          "response": "165_63_16_15_30:2_4"
        },
        "2_5": {
          "shortName": "feat egg don't stop",
          "category": "Features",
          "name": "Request panel configuration",
          "desc": "Egg timer don't stop for features",
          "response": "165_63_16_15_30:2_5"
        },
        "2_6": {
          "shortName": "feat #1&2 name",
          "category": "Features",
          "name": "Request panel configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_6"
        },
        "2_7": {
          "shortName": "feat #3&4 name",
          "category": "Features",
          "name": "Request panel configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_7"
        },
        "2_8": {
          "shortName": "feat #5&6 name",
          "category": "Features",
          "name": "Request panel configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:2_8"
        },
        "2_9": {
          "shortName": "feat #7&8 name",
          "category": "Features",
          "name": "Request panel configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_9"
        },
        "2_10": {
          "shortName": "feat #9&10 name",
          "category": "Features",
          "name": "Request panel configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_10"
        },
        "2_11": {
          "shortName": "feat #11&12 name",
          "category": "Features",
          "name": "Request panel configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_11"
        },
        "2_12": {
          "shortName": "feat #13&14 name",
          "category": "Features",
          "name": "Request panel configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_12"
        },
        "2_13": {
          "shortName": "feat #15&16 name",
          "category": "Features",
          "name": "Request panel configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_13"
        },
        "2_14": {
          "shortName": "feat #17&18 name",
          "category": "Features",
          "name": "Request panel configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_14"
        },
        "2_15": {
          "shortName": "feat #19&20 name",
          "category": "Features",
          "name": "Request panel configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_14"
        },
        "2_16": {
          "shortName": "feat #21&22 name",
          "category": "Features",
          "name": "Request panel configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_16"
        },
        "2_17": {
          "shortName": "feat #23&24 name",
          "category": "Features",
          "name": "Request panel configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_17"
        },
        "2_18": {
          "shortName": "feat #25&26 name",
          "category": "Features",
          "name": "Request panel configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_18"
        },
        "2_19": {
          "shortName": "feat #27&28 name",
          "category": "Features",
          "name": "Request panel configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_19"
        },
        "2_20": {
          "shortName": "feat #29&30 name",
          "category": "Features",
          "name": "Request panel configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_20"
        },
        "2_21": {
          "shortName": "feat #31&32 name",
          "category": "Features",
          "name": "Request panel configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_21"
        },
        "2_22": {
          "shortName": "feat unknown",
          "category": "Features",
          "name": "Request panel configuration",
          "desc": "Unknown feature request",
          "response": "165_63_16_15_30:2_22"
        },
        "3_0": {
          "shortName": "sched 1-20 start",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule start time",
          "response": "165_63_16_15_30:3_0"
        },
        "3_1": {
          "shortName": "sched 21-40 start",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule start time",
          "response": "165_63_16_15_30:3_1"
        },
        "3_2": {
          "shortName": "sched 41-60 start",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule start time",
          "response": "165_63_16_15_30:3_2"
        },
        "3_3": {
          "shortName": "sched 61-80 start",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule start time",
          "response": "165_63_16_15_30:3_3"
        },
        "3_4": {
          "shortName": "sched 81-100 start",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule start time",
          "response": "165_63_16_15_30:3_4"
        },
        "3_5": {
          "shortName": "sched 1-40 circ",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule circuit",
          "response": "165_63_16_15_30:3_5"
        },
        "3_6": {
          "shortName": "sched 41-80 circ",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule circuit",
          "response": "165_63_16_15_30:3_6"
        },
        "3_7": {
          "shortName": "sched 81-100 circ",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule circuit",
          "response": "165_63_16_15_30:3_7"
        },
        "3_8": {
          "shortName": "sched 1-40 time type",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule time type",
          "response": "165_63_16_15_30:3_8"
        },
        "3_9": {
          "shortName": "sched 41-80 time type",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule time type",
          "response": "165_63_16_15_30:3_9"
        },
        "3_10": {
          "shortName": "sched 81-100 time type",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule time type",
          "response": "165_63_16_15_30:3_10"
        },
        "3_11": {
          "shortName": "sched 1-40 days",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule days",
          "response": "165_63_16_15_30:3_11"
        },
        "3_12": {
          "shortName": "sched 41-80 days",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule days",
          "response": "165_63_16_15_30:3_12"
        },
        "3_13": {
          "shortName": "sched 81-100 days",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule days",
          "response": "165_63_16_15_30:3_13"
        },
        "3_14": {
          "shortName": "sched 1-40 month",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule start date",
          "response": "165_63_16_15_30:3_14"
        },
        "3_15": {
          "shortName": "sched 41-80 month",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule start date",
          "response": "165_63_16_15_30:3_15"
        },
        "3_16": {
          "shortName": "sched 81-100 month",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule start date",
          "response": "165_63_16_15_30:3_16"
        },
        "3_17": {
          "shortName": "sched 1-40 day",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule start date",
          "response": "165_63_16_15_30:3_17"
        },
        "3_18": {
          "shortName": "sched 41-80 day",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule start date",
          "response": "165_63_16_15_30:3_17"
        },
        "3_19": {
          "shortName": "sched 81-100 day",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule start date",
          "response": "165_63_16_15_30:3_19"
        },
        "3_20": {
          "shortName": "sched 1-40 year",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule start date",
          "response": "165_63_16_15_30:3_20"
        },
        "3_21": {
          "shortName": "sched 41-80 year",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule start date",
          "response": "165_63_16_15_30:3_21"
        },
        "3_22": {
          "shortName": "sched 81-100 year",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule start date",
          "response": "165_63_16_15_30:3_22"
        },
        "3_23": {
          "shortName": "sched 1-20 end",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule end time",
          "response": "165_63_16_15_30:3_23"
        },
        "3_24": {
          "shortName": "sched 21-40 end",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule end time",
          "response": "165_63_16_15_30:3_24"
        },
        "3_25": {
          "shortName": "sched 41-60 end",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule end time",
          "response": "165_63_16_15_30:3_25"
        },
        "3_26": {
          "shortName": "sched 61-80 end",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule start time",
          "response": "165_63_16_15_30:3_26"
        },
        "3_27": {
          "shortName": "sched 81-100 end",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule end time",
          "response": "165_63_16_15_30:3_27"
        },
        "3_28": {
          "shortName": "sched 1-40 heat src",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule heat source",
          "response": "165_63_16_15_30:3_28"
        },
        "3_29": {
          "shortName": "sched 41-80 heat src",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule heat source",
          "response": "165_63_16_15_30:3_29"
        },
        "3_30": {
          "shortName": "sched 81-100 heat src",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule heat source",
          "response": "165_63_16_15_30:3_30"
        },
        "3_31": {
          "shortName": "sched 1-40 heat pt",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule heat setpoint",
          "response": "165_63_16_15_30:3_31"
        },
        "3_32": {
          "shortName": "sched 41-80 heat pt",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule heat setpoint",
          "response": "165_63_16_15_30:3_32"
        },
        "3_33": {
          "shortName": "sched 81-100 heat pt",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule heat setpoint",
          "response": "165_63_16_15_30:3_33"
        },
        "3_34": {
          "shortName": "sched 1-40 cool pt",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule cool setpoint",
          "response": "165_63_16_15_30:3_34"
        },
        "3_35": {
          "shortName": "sched 41-80 cool pt",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule cool setpoint",
          "response": "165_63_16_15_30:3_35"
        },
        "3_36": {
          "shortName": "sched 81-100 cool pt",
          "category": "Schedules",
          "name": "Request panel configuration",
          "desc": "schedule cool setpoint",
          "response": "165_63_16_15_30:3_36"
        },
        "4_0": {
          "shortName": "pump #1 circuits",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_0"
        },
        "4_1": {
          "shortName": "pump #2 circuits",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_1"
        },
        "4_2": {
          "shortName": "pump #3 circuits",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_2"
        },
        "4_3": {
          "shortName": "pump #4 circuits",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_3"
        },
        "4_4": {
          "shortName": "pump #5 circuits",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_5"
        },
        "4_5": {
          "shortName": "pump #6 circuits",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_6"
        },
        "4_6": {
          "shortName": "pump #7 circuits",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_6"
        },
        "4_7": {
          "shortName": "pump #8 circuits",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_7"
        },
        "4_8": {
          "shortName": "pump #9 circuits",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_9"
        },
        "4_9": {
          "shortName": "pump #10 circuits",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_9"
        },
        "4_10": {
          "shortName": "pump #11 circuits",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_10"
        },
        "4_11": {
          "shortName": "pump #12 circuits",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_11"
        },
        "4_12": {
          "shortName": "pump #13 circuits",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_12"
        },
        "4_13": {
          "shortName": "pump #14 circuits",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_13"
        },
        "4_14": {
          "shortName": "pump #15 circuits",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_14"
        },
        "4_15": {
          "shortName": "pump #16 circuits",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_0"
        },
        "4_16": {
          "shortName": "pump #1-8 min/max",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump min/max",
          "response": "165_63_16_15_30:4_16"
        },
        "4_17": {
          "shortName": "pump #9-16 min/max",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump min/max",
          "response": "165_63_16_15_30:4_17"
        },
        "4_18": {
          "shortName": "pump #1-16 prime sp",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump priming speed",
          "response": "165_63_16_15_30:4_18"
        },
        "4_19": {
          "shortName": "pump #1&2 name",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump name",
          "response": "165_63_16_15_30:4_19"
        },
        "4_20": {
          "shortName": "pump #3&4 name",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump name",
          "response": "165_63_16_15_30:4_20"
        },
        "4_21": {
          "shortName": "pump #5&6 name",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump name",
          "response": "165_63_16_15_30:4_21"
        },
        "4_22": {
          "shortName": "pump #7&8 name",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump name",
          "response": "165_63_16_15_30:4_22"
        },
        "4_23": {
          "shortName": "pump #9&10 name",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump name",
          "response": "165_63_16_15_30:4_23"
        },
        "4_24": {
          "shortName": "pump #11&12 name",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump name",
          "response": "165_63_16_15_30:4_24"
        },
        "4_25": {
          "shortName": "pump #13&14 name",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump name",
          "response": "165_63_16_15_30:4_25"
        },
        "4_26": {
          "shortName": "pump #15&16 name",
          "category": "Pumps",
          "name": "Request panel configuration",
          "desc": "pump name",
          "response": "165_63_16_15_30:4_26"
        },
        "5_0": {
          "shortName": "remote #1",
          "category": "Remotes",
          "name": "Request panel configuration",
          "desc": "remote config",
          "response": "165_63_16_15_30:5_0"
        },
        "5_1": {
          "shortName": "remote #2",
          "category": "Remotes",
          "name": "Request panel configuration",
          "desc": "remote config",
          "response": "165_63_16_15_30:5_1"
        },
        "5_2": {
          "shortName": "remote #3",
          "category": "Remotes",
          "name": "Request panel configuration",
          "desc": "remote config",
          "response": "165_63_16_15_30:5_2"
        },
        "5_3": {
          "shortName": "remote #4",
          "category": "Remotes",
          "name": "Request panel configuration",
          "desc": "remote config",
          "response": "165_63_16_15_30:5_4"
        },
        "5_4": {
          "shortName": "remote #5",
          "category": "Remotes",
          "name": "Request panel configuration",
          "desc": "remote config",
          "response": "165_63_16_15_30:5_5"
        },
        "5_5": {
          "shortName": "remote #6",
          "category": "Remotes",
          "name": "Request panel configuration",
          "desc": "remote config",
          "response": "165_63_16_15_30:5_6"
        },
        "5_6": {
          "shortName": "remote #7",
          "category": "Remotes",
          "name": "Request panel configuration",
          "desc": "remote config",
          "response": "165_63_16_15_30:5_6"
        },
        "5_7": {
          "shortName": "remote #8",
          "category": "Remotes",
          "name": "Request panel configuration",
          "desc": "remote config",
          "response": "165_63_16_15_30:5_7"
        },
        "5_8": {
          "shortName": "remote #9",
          "category": "Remotes",
          "name": "Request panel configuration",
          "desc": "remote config",
          "response": "165_63_16_15_30:5_8"
        },
        "6_0": {
          "shortName": "group #1 circuits",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_0"
        },
        "6_1": {
          "shortName": "group #2 circuits",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_1"
        },
        "6_2": {
          "shortName": "group #3 circuits",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_2"
        },
        "6_3": {
          "shortName": "group #4 circuits",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_3"
        },
        "6_4": {
          "shortName": "group #5 circuits",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_5"
        },
        "6_5": {
          "shortName": "group #6 circuits",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_5"
        },
        "6_6": {
          "shortName": "group #7 circuits",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_6"
        },
        "6_7": {
          "shortName": "group #8 circuits",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_7"
        },
        "6_8": {
          "shortName": "group #8 circuits",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_8"
        },
        "6_9": {
          "shortName": "group #10 circuits",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_9"
        },
        "6_10": {
          "shortName": "group #11 circuits",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_10"
        },
        "6_11": {
          "shortName": "group #12 circuits",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_11"
        },
        "6_12": {
          "shortName": "group #13 circuits",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_12"
        },
        "6_13": {
          "shortName": "group #14 circuits",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_13"
        },
        "6_14": {
          "shortName": "group #15 circuits",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_14"
        },
        "6_15": {
          "shortName": "group #16 circuits",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_15"
        },
        "6_16": {
          "shortName": "group #1 name",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_16"
        },
        "6_17": {
          "shortName": "group #2 name",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_17"
        },
        "6_18": {
          "shortName": "group #3 name",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_18"
        },
        "6_19": {
          "shortName": "group #4 name",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_19"
        },
        "6_20": {
          "shortName": "group #5 name",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_20"
        },
        "6_21": {
          "shortName": "group #6 name",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_21"
        },
        "6_22": {
          "shortName": "group #7 name",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_22"
        },
        "6_23": {
          "shortName": "group #8 name",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_23"
        },
        "6_24": {
          "shortName": "group #9 name",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_24"
        },
        "6_25": {
          "shortName": "group #10 name",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_25"
        },
        "6_26": {
          "shortName": "group #11 name",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_26"
        },
        "6_27": {
          "shortName": "group #12 name",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_27"
        },
        "6_28": {
          "shortName": "group #13 name",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_28"
        },
        "6_29": {
          "shortName": "group #14 name",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_29"
        },
        "6_30": {
          "shortName": "group #15 name",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_30"
        },
        "6_31": {
          "shortName": "group #16 name",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_31"
        },
        "6_32": {
          "shortName": "group types",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group type config",
          "response": "165_63_16_15_30:6_32"
        },
        "6_33": {
          "shortName": "group light theme",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_33"
        },
        "6_34": {
          "shortName": "group egg timer",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_14"
        },
        "6_35": {
          "shortName": "group #1 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_35"
        },
        "6_36": {
          "shortName": "group #2 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_36"
        },
        "6_37": {
          "shortName": "group #3 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_37"
        },
        "6_38": {
          "shortName": "group #4 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_38"
        },
        "6_39": {
          "shortName": "group #5 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_39"
        },
        "6_40": {
          "shortName": "group #6 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_40"
        },
        "6_41": {
          "shortName": "group #7 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_41"
        },
        "6_42": {
          "shortName": "group #8 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_42"
        },
        "6_43": {
          "shortName": "group #9 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_43"
        },
        "6_44": {
          "shortName": "group #10 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_44"
        },
        "6_45": {
          "shortName": "group #11 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_45"
        },
        "6_46": {
          "shortName": "group #12 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_46"
        },
        "6_47": {
          "shortName": "group #13 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_47"
        },
        "6_48": {
          "shortName": "group #14 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_48"
        },
        "6_49": {
          "shortName": "group #15 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_49"
        },
        "6_50": {
          "shortName": "group #1 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Request panel configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_50"
        },
        "7_0": {
          "shortName": "chlorinator",
          "category": "Chlorinators",
          "name": "Request panel configuration",
          "desc": "chlorinator config",
          "response": "165_63_16_15_30:7_0"
        },
        "8_0": {
          "shortName": "chem settings",
          "category": "IntelliChem",
          "name": "Request panel configuration",
          "desc": "intellichem config",
          "response": "165_63_16_15_30:8_0"
        },
        "8_1": {
          "shortName": "chem setpoints",
          "category": "IntelliChem",
          "name": "Request panel configuration",
          "desc": "intellichem config",
          "response": "165_63_16_15_30:8_1"
        },
        "9_0": {
          "shortName": "valve circuits",
          "category": "Valves",
          "name": "Request panel configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_0"
        },
        "9_1": {
          "shortName": "valve 1&2 name",
          "category": "Valves",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_1"
        },
        "9_2": {
          "shortName": "valve 3&4 name",
          "category": "Valves",
          "name": "Request panel configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_2"
        },
        "9_3": {
          "shortName": "valve 5&6 name",
          "category": "Valves",
          "name": "Request panel configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_3"
        },
        "9_4": {
          "shortName": "valve 7&8 name",
          "category": "Valves",
          "name": "Request panel configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_4"
        },
        "9_5": {
          "shortName": "valve 9&10 name",
          "category": "Valves",
          "name": "Request panel configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_5"
        },
        "9_6": {
          "shortName": "valve 11&12 name",
          "category": "Valves",
          "name": "Request panel configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_6"
        },
        "9_7": {
          "shortName": "valve 13&14 name",
          "category": "Valves",
          "name": "Request panel configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_7"
        },
        "9_8": {
          "shortName": "valve 15&16 name",
          "category": "Valves",
          "name": "Request panel configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_8"
        },
        "9_9": {
          "shortName": "valve 17&18 name",
          "category": "Valves",
          "name": "Request panel configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_9"
        },
        "9_10": {
          "shortName": "valve 19&20 name",
          "category": "Valves",
          "name": "Request panel configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_10"
        },
        "9_11": {
          "shortName": "valve 21&22 name",
          "category": "Valves",
          "name": "Request panel configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_11"
        },
        "9_12": {
          "shortName": "valve 23&24 name",
          "category": "Valves",
          "name": "Request panel configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_12"
        },
        "9_13": {
          "shortName": "valve 25&26 name",
          "category": "Valves",
          "name": "Request panel configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_13"
        },
        "9_14": {
          "shortName": "valve 27&28 name",
          "category": "Valves",
          "name": "Request panel configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_14"
        },
        "10_0": {
          "shortName": "heater types",
          "category": "Heaters",
          "name": "Request panel configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_0"
        },
        "10_1": {
          "shortName": "heater cooldown",
          "category": "Heaters",
          "name": "Request panel configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_1"
        },
        "10_2": {
          "shortName": "heater deltas",
          "category": "Heaters",
          "name": "Request panel configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_2"
        },
        "10_3": {
          "shortName": "heater diff temp",
          "category": "Heaters",
          "name": "Request panel configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_3"
        },
        "10_4": {
          "shortName": "heater addr",
          "category": "Heaters",
          "name": "Request panel configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_4"
        },
        "10_5": {
          "shortName": "heater #1&2 name",
          "category": "Heaters",
          "name": "Request panel configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_5"
        },
        "10_6": {
          "shortName": "heater #3&4 name",
          "category": "Heaters",
          "name": "Request panel configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_6"
        },
        "10_7": {
          "shortName": "heater #5&6 name",
          "category": "Heaters",
          "name": "Request panel configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_7"
        },
        "10_8": {
          "shortName": "heater #7&8 name",
          "category": "Heaters",
          "name": "Request panel configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_8"
        },
        "10_9": {
          "shortName": "heater #9&10 name",
          "category": "Heaters",
          "name": "Request panel configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_9"
        },
        "10_10": {
          "shortName": "heater #11&12 name",
          "category": "Heaters",
          "name": "Request panel configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_10"
        },
        "10_11": {
          "shortName": "heater #13&14 name",
          "category": "Heaters",
          "name": "Request panel configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_11"
        },
        "10_12": {
          "shortName": "heater #15&16 name",
          "category": "Heaters",
          "name": "Request panel configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_12"
        },
        "10_13": {
          "shortName": "heater eff mode",
          "category": "Heaters",
          "name": "Request panel configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_13"
        },
        "10_14": {
          "shortName": "heater boost",
          "category": "Heaters",
          "name": "Request panel configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_14"
        },
        "11_0": {
          "shortName": "security role #1",
          "category": "Security",
          "name": "Request panel configuration",
          "desc": "security config",
          "response": "165_63_16_15_30:11_0"
        },
        "11_1": {
          "shortName": "security role #2",
          "category": "Security",
          "name": "Request panel configuration",
          "desc": "security config",
          "response": "165_63_16_15_30:11_1"
        },
        "11_2": {
          "shortName": "security role #3",
          "category": "Security",
          "name": "Request panel configuration",
          "desc": "security config",
          "response": "165_63_16_15_30:11_2"
        },
        "11_3": {
          "shortName": "security role #4",
          "category": "Security",
          "name": "Request panel configuration",
          "desc": "security config",
          "response": "165_63_16_15_30:11_3"
        },
        "11_4": {
          "shortName": "security role #5",
          "category": "Security",
          "name": "Request panel configuration",
          "desc": "security config",
          "response": "165_63_16_15_30:11_4"
        },
        "11_5": {
          "shortName": "security role #6",
          "category": "Security",
          "name": "Request panel configuration",
          "desc": "security config",
          "response": "165_63_16_15_30:11_6"
        },
        "11_6": {
          "shortName": "security role #7",
          "category": "Security",
          "name": "Request panel configuration",
          "desc": "security config",
          "response": "165_63_16_15_30:11_6"
        },
        "11_7": {
          "shortName": "security role #8",
          "category": "Security",
          "name": "Request panel configuration",
          "desc": "security config",
          "response": "165_63_16_15_30:11_7"
        },
        "11_8": {
          "shortName": "security role #9",
          "category": "Security",
          "name": "Request panel configuration",
          "desc": "security config",
          "response": "165_63_16_15_30:11_8"
        },
        "12_0": {
          "shortName": "gen owner/zip",
          "category": "General",
          "name": "Request panel configuration",
          "desc": "general settings",
          "response": "165_63_16_15_30:12_0"
        },
        "12_1": {
          "shortName": "gen phone/coord",
          "category": "General",
          "name": "Request panel configuration",
          "desc": "general settings",
          "response": "165_63_16_15_30:12_1"
        },
        "12_2": {
          "shortName": "gen address",
          "category": "General",
          "name": "Request panel configuration",
          "desc": "general settings",
          "response": "165_63_16_15_30:12_2"
        },
        "12_3": {
          "shortName": "gen email/tz",
          "category": "General",
          "name": "Request panel configuration",
          "desc": "general settings",
          "response": "165_63_16_15_30:12_3"
        },
        "12_4": {
          "shortName": "gen email2",
          "category": "General",
          "name": "Request panel configuration",
          "desc": "general settings",
          "response": "165_63_16_15_30:12_4"
        },
        "12_5": {
          "shortName": "gen country",
          "category": "General",
          "name": "Request panel configuration",
          "desc": "general settings",
          "response": "165_63_16_15_30:12_5"
        },
        "12_6": {
          "shortName": "gen city",
          "category": "General",
          "name": "Request panel configuration",
          "desc": "general settings",
          "response": "165_63_16_15_30:12_6"
        },
        "12_7": {
          "shortName": "gen state",
          "category": "General",
          "name": "Request panel configuration",
          "desc": "general settings",
          "response": "165_63_16_15_30:12_0"
        },
        "13_0": {
          "shortName": "master/exp1",
          "category": "Equipment",
          "name": "Request panel configuration",
          "desc": "Requests the configuration for master and expansion1",
          "response": "165_63_16_15_30:13_0"
        },
        "13_1": {
          "shortName": "exp2/exp3",
          "category": "Equipment",
          "name": "Request panel configuration",
          "desc": "Requests the configuration for expansion2 and expansion3",
          "response": "165_63_16_15_30:13_1"
        },
        "13_2": {
          "shortName": "body1/body3",
          "category": "Equipment",
          "name": "Request body configuration",
          "desc": "Requests the configuration for bodies 1 and 3",
          "response": "165_63_16_15_30:13_2"
        },
        "13_3": {
          "shortName": "body2/body4",
          "category": "Equipment",
          "name": "Request body configuration",
          "desc": "Requests the configuration for bodies 2 and 4",
          "response": "165_63_16_15_30:13_3"
        },
        "14_0": {
          "shortName": "cover #1",
          "category": "Covers",
          "name": "Request panel configuration",
          "desc": "cover settings",
          "response": "165_63_16_15_30:14_0"
        },
        "14_1": {
          "shortName": "cover #2",
          "category": "Covers",
          "name": "Request panel configuration",
          "desc": "cover settings",
          "response": "165_63_16_15_30:14_1"
        },
        "15_0": {
          "shortName": "relay states",
          "category": "Relays",
          "name": "Request panel configuration",
          "desc": "circuit states",
          "response": "165_63_16_15_30:15_0"
        }
      }
    },
    "165_P_BC_CP_30_16": {
      "proto": "broadcast",
      "messageType": "Response",
      "shortName": "Cfg[high speed circ]",
      "name": "Config Item Response",
      "desc": "Response to a configuration request."
    },
    "165_P_BC_CP_30": {
      "proto": "broadcast",
      "minLength": 17,
      "keyBytes": [ 0, 1 ],
      "ocpSpecific": true,
      "messageType": "Response",
      "shortName": "Cfg[item]",
      "name": "Config Item Response",
      "desc": "Response to a configuration request.",
      "payloadKeys": {
        "0_0": {
          "shortName": "options 0",
          "category": "Options",
          "name": "Config Options",
          "desc": "Response to the configuration options",
          "payload": [
            {
              "start": 0,
              "length": 1,
              "name": "Response Key",
              "desc": "Identifies the mesaage as containing the advanced options data.",
              "values": "0"
            },
            {
              "start": 1,
              "length": 1,
              "name": "Water Sensor #2 Adjustment",
              "desc": "When bit 8 is set then this is a negative value.",
              "values": "+= 127 degrees of offset"
            },
            {
              "start": 2,
              "length": 1,
              "name": "Water Sensor #1 Adjustment",
              "desc": "When bit 8 is set then this is a negative value.",
              "values": "+= 127 degrees of offset"
            },
            {
              "start": 3,
              "length": 1,
              "name": "Solar Sensor #1 Adjustment",
              "desc": "When bit 8 is set then this is a negative value.",
              "values": "+= 127 degrees of offset"
            },
            {
              "start": 4,
              "length": 1,
              "name": "Solar Sensor #1 Adjustment",
              "desc": "When bit 8 is set then this is a negative value.",
              "values": "+= 127 degrees of offset"
            },
            {
              "start": 5,
              "length": 1,
              "name": "Air Sensor Adjustment",
              "desc": "When bit 8 is set then this is a negative value.",
              "values": "+= 127 degrees of offset"
            },
            {
              "start": 6,
              "length": 1,
              "name": "Solar Sensor #2 Adjustment",
              "desc": "When bit 8 is set then this is a negative value.",
              "values": "+= 127 degrees of offset"
            },
            {
              "start": 7,
              "length": 6,
              "name": "Unknown",
              "values": "0,0,0,0,0,0"
            },
            {
              "start": 13,
              "length": 1,
              "name": "Time Settings",
              "desc": "The time settings on the OCP.",
              "dataType": "bits",
              "values": {
                "1": "Unknown",
                "2": "Unknown",
                "3": "Unknown",
                "4": "Unknown",
                "5": "Units 0=Metric 1=Standard",
                "6": "Clock Source 0=Manual 1=Internet",
                "7": "Clock Mode 0=12Hour 1=24Hour",
                "8": "Adjust DST 0=Off 1=On"
              }
            },
            {
              "start": 14,
              "length": 1,
              "name": "Unknown",
              "values": "235"
            },
            {
              "start": 15,
              "length": 1,
              "name": "Unknown",
              "values": "27"
            },
            {
              "start": 16,
              "length": 1,
              "name": "Unknown",
              "values": "167"
            },
            {
              "start": 17,
              "length": 1,
              "name": "Unknown",
              "values": "1"
            },
            {
              "start": 18,
              "length": 1,
              "name": "Unknown",
              "values": "0"
            },
            {
              "start": 19,
              "length": 1,
              "name": "Unknown",
              "values": "0"
            },
            {
              "start": 20,
              "length": 1,
              "name": "Body #1 Setpoint",
              "desc": "The heat setpoint for the first body."
            },
            {
              "start": 21,
              "length": 1,
              "name": "Body #3 Setpoint",
              "desc": "The heat setpoint for the third body."
            },
            {
              "start": 22,
              "length": 1,
              "name": "Body #2 Setpoint",
              "desc": "The heat setpoint for the first body."
            },
            {
              "start": 23,
              "length": 1,
              "name": "Body #4 Setpoint",
              "desc": "The heat setpoint for the fourth body."
            },
            {
              "start": 24,
              "length": 1,
              "name": "Body #1 Heat Mode",
              "desc": "The heat mode for the first body.",
              "values": {
                "0": "Off",
                "3": "Heater",
                "5": "Solar Only",
                "21": "Solar Preferred"
  
              }
            },
            {
              "start": 25,
              "length": 1,
              "name": "Body #2 Heat Mode",
              "desc": "The heat mode for the second body.",
              "values": {
                "0": "Off",
                "3": "Heater",
                "5": "Solar Only",
                "21": "Solar Preferred"
              }
            },
            {
              "start": 26,
              "length": 1,
              "name": "Body #3 Heat Mode",
              "desc": "The heat mode for the third body.",
              "values": {
                "0": "Off",
                "3": "Heater",
                "5": "Solar Only",
                "21": "Solar Preferred"
              }
            },
            {
              "start": 27,
              "length": 1,
              "name": "Body #4 Heat Mode",
              "desc": "The heat mode for the fourth body.",
              "values": {
                "0": "Off",
                "3": "Heater",
                "5": "Solar Only",
                "21": "Solar Preferred"
              }
            },
            {
              "start": 28,
              "length": 1,
              "name": "Unknown"
            },
            {
              "start": 29,
              "length": 1,
              "name": "Pump Delay",
              "desc": "Indicates what option will be chosen when valve",
              "values": {
                "0": "Off - No delay",
                "1": "On - Pump off during valve action"
              }
            },
            {
              "start": 30,
              "length": 1,
              "name": "Unknown",
              "values": "0"
            },
            {
              "start": 31,
              "length": 1,
              "name": "Unknown",
              "values": "0"
            },
            {
              "start": 32,
              "length": 1,
              "name": "Unknown",
              "values": "0"
            },
            {
              "start": 33,
              "length": 1,
              "name": "Unknown",
              "values": "100"
            },
            {
              "start": 34,
              "length": 1,
              "name": "Unknown",
              "values": "0"
            },
            {
              "start": 35,
              "length": 1,
              "name": "Unknown",
              "values": "0"
            },
            {
              "start": 36,
              "length": 1,
              "name": "Unknown",
              "values": "0"
            },
            {
              "start": 37,
              "length": 1,
              "name": "Heater Cooldown",
              "desc": "Heater cooldown delay that controls what action the pump should perform during a cooldown cycle.",
              "values": {
                "0": "Pump off during heater cooldown",
                "1": "Pump on during heater cooldown"
              }
            },
            {
              "start": 38,
              "length": 1,
              "name": "Manual Op Priority",
              "desc": "Manual operations override scheduled operation.",
              "values": {
                "0": "Scheduled operation priority",
                "1": "Manual operation priority"
              }
            },
            {
              "start": 39,
              "length": 1,
              "name": "Manual Heat",
              "desc": "Manual heat for spa operation",
              "values": {
                "0": "Manual heat off",
                "1": "Manual heat on"
              }
            }
          ]
        },
        "0_1": {
          "shortName": "options 1",
          "category": "Options",
          "name": "Config Options",
          "desc": "Response to the configuration options request",
          "payload": []
  
        },
        "1_0": {
          "shortName": "circuit function",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Current configuration circuit functions",
          "response": "165_63_16_15_30:1_0"
        },
        "1_1": {
          "shortName": "circ freeze prot",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Current configuration freeze protection",
          "response": "165_63_16_15_30:1_1"
        },
        "1_2": {
          "shortName": "circ show feature",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Current configuration show as feature",
          "response": "165_63_16_15_30:1_2"
        },
        "1_3": {
          "shortName": "circ #1&2 name",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_3"
        },
        "1_4": {
          "shortName": "circ #3&4 name",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_4"
        },
        "1_5": {
          "shortName": "circ #5&6 name",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_5"
        },
        "1_6": {
          "shortName": "circ #7&8 name",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_6"
        },
        "1_7": {
          "shortName": "circ #9&10 name",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_7"
        },
        "1_8": {
          "shortName": "circ #11&12 name",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_8"
        },
        "1_9": {
          "shortName": "circ #13&14 name",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_9"
        },
        "1_10": {
          "shortName": "circ #15&16 name",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_10"
        },
        "1_11": {
          "shortName": "circ #17&18 name",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_11"
        },
        "1_12": {
          "shortName": "circ #19&20 name",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_12"
        },
        "1_13": {
          "shortName": "circ #21&22 name",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_1"
        },
        "1_14": {
          "shortName": "circ #23&24 name",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_14"
        },
        "1_15": {
          "shortName": "circ #25&26 name",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_15"
        },
        "1_16": {
          "shortName": "circ #27&28 name",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_16"
        },
        "1_17": {
          "shortName": "circ #29&30 name",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_17"
        },
        "1_18": {
          "shortName": "circ #31&32 name",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_18"
        },
        "1_19": {
          "shortName": "circ #33&34 name",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_19"
        },
        "1_20": {
          "shortName": "circ #35&36 name",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_20"
        },
        "1_21": {
          "shortName": "circ #37&38 name",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_21"
        },
        "1_22": {
          "shortName": "circ #39&40 name",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_22"
        },
        "1_23": {
          "shortName": "circ #41&42 name",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_23"
        },
        "1_24": {
          "shortName": "circ #43&44 name",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:1_24"
        },
        "1_25": {
          "shortName": "Unk circuit",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Unknown",
          "response": "165_63_16_15_30:1_25"
        },
        "1_26": {
          "shortName": "circ light theme",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Lighting theme for the circuit",
          "response": "165_63_16_15_30:1_25"
        },
        "1_27": {
          "shortName": "circ egg hours",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Egg timer hours for the circuit",
          "response": "165_63_16_15_30:1_27"
        },
        "1_28": {
          "shortName": "circ egg min",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Egg timer minutes for the circuit",
          "response": "165_63_16_15_30:1_28"
        },
        "1_29": {
          "shortName": "circ egg don't stop",
          "category": "Circuits",
          "name": "Current configuration",
          "desc": "Egg timer don't stop for circuits",
          "response": "165_63_16_15_30:1_29"
        },
        "2_0": {
          "shortName": "feature function",
          "category": "Features",
          "name": "Current configuration",
          "desc": "Current configuration feature functions",
          "response": "165_63_16_15_30:2_0"
        },
        "2_1": {
          "shortName": "feat freeze prot",
          "category": "Features",
          "name": "Current configuration",
          "desc": "Current configuration freeze protection",
          "response": "165_63_16_15_30:2_1"
        },
        "2_2": {
          "shortName": "feat show feature",
          "category": "Features",
          "name": "Current configuration",
          "desc": "Current configuration show as feature",
          "response": "165_63_16_15_30:2_2"
        },
        "2_3": {
          "shortName": "feat egg hours",
          "category": "Features",
          "name": "Current configuration",
          "desc": "Egg timer hours for the feature",
          "response": "165_63_16_15_30:2_3"
        },
        "2_4": {
          "shortName": "feat egg min",
          "category": "Features",
          "name": "Current configuration",
          "desc": "Egg timer minutes for the feature",
          "response": "165_63_16_15_30:2_4"
        },
        "2_5": {
          "shortName": "feat egg don't stop",
          "category": "Features",
          "name": "Current configuration",
          "desc": "Egg timer don't stop for features",
          "response": "165_63_16_15_30:2_5"
        },
        "2_6": {
          "shortName": "feat #1&2 name",
          "category": "Features",
          "name": "Current configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_6"
        },
        "2_7": {
          "shortName": "feat #3&4 name",
          "category": "Features",
          "name": "Current configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_7"
        },
        "2_8": {
          "shortName": "feat #5&6 name",
          "category": "Features",
          "name": "Current configuration",
          "desc": "Requests the name of a cicuit",
          "response": "165_63_16_15_30:2_8"
        },
        "2_9": {
          "shortName": "feat #7&8 name",
          "category": "Features",
          "name": "Current configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_9"
        },
        "2_10": {
          "shortName": "feat #9&10 name",
          "category": "Features",
          "name": "Current configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_10"
        },
        "2_11": {
          "shortName": "feat #11&12 name",
          "category": "Features",
          "name": "Current configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_11"
        },
        "2_12": {
          "shortName": "feat #13&14 name",
          "category": "Features",
          "name": "Current configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_12"
        },
        "2_13": {
          "shortName": "feat #15&16 name",
          "category": "Features",
          "name": "Current configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_13"
        },
        "2_14": {
          "shortName": "feat #17&18 name",
          "category": "Features",
          "name": "Current configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_14"
        },
        "2_15": {
          "shortName": "feat #19&20 name",
          "category": "Features",
          "name": "Current configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_14"
        },
        "2_16": {
          "shortName": "feat #21&22 name",
          "category": "Features",
          "name": "Current configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_16"
        },
        "2_17": {
          "shortName": "feat #23&24 name",
          "category": "Features",
          "name": "Current configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_17"
        },
        "2_18": {
          "shortName": "feat #25&26 name",
          "category": "Features",
          "name": "Current configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_18"
        },
        "2_19": {
          "shortName": "feat #27&28 name",
          "category": "Features",
          "name": "Current configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_19"
        },
        "2_20": {
          "shortName": "feat #29&30 name",
          "category": "Features",
          "name": "Current configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_20"
        },
        "2_21": {
          "shortName": "feat #31&32 name",
          "category": "Features",
          "name": "Current configuration",
          "desc": "Requests the name of a feature",
          "response": "165_63_16_15_30:2_21"
        },
        "2_22": {
          "shortName": "feat unknown",
          "category": "Features",
          "name": "Current configuration",
          "desc": "Unknown feature request",
          "response": "165_63_16_15_30:2_22"
        },
        "3_0": {
          "shortName": "sched 1-20 start",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule start time",
          "response": "165_63_16_15_30:3_0"
        },
        "3_1": {
          "shortName": "sched 21-40 start",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule start time",
          "response": "165_63_16_15_30:3_1"
        },
        "3_2": {
          "shortName": "sched 41-60 start",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule start time",
          "response": "165_63_16_15_30:3_2"
        },
        "3_3": {
          "shortName": "sched 61-80 start",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule start time",
          "response": "165_63_16_15_30:3_3"
        },
        "3_4": {
          "shortName": "sched 81-100 start",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule start time",
          "response": "165_63_16_15_30:3_4"
        },
        "3_5": {
          "shortName": "sched 1-40 circ",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule circuit",
          "response": "165_63_16_15_30:3_5"
        },
        "3_6": {
          "shortName": "sched 41-80 circ",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule circuit",
          "response": "165_63_16_15_30:3_6"
        },
        "3_7": {
          "shortName": "sched 81-100 circ",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule circuit",
          "response": "165_63_16_15_30:3_7"
        },
        "3_8": {
          "shortName": "sched 1-40 time type",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule time type",
          "response": "165_63_16_15_30:3_8"
        },
        "3_9": {
          "shortName": "sched 41-80 time type",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule time type",
          "response": "165_63_16_15_30:3_9"
        },
        "3_10": {
          "shortName": "sched 81-100 time type",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule time type",
          "response": "165_63_16_15_30:3_10"
        },
        "3_11": {
          "shortName": "sched 1-40 days",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule days",
          "response": "165_63_16_15_30:3_11"
        },
        "3_12": {
          "shortName": "sched 41-80 days",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule days",
          "response": "165_63_16_15_30:3_12"
        },
        "3_13": {
          "shortName": "sched 81-100 days",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule days",
          "response": "165_63_16_15_30:3_13"
        },
        "3_14": {
          "shortName": "sched 1-40 month",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule start date",
          "response": "165_63_16_15_30:3_14"
        },
        "3_15": {
          "shortName": "sched 41-80 month",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule start date",
          "response": "165_63_16_15_30:3_15"
        },
        "3_16": {
          "shortName": "sched 81-100 month",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule start date",
          "response": "165_63_16_15_30:3_16"
        },
        "3_17": {
          "shortName": "sched 1-40 day",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule start date",
          "response": "165_63_16_15_30:3_17"
        },
        "3_18": {
          "shortName": "sched 41-80 day",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule start date",
          "response": "165_63_16_15_30:3_17"
        },
        "3_19": {
          "shortName": "sched 81-100 day",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule start date",
          "response": "165_63_16_15_30:3_19"
        },
        "3_20": {
          "shortName": "sched 1-40 year",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule start date",
          "response": "165_63_16_15_30:3_20"
        },
        "3_21": {
          "shortName": "sched 41-80 year",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule start date",
          "response": "165_63_16_15_30:3_21"
        },
        "3_22": {
          "shortName": "sched 81-100 year",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule start date",
          "response": "165_63_16_15_30:3_22"
        },
        "3_23": {
          "shortName": "sched 1-20 end",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule end time",
          "response": "165_63_16_15_30:3_23"
        },
        "3_24": {
          "shortName": "sched 21-40 end",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule end time",
          "response": "165_63_16_15_30:3_24"
        },
        "3_25": {
          "shortName": "sched 41-60 end",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule end time",
          "response": "165_63_16_15_30:3_25"
        },
        "3_26": {
          "shortName": "sched 61-80 end",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule start time",
          "response": "165_63_16_15_30:3_26"
        },
        "3_27": {
          "shortName": "sched 81-100 end",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule end time",
          "response": "165_63_16_15_30:3_27"
        },
        "3_28": {
          "shortName": "sched 1-40 heat src",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule heat source",
          "response": "165_63_16_15_30:3_28"
        },
        "3_29": {
          "shortName": "sched 41-80 heat src",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule heat source",
          "response": "165_63_16_15_30:3_29"
        },
        "3_30": {
          "shortName": "sched 81-100 heat src",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule heat source",
          "response": "165_63_16_15_30:3_30"
        },
        "3_31": {
          "shortName": "sched 1-40 heat pt",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule heat setpoint",
          "response": "165_63_16_15_30:3_31"
        },
        "3_32": {
          "shortName": "sched 41-80 heat pt",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule heat setpoint",
          "response": "165_63_16_15_30:3_32"
        },
        "3_33": {
          "shortName": "sched 81-100 heat pt",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule heat setpoint",
          "response": "165_63_16_15_30:3_33"
        },
        "3_34": {
          "shortName": "sched 1-40 cool pt",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule cool setpoint",
          "response": "165_63_16_15_30:3_34"
        },
        "3_35": {
          "shortName": "sched 41-80 cool pt",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule cool setpoint",
          "response": "165_63_16_15_30:3_35"
        },
        "3_36": {
          "shortName": "sched 81-100 cool pt",
          "category": "Schedules",
          "name": "Current configuration",
          "desc": "schedule cool setpoint",
          "response": "165_63_16_15_30:3_36"
        },
        "4_0": {
          "shortName": "pump #1 circuits",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_0"
        },
        "4_1": {
          "shortName": "pump #2 circuits",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_1"
        },
        "4_2": {
          "shortName": "pump #3 circuits",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_2"
        },
        "4_3": {
          "shortName": "pump #4 circuits",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_3"
        },
        "4_4": {
          "shortName": "pump #5 circuits",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_5"
        },
        "4_5": {
          "shortName": "pump #6 circuits",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_6"
        },
        "4_6": {
          "shortName": "pump #7 circuits",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_6"
        },
        "4_7": {
          "shortName": "pump #8 circuits",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_7"
        },
        "4_8": {
          "shortName": "pump #9 circuits",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_9"
        },
        "4_9": {
          "shortName": "pump #10 circuits",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_9"
        },
        "4_10": {
          "shortName": "pump #11 circuits",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_10"
        },
        "4_11": {
          "shortName": "pump #12 circuits",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_11"
        },
        "4_12": {
          "shortName": "pump #13 circuits",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_12"
        },
        "4_13": {
          "shortName": "pump #14 circuits",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_13"
        },
        "4_14": {
          "shortName": "pump #15 circuits",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_14"
        },
        "4_15": {
          "shortName": "pump #16 circuits",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump circuit assignments",
          "response": "165_63_16_15_30:4_0"
        },
        "4_16": {
          "shortName": "pump #1-8 min/max",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump min/max",
          "response": "165_63_16_15_30:4_16"
        },
        "4_17": {
          "shortName": "pump #9-16 min/max",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump min/max",
          "response": "165_63_16_15_30:4_17"
        },
        "4_18": {
          "shortName": "pump #1-16 prime sp",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump priming speed",
          "response": "165_63_16_15_30:4_18"
        },
        "4_19": {
          "shortName": "pump #1&2 name",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump name",
          "response": "165_63_16_15_30:4_19"
        },
        "4_20": {
          "shortName": "pump #3&4 name",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump name",
          "response": "165_63_16_15_30:4_20"
        },
        "4_21": {
          "shortName": "pump #5&6 name",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump name",
          "response": "165_63_16_15_30:4_21"
        },
        "4_22": {
          "shortName": "pump #7&8 name",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump name",
          "response": "165_63_16_15_30:4_22"
        },
        "4_23": {
          "shortName": "pump #9&10 name",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump name",
          "response": "165_63_16_15_30:4_23"
        },
        "4_24": {
          "shortName": "pump #11&12 name",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump name",
          "response": "165_63_16_15_30:4_24"
        },
        "4_25": {
          "shortName": "pump #13&14 name",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump name",
          "response": "165_63_16_15_30:4_25"
        },
        "4_26": {
          "shortName": "pump #15&16 name",
          "category": "Pumps",
          "name": "Current configuration",
          "desc": "pump name",
          "response": "165_63_16_15_30:4_26"
        },
        "5_0": {
          "shortName": "remote #1",
          "category": "Remotes",
          "name": "Current configuration",
          "desc": "remote config",
          "response": "165_63_16_15_30:5_0"
        },
        "5_1": {
          "shortName": "remote #2",
          "category": "Remotes",
          "name": "Current configuration",
          "desc": "remote config",
          "response": "165_63_16_15_30:5_1"
        },
        "5_2": {
          "shortName": "remote #3",
          "category": "Remotes",
          "name": "Current configuration",
          "desc": "remote config",
          "response": "165_63_16_15_30:5_2"
        },
        "5_3": {
          "shortName": "remote #4",
          "category": "Remotes",
          "name": "Current configuration",
          "desc": "remote config",
          "response": "165_63_16_15_30:5_4"
        },
        "5_4": {
          "shortName": "remote #5",
          "category": "Remotes",
          "name": "Current configuration",
          "desc": "remote config",
          "response": "165_63_16_15_30:5_5"
        },
        "5_5": {
          "shortName": "remote #6",
          "category": "Remotes",
          "name": "Current configuration",
          "desc": "remote config",
          "response": "165_63_16_15_30:5_6"
        },
        "5_6": {
          "shortName": "remote #7",
          "category": "Remotes",
          "name": "Current configuration",
          "desc": "remote config",
          "response": "165_63_16_15_30:5_6"
        },
        "5_7": {
          "shortName": "remote #8",
          "category": "Remotes",
          "name": "Current configuration",
          "desc": "remote config",
          "response": "165_63_16_15_30:5_7"
        },
        "5_8": {
          "shortName": "remote #9",
          "category": "Remotes",
          "name": "Current configuration",
          "desc": "remote config",
          "response": "165_63_16_15_30:5_8"
        },
        "6_0": {
          "shortName": "group #1 circuits",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_0"
        },
        "6_1": {
          "shortName": "group #2 circuits",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_1"
        },
        "6_2": {
          "shortName": "group #3 circuits",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_2"
        },
        "6_3": {
          "shortName": "group #4 circuits",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_3"
        },
        "6_4": {
          "shortName": "group #5 circuits",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_5"
        },
        "6_5": {
          "shortName": "group #6 circuits",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_5"
        },
        "6_6": {
          "shortName": "group #7 circuits",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_6"
        },
        "6_7": {
          "shortName": "group #8 circuits",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_7"
        },
        "6_8": {
          "shortName": "group #8 circuits",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_8"
        },
        "6_9": {
          "shortName": "group #10 circuits",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_9"
        },
        "6_10": {
          "shortName": "group #11 circuits",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_10"
        },
        "6_11": {
          "shortName": "group #12 circuits",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_11"
        },
        "6_12": {
          "shortName": "group #13 circuits",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_12"
        },
        "6_13": {
          "shortName": "group #14 circuits",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_13"
        },
        "6_14": {
          "shortName": "group #15 circuits",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_14"
        },
        "6_15": {
          "shortName": "group #16 circuits",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_15"
        },
        "6_16": {
          "shortName": "group #1 name",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_16"
        },
        "6_17": {
          "shortName": "group #2 name",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_17"
        },
        "6_18": {
          "shortName": "group #3 name",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_18"
        },
        "6_19": {
          "shortName": "group #4 name",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_19"
        },
        "6_20": {
          "shortName": "group #5 name",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_20"
        },
        "6_21": {
          "shortName": "group #6 name",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_21"
        },
        "6_22": {
          "shortName": "group #7 name",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_22"
        },
        "6_23": {
          "shortName": "group #8 name",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_23"
        },
        "6_24": {
          "shortName": "group #9 name",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_24"
        },
        "6_25": {
          "shortName": "group #10 name",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_25"
        },
        "6_26": {
          "shortName": "group #11 name",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_26"
        },
        "6_27": {
          "shortName": "group #12 name",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_27"
        },
        "6_28": {
          "shortName": "group #13 name",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_28"
        },
        "6_29": {
          "shortName": "group #14 name",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_29"
        },
        "6_30": {
          "shortName": "group #15 name",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_30"
        },
        "6_31": {
          "shortName": "group #16 name",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_31"
        },
        "6_32": {
          "shortName": "group types",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group type config",
          "response": "165_63_16_15_30:6_32"
        },
        "6_33": {
          "shortName": "group light theme",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_33"
        },
        "6_34": {
          "shortName": "group egg timer",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_14"
        },
        "6_35": {
          "shortName": "group #1 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_35"
        },
        "6_36": {
          "shortName": "group #2 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_36"
        },
        "6_37": {
          "shortName": "group #3 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_37"
        },
        "6_38": {
          "shortName": "group #4 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_38"
        },
        "6_39": {
          "shortName": "group #5 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_39"
        },
        "6_40": {
          "shortName": "group #6 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_40"
        },
        "6_41": {
          "shortName": "group #7 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_41"
        },
        "6_42": {
          "shortName": "group #8 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_42"
        },
        "6_43": {
          "shortName": "group #9 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_43"
        },
        "6_44": {
          "shortName": "group #10 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_44"
        },
        "6_45": {
          "shortName": "group #11 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_45"
        },
        "6_46": {
          "shortName": "group #12 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_46"
        },
        "6_47": {
          "shortName": "group #13 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_47"
        },
        "6_48": {
          "shortName": "group #14 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_48"
        },
        "6_49": {
          "shortName": "group #15 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_49"
        },
        "6_50": {
          "shortName": "group #1 colors/state",
          "category": "Light/Circuit Groups",
          "name": "Current configuration",
          "desc": "group config",
          "response": "165_63_16_15_30:6_50"
        },
        "7_0": {
          "shortName": "chlorinator",
          "category": "Chlorinators",
          "name": "Current configuration",
          "desc": "chlorinator config",
          "response": "165_63_16_15_30:7_0"
        },
        "8_0": {
          "shortName": "chem settings",
          "category": "IntelliChem",
          "name": "Current configuration",
          "desc": "intellichem config",
          "response": "165_63_16_15_30:8_0"
        },
        "8_1": {
          "shortName": "chem setpoints",
          "category": "IntelliChem",
          "name": "Current configuration",
          "desc": "intellichem config",
          "response": "165_63_16_15_30:8_1"
        },
        "9_0": {
          "shortName": "valve circuits",
          "category": "Valves",
          "name": "Current configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_0"
        },
        "9_1": {
          "shortName": "valve 1&2 name",
          "category": "Valves",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_1"
        },
        "9_2": {
          "shortName": "valve 3&4 name",
          "category": "Valves",
          "name": "Current configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_2"
        },
        "9_3": {
          "shortName": "valve 5&6 name",
          "category": "Valves",
          "name": "Current configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_3"
        },
        "9_4": {
          "shortName": "valve 7&8 name",
          "category": "Valves",
          "name": "Current configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_4"
        },
        "9_5": {
          "shortName": "valve 9&10 name",
          "category": "Valves",
          "name": "Current configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_5"
        },
        "9_6": {
          "shortName": "valve 11&12 name",
          "category": "Valves",
          "name": "Current configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_6"
        },
        "9_7": {
          "shortName": "valve 13&14 name",
          "category": "Valves",
          "name": "Current configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_7"
        },
        "9_8": {
          "shortName": "valve 15&16 name",
          "category": "Valves",
          "name": "Current configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_8"
        },
        "9_9": {
          "shortName": "valve 17&18 name",
          "category": "Valves",
          "name": "Current configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_9"
        },
        "9_10": {
          "shortName": "valve 19&20 name",
          "category": "Valves",
          "name": "Current configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_10"
        },
        "9_11": {
          "shortName": "valve 21&22 name",
          "category": "Valves",
          "name": "Current configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_11"
        },
        "9_12": {
          "shortName": "valve 23&24 name",
          "category": "Valves",
          "name": "Current configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_12"
        },
        "9_13": {
          "shortName": "valve 25&26 name",
          "category": "Valves",
          "name": "Current configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_13"
        },
        "9_14": {
          "shortName": "valve 27&28 name",
          "category": "Valves",
          "name": "Current configuration",
          "desc": "valve config",
          "response": "165_63_16_15_30:9_14"
        },
        "10_0": {
          "shortName": "heater types",
          "category": "Heaters",
          "name": "Current configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_0"
        },
        "10_1": {
          "shortName": "heater cooldown",
          "category": "Heaters",
          "name": "Current configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_1"
        },
        "10_2": {
          "shortName": "heater deltas",
          "category": "Heaters",
          "name": "Current configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_2"
        },
        "10_3": {
          "shortName": "heater diff temp",
          "category": "Heaters",
          "name": "Current configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_3"
        },
        "10_4": {
          "shortName": "heater addr",
          "category": "Heaters",
          "name": "Current configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_4"
        },
        "10_5": {
          "shortName": "heater #1&2 name",
          "category": "Heaters",
          "name": "Current configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_5"
        },
        "10_6": {
          "shortName": "heater #3&4 name",
          "category": "Heaters",
          "name": "Current configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_6"
        },
        "10_7": {
          "shortName": "heater #5&6 name",
          "category": "Heaters",
          "name": "Current configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_7"
        },
        "10_8": {
          "shortName": "heater #7&8 name",
          "category": "Heaters",
          "name": "Current configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_8"
        },
        "10_9": {
          "shortName": "heater #9&10 name",
          "category": "Heaters",
          "name": "Current configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_9"
        },
        "10_10": {
          "shortName": "heater #11&12 name",
          "category": "Heaters",
          "name": "Current configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_10"
        },
        "10_11": {
          "shortName": "heater #13&14 name",
          "category": "Heaters",
          "name": "Current configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_11"
        },
        "10_12": {
          "shortName": "heater #15&16 name",
          "category": "Heaters",
          "name": "Current configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_12"
        },
        "10_13": {
          "shortName": "heater eff mode",
          "category": "Heaters",
          "name": "Current configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_13"
        },
        "10_14": {
          "shortName": "heater boost",
          "category": "Heaters",
          "name": "Current configuration",
          "desc": "heater config",
          "response": "165_63_16_15_30:10_14"
        },
        "11_0": {
          "shortName": "security role #1",
          "category": "Security",
          "name": "Current configuration",
          "desc": "security config",
          "response": "165_63_16_15_30:11_0"
        },
        "11_1": {
          "shortName": "security role #2",
          "category": "Security",
          "name": "Current configuration",
          "desc": "security config",
          "response": "165_63_16_15_30:11_1"
        },
        "11_2": {
          "shortName": "security role #3",
          "category": "Security",
          "name": "Current configuration",
          "desc": "security config",
          "response": "165_63_16_15_30:11_2"
        },
        "11_3": {
          "shortName": "security role #4",
          "category": "Security",
          "name": "Current configuration",
          "desc": "security config",
          "response": "165_63_16_15_30:11_3"
        },
        "11_4": {
          "shortName": "security role #5",
          "category": "Security",
          "name": "Current configuration",
          "desc": "security config",
          "response": "165_63_16_15_30:11_4"
        },
        "11_5": {
          "shortName": "security role #6",
          "category": "Security",
          "name": "Current configuration",
          "desc": "security config",
          "response": "165_63_16_15_30:11_6"
        },
        "11_6": {
          "shortName": "security role #7",
          "category": "Security",
          "name": "Current configuration",
          "desc": "security config",
          "response": "165_63_16_15_30:11_6"
        },
        "11_7": {
          "shortName": "security role #8",
          "category": "Security",
          "name": "Current configuration",
          "desc": "security config",
          "response": "165_63_16_15_30:11_7"
        },
        "11_8": {
          "shortName": "security role #9",
          "category": "Security",
          "name": "Current configuration",
          "desc": "security config",
          "response": "165_63_16_15_30:11_8"
        },
        "12_0": {
          "shortName": "gen owner/zip",
          "category": "General",
          "name": "Current configuration",
          "desc": "general settings",
          "response": "165_63_16_15_30:12_0"
        },
        "12_1": {
          "shortName": "gen phone/coord",
          "category": "General",
          "name": "Current configuration",
          "desc": "general settings",
          "response": "165_63_16_15_30:12_1"
        },
        "12_2": {
          "shortName": "gen address",
          "category": "General",
          "name": "Current configuration",
          "desc": "general settings",
          "response": "165_63_16_15_30:12_2"
        },
        "12_3": {
          "shortName": "gen email/tz",
          "category": "General",
          "name": "Current configuration",
          "desc": "general settings",
          "response": "165_63_16_15_30:12_3"
        },
        "12_4": {
          "shortName": "gen email2",
          "category": "General",
          "name": "Current configuration",
          "desc": "general settings",
          "response": "165_63_16_15_30:12_4"
        },
        "12_5": {
          "shortName": "gen country",
          "category": "General",
          "name": "Current configuration",
          "desc": "general settings",
          "response": "165_63_16_15_30:12_5"
        },
        "12_6": {
          "shortName": "gen city",
          "category": "General",
          "name": "Current configuration",
          "desc": "general settings",
          "response": "165_63_16_15_30:12_6"
        },
        "12_7": {
          "shortName": "gen state",
          "category": "General",
          "name": "Current configuration",
          "desc": "general settings",
          "response": "165_63_16_15_30:12_0"
        },
        "13_0": {
          "shortName": "master/exp1",
          "category": "Equipment",
          "name": "Current configuration",
          "desc": "Current configuration master and expansion1",
          "response": "165_63_16_15_30:13_0"
        },
        "13_1": {
          "shortName": "exp2/exp3",
          "category": "Equipment",
          "name": "Current configuration",
          "desc": "Current configuration expansion2 and expansion3",
          "response": "165_63_16_15_30:13_1"
        },
        "13_2": {
          "shortName": "body1/body3",
          "category": "Equipment",
          "name": "Request body configuration",
          "desc": "Current configuration bodies 1 and 3",
          "response": "165_63_16_15_30:13_2"
        },
        "13_3": {
          "shortName": "body2/body4",
          "category": "Equipment",
          "name": "Request body configuration",
          "desc": "Current configuration bodies 2 and 4",
          "response": "165_63_16_15_30:13_3"
        },
        "14_0": {
          "shortName": "cover #1",
          "category": "Covers",
          "name": "Current configuration",
          "desc": "cover settings",
          "response": "165_63_16_15_30:14_0"
        },
        "14_1": {
          "shortName": "cover #2",
          "category": "Covers",
          "name": "Current configuration",
          "desc": "cover settings",
          "response": "165_63_16_15_30:14_1"
        },
        "15_0": {
          "shortName": "relay states",
          "category": "Relays",
          "name": "Current configuration",
          "desc": "circuit states",
          "response": "165_63_16_15_30:15_0"
        }
      }
    },
    "165_P_BC_CP_41": {
      "proto": "broadcast",
      "ocpSpecific": true,
      "messageType": "request",
      "name": "Circuit group/macro config",
      "shortName": "Cfg[circ group]"
    },
    "165_P_CP_CP_233": {
      "proto": "broadcast",
      "ocpSpecific": true,
      "messageType": "request",
      "name": "Request circuit group/macro",
      "shortName": "Get[circ group]"
    },
    "165_P_CP_CP_134": {
      "proto": "broadcast",
      "ocpSpecific": true,
      "messageType": "request",
      "name": "Set circuit state",
      "shortName": "Set[circ state]"
    },
    "165_P_CP_CP_110": {
      "proto": "broadcast",
      "ocpSpecific": true,
      "messageType": "request",
      "name": "Request expansion",
      "shortName": "Get[expansion]"
    },
  
    "165_P_CP_V_82": {
      "proto": "intellivalve",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Req[address]",
      "name": "Ping OCP for an address",
      "desc": "The valve will ping the OCP for an address when it is on the bus."
    },
    "16_2_64_4": {
      "proto": "aqualink",
      "keyBytes": [ 0 ],
      "ocpSpecific": true,
      "messageType": "Response",
      "shortName": "Resp[display]",
      "hasCategories": true,
      "payload": [
        {
          "start": 0,
          "length": 1,
          "name": "Line",
          "desc": "The line that is displayed on the controller",
          "values": {
            "0": "Line #1",
            "1": "Line #2",
            "2": "Line #3",
            "3": "Line #4",
            "4": "Line #5",
            "5": "Line #6",
            "6": "Line #7",
            "7": "Line #8"
          }
        }
      ]
    },
    "16_3_0": {
      "proto": "chlorinator",
      "ocpSpecific": false,
      "messageType": "Request",
      "shortName": "Set[control]",
      "name": "Set Chlorinator Control",
      "desc": "Sets the chlorinator control to the OCP.  This message is required to maintain the control of the chlorinator."
    },
    "16_3_1": {
      "proto": "chlorinator",
      "ocpSpecific": false,
      "messageType": "Response",
      "shortName": "Ack[control]",
      "name": "Control Acknowlegement",
      "desc": "Indicates that the chlorinator is now being controlled by the OCP."
    },
    "16_3_3": {
      "proto": "chlorinator",
      "ocpSpecific": false,
      "messageType": "Response",
      "shortName": "Resp[model]",
      "name": "Control Acknowlegement",
      "desc": "Indicates that the chlorinator is now being controlled by the OCP."
    },
    "16_3_17": {
      "proto": "chlorinator",
      "ocpSpecific": false,
      "messageType": "Request",
      "shortName": "Set[output]",
      "name": "Set the output on the chlorinator",
      "desc": "Sets the chlorinator's output based upon the values in the payload"
    },
    "16_3_18": {
      "proto": "chlorinator",
      "ocpSpecific": false,
      "messageType": "Response",
      "shortName": "Status",
      "name": "Status Response",
      "desc": "Response from the chloriator indicating the current status an salt level."
    },
    "16_3_20": {
      "proto": "chlorinator",
      "ocpSpecific": false,
      "messageType": "Request",
      "shortName": "Get[model]",
      "name": "Get chlorinator model",
      "desc": "Request from the OCP to get the model of the chlorinator."
    },
    "165_P_PMP_CP_1": {
      "proto": "pump",
      "ocpSpecific": false,
      "messageType": "Request",
      "shortName": "Set[speed/flow]",
      "name": "Set pump drive speed and flow",
      "desc": "Sets the rpm and/or flow of the pump.  This message is sent to take control of the pump and disable the local control panel on the drive."
    },
    "165_P_CP_PMP_1": {
      "proto": "pump",
      "ocpSpecific": false,
      "messageType": "Command",
      "shortName": "Pump[speed/flow]",
      "name": "Set Pump Speed/Flow",
      "desc": "Command to set pump speed (RPM) or flow (GPM). Response is ACK from pump.",
      "payload": [
        {
          "start": 0,
          "length": 1,
          "name": "Control Byte",
          "desc": "Control/circuit assignment",
          "dataType": "byte"
        },
        {
          "start": 1,
          "length": 1,
          "name": "Program/Mode",
          "desc": "Program number or mode",
          "dataType": "byte",
          "values": "196=Standard program"
        },
        {
          "start": 2,
          "length": 2,
          "name": "Speed/Flow Value",
          "desc": "Target speed in RPM (2 bytes) or flow in GPM (high byte only). Bit 5 of byte 2 indicates RPM (0) or GPM (1)",
          "dataType": "int"
        }
      ]
    },
    "165_P_PMP_CP_4": {
      "proto": "pump",
      "ocpSpecific": false,
      "messageType": "Request",
      "shortName": "Set[runstate]",
      "name": "Set pump run state",
      "desc": "Sets the run state pf the pump.  This message is sent to take control of the pump and disable the local control panel on the drive."
    },
    "165_P_CP_PMP_4": {
      "proto": "pump",
      "ocpSpecific": false,
      "messageType": "Response",
      "shortName": "Pump[runstate]",
      "name": "Response to setting the run state.",
      "desc": "This message is in response to the pump run state being set.  A return of 255 indicates that the local control panel on the drive has been disabled."
    },
    "165_P_PMP_CP_5": {
      "proto": "pump",
      "ocpSpecific": false,
      "messageType": "Request",
      "shortName": "Set[feature]",
      "name": "Set pump drive feature",
      "desc": "Sets the feature state of the pump.  This message is sent to set the ."
    },
    "165_P_CP_PMP_5": {
      "proto": "pump",
      "ocpSpecific": false,
      "messageType": "Response",
      "shortName": "Pump[feature]",
      "name": "Response to setting the drive feature.",
      "desc": "This message is in response to the pump drive feature being set."
    },
    "165_P_PMP_CP_6": {
      "proto": "pump",
      "ocpSpecific": false,
      "messageType": "Request",
      "shortName": "Set[drivestate]",
      "name": "Set pump drive state",
      "desc": "Sets the run state pf the pump.  This message is sent to take control of the pump and disable the local control panel on the drive."
    },
    "165_P_CP_PMP_6": {
      "proto": "pump",
      "ocpSpecific": false,
      "messageType": "Response",
      "shortName": "Pump[drivestate]",
      "name": "Response to setting the drive state.",
      "desc": "This message is in response to the pump drive state being set."
    },
    "165_P_PMP_CP_7": {
      "proto": "pump",
      "ocpSpecific": false,
      "messageType": "Request",
      "shortName": "Get[status]",
      "name": "Get pump status",
      "desc": "Broadcast request to get the current running status of the pump."
    },
    "165_P_CP_PMP_7": {
      "proto": "pump",
      "ocpSpecific": false,
      "messageType": "Response",
      "shortName": "Pump[status]",
      "name": "Pump Status Response",
      "desc": "Response from pump containing current operational status including speed, watts, flow, and error codes.",
      "payload": [
        {
          "start": 0,
          "length": 1,
          "name": "Command",
          "desc": "Current pump command/circuit assignment",
          "dataType": "byte"
        },
        {
          "start": 1,
          "length": 1,
          "name": "Mode",
          "desc": "Current pump operating mode",
          "dataType": "byte",
          "values": {
            "0": "Off/Filter",
            "1": "Manual",
            "2": "Speed 1",
            "3": "Speed 2",
            "4": "Speed 3",
            "5": "Speed 4",
            "6": "Feature 1",
            "10": "External Program"
          }
        },
        {
          "start": 2,
          "length": 1,
          "name": "Drive State",
          "desc": "Drive operational state",
          "dataType": "byte",
          "values": {
            "1": "Running",
            "2": "Stopped"
          }
        },
        {
          "start": 3,
          "length": 2,
          "name": "Watts",
          "desc": "Current power consumption in watts",
          "dataType": "int"
        },
        {
          "start": 5,
          "length": 2,
          "name": "RPM",
          "desc": "Current pump speed in RPM (VS/VSF pumps only, 0 for VF)",
          "dataType": "int"
        },
        {
          "start": 7,
          "length": 1,
          "name": "Flow (GPM)",
          "desc": "Current flow rate in GPM (VSF pumps only, 0 for VS/VF)",
          "dataType": "byte"
        },
        {
          "start": 8,
          "length": 1,
          "name": "PPC",
          "desc": "Priming/Pump Configuration status",
          "dataType": "byte"
        },
        {
          "start": 11,
          "length": 2,
          "name": "Status/Error",
          "desc": "16-bit error/warning code flags",
          "dataType": "int",
          "values": "Bit flags for pump errors and warnings"
        },
        {
          "start": 13,
          "length": 1,
          "name": "Time (Hours)",
          "desc": "Runtime hours counter (increments every 59 minutes)",
          "dataType": "byte"
        },
        {
          "start": 14,
          "length": 1,
          "name": "Time (Minutes)",
          "desc": "Runtime minutes counter (0-59, ticks every minute)",
          "dataType": "byte",
          "values": "0-59"
        }
      ]
    },
    "165_P_PMP_CP_10": {
      "proto": "pump",
      "ocpSpecific": false,
      "messageType": "Request",
      "shortName": "Set[speed]",
      "name": "Sets the speed or flow on the pump",
      "desc": "Pump request to set the pump speed or flow."
    },
  
    "165_P_CHM_CP_210": {
      "proto": "intellichem",
      "ocpSpecific": false,
      "messageType": "Request",
      "shortName": "Get[status]",
      "name": "Get IntelliChem status",
      "dest": "Request to get the status from IntelliChem"
    },
    "165_P_CHM_CP_146": {
      "proto": "intellichem",
      "ocpSpecific": false,
      "messageType": "Request",
      "shortName": "Set[options]",
      "name": "Set IntelliChem options",
      "dest": "Set options on the IntelliChem controller"
    },
    "165_P_CP_CHM_1": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "ACK",
      "desc": "Message Received"
    },
    "165_P_CP_CHM_18": {
      "proto": "chlorinator",
      "ocpSpecific": false,
      "messageType": "response",
      "shortName": "State[Salt Output]",
      "name": "Chlorinator Status Response",
      "desc": "Response from IntelliChlor containing current salt level and chlorinator status",
      "payload": [
        {
          "start": 0,
          "length": 1,
          "name": "Salt Level",
          "desc": "Current salt level in PPM",
          "dataType": "byte",
          "values": "Multiply by 50 to get PPM (e.g., 64 = 3200 PPM)"
        },
        {
          "start": 1,
          "length": 1,
          "name": "Status",
          "desc": "Chlorinator status/error flags (lower 7 bits)",
          "dataType": "byte",
          "values": {
            "0": "OK",
            "1": "Low Flow",
            "2": "Low Salt",
            "4": "Very Low Salt",
            "8": "High Current",
            "16": "Clean Cell",
            "32": "Low Voltage",
            "64": "Water Temp Low",
            "128": "No Comm"
          }
        }
      ]
    }
  },
  "intellichem": {
    "165_P_CHM_CP_210": {
      "proto": "intellichem",
      "ocpSpecific": false,
      "messageType": "Request",
      "shortName": "Get[status]",
      "name": "Get IntelliChem status",
      "dest": "Request to get the status from IntelliChem"
    },
    "165_P_CHM_CP_146": {
      "proto": "intellichem",
      "ocpSpecific": false,
      "messageType": "Request",
      "shortName": "Set[options]",
      "name": "Set IntelliChem options",
      "dest": "Set options on the IntelliChem controller"
    },
    "165_P_CP_CHM_1": {
      "proto": "broadcast",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "ACK",
      "desc": "Message Received"
    },
    "165_P_CP_CHM_18": {
      "proto": "response",
      "ocpSpecific": false,
      "messageType": "broadcast",
      "shortName": "State[settings]",
      "desc": "Message Received"
    }
  },
  "pump": {

  },
  "valve": {
    "165_P_CP_V_82": {
      "proto": "intellivalve",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Req[address]",
      "name": "Ping OCP for an address",
      "desc": "The valve will ping the OCP for an address when it is on the bus."
    }
  },
  "heater": {
  },
  "screenlogic": {
    "SL_CP_4": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Req[PingBrick]",
      "name": "Ping Brick Request",
      "desc": "Ping Brick Request"
    },
    "SL_CP_5": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Res[PingBrick]",
      "name": "Ping Brick Response",
      "desc": "Ping Brick Response"
    },
    "SL_CP_16": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Ping",
      "name": "Ping SL",
      "desc": "Ping to SL"
    },
    "SL_CP_17": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Pong",
      "name": "Pong from SL",
      "desc": "SL pong response to the OCP for a ping."
    },
    "SL_CP_18": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Req[RemoveClient]",
      "name": "Remove client from SL",
      "desc": "Remove the client from the ScreenLogic system"
    },
    "SL_CP_4565": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Get[AreaId]",
      "name": "Request to OCP for Get Area Id",
      "desc": "SL request to the OCP for a Get Area Id."
    },
    "SL_CP_4566": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Get[AreaId]",
      "name": "Response to OCP for Get Area Id",
      "desc": "SL response to the OCP for a Get Area Id."
    },
    "SL_CP_4567": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Set[AreaId]",
      "name": "Request to OCP for Set Area Id",
      "desc": "SL request to the OCP for a Set Area Id."
    },
    "SL_CP_4568": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Set[AreaId]",
      "name": "Response to OCP for Set Area Id",
      "desc": "SL response to the OCP for a Set Area Id."
    },
    "SL_CP_8110": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Cfg[SysTime]",
      "name": "Request to OCP for system time",
      "desc": "SL request to the OCP for a system time."
    },
    "SL_CP_8111": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Cfg[SysTime]",
      "name": "Response to OCP for system time",
      "desc": "SL response to the OCP for a system time."
    },
    "SL_CP_8120": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Cfg[Ver]",
      "name": "Request to OCP for version",
      "desc": "SL request to the OCP for the version."
    },
    "SL_CP_8121": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Cfg[Ver]",
      "name": "Response to OCP for version",
      "desc": "SL response to the OCP for the version."
    },
    "SL_CP_12500": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Cfg[Start/Chg]",
      "name": "New session or change to session.",
      "desc": "This packet is sent when a new session is started.  Possibly also indicates a change(?)."
    },
    "SL_CP_12501": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Cfg[SchChg]",
      "name": "Async Schedule Change.",
      "desc": "This packet is sent when a schedule is changed."
    },
    "SL_CP_12502": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Cfg[HistData]",
      "name": "Async History Data.",
      "desc": "This packet is sent when a history data is being compiled."
    },
    "SL_CP_12503": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Cfg[RunTimeChanged]",
      "name": "Async RunTime Changed.",
      "desc": "This packet is sent when a run time has changed."
    },
    "SL_CP_12504": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Cfg[ColorUpd]",
      "name": "Async Color Updated.",
      "desc": "This packet is sent when a color has changed."
    },
    "SL_CP_12505": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Cfg[ChemChg]",
      "name": "Async chem data Updated.",
      "desc": "This packet is sent when a chem data has changed."
    },
    "SL_CP_12506": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Cfg[ChemHist]",
      "name": "Async chem history is being compiled.",
      "desc": "This packet is sent when a chem history is being compiled."
    },
    "SL_CP_12510": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Get[CircuitDef]",
      "name": "Get Circuit Definition Request",
      "desc": "This packet is sent when a circuit definition is requested."
    },
    "SL_CP_12511": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Get[CircuitDef]",
      "name": "Get Circuit Definition response",
      "desc": "This packet is sent when a circuit definition is responded to."
    },
    "SL_CP_12518": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Get[CircById]",
      "name": "Request to SL to add get a circuit by Id",
      "desc": "SL request to get a circuit by Id for async status updates."
    },
    "SL_CP_12519": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Get[CircById]",
      "name": "Response to SL to add get a circuit by Id",
      "desc": "SL response to get a circuit by Id."
    },
    "SL_CP_12522": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Set[CircById]",
      "name": "Request to SL to add a new client",
      "desc": "SL request to the add a new client."
    },
    "SL_CP_12520": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Set[CircById]",
      "name": "Response to SL to add Set a circuit by Id",
      "desc": "SL response to Set a circuit by Id."
    },
    "SL_CP_12521": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Set[CircById]",
      "name": "Request to SL set a circuit by Id",
      "desc": "SL request to the set a circuit by Id."
    },
    "SL_CP_12523": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Cfg[AddClient]",
      "name": "Response to SL to add a new client",
      "desc": "SL response to the add a new client for async status updates."
    },
    "SL_CP_12524": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Cfg[RemClient]",
      "name": "Request to SL to remove a client",
      "desc": "SL request to the remove a client"
    },
    "SL_CP_12525": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Cfg[RemClient]",
      "name": "Response to SL to remove a client",
      "desc": "SL response to the remove a client"
    },
    "SL_CP_12532": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Cfg[Ctrl]",
      "name": "Request to OCP for controller config",
      "desc": "SL request to the OCP for a controller config."
    },
    "SL_CP_12533": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Cfg[Ctrl]",
      "name": "Response to OCP for controller config",
      "desc": "SL response to the OCP for a controller config."
    },
    "SL_CP_12542": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Get[Sched]",
      "name": "Request to OCP for schedule data",
      "desc": "SL request to the OCP for a schedule data."
    },
    "SL_CP_12543": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Get[Sched]",
      "name": "Response to OCP for schedule data",
      "desc": "SL response to the OCP for a schedule data."
    },
    "SL_CP_12562": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Get[CustomNames]",
      "name": "Request to OCP for custom names",
      "desc": "SL request to the OCP for a custom names."
    },
    "SL_CP_12566": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Get[EquipConfig]",
      "name": "Response to OCP to get equipment config",
      "desc": "SL response to the OCP for a equipment config."
    },
    "SL_CP_12567": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Get[EquipConfig]",
      "name": "Response to OCP to get equipment config",
      "desc": "SL request to the OCP for a equipment config."
    },
    "SL_CP_12568": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Set[EquipConfig]",
      "name": "Response to OCP to set equipment config",
      "desc": "SL response to the OCP for a equipment config."
    },
    "SL_CP_12569": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Set[EquipConfig]",
      "name": "Response to OCP to set equipment config",
      "desc": "SL request to the OCP for a equipment config."
    },
    "SL_CP_12563": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Get[CustomNames]",
      "name": "Response to OCP for custom names",
      "desc": "SL response to the OCP for a custom names."
    },
    "SL_CP_12572": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Get[Chlor]",
      "name": "Request to OCP for chlor",
      "desc": "SL request to the OCP for a chlor."
    },
    "SL_CP_12573": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Get[Chlor]",
      "name": "Response to OCP for chlor",
      "desc": "SL response to the OCP for a custom names."
    },
    "SL_CP_12584": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Get[pump]",
      "name": "Request to OCP for pump status",
      "desc": "SL request to the OCP for a pump status."
    },
    "SL_CP_12585": {
      "proto": "screenlogic",
      "ocpSpecific": false,
      "messageType": "Broadcast",
      "shortName": "Get[pump]",
      "name": "Response to OCP for pump status",
      "desc": "SL response to the OCP for a pump status."
    }
  }
}