FirmwareAPI DocumentationCGminer commands

temps

Shows per-board temperature data

temps

Description

Shows per-board temperature data with associated metadata.

Command

$ echo '{"command": "temps"}' | nc $MINER_IP 4028 | jq

Examples

The output fields change depending on the miner model. The example below shows the fields available on a Hydro model; please check the Field Details section to see the full list of available fields.

$ echo '{"command": "temps"}' | nc $MINER_IP 4028 | jq
{
  "METADATA": [
    {
      "BottomLeft": {
        "IsCritical": true,
        "Label": "Board Outlet",
        "Position": [
          0,
          0
        ]
      },
      "BottomRight": {
        "IsCritical": true,
        "Label": "Water Inlet",
        "Position": [
          1,
          1
        ]
      },
      "TopLeft": {
        "IsCritical": false,
        "Label": "Board Inlet",
        "Position": [
          0,
          1
        ]
      },
      "TopRight": {
        "IsCritical": true,
        "Label": "Water Outlet",
        "Position": [
          1,
          0
        ]
      }
    }
  ],
  "STATUS": [
    {
      "Code": 201,
      "Description": "LUXminer 2024.10.3.150831-2f8692f0",
      "Msg": "3 Temp(s)",
      "STATUS": "S",
      "When": 1728398031
    }
  ],
  "TEMPS": [
    {
      "BottomLeft": 58,
      "BottomRight": 42,
      "ID": 1,
      "TEMP": 1,
      "TopLeft": 56,
      "TopRight": 48
    },
    {
      "BottomLeft": 58,
      "BottomRight": 42,
      "ID": 2,
      "TEMP": 2,
      "TopLeft": 55,
      "TopRight": 48
    },
    {
      "BottomLeft": 59,
      "BottomRight": 43,
      "ID": 0,
      "TEMP": 0,
      "TopLeft": 56,
      "TopRight": 48
    }
  ],
  "id": 1
}

Field details

For the METADATA section:

Alongside TEMPS, the response includes a METADATA object keyed by sensor field name (e.g. TopLeft, BoardCh0). METADATA lists the sensors the LuxOS GUI lays out on the temperature card; a TEMPS key with no METADATA entry (such as Regulator) is reported over the API only. Each entry has:

FieldNotes
LabelHuman-readable name for UI display (e.g. "Board Exhaust (top)", "Chip (Max)", "Water Inlet").
Position[x, y] grid coordinates for UI layout.
IsCriticaltrue if this sensor participates in overtemp/shutdown decisions; false if it is display-only.

For the TEMPS section:

All temperatures are in °C. The set of fields present in each TEMPS entry depends on the miner's hardware — clients should iterate the entry's keys rather than assume a fixed schema.

FieldNotes
IDBoard ID. Starts at zero.
TEMPSame as ID.
BoardBoard temperature. (Whatsminer)
ChipMaximum chip on-die temperature for the hashboard. (Whatsminer)
TopLeft"Top left" board sensor. (S19, some S21 models, S19a)
TopRight"Top right" board sensor. (S19, some S21 models, S19a)
BottomLeft"Bottom left" board sensor. (S19, some S21 models, S19a)
BottomRight"Bottom right" board sensor. (S19, some S21 models, S19a)
TopLeftChipTop-left chip temperature. (S19a)
TopRightChipTop-right chip temperature. (S19a)
BottomLeftChipBottom-left chip temperature. (S19a)
BottomRightChipBottom-right chip temperature. (S19a)
BoardInletBoard inlet sensor. (some Hydro models)
BoardOutletBoard outlet sensor. (some Hydro models)
WaterInletWater inlet temperature. (some Hydro models)
WaterOutletWater outlet temperature. (some Hydro models)
BoardTopLeftTop-left board sensor. (I2C-mux models, e.g. S21 Pro, S21 XP, some Hydro models)
BoardMiddleLeftMiddle-left board sensor. (I2C-mux models)
BoardBottomLeftBottom-left board sensor. (I2C-mux models)
BoardTopRightTop-right board sensor. (I2C-mux models)
ChipTopLeftTop-left chip temperature. (I2C-mux models)
ChipMiddleLeftMiddle-left chip temperature. (I2C-mux models)
ChipBottomLeftBottom-left chip temperature. (I2C-mux models)
ChipTopRightTop-right chip temperature. (I2C-mux models)
BoardCh0 … BoardCh4Board sensor on channels 0–4. (I2C-mux hydro, e.g. U3 S21e XP Hydro)
ChipCh0 … ChipCh4Chip on-die temperature on channels 0–4. (I2C-mux hydro)
Board0 … Board5Board sensor next to chips 0–5; used for fan control and overtemp protection. (Z15 Pro, see below)
Chip0 … Chip5On-die temperature of chips 0–5; display only. (Z15 Pro)
RegulatorHashboard voltage regulator temperature; API only, no METADATA entry. Present once the first reading arrives, absent while the board is off. Same reading as RegulatorTemperature in hashboardctrlget. (Z15 Pro)

Antminer Z15 Pro

Each Z15 Pro hashboard has one sensor per chip, and each sensor reports two values: the board (PCB) temperature next to the chip, as Board0 to Board5, and the chip's on-die temperature, as Chip0 to Chip5. Only the Board values feed fan control and overtemp protection, and only those on the exhaust side are critical. TEMPS also carries a Regulator key for each board once its voltage regulator has reported; it has no METADATA entry.

The board ID values are the connector IDs 0 to 3: the miner has three boards on any three of its four connectors, so the IDs are not always 0, 1 and 2.

KeyLabelPositionIsCritical
Board0Board 0 (exhaust)[0, 0]true
Chip0Chip 0 (exhaust)[0, 1]false
Board1Board 1 (intake)[0, 2]false
Chip1Chip 1 (intake)[0, 3]false
Board3Board 3 (exhaust)[1, 0]true
Chip3Chip 3 (exhaust)[1, 1]false
Board2Board 2 (intake)[1, 2]false
Chip2Chip 2 (intake)[1, 3]false
Board4Board 4 (exhaust)[2, 0]true
Chip4Chip 4 (exhaust)[2, 1]false
Board5Board 5 (intake)[2, 2]false
Chip5Chip 5 (intake)[2, 3]false

This is a complete reply from an Antminer Z15 Pro with boards on connectors 0, 2 and 3. Each TEMPS entry carries twelve values from its six per-chip sensors, since each sensor reports both a Board and a Chip value, plus Regulator, which has no METADATA entry:

$ echo '{"command": "temps"}' | nc $MINER_IP 4028 | jq
{
  "METADATA": [
    {
      "Board0": {
        "IsCritical": true,
        "Label": "Board 0 (exhaust)",
        "Position": [
          0,
          0
        ]
      },
      "Board1": {
        "IsCritical": false,
        "Label": "Board 1 (intake)",
        "Position": [
          0,
          2
        ]
      },
      "Board2": {
        "IsCritical": false,
        "Label": "Board 2 (intake)",
        "Position": [
          1,
          2
        ]
      },
      "Board3": {
        "IsCritical": true,
        "Label": "Board 3 (exhaust)",
        "Position": [
          1,
          0
        ]
      },
      "Board4": {
        "IsCritical": true,
        "Label": "Board 4 (exhaust)",
        "Position": [
          2,
          0
        ]
      },
      "Board5": {
        "IsCritical": false,
        "Label": "Board 5 (intake)",
        "Position": [
          2,
          2
        ]
      },
      "Chip0": {
        "IsCritical": false,
        "Label": "Chip 0 (exhaust)",
        "Position": [
          0,
          1
        ]
      },
      "Chip1": {
        "IsCritical": false,
        "Label": "Chip 1 (intake)",
        "Position": [
          0,
          3
        ]
      },
      "Chip2": {
        "IsCritical": false,
        "Label": "Chip 2 (intake)",
        "Position": [
          1,
          3
        ]
      },
      "Chip3": {
        "IsCritical": false,
        "Label": "Chip 3 (exhaust)",
        "Position": [
          1,
          1
        ]
      },
      "Chip4": {
        "IsCritical": false,
        "Label": "Chip 4 (exhaust)",
        "Position": [
          2,
          1
        ]
      },
      "Chip5": {
        "IsCritical": false,
        "Label": "Chip 5 (intake)",
        "Position": [
          2,
          3
        ]
      }
    }
  ],
  "STATUS": [
    {
      "Code": 201,
      "Description": "LUXminer 2026.9.28.204000-ecdf06e",
      "Msg": "3 Temp(s)",
      "STATUS": "S",
      "When": 1790635349
    }
  ],
  "TEMPS": [
    {
      "Board0": 65,
      "Board1": 49,
      "Board2": 49,
      "Board3": 67,
      "Board4": 67,
      "Board5": 54,
      "Chip0": 79.5,
      "Chip1": 74.98,
      "Chip2": 76.99,
      "Chip3": 84.67,
      "Chip4": 84.95,
      "Chip5": 78.99,
      "ID": 3,
      "Regulator": 87,
      "TEMP": 3
    },
    {
      "Board0": 62,
      "Board1": 49,
      "Board2": 51,
      "Board3": 65,
      "Board4": 67,
      "Board5": 55,
      "Chip0": 80.53,
      "Chip1": 74.98,
      "Chip2": 78.98,
      "Chip3": 82.57,
      "Chip4": 84.95,
      "Chip5": 79.99,
      "ID": 2,
      "Regulator": 91,
      "TEMP": 2
    },
    {
      "Board0": 65,
      "Board1": 51,
      "Board2": 50,
      "Board3": 66,
      "Board4": 69,
      "Board5": 56,
      "Chip0": 83.08,
      "Chip1": 76.99,
      "Chip2": 77,
      "Chip3": 82.78,
      "Chip4": 84.99,
      "Chip5": 78.13,
      "ID": 0,
      "Regulator": 87,
      "TEMP": 0
    }
  ],
  "id": 1
}

On this page