Public/instructionset.json

{
    "Config": [
        {
            "Battery": {
                "CellCount": 14,
                "MultiBMS": false,
                "ChemistryTypes": {
                    "1": "Li-po Kokam High power",
                    "2": "Li-po Kokam High capacity",
                    "3": "LiFePO4 Winston",
                    "4": "LiFePO4 A123",
                    "5": "LiMnO2"
                }
            },
            "Client": {
                "PortName": "/dev/ttyUSB0",
                "BaudRate": 38400,
                "Parity": "None",
                "DataBits": 8,
                "StopBits": "One",
                "ReadTimeout": 900,
                "WriteTimeout": 250,
                "DTREnable": true
            },
            "Session": {
                "SessionThrottle": 500,
                "SessionTimeout": 1000,
                "Retries": 4
            },
            "Message": {
                "Components": {
                    "STX": "55",
                    "DST": "01",
                    "SND": "00",
                    "LEN": "00",
                    "MSG": null,
                    "QRY": "3f",
                    "CMD": "20",
                    "CRC": "0000",
                    "ETX": "aa"
                },
                "FloatPrecision": "single"
            },
            "MQTT": {
                "Server": "server.domain.org",
                "Port": 1883,
                "Frequency": "0:0:0:30",
                "TopicPrefix": "",
                "Retain": true,
                "Username": "username",
                "Password": "password",
                "ServicePaths": {
                    "Unix": {
                        "ServiceName": "recbmsmqtt.service",
                        "SystemdPath": "/etc/systemd/system/",
                        "ExecutableName": "recbmsmqtt",
                        "ExecutablePath": "/usr/bin/",
                        "ServiceConf": "bmsmqtt.conf",
                        "ServiceConfPath": "/etc/opt/recbms/"
                    },
                    "Win32NT": {
                        "ServiceName": "RECBMSMQTT",
                        "ExecutableName": "recbmsmqtt.ps1",
                        "ExecutablePath": "Program Files\\REC-BMSMQTTService\\",
                        "ServiceConf": "RECBMSMQTTService",
                        "ServiceConfPath": "hklm:Im\\Not\\Really\\Sure\\Yet"
                    }
                }
            }
        }
    ],
    "Command": [
        {
            "Alias": "Identity",
            "Instruction": "*IDN",
            "Name": "Identification",
            "Description": "Answers REC BMS xxx where xxx is the type of BMS",
            "Common": true,
            "ReadOnly": true,
            "Range": null,
            "Value": null,
            "Return": {
                "Description": "Device identification",
                "Unit": "Description",
                "Value": "string",
                "Position": 0,
                "Part": 0
            },
            "Category": "Identification",
            "Handler": "String"
        },
        {
            "Alias": "ListCommonData1",
            "Instruction": "LCD1",
            "Name": "Main_Data_1",
            "Description": "First answer is 28 how many byte data will be sent and then data message follows as 7 float values:",
            "Common": true,
            "ReadOnly": true,
            "Range": null,
            "Value": "null",
            "Return": {
                "Description": "Array of values",
                "Value": "Array",
                "Unit": {
                    "Array": [
                        {
                            "Description": "Byte count of message payload",
                            "Unit": "ByteCount",
                            "Value": "char",
                            "Position": 0,
                            "Part": 0
                        },
                        {
                            "Description": "Minimum Cell Voltage",
                            "Unit": "Volt",
                            "Value": "float",
                            "Position": 1,
                            "Part": 1
                        },
                        {
                            "Description": "Maximum Cell Voltage",
                            "Unit": "Volt",
                            "Value": "float",
                            "Position": 2,
                            "Part": 1
                        },
                        {
                            "Description": "Pack Current",
                            "Unit": "Amps",
                            "Value": "float",
                            "Position": 3,
                            "Part": 1
                        },
                        {
                            "Description": "Maximum Temperature",
                            "Unit": "Celcius",
                            "Value": "float",
                            "Position": 4,
                            "Part": 1
                        },
                        {
                            "Description": "Pack Voltage",
                            "Unit": "Volt",
                            "Value": "float",
                            "Position": 5,
                            "Part": 1
                        },
                        {
                            "Description": "State of Charge",
                            "Unit": "Percent",
                            "Value": "float",
                            "Position": 6,
                            "Part": 1
                        },
                        {
                            "Description": "State of Health",
                            "Unit": "Percent",
                            "Value": "float",
                            "Position": 7,
                            "Part": 1
                        }
                    ],
                    "Type": "Byte"
                }
            },
            "Category": "Information",
            "Handler": "Array"
        },
        {
            "Alias": "ListCommonData3",
            "Instruction": "LCD3",
            "Name": "Main_Data_3",
            "Description": "First answer is 8 how many byte data will be sent and then data message follows as 8 byte values:",
            "Common": true,
            "ReadOnly": true,
            "Range": null,
            "Value": null,
            "Return": {
                "Description": "Array of values",
                "Value": "Array",
                "Unit": {
                    "Array": [
                        {
                            "Description": "Byte count of message payload",
                            "Unit": "ByteCount",
                            "Value": "char",
                            "Position": 0,
                            "Part": 0
                        },
                        {
                            "Description": "BMS Address of Minimum Cell Voltage",
                            "Unit": "MinCellBMSID",
                            "Value": "char",
                            "Position": 1,
                            "Part": 1
                        },
                        {
                            "Description": "Cell Address of Minimum Cell Voltage",
                            "Unit": "MinCellID",
                            "Value": "char",
                            "Position": 2,
                            "Part": 1
                        },
                        {
                            "Description": "BMS Address of Maximum Cell Voltage",
                            "Unit": "MaxCellBMSID",
                            "Value": "char",
                            "Position": 3,
                            "Part": 1
                        },
                        {
                            "Description": "Cell Address of Maximum Cell Voltage",
                            "Unit": "MaxCellID",
                            "Value": "char",
                            "Position": 4,
                            "Part": 1
                        },
                        {
                            "Description": "BMS Address of Maximum Temp Sensor",
                            "Unit": "MaxTempBMSID",
                            "Value": "char",
                            "Position": 5,
                            "Part": 1
                        },
                        {
                            "Description": "Temp Sensor Address of Maximum Value",
                            "Unit": "MaxTempSensorID",
                            "Value": "char",
                            "Position": 6,
                            "Part": 1
                        },
                        {
                            "Description": "AH_MSB",
                            "Unit": "Ah0",
                            "Value": "byte",
                            "Position": 7,
                            "Part": 1
                        },
                        {
                            "Description": "AH_LSB",
                            "Unit": "Ah1",
                            "Value": "byte",
                            "Position": 8,
                            "Part": 1
                        }
                    ],
                    "Type": "IntMixedBytes"
                }
            },
            "Category": "Information",
            "Handler": "Array"
        },
        {
            "Alias": "CellVoltages",
            "Instruction": "CELL",
            "Name": "Cell Voltages",
            "Description": "BMS first responds with how many BMS units are connected, then it sends the values of the cells configured in float Value",
            "Common": true,
            "ReadOnly": true,
            "Range": null,
            "Value": null,
            "Return": {
                "Description": "Array of values",
                "Value": "Array",
                "Unit": {
                    "Array": [
                        {
                            "Description": "Number of BMS Units",
                            "Unit": "UnitCount",
                            "Value": "char",
                            "Position": 0,
                            "Part": 0
                        },
                        {
                            "Description": "Cell",
                            "Unit": "Volt",
                            "Value": "float",
                            "Position": "template",
                            "Part": 1
                        }
                    ],
                    "Type": "Byte"
                }
            },
            "Category": "Information",
            "Handler": "Array"
        },
        {
            "Alias": "CellTemperatures",
            "Instruction": "PTEM",
            "Name": "Cell temperatures",
            "Description": "BMS first responds with how many BMS units are connected then it sends the values of the temperature sensors in float Value",
            "Common": true,
            "ReadOnly": true,
            "Range": null,
            "Value": null,
            "Return": {
                "Description": "Array of values with variable value template",
                "Value": "Array",
                "Unit": {
                    "Array": [
                        {
                            "Description": "Number of BMS Units",
                            "Unit": "UnitCount",
                            "Value": "char",
                            "Position": 0,
                            "Part": 0
                        },
                        {
                            "Description": "Cell",
                            "Unit": "celcius",
                            "Value": "float",
                            "Position": "template",
                            "Part": 1
                        }
                    ],
                    "Type": "Byte"
                }
            },
            "Category": "Information",
            "Handler": "Array"
        },
        {
            "Alias": "CellResistance",
            "Instruction": "RINT",
            "Name": "Cell internal DC resistance",
            "Description": "BMS first responds with how many BMS units are connected then it sends the values in float Value",
            "Common": true,
            "ReadOnly": true,
            "Range": null,
            "Value": null,
            "Return": {
                "Description": "Array of values with variable value template",
                "Value": "Array",
                "Unit": {
                    "Array": [
                        {
                            "Description": "Number of BMS Units",
                            "Unit": "UnitCount",
                            "Value": "char",
                            "Position": 0,
                            "Part": 0
                        },
                        {
                            "Description": "Cell",
                            "Unit": "ohms",
                            "Value": "float",
                            "Position": "template",
                            "Part": 1
                        }
                    ],
                    "Type": "Byte"
                }
            },
            "Category": "Information",
            "Handler": "Array"
        },
        {
            "Alias": "BMSTemperature",
            "Instruction": "BTEM",
            "Name": "BMS temperature",
            "Description": "BMS first responds with value 1, then it sends the values of the BMS temperature sensor in float Value.",
            "Common": true,
            "ReadOnly": true,
            "Range": null,
            "Value": null,
            "Return": {
                "Description": "Array of values with variable value template",
                "Value": "Array",
                "Unit": {
                    "Array": [
                        {
                            "Description": "Byte count of message payload",
                            "Unit": "ByteCount",
                            "Value": "char",
                            "Position": 0,
                            "Part": 0
                        },
                        {
                            "Description": "BMS",
                            "Unit": "celcius",
                            "Value": "float",
                            "Position": "template",
                            "Part": 1
                        }
                    ],
                    "Type": "Byte"
                }
            },
            "Category": "Information",
            "Handler": "Array"
        },
        {
            "Alias": "BMSErrors",
            "Instruction": "ERRO",
            "Name": "Error number description array",
            "Description": "First answer is 4 how many byte data will be sent and then data message follows as 4 byte values.",
            "Common": true,
            "ReadOnly": true,
            "Range": null,
            "Value": null,
            "Return": {
                "Description": "Variable array of values",
                "Value": "Array",
                "Unit": {
                    "Array": [
                        {
                            "Description": "Byte count of message payload",
                            "Unit": "ByteCount",
                            "Value": "char",
                            "Position": 0,
                            "Part": 0
                        },
                        {
                            "Description": "0 – no error, 1 – error",
                            "Unit": "boolean",
                            "Value": "char",
                            "Position": 1,
                            "Part": 1
                        },
                        {
                            "Description": "BMS unit",
                            "Unit": "identity_bms",
                            "Value": "char",
                            "Position": 2,
                            "Part": 1
                        },
                        {
                            "Description": "error number (1-16)",
                            "Unit": "identity",
                            "Value": "char",
                            "Position": 3,
                            "Part": 1
                        },
                        {
                            "Description": "number of the cell, temperature sensor where the error occured",
                            "Unit": "identity",
                            "Value": "char",
                            "Position": 4,
                            "Part": 1
                        }
                    ],
                    "Type": "Int"
                }
            },
            "Category": "Information",
            "Handler": "Array"
        },
        {
            "Alias": "BalanceEnd",
            "Instruction": "BVOL",
            "Name": "Balance end Voltage",
            "Description": "Returns Voltage value",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": 2.5,
                "Max": 4.3
            },
            "Value": "float",
            "Return": {
                "Description": "volts",
                "Unit": "Volt",
                "Value": "float"
            },
            "Category": "Cell",
            "Handler": "Range"
        },
        {
            "Alias": "BalanceStart",
            "Instruction": "BMIN",
            "Name": "Balance start Voltage",
            "Description": "Returns Voltage value",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": 2.5,
                "Max": 4.3
            },
            "Value": "float",
            "Return": {
                "Description": "volts",
                "Unit": "Volt",
                "Value": "float"
            },
            "Category": "Cell",
            "Handler": "Range"
        },
        {
            "Alias": "CellMax",
            "Instruction": "CMAX",
            "Name": "Cell over-Voltage switch-off",
            "Description": "Returns Voltage value",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": 2,
                "Max": 4.3
            },
            "Value": "float",
            "Return": {
                "Description": "volts",
                "Unit": "Volt",
                "Value": "float"
            },
            "Category": "Cell",
            "Handler": "Range"
        },
        {
            "Alias": "CellHysteresisMax",
            "Instruction": "MAXH",
            "Name": "Over-Voltage switch-off hysteresis per cell",
            "Description": "Returns Voltage value",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": 0.005,
                "Max": 2
            },
            "Value": "float",
            "Return": {
                "Description": "volts",
                "Unit": "Volt",
                "Value": "float"
            },
            "Category": "Cell",
            "Handler": "Range"
        },
        {
            "Alias": "CellMin",
            "Instruction": "CMIN",
            "Name": "Cell under-Voltage switch-off",
            "Description": "Returns Voltage value",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": 1.8,
                "Max": 4
            },
            "Value": "float",
            "Return": {
                "Description": "volts",
                "Unit": "Volt",
                "Value": "float"
            },
            "Category": "Cell",
            "Handler": "Range"
        },
        {
            "Alias": "CellHysteresisMin",
            "Instruction": "MINH",
            "Name": "Under- Voltage switch-off hysteresis between cells",
            "Description": "Returns Voltage value",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": 0.005,
                "Max": 2
            },
            "Value": "float",
            "Return": {
                "Description": "volts",
                "Unit": "Volt",
                "Value": "float"
            },
            "Category": "Cell",
            "Handler": "Range"
        },
        {
            "Alias": "CellChargeEnd",
            "Instruction": "CHAR",
            "Name": "Cell End of charging Voltage",
            "Description": "Returns Voltage value",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": 2,
                "Max": 4.3
            },
            "Value": "float",
            "Return": {
                "Description": "volts",
                "Unit": "Volt",
                "Value": "float"
            },
            "Category": "Cell",
            "Handler": "Range"
        },
        {
            "Alias": "CellChargeHysteresisEnd",
            "Instruction": "CHIS",
            "Name": "End of charging Voltage hysteresis per cell",
            "Description": "Returns Voltage value",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": 0.005,
                "Max": 2
            },
            "Value": "float",
            "Return": {
                "Description": "volts",
                "Unit": "Volt",
                "Value": "float"
            },
            "Category": "Cell",
            "Handler": "Range"
        },
        {
            "Alias": "CellDifferenceMax",
            "Instruction": "RAZL",
            "Name": "Cells max difference",
            "Description": "Returns Voltage value",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": 0.005,
                "Max": 1
            },
            "Value": "float",
            "Return": {
                "Description": "volts",
                "Unit": "Volt",
                "Value": "float"
            },
            "Category": "Cell",
            "Handler": "Range"
        },
        {
            "Alias": "CellTemperatureMax",
            "Instruction": "TMAX",
            "Name": "cell over temperature switch-off",
            "Description": "cell over temperature switch-off",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": -20,
                "Max": 65
            },
            "Value": "float",
            "Return": {
                "Description": "temperature",
                "Unit": "celcius",
                "Value": "float"
            },
            "Category": "Temperature",
            "Handler": "Range"
        },
        {
            "Alias": "CellTemperatureMin",
            "Instruction": "TMIN",
            "Name": "Under-temperature charging disable",
            "Description": "Under-temperature charging disable",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": -30,
                "Max": 65
            },
            "Value": "float",
            "Return": {
                "Description": "temperature",
                "Unit": "celcius",
                "Value": "float"
            },
            "Category": "Temperature",
            "Handler": "Range"
        },
        {
            "Alias": "BMSTemperatureMax",
            "Instruction": "TBAL",
            "Name": "BMS over-temperature switch-off",
            "Description": "BMS over-temperature switch-off",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": -20,
                "Max": 65
            },
            "Value": "float",
            "Return": {
                "Description": "temperature",
                "Unit": "celcius",
                "Value": "float"
            },
            "Category": "Temperature",
            "Handler": "Range"
        },
        {
            "Alias": "BMSTemperatureHysteresisMax",
            "Instruction": "BMTH",
            "Name": "BMS over temperature switch-off hysteresis",
            "Description": "BMS over temperature switch-off hysteresis",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": 1,
                "Max": 30
            },
            "Value": "float",
            "Return": {
                "Description": "temperature",
                "Unit": "celcius",
                "Value": "float"
            },
            "Category": "Temperature",
            "Handler": "Range"
        },
        {
            "Alias": "CurrentZeroOffset",
            "Instruction": "IOFF",
            "Name": "Current measurement zero offset",
            "Description": "Current measurement zero offset",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": -2,
                "Max": 2
            },
            "Value": "float",
            "Return": {
                "Description": "current in amps",
                "Unit": "Amps",
                "Value": "float"
            },
            "Category": "Amperage",
            "Handler": "Range"
        },
        {
            "Alias": "VoltageCurrentCoefficient",
            "Instruction": "IOJA",
            "Name": "Voltage to current coefficient",
            "Description": "Voltage to current coefficient",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": 0.0005,
                "Max": 0.5
            },
            "Value": "float",
            "Return": {
                "Description": "coefficient",
                "Unit": "mu",
                "Value": "float"
            },
            "Category": "Amperage",
            "Handler": "Range"
        },
        {
            "Alias": "Cycles",
            "Instruction": "CYCL",
            "Name": "Number of full battery pack cycles",
            "Description": "Number of full battery pack cycles",
            "Common": true,
            "ReadOnly": false,
            "Range": {
                "Min": 0,
                "Max": 8000
            },
            "Value": "int",
            "Return": {
                "Description": "battery pack cycles",
                "Unit": "count",
                "Value": "int"
            },
            "Category": "Pack",
            "Handler": "Range"
        },
        {
            "Alias": "Capacity",
            "Instruction": "CAPA",
            "Name": "Battery pack capacity",
            "Description": "Battery pack capacity",
            "Common": true,
            "ReadOnly": false,
            "Range": {
                "Min": 1,
                "Max": 5000
            },
            "Value": "float",
            "Return": {
                "Description": "capacity in Amp hours",
                "Unit": "Amps",
                "Value": "float"
            },
            "Category": "Pack",
            "Handler": "Range"
        },
        {
            "Alias": "Chemistry",
            "Instruction": "CHEM",
            "Name": "Li-ion chemistry",
            "Description": "Chemistry type changes BMS algorithm",
            "Common": true,
            "ReadOnly": false,
            "Range": {
                "Min": 1,
                "Max": 5
            },
            "Value": "char",
            "Return": {
                "Description": "Battery Chemistry Type",
                "Unit": "identity",
                "Value": "char"
            },
            "Category": "Pack",
            "Handler": "Range"
        },
        {
            "Alias": "StateOfChargeHysteresis",
            "Instruction": "SOCH",
            "Name": "SOC end of charge hysteresis",
            "Description": "SOC end of charge hysteresis",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": 0.005,
                "Max": 0.99
            },
            "Value": "float",
            "Return": {
                "Description": "Returns float value 0 – 1.0",
                "Unit": "percent",
                "Value": "float"
            },
            "Category": "SOC",
            "Handler": "Range"
        },
        {
            "Alias": "StateOfCharge",
            "Instruction": "SOCS",
            "Name": "SOC manual re-set",
            "Description": "SOC manual re-set",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": 0.01,
                "Max": 1
            },
            "Value": "float",
            "Return": {
                "Description": "Returns float value 0 – 1.0",
                "Unit": "percent",
                "Value": "float"
            },
            "Category": "SOC",
            "Handler": "Range"
        },
        {
            "Alias": "ChargeCoefficient",
            "Instruction": "CHAC",
            "Name": "Charge coefficient (0-3C)",
            "Description": "Charge coefficient (0-3C)",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": 0.01,
                "Max": 1
            },
            "Value": "float",
            "Return": {
                "Description": "Returns float value 0-3.0 (default 0.6)",
                "Unit": "mu",
                "Value": "float"
            },
            "Category": "Victron",
            "Handler": "Range"
        },
        {
            "Alias": "DischargeCoefficient",
            "Instruction": "DCHC",
            "Name": "Discharge coefficient (0-3C)",
            "Description": "Discharge coefficient (0-3C)",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": 0.01,
                "Max": 3
            },
            "Value": "float",
            "Return": {
                "Description": "Returns float value 0-3.0 (default 1.5)",
                "Unit": "mu",
                "Value": "float"
            },
            "Category": "Victron",
            "Handler": "Range"
        },
        {
            "Alias": "InverterCount",
            "Instruction": "SISN",
            "Name": "Number of inverter devices on the bus",
            "Description": "Number of inverter devices on the bus",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": 1,
                "Max": 6
            },
            "Value": "char",
            "Return": {
                "Description": "default is 1",
                "Unit": "count",
                "Value": "char"
            },
            "Category": "Victron",
            "Handler": "Range"
        },
        {
            "Alias": "InverterMaxCurrentCharge",
            "Instruction": "MAXC",
            "Name": "Maximum charge current per inverter device",
            "Description": "Maximum charge current per inverter device",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": 5,
                "Max": 345
            },
            "Value": "float",
            "Return": {
                "Description": "amperage per inverter",
                "Unit": "Amps",
                "Value": "float"
            },
            "Category": "Victron",
            "Handler": "Range"
        },
        {
            "Alias": "InverterMaxCurrentDischarge",
            "Instruction": "MAXD",
            "Name": "Maximum discharge current per inverter device",
            "Description": "Maximum discharge current per inverter device",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": 5,
                "Max": 345
            },
            "Value": "float",
            "Return": {
                "Description": "amperage per inverter",
                "Unit": "Amps",
                "Value": "float"
            },
            "Category": "Victron",
            "Handler": "Range"
        },
        {
            "Alias": "CellDischargeProtectionMin",
            "Instruction": "CLOW",
            "Name": "cell under-Voltage discharge protection",
            "Description": "cell under-Voltage discharge protection",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": 1.8,
                "Max": 4.2
            },
            "Value": "float",
            "Return": {
                "Description": "Voltage per cell",
                "Unit": "Volt",
                "Value": "float"
            },
            "Category": "Victron",
            "Handler": "Range"
        },
        {
            "Alias": "CANBUSFrequency",
            "Instruction": "CANF",
            "Name": "CAN Frequency",
            "Description": "CAN Frequency",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": 1,
                "Max": 2
            },
            "Value": "char",
            "Return": {
                "Description": "1 is 250 kb/s 2 is 500 kb/s",
                "Unit": "identity",
                "Value": "char"
            },
            "Category": "Victron",
            "Handler": "Range"
        },
        {
            "Alias": "MaximumVoltageExcursionCount",
            "Instruction": "VMAX",
            "Name": "Number of exceeded values of CMAX",
            "Description": "Number of exceeded values of CMAX",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": 0,
                "Max": 8000
            },
            "Value": "int",
            "Return": {
                "Description": "Count of cycles of cells over max Voltage",
                "Unit": "count",
                "Value": "int"
            },
            "Category": "Error",
            "Handler": "Range"
        },
        {
            "Alias": "MinimumVoltageExcursionCount",
            "Instruction": "VMIN",
            "Name": "Number of exceeded values of CMIN",
            "Description": "Number of exceeded values of CMIN",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": 0,
                "Max": 8000
            },
            "Value": "int",
            "Return": {
                "Description": "Count of cycles of cells under minimum Voltage",
                "Unit": "count",
                "Value": "int"
            },
            "Category": "Error",
            "Handler": "Range"
        },
        {
            "Alias": "SoftwareVersion",
            "Instruction": "SWVR",
            "Name": "BMS software version",
            "Description": "BMS software version",
            "Common": true,
            "ReadOnly": true,
            "Range": null,
            "Value": null,
            "Return": {
                "Description": "Current version of software on BMS",
                "Unit": "Description",
                "Value": "string"
            },
            "Category": "BMS",
            "Handler": "String"
        },
        {
            "Alias": "HardwareVersion",
            "Instruction": "HWVR",
            "Name": "BMS hardware version",
            "Description": "BMS hardware version",
            "Common": true,
            "ReadOnly": true,
            "Range": null,
            "Value": null,
            "Return": {
                "Description": "Hardware revision of BMS",
                "Unit": "Description",
                "Value": "string"
            },
            "Category": "BMS",
            "Handler": "String"
        },
        {
            "Alias": "CalibrationEvenCells",
            "Instruction": "EAVC",
            "Name": "Even cells calibration value",
            "Description": "Even cells calibration value",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": -0.0003,
                "Max": 0.0003
            },
            "Value": "float",
            "Return": {
                "Description": "even cell calibration value in volts",
                "Unit": "Volt",
                "Value": "float"
            },
            "Category": "BMS",
            "Handler": "Range"
        },
        {
            "Alias": "CalibrationOddCells",
            "Instruction": "ODDC",
            "Name": "Odd cells calibration value",
            "Description": "Odd cells calibration value",
            "Common": false,
            "ReadOnly": false,
            "Range": {
                "Min": -0.0003,
                "Max": 0.0003
            },
            "Value": "float",
            "Return": {
                "Description": "odd cell calibration value in volts",
                "Unit": "Volt",
                "Value": "float"
            },
            "Category": "BMS",
            "Handler": "Range"
        },
        {
            "Alias": "ADCReferenceVoltage",
            "Instruction": "REFC",
            "Name": "ADC reference Voltage 5.000 V +/- 3 mV",
            "Description": "Analog Digital Converter reference Voltage 5.000 V +/- 3 mV",
            "Common": false,
            "ReadOnly": true,
            "Value": "float",
            "Return": {
                "Description": "ADC reference Voltage value",
                "Unit": "Volt",
                "Value": "float"
            },
            "Category": "BMS",
            "Handler": "Range"
        }
    ]
}