temps
Shows per-board temperature data
temps
Description
Shows per-board temperature data with associated metadata.
Command
$ echo '{"command": "temps"}' | nc $MINER_IP 4028 | jqExamples
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:
| Field | Notes |
|---|---|
Label | Human-readable name for UI display (e.g. "Board Exhaust (top)", "Chip (Max)", "Water Inlet"). |
Position | [x, y] grid coordinates for UI layout. |
IsCritical | true 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.
| Field | Notes |
|---|---|
ID | Board ID. Starts at zero. |
TEMP | Same as ID. |
Board | Board temperature. (Whatsminer) |
Chip | Maximum 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) |
TopLeftChip | Top-left chip temperature. (S19a) |
TopRightChip | Top-right chip temperature. (S19a) |
BottomLeftChip | Bottom-left chip temperature. (S19a) |
BottomRightChip | Bottom-right chip temperature. (S19a) |
BoardInlet | Board inlet sensor. (some Hydro models) |
BoardOutlet | Board outlet sensor. (some Hydro models) |
WaterInlet | Water inlet temperature. (some Hydro models) |
WaterOutlet | Water outlet temperature. (some Hydro models) |
BoardTopLeft | Top-left board sensor. (I2C-mux models, e.g. S21 Pro, S21 XP, some Hydro models) |
BoardMiddleLeft | Middle-left board sensor. (I2C-mux models) |
BoardBottomLeft | Bottom-left board sensor. (I2C-mux models) |
BoardTopRight | Top-right board sensor. (I2C-mux models) |
ChipTopLeft | Top-left chip temperature. (I2C-mux models) |
ChipMiddleLeft | Middle-left chip temperature. (I2C-mux models) |
ChipBottomLeft | Bottom-left chip temperature. (I2C-mux models) |
ChipTopRight | Top-right chip temperature. (I2C-mux models) |
BoardCh0 … BoardCh4 | Board sensor on channels 0–4. (I2C-mux hydro, e.g. U3 S21e XP Hydro) |
ChipCh0 … ChipCh4 | Chip on-die temperature on channels 0–4. (I2C-mux hydro) |
Board0 … Board5 | Board sensor next to chips 0–5; used for fan control and overtemp protection. (Z15 Pro, see below) |
Chip0 … Chip5 | On-die temperature of chips 0–5; display only. (Z15 Pro) |
Regulator | Hashboard 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.
| Key | Label | Position | IsCritical |
|---|---|---|---|
Board0 | Board 0 (exhaust) | [0, 0] | true |
Chip0 | Chip 0 (exhaust) | [0, 1] | false |
Board1 | Board 1 (intake) | [0, 2] | false |
Chip1 | Chip 1 (intake) | [0, 3] | false |
Board3 | Board 3 (exhaust) | [1, 0] | true |
Chip3 | Chip 3 (exhaust) | [1, 1] | false |
Board2 | Board 2 (intake) | [1, 2] | false |
Chip2 | Chip 2 (intake) | [1, 3] | false |
Board4 | Board 4 (exhaust) | [2, 0] | true |
Chip4 | Chip 4 (exhaust) | [2, 1] | false |
Board5 | Board 5 (intake) | [2, 2] | false |
Chip5 | Chip 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
}