Temperature page with live chain data from stats.cgi
Stored telemetry with automatic refresh from the database
Online Miners
[[onlineMiners.length]] / [[miners.length]]
Pool [[poolMiners.length]] · Solo [[soloMiners.length]]
Updated [[formatRelativeTime(lastUpdated)]]
Hashrate
TOTAL [[formatHashrate(totalRateGhs, currentRateUnit)]] [[currentRateUnit]]
POOL [[formatHashrate(poolRateGhs, currentRateUnit)]] [[currentRateUnit]]
SOLO [[formatHashrate(soloRateGhs, currentRateUnit)]] [[currentRateUnit]]
BTC Price
[[formatCurrency(miningInfo.btc_price_eur, 'EUR')]]
[[formatCurrency(miningInfo.btc_price_usd, 'USD')]]
24h [[formatCurrency(miningInfo.price_24h_eur, 'EUR')]] → [[formatSignedCurrency(miningInfo.price_change_24h_eur, 'EUR')]] ([[formatPercentSigned(miningInfo.price_change_24h_percent)]])
7d [[formatCurrency(miningInfo.price_7d_eur, 'EUR')]] → [[formatSignedCurrency(miningInfo.price_change_7d_eur, 'EUR')]] ([[formatPercentSigned(miningInfo.price_change_7d_percent)]])
1m [[formatCurrency(miningInfo.price_30d_eur, 'EUR')]] → [[formatSignedCurrency(miningInfo.price_change_30d_eur, 'EUR')]] ([[formatPercentSigned(miningInfo.price_change_30d_percent)]])
1y [[formatCurrency(miningInfo.price_1y_eur, 'EUR')]] → [[formatSignedCurrency(miningInfo.price_change_1y_eur, 'EUR')]] ([[formatPercentSigned(miningInfo.price_change_1y_percent)]])
BTC Price
Fetching latest market data…
Network Difficulty
[[formatDifficulty(miningInfo.network_difficulty)]]
[[trendIcon(miningInfo)]] Next: [[formatDifficulty(computeNextDifficulty(miningInfo))]] ( [[formatPercentSigned(miningInfo.difficulty_change_percent)]] )
Progress: [[formatPercent(miningInfo.difficulty_progress_percent)]]
Remaining Time: [[formatDuration(miningInfo.remaining_time_seconds)]]
Last adj: [[formatPercentSigned(miningInfo.previous_adjustment_percent)]] · [[formatDateTime(miningInfo.previous_adjustment_time)]]
Network Difficulty
Waiting for retarget data…
Latest Control Result
[[selectedMiner ? (selectedMiner.name || selectedMiner.ip_address || `Miner ${selectedMiner.id}`) : `Miner ${latestSelectedControlEvent.miner_id}`]]
| Status | Name | IP Address | Hashrate (30m) | Chips (OK/Bad) | PCB Temp (Min/Max) | PIC Max (temp_pic) | PCB Max (temp_pcb) | Chip Max (temp_chip) | Last Update | Actions |
|---|---|---|---|---|---|---|---|---|---|---|
|
[[miner.online ? 'Online' : 'Offline']]
[[formatElapsedTime(miner.elapsed)]]
|
[[miner.name || 'N/A']] | [[miner.ip_address]] | [[formatHashrate(miner.rate_30m, currentRateUnit)]] [[currentRateUnit]] | [[miner.asic_ok || 0]] / [[miner.asic_bad || 0]] | [[formatTemperaturePair(miner.temp_pcb)]] | [[formatTempValue(miner.max_temp_pic)]] | [[formatTempValue(miner.max_temp_pcb)]] | [[formatTempValue(miner.max_temp_chip)]] | [[formatTimestamp(miner.timestamp)]] |
| Period | BTC | EUR |
|---|---|---|
| Daily | [[rewardEstimates ? formatReward(rewardEstimates.daily.btc, 8) : '-']] | [[rewardEstimates ? formatReward(rewardEstimates.daily.eur, 2) : '-']] |
| Weekly | [[rewardEstimates ? formatReward(rewardEstimates.weekly.btc, 8) : '-']] | [[rewardEstimates ? formatReward(rewardEstimates.weekly.eur, 2) : '-']] |
| Monthly | [[rewardEstimates ? formatReward(rewardEstimates.monthly.btc, 8) : '-']] | [[rewardEstimates ? formatReward(rewardEstimates.monthly.eur, 2) : '-']] |
Net rewards after [[formatPercent(clampPercentage(poolFee))]] pool fee.
Based on current network difficulty and your hashrate.
PIC Temps: [[formatChainTemps(chain.temp_pic)]]
PCB Temps: [[formatChainTemps(chain.temp_pcb)]]
Chip Temps: [[formatChainTemps(chain.temp_chip)]]
Max (PIC / PCB / Chip): [[formatTempValue(chain.max_pic)]] / [[formatTempValue(chain.max_pcb)]] / [[formatTempValue(chain.max_chip)]]
Real Rate: [[formatHashrate(chain.rate_real, currentRateUnit)]] [[currentRateUnit]]
Avg Freq: [[chain.freq_avg || 'N/A']] MHz
Hardware Errors: [[chain.hw || 0]]
PIC Temps: [[formatChainTemps(chain.temp_pic)]]
PCB Temps: [[formatChainTemps(chain.temp_pcb)]]
Chip Temps: [[formatChainTemps(chain.temp_chip)]]
ASICs: [[chainAsicCounts(chain).ok]] / [[chainAsicCounts(chain).bad]]
Compact history for offline, online, restarts, and control errors.
Input Temp = lowest positive endpoint temperature across temp_pic, temp_pcb, and temp_chip. PIC/PCB/Chip lines are maximum values per sample from each respective field.
| Time | Input Min (lowest endpoint) | PIC Max (temp_pic) | PCB Max (temp_pcb) | Chip Max (temp_chip) |
|---|---|---|---|---|
| [[formatTimestamp(row.timestamp)]] | [[formatTempValue(row.min_temp_input)]] | [[formatTempValue(row.max_temp_pic)]] | [[formatTempValue(row.max_temp_pcb)]] | [[formatTempValue(row.max_temp_chip)]] |