iobroker.miner

中文文档
1.2.0发布于 2026/11/04GPL-3.0-onlyCommonJS构建来源已验证

与不同的加密矿工api交互

中文使用文档
文档目录19 节
  1. ibroker的矿工适配器
  2. 路线图
  3. 用法
  4. 大脑OS矿机类型
  5. 没有应用程序的阿瓦隆web登录
  6. 对象模型
  7. 组(渠道)
  8. 实体(可选的子树)
  9. 例子
  10. 启用/禁用挖矿器
  11. 树的例子
  12. 更新日志
  13. 1.2.0 (2026-11-03)
  14. 1.1.0 (2026-07-12)
  15. 1.0.4 (2026-04-07)
  16. 1.0.3 (2026-04-07)
  17. 1.0.2 (2026-04-07)
  18. 学分
  19. 许可证

Logo

ioBroker.miner

NPM version Downloads Number of Installations Current version in stable repository

NPM

测试: Test and Release Coverage Status

ibroker的矿工适配器

与不同的加密矿工api交互

路线图

  • V0.1:设备管理,TRM实现
  • 更多矿工支持:bos+, xmrig, avalon,…?
  • 实现更多功能(控件+来自设备的信息)
  • 池支持
  • 设备发现
  • 哨兵
  • 更多:参见Todo。总经理/事务

用法

当在实例设置(或Admin DeviceManager选项卡)中添加新设备时,你应该得到这样一个对话框:

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。

引用:

没有应用程序的阿瓦隆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)
  • 清理自述文件

旧的变更日志可以在这里找到

学分

  • 徽标是使用ChatGPT创建的

许可证

版权所有(c) 2026西蒙·费舍尔04 [email protected]

本项目在GNU通用公共许可证v3.0下授权-参见 许可证 获取详细信息。

版本与发布记录

iobroker.miner 共发布 6 个版本,首次发布于 2026/04/07;过去 12 个月发布了 6 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.2.0latest2026/11/041 天前
1.1.02026/07/133 个月前
1.0.42026/04/076 个月前
1.0.32026/04/076 个月前
1.0.22026/04/076 个月前
1.0.12026/04/076 个月前

关于 iobroker.miner 的常见问题

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 和提交记录判断。