# iobroker\.miner 中文文档

规范地址：https://npmcn.com/package/iobroker.miner/

版本：1\.2\.0
npm 元数据更新时间：2026-11-03T21:49:52.853Z
中文译文更新时间：2026-11-03T22:22:34.655Z
软件包许可：GPL-3\.0-only

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/iobroker.miner
原文对照：https://npmcn.com/package/iobroker.miner/?lang=original
项目主页：https://github.com/SimonFischer04/ioBroker.miner
源码仓库：https://github.com/SimonFischer04/ioBroker.miner

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：1.7 MB，634 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- Node.js 要求：\>= 22
- 运行依赖：5 个
- 首次发布：2026-04-06T23:52:17.519Z
- 最新版本发布：2026-11-03T21:49:52.400Z
- 已发布版本数：6（近 12 个月 6 个）

## 中文简介

与不同的加密矿工api交互

## 安装

```sh
npm install iobroker.miner
```

也可以使用：`pnpm add iobroker.miner`、`yarn add iobroker.miner`、`bun add iobroker.miner`

## README

![Logo](https://npmcn.com/package/iobroker.miner/admin/miner.png)

# ioBroker.miner

[![NPM version](https://img.shields.io/npm/v/iobroker.miner.svg)](https://www.npmjs.com/package/iobroker.miner) [![Downloads](https://img.shields.io/npm/dm/iobroker.miner.svg)](https://www.npmjs.com/package/iobroker.miner) ![Number of Installations](https://iobroker.live/badges/miner-installed.svg) ![Current version in stable repository](https://iobroker.live/badges/miner-stable.svg)

[![NPM](https://nodei.co/npm/iobroker.miner.png?downloads=true)](https://nodei.co/npm/iobroker.miner/)

**测试:** ![Test and Release](https://github.com/SimonFischer04/ioBroker.miner/workflows/Test%20and%20Release/badge.svg) [![Coverage Status](https://coveralls.io/repos/github/SimonFischer04/ioBroker.miner/badge.svg?branch=main)](https://coveralls.io/github/SimonFischer04/ioBroker.miner?branch=main)

## ibroker的矿工适配器

与不同的加密矿工api交互

## 路线图

-   [x] V0.1：设备管理，TRM实现
-   [x] 更多矿工支持：bos+， xmrig, avalon，…？
-   [ ] 实现更多功能（控件+来自设备的信息）
-   [ ] 池支持
-   [ ] 设备发现
-   [ ] 哨兵
-   [ ] 更多：参见Todo。总经理/事务

## 用法

当在实例设置（或Admin DeviceManager选项卡）中添加新设备时，你应该得到这样一个对话框：

![AddDevice.png](https://npmcn.com/package/iobroker.miner/docs/AddDevice.png)

这些选项应该是不言自明的。它们都有更多细节的工具提示。如果有任何不清楚的地方，请在问题、讨论或论坛中提出。

### 大脑OS矿机类型

有两种brainins矿机实现，因为brainins在固件世代之间改变了API堆栈：

-   `bos`：使用这个为官方的大脑操作系统固件 `>= 23.03`，通常是Antminer S19系列及更新版本。这个实现使用gRPC上的brainins OS公共API （PAPI）。
-   `bosMiner`：将此用于遗留的brains OS固件 `< 23.03`，通常是s19之前的设备，如Antminer S9和S17系列。这将继续使用旧的与cgminer兼容的API。

`bosMiner` 还支持 `control.powerTarget` 状态。Legacy brains OS并没有通过cgminer兼容的API来公开这一点，所以适配器使用SSH解决方案：它登录到矿工，更新 `power_target` 在 `[autotuning]` 节和 `timestamp` 在 `[format]` 的部分 `/etc/bosminer.toml`，将备份存储在 `/etc/bosminer.toml.iobroker-power-target.bak`,停止 `bosminer`，写入配置，然后启动 `bosminer` 再一次。配置有效的SSH凭据 `bosMiner` 设备;默认用户名为 `root` 没有密码。

警告:改变 `control.powerTarget` 在旧 `bosMiner` 设备需要一个完整的 `bosminer` 停止/启动循环。不要频繁更改此值；将它用于有意的目标更改，而不是用于快速的自动化循环。

如果您不确定选择哪个，请先检查固件生成/设备系列：

-   S19/S21/T19和更新的brainins OS映像列在当前固件下载流程中，应该正常使用 `bos`。
-   S17图片发布为 `v 23.01` 和S9图像为 `v 22.08.1` 在大脑下载页面上，所以那些后代应该使用 `bosMiner`。

引用:

-   brains OS公共API： [https://academy.braiins.com/braiins-os/papi-about](https://academy.braiins.com/braiins-os/papi-about)
-   brains OS固件下载： [https://braiins.com/os-firmware/download](https://braiins.com/os-firmware/download)

### 没有应用程序的阿瓦隆web登录

阿瓦隆Nano 3 / 3S矿机的web界面没有密码形式：它显示一个QR码，必须用阿瓦隆家庭应用程序扫描。适配器可以批准登录：

1.  在设备设置中输入矿工的web密码(`web password`）. 这是在Avalon Family应用程序中为矿工设置的密码。
2.  在浏览器中打开矿工的IP地址，显示带有二维码的登录页面。
3.  在设备管理器中单击设备上的“批准web登录”。浏览器在5秒内登录成功。

这与扫描QR码的原理相同：适配器向矿工发送 `qr_auth` 应用程序发送的命令，用web密码签名。

固件检查BOS使用最后报告的控制板类型和安装版本，包括当设备离线或禁用时。BOS设备必须至少报告过一次它的身份。Avalon的更新检查目前只覆盖Nano 3的确切型号：应用程序 `nano3` feed没有经过验证的Nano 3S兼容性，因此Nano 3S更新状态仍然未知。

## 对象模型

所有对象都是在下面创建的：

`miner.<instance>.miner.<minerId>`

`<minerId>` 是来自设备配置的稳定ID (`settings.id`）. 这允许在同一主机上运行多个挖矿进程。

### 组(渠道)

-   `info`： identity/config/firmware/connection meta
-   `stats`：实时性能指标（哈希值、份额、功率、温度……）
-   `control`：可写控件（启动/停止，重启，…）
-   `raw`：原始API有效负载（专家）

### 实体（可选的子树）

一些矿工公开子实体。如果可用，它们被放置在矿工下面：

-   `pools.<index>...`
-   `hardware.gpus.<index>...`
-   `hardware.hashboards.<index>...`

### 例子

-   `miner.0.miner.<minerId>.enabled`
-   `miner.0.miner.<minerId>.control.running`
-   `miner.0.miner.<minerId>.stats.totalHashrate`
-   `miner.0.miner.<minerId>.hardware.gpus.0.stats.temp`
-   `miner.0.miner.<minerId>.raw.stats`

### 启用/禁用挖矿器

每个挖矿设备都有一个可写顶层 `enabled` 状态:

`miner.<instance>.miner.<minerId>.enabled`

将此状态设置为 `false` 在运行时禁用适配器中的挖掘器。被禁用的矿工被卸载，并且没有轮询/控制处理对他们有效。把它设回 `true` 在不重新启动适配器的情况下再次初始化挖掘器。

这和 `control.running`： `enabled` 控制适配器是否管理挖矿器，而 `control.running` 请求受支持的矿机启动或停止挖矿。

### 树的例子

这只是一个概述/想法/计划。它们还没有全部实现，但它应该让您了解预期的结构和命名。实际的实现可能在一些细节上有所不同，但总体结构应该与此相似。

```
miner.0
  miner
    <minerId>                        (device)
      enabled                        (boolean)  enable/disable adapter handling for this miner
      info                           (channel)
        minerType                    (string)   e.g. xmRig / teamRedMiner / bosMiner
        host                         (string)
        version                      (string)   (maps to feature: version)
        online                        (boolean)  derived from lastSeen
        lastSeen                     (number)   unix ms
      stats                          (channel)
        totalHashrate                (number)   H/s (maps to feature: totalHashrate)
        power                        (number)   W
        dynamicPowerTarget           (number)   W, current dynamic target reported by miner
        efficiency                   (number)   H/W
        acceptedShares               (number)
        rejectedShares               (number)
      control                        (channel)  (writable states only here, top-level)
        running                      (boolean)  start/stop (maps to feature: running)
        reboot                       (boolean)  "button"
        profile                      (string)   performance profile (e.g. low/medium/high)
        powerTarget                  (number)   W, configured target to write to miner
      pools                          (channel)
        0                            (channel)
          info
            url                      (string)
            user                     (string)
          stats
            status                   (string)
            acceptedShares           (number)
            rejectedShares           (number)
        1 ...
      hardware                       (channel)
        gpus                         (channel)
          0                          (channel)
            info
              name                   (string)
            stats
              hashrate               (number)
              temp                   (number)   °C
              fanRpm                 (number)
              power                  (number)
          1 ...
        hashboards                   (channel)  (ASICs)
          0
            stats
              hashrate               (number)
              temp                   (number)
      raw                            (channel)
        stats                        (object/string) raw miner payload (maps to feature: rawStats)
```

## 更新日志

### 1.2.0 (2026-11-03)

-   (claude) **新**每天检查一次矿工可用的固件/软件更新，并在设备管理器中显示它们：新状态 `info.latestVersion` 和 `info.updateAvailable` （brainins OS, XMRig, TeamRedMiner， icerriver OC固件，Avalon Nano 3），加上brainins OS的自动升级状态。可以在实例设置中关闭；“检查更新”动作立即检查（#195）
-   (claude) **固定**： `info.online` 现在切换到 `false` 在连续三次投票失败后，又回到 `true` 在下一次成功的时候；在轮询间隔后挂起的轮询计数为失败，但至少30秒，并且对brain OS （gRPC）和XMRig / icerriver （HTTP）的请求现在在该时间后被取消，而不是保持打开（#222）
-   (claude) **新**： Avalon Nano 3 / 3S：在没有Avalon Family应用程序的情况下，登录浏览器进入矿工的web界面。在设备设置中输入矿工的web密码，打开矿工的登录页面，并使用新的“批准web登录”设备操作（#182）
-   (claude) **新**： Avalon: WiFi信号强度为 `info.rssi` （dBm），也显示在设备管理器中。它与现有的投票请求一起提供，因此不需要额外的往返费用；矿工在有线连接或固件不报告它只是让它空（#178）
-   (claude) **新**：设备管理器中的电源目标（brain OS） `bos` 和 `bosMiner`)：在设备卡上设置正确；该值仅与“Set”或Enter一起发送，而不是在每次击键时发送。为 `bos`， `control.powerTarget` 现在显示了矿工的配置目标（当它在其他地方被改变时），并且矿工接受的范围之外的值在到达它之前被拒绝（#176）
-   (claude) **增强**：无法到达的矿工不再以全速率进行轮询：每次失败的轮询之间的时间加倍，最多5分钟，稍微随机化，并在下一次成功的轮询时返回轮询间隔（#175）
-   (claude) **固定**：实例保持黄色（“连接到设备或服务”：没有），尽管它的矿工是可访问的： `info.connection` 现在列出了可访问的矿工（与sonoff适配器一样，以逗号分隔），因此，当至少有一个启用的矿工可访问时，实例是绿色的，并且管理员会显示哪些矿工（#231）
-   依赖更新

### 1.1.0 (2026-07-12)

-   （副驾驶）适配器需要node.js >= 22现在

-   (SimonFischer04) **新**：增加了一个新的 `bos` 使用brainins公共API的新brainins OS固件的miner类型
-   (SimonFischer04) **增强**：扩展遗产 `bosMiner` 可写设备 `control.powerTarget` 支持有意的功率目标更改
-   (SimonFischer04) **新**：添加顶级 `enabled` 状态以在运行时动态启用或禁用矿机处理
-   (SimonFischer04) **固定**：从本地部分和代码中删除了示例配置（option1, option2）（修复#126 / E5040）

### 1.0.4 (2026-04-07)

-   修复package-json中的repo url

### 1.0.3 (2026-04-07)

-   增加管理员要求来修复DM（在当前的7.7.22稳定版中根本不起作用）

### 1.0.2 (2026-04-07)

-   (SimonFischer04) **CI / CD**将部署工作流从NPM经典令牌迁移到可信发布（OIDC）（修复#80）
-   清理自述文件

[旧的变更日志可以在这里找到](https://npmcn.com/package/iobroker.miner/CHANGELOG_OLD.md)

## 学分

-   徽标是使用ChatGPT创建的

## 许可证

版权所有(c) 2026西蒙·费舍尔04 [simi.fischa@gmail.com](mailto:simi.fischa@gmail.com)

本项目在GNU通用公共许可证v3.0下授权-参见 [许可证](https://github.com/SimonFischer04/ioBroker.miner/blob/main/LICENSE) 获取详细信息。

## 常见问题

### iobroker\.miner 是什么？

与不同的加密矿工api交互

### 如何安装 iobroker\.miner？

在项目目录运行 npm install iobroker\.miner，或使用 pnpm add / yarn add / bun add。

### iobroker\.miner 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/iobroker\.miner 是否存在。

### iobroker\.miner 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### iobroker\.miner 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>= 22。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### iobroker\.miner 可以商用吗？

iobroker\.miner 使用 GPL-3\.0-only 许可。强 Copyleft：分发包含该代码的软件时，整个作品需以 GPL-3\.0 兼容许可开源，并附带专利与反锁定条款。仅内部使用不触发此义务。以上为概括，不构成法律意见，请以许可原文为准。

### iobroker\.miner 还在维护吗？

最新版本 1\.2\.0 发布于 2026/11/04（1 天前）；至今共发布 6 个版本，其中过去 12 个月发布了 6 个；首次发布于 2026/04/07。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

