Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

StealthMiner / LuxOS - Exergy Home Assistant Integration

Monitor and control miners running LuxOS firmware directly in Home Assistant. Full control over power, profiles, and mining operations.

Before You Start

Before installing this integration:

  1. Home Assistant 2024.1.0 or newer - This integration requires HA 2024.1.0+.

  2. HACS installed - This is a custom integration distributed via HACS. See our system configuration guide if you need to set up HACS.

  3. Miner running LuxOS firmware - Your miner must be flashed with LuxOS firmware.

  4. Miner IP address and port 4028 accessible - LuxOS API runs on port 4028.

What is LuxOS?

LuxOS is alternative firmware for bitcoin miners that provides:

  • Enhanced control - Granular power and performance settings
  • ATM (Auto-Tune Mode) - Automatic optimization for best performance
  • Multiple profiles - Switch between preset configurations
  • API access - Full control via HTTP API on port 4028

Supported Hardware

LuxOS firmware runs on various miner models including Antminer S19 series and other compatible hardware. Check LuxOS compatibility documentation for your specific model.

Integration Features

The Exergy StealthMiner/LuxOS integration provides comprehensive monitoring and control:

Sensors

SensorEntity ExampleDescription
Hashrate (5s)sensor.stealthminer_hashrate_5s5-second hashrate average
Hashrate (1m)sensor.stealthminer_hashrate_1m1-minute hashrate average
Hashrate (15m)sensor.stealthminer_hashrate_15m15-minute hashrate average
Hashrate (30m)sensor.stealthminer_hashrate_30m30-minute hashrate average
Hashrate (avg)sensor.stealthminer_hashrate_avgOverall average hashrate
Powersensor.stealthminer_powerCurrent power consumption (W)
Efficiencysensor.stealthminer_efficiencyEfficiency in W/TH
Board Temperaturesensor.stealthminer_board_tempHashboard temperature
Fan Speed (%)sensor.stealthminer_fan_percentFan speed percentage
Fan Speed (RPM)sensor.stealthminer_fan_rpmFan speed in RPM
Shares Acceptedsensor.stealthminer_shares_acceptedTotal accepted shares
Shares Rejectedsensor.stealthminer_shares_rejectedTotal rejected shares
Shares Stalesensor.stealthminer_shares_staleTotal stale shares
Active Poolsensor.stealthminer_poolCurrent pool URL
Active Profilesensor.stealthminer_profileActive profile name
Statussensor.stealthminer_statusMiner operational status

Binary Sensors

Binary SensorEntity ExampleDescription
Connectivitybinary_sensor.stealthminer_connectivityConnection to miner
Pool Connectedbinary_sensor.stealthminer_pool_connectedPool connection status
ATM Activebinary_sensor.stealthminer_atm_activeAuto-Tune Mode state
Mining Activebinary_sensor.stealthminer_miningMining activity status

Controls

ControlEntity ExampleTypeDescription
ATM Toggleswitch.stealthminer_atmSwitchEnable/disable Auto-Tune Mode
Sleep Modeswitch.stealthminer_sleepSwitchPut miner in sleep mode
Profile Selectorselect.stealthminer_profileSelectChoose operating profile
Power Limitnumber.stealthminer_power_limitNumberSet power consumption limit (W)
Rebootbutton.stealthminer_rebootButtonReboot the miner
Factory Resetbutton.stealthminer_resetButtonFactory reset (caution!)
Wakebutton.stealthminer_wakeButtonWake from sleep mode

Note: Entity IDs are generated based on your miner name. Find actual IDs at Settings > Devices & Services > StealthMiner > [your device].

Installation

Step 1: Install via HACS

  1. Open Home Assistant
  2. Navigate to HACS > Integrations
  3. Click + Explore & Download Repositories
  4. Search for “StealthMiner” or “Exergy StealthMiner”
  5. Click Download
  6. Restart Home Assistant

Step 2: Add Your Miner

  1. Go to Settings > Devices & Services
  2. Click + Add Integration
  3. Search for “StealthMiner”
  4. Enter your miner’s IP address
  5. Click Submit
SettingDefaultDescription
IP AddressYour miner’s local IP address
Port4028LuxOS API port

Step 3: Verify

The integration creates a device with all sensors and controls. Check the device page to see all available entities.

Understanding LuxOS Features

Auto-Tune Mode (ATM)

ATM automatically optimizes your miner for best performance:

  • Monitors chip health and temperatures
  • Adjusts frequency and voltage dynamically
  • Balances hashrate vs efficiency
  • Recommended for most users

Toggle ATM with switch.stealthminer_atm.

Profiles

LuxOS supports multiple operating profiles:

Profile TypeUse Case
DefaultStandard operation
EfficiencyMaximize W/TH efficiency
PerformanceMaximum hashrate
CustomUser-defined settings

Switch profiles via select.stealthminer_profile.

Sleep Mode

Sleep mode stops mining while keeping the miner responsive:

  • Fans spin down
  • Power consumption drops to idle
  • Quick wake-up compared to full power cycle
  • Useful for demand response or time-of-use optimization

Control with switch.stealthminer_sleep and button.stealthminer_wake.

Power Limiting

Set a maximum power draw with number.stealthminer_power_limit:

  • Miner adjusts performance to stay under limit
  • Useful for electrical capacity constraints
  • Combine with time-of-use automations

Dashboard Integration

Create a comprehensive miner control panel:

type: vertical-stack
cards:
  - type: entities
    title: StealthMiner Status
    entities:
      - entity: sensor.stealthminer_hashrate_15m
        name: Hashrate (15m)
      - entity: sensor.stealthminer_power
        name: Power
      - entity: sensor.stealthminer_efficiency
        name: Efficiency
      - entity: sensor.stealthminer_board_temp
        name: Temperature
      - entity: binary_sensor.stealthminer_mining
        name: Mining Active

  - type: entities
    title: Controls
    entities:
      - entity: switch.stealthminer_atm
        name: Auto-Tune Mode
      - entity: switch.stealthminer_sleep
        name: Sleep Mode
      - entity: select.stealthminer_profile
        name: Profile
      - entity: number.stealthminer_power_limit
        name: Power Limit

Automation Ideas

Thermostat Integration

Use your miner as a heater controlled by room temperature:

automation:
  - alias: "StealthMiner thermostat - wake on cold"
    trigger:
      - platform: numeric_state
        entity_id: sensor.room_temperature
        below: 68
    condition:
      - condition: state
        entity_id: switch.stealthminer_sleep
        state: "on"
    action:
      - service: button.press
        target:
          entity_id: button.stealthminer_wake

  - alias: "StealthMiner thermostat - sleep on warm"
    trigger:
      - platform: numeric_state
        entity_id: sensor.room_temperature
        above: 72
    condition:
      - condition: state
        entity_id: switch.stealthminer_sleep
        state: "off"
    action:
      - service: switch.turn_on
        target:
          entity_id: switch.stealthminer_sleep

Time-of-Use Power Limiting

Reduce power during peak electricity rates:

automation:
  - alias: "StealthMiner peak rate power limit"
    trigger:
      - platform: time
        at: "16:00:00"
    action:
      - service: number.set_value
        target:
          entity_id: number.stealthminer_power_limit
        data:
          value: 2000

  - alias: "StealthMiner off-peak full power"
    trigger:
      - platform: time
        at: "21:00:00"
    action:
      - service: number.set_value
        target:
          entity_id: number.stealthminer_power_limit
        data:
          value: 3500

Pool Disconnect Alert

automation:
  - alias: "StealthMiner pool disconnect alert"
    trigger:
      - platform: state
        entity_id: binary_sensor.stealthminer_pool_connected
        to: "off"
        for:
          minutes: 5
    action:
      - service: notify.mobile_app
        data:
          message: "StealthMiner lost pool connection"

Profile Switching Based on Conditions

automation:
  - alias: "StealthMiner efficiency mode during peak"
    trigger:
      - platform: time
        at: "14:00:00"
    action:
      - service: select.select_option
        target:
          entity_id: select.stealthminer_profile
        data:
          option: "Efficiency"

  - alias: "StealthMiner performance mode off-peak"
    trigger:
      - platform: time
        at: "22:00:00"
    action:
      - service: select.select_option
        target:
          entity_id: select.stealthminer_profile
        data:
          option: "Performance"

Troubleshooting

Integration not finding miner

  1. Verify miner is powered and connected to network
  2. Confirm IP address is correct
  3. Check port 4028 is accessible: telnet [IP] 4028
  4. Verify LuxOS firmware is installed and running

Controls not responding

  1. Some controls require specific LuxOS versions
  2. Check miner is not in a transitional state
  3. Reload the integration
  4. Check Home Assistant logs for API errors

ATM not working as expected

  1. ATM requires time to tune (hours to days for optimal results)
  2. Check chip health in LuxOS web interface
  3. Manual profile changes may override ATM settings

Entities showing “Unavailable”

  1. Check miner is online and reachable
  2. Verify port 4028 connectivity
  3. Reload the integration: Settings > Devices & Services > StealthMiner > ⋮ > Reload
  4. Review Home Assistant logs

What’s Next?

Monitor Pool Stats

Set Up Heating Automation

Build a Dashboard

Source Code & Support