zap

Bitaxe Monitor

Verified

by pietro395

Monitor and retrieve status information from Bitaxe Gamma (and compatible) Bitcoin miners via their HTTP API. Bitaxe Gamma is an open-source Bitcoin miner based on the BM1370 ASIC. It exposes a REST API at `http://<ip>/api/system/info` that returns real-time statistics including: - Hashrate (current, 1m, 10m, 1h averages) - Power consumption and voltage - Temperatures (ASIC, voltage regulator) - Fan speed and RPM - Share statistics (accepted/rejected) - Best difficulty found - WiFi status and si

View on GitHub

Bitaxe Monitor

Monitor and retrieve status information from Bitaxe Gamma (and compatible) Bitcoin miners via their HTTP API.

Overview

Bitaxe Gamma is an open-source Bitcoin miner based on the BM1370 ASIC. It exposes a REST API at http://<ip>/api/system/info that returns real-time statistics including:

  • Hashrate (current, 1m, 10m, 1h averages)
  • Power consumption and voltage
  • Temperatures (ASIC, voltage regulator)
  • Fan speed and RPM
  • Share statistics (accepted/rejected)
  • Best difficulty found
  • WiFi status and signal strength
  • Pool connection info
  • Uptime and version info

Usage

Use the provided script to fetch and display miner status:

python3 scripts/bitaxe_status.py [ip_address] [--format {json,text}] [--set-ip IP]

IP Configuration

The script looks for the Bitaxe IP in this order:

  1. Command line argument
  2. Config file (~/.config/bitaxe-monitor/config.json)
  3. BITAXE_IP environment variable
  4. Error (if none found)

Saving IP Configuration

Option 1: Save to config file (recommended)

python3 scripts/bitaxe_status.py --set-ip 192.168.1.100

This saves the IP to ~/.config/bitaxe-monitor/config.json.

The config file is stored in a dedicated directory and does not modify your shell profile files.

Option 2: Set environment variable

export BITAXE_IP=192.168.1.100
python3 scripts/bitaxe_status.py

Option 3: Set for a single command

BITAXE_IP=192.168.1.100 python3 scripts/bitaxe_status.py

Checking Status

With IP configured:

python3 scripts/bitaxe_status.py

Override with different IP:

python3 scripts/bitaxe_status.py 192.168.1.105

Get raw JSON data:

python3 scripts/bitaxe_status.py --format json

API Endpoints

The Bitaxe API provides these main endpoints:

  • GET /api/system/info - Complete system status (used by default)
  • GET /api/system/asic - ASIC-specific settings
  • GET /api/system/statistics - Historical statistics (requires data logging enabled)
  • GET /api/system/statistics/dashboard - Dashboard-formatted statistics

Key Status Fields

| Field | Description | Unit |

|-------|-------------|------|

| hashRate | Current hashrate | GH/s |

| hashRate_1m | 1-minute average | GH/s |

| hashRate_10m | 10-minute average | GH/s |

| power | Power consumption | Watts |

| temp | ASIC temperature | °C |

| vrTemp | Voltage regulator temp | °C |

| fanspeed | Fan speed percentage | % |

| fanrpm | Fan RPM | RPM |

| sharesAccepted | Accepted shares | count |

| sharesRejected | Rejected shares | count |

| bestDiff | Best difficulty found | number |

| wifiRSSI | WiFi signal strength | dBm |

| uptimeSeconds | System uptime | seconds |

Resources

scripts/

  • bitaxe_status.py - Main script to fetch and display Bitaxe status

- Supports both text (human-readable) and JSON output formats

- Handles connection errors gracefully

- Formats key metrics with emoji indicators

- Reads IP from config file or BITAXE_IP environment variable

- Saves IP to config file with --set-ip

Configuration

Config File Location

The script stores configuration in:

~/.config/bitaxe-monitor/config.json

This directory is created automatically when using --set-ip.

Environment Variables

| Variable | Description | Required |

|----------|-------------|----------|

| BITAXE_IP | IP address of your Bitaxe miner | Alternative to config file |

Error Handling

The script handles common errors:

  • Connection failures (wrong IP, device offline)
  • Invalid JSON responses
  • Network timeouts
  • Missing IP (prompts user to configure IP)

Command Reference

| Command | Description |

|---------|-------------|

| bitaxe_status.py | Check status using saved configuration |

| bitaxe_status.py <IP> | Check status of specific IP (one-time) |

| bitaxe_status.py --set-ip <IP> | Save IP to config file |

| bitaxe_status.py --format json | Output raw JSON |

| bitaxe_status.py --format text | Output formatted text (default) |

Examples

Quick setup (do once):

python3 scripts/bitaxe_status.py --set-ip 192.168.1.100

Daily usage:

python3 scripts/bitaxe_status.py

Check multiple miners:

python3 scripts/bitaxe_status.py 192.168.1.100
python3 scripts/bitaxe_status.py 192.168.1.101

References

For complete API documentation, see the official Bitaxe wiki:

https://osmu.wiki/bitaxe/api/

The OpenAPI specification is available at:

https://github.com/bitaxeorg/ESP-Miner/blob/master/main/http_server/openapi.yaml