homebridge-brother-printer
展示了HomeKit中的Brother激光或喷墨打印机:它是否在打印,是否 需要注意的是,还剩下多少墨粉或墨水。所有内容都是通过SNMP本地读取的, 没有云账户和兄弟账户。
通用的AirPrint/IPP插件不能在许多兄弟打印机上显示真实的碳粉水平, 因为标准的Printer MIB只报告“一些剩余的”。兄弟节点自己的SNMP 记录携带实际百分比显示在打印机的网页上,这个插件 读这些东西。
每台打印机都有这些传感器:
- 打印机 (占用传感器):作业打印时检测到。在自动化中使用它。
- 打印机的问题 (接触式传感器):打开堵塞,打开盖子,空托盘或其他 错误。在Home应用中为它打开通知。
- 碳粉/墨水 (打印机附件上的电池电量):碳粉或墨水%,带Home's 本地低电量警报等于或低于您的阈值。在彩色打印机上显示 最低颜色,所以当任何颜色低时警报触发。
- 墨粉/墨瓦 (可选湿度传感器):液位作为一个数字放在自己的瓷砖上, 在彩色打印机上每种颜色一个。
虽然无法联系到打印机,但它们都显示为“无响应”。
需求
-
带有SNMP协议的Brother打印机。在真实的 MFC-L2750DW,并反对SNMP 从这些模型(从 哥哥 Home Assistant's Brother集成使用的图书馆):
种类 模型 读什么 Mono激光 Mfc-l2750dw、hl-l2340dw、dcp-l2540dn、dcp-7070dw、dcp-1618w 碳粉,鼓 彩色激光 DCP-L3550CDW, dcp - 9020车损险 每个颜色的墨粉,滚筒,皮带,熔断器,送纸套件 喷墨 Mfc-j680dw, mfc-j5110dw, dcp-j132w, dcp-t735dw, mfc-5490cn 油墨分色,油墨废盒 旧/墨缸 Hl-2270dw, hl-5350dn, mfc-t910dw 状态、问题、页数;这些不报告水平 其他兄弟模型通常使用相同的记录。报告,带有探针输出 下面,欢迎大家。
-
在打印机的网页中打开了SNMP: 网络→协议→SNMP (v1 / v2c, 只读就足够了)。缺省团体字为
public。 -
打印机的固定地址:在路由器中保留其IP,或者使用其mDNS 主机名(例如
brn3c2af4919dfc.local). -
Homebridge 1.6或更高版本(包括2。x), Node.js 18,20,22或24。
安装
搜索 兄弟打印机 在Homebridge UI的Plugins选项卡中,或者运行:
npm install -g homebridge-brother-printer
建议将其作为子桥运行。
配置
设置它在插件的设置屏幕,或在 config.json:
{
"platform": "BrotherPrinter",
"printers": [
{
"name": "Printer",
"host": "10.0.4.150"
}
]
}
| 选项 | 默认的 | 描述 |
|---|---|---|
name | Printer | 附件的名字。每个打印机必须是唯一的。 |
host | 打印机IP地址或主机名。没有配置的打印机将被忽略。 | |
community | public | SNMP团体字。 |
port | 161 | SNMP端口。 |
snmpVersion | auto | auto 尝试v2c,然后v1。集 1 对于只回答v1的旧打印机。 |
pollInterval | 60 | 民意调查之间的秒数(10-3600)。 |
lowTonerThreshold | 10 | 墨粉或油墨%等于或低于Home显示的低值(任何颜色,在彩色打印机上)。 |
faultSensor | true | 添加打印机问题接触传感器。 |
tonerTile | false | 在彩色打印机上增加湿度传感器,显示每种颜色的碳粉或油墨百分比。它们也在Home的气候总结中有所体现。 |
showDrum | false | 增加鼓的寿命作为第二个电池。见下文。 |
lowDrumThreshold | 10 | 滚筒和零件%(皮带、熔断器、激光装置、送纸装置、废墨盒)达到或低于该值时记录警告,且滚筒电池显示电量不足。 |
offlineAfter | 3 | 在打印机显示无响应之前,连续失败的轮询。 |
debug | false | 在信息级别记录每个民意调查。 |
Home应用显示了什么
HomeKit没有打印机附件类型,所以插件使用最近的传感器和Home 用自己的方式表达;
- 打印传感器读取 检测到 / 没有检测到。
- 低墨粉或油墨被宣布为 “电池电量不足”. 为了让信息更清晰,可以添加Home 自动触发发送你自己的通知。
- 家里显示每个配件只有一个电池。与
showDrumOn,它可以显示鼓 而不是墨粉,所以默认情况下滚筒是关闭的。它还在读,而且 插件在生命周期接近尾声时记录一个警告。像Eve这样的应用程序显示了这两点。 - 页面计数是一个自定义特性,在Eve, Controller和Homebridge中可见 UI,而不是Apple Home。
级别和低警报
兄弟印刷商报告每批货的两个读数:一个是粗糙的读数(标签上的数字)
打印机的网页和显示)和一个更好的。电池和瓦片都很粗糙
一个,所以它们和打印机匹配。当读数等于或低于该值时,供应被视为低
lowTonerThreshold,或者当打印机本身标记低碳粉时,就会显示墨盒
10%,但实际上是2%,这仍然引起了警惕。
没有电平报告的打印机(一些旧型号和墨槽打印机)没有 电池;状态、问题和页数仍然有效。
脱机
打印机显示无响应之前的时间是大约
offlineAfter ×(pollInterval + 10秒),其中10秒为SNMP超时时间。与
默认是3.5分钟; pollInterval: 30 与 offlineAfter: 1 把它带到
大约40岁。与 offlineAfter: 1在美国,一个丢失的数据包可能会使它闪现“无响应”
一项调查显示。
兄弟激光器通常在睡眠和深度睡眠状态下仍然应答SNMP。
检查打印机的报告
该包包含一个命令,用于打印插件读取的内容:
npx -p homebridge-brother-printer brother-printer-probe 10.0.4.150
比较 tonerPercent 与 剩下的生活 在打印机的网页上。如果没有
匹配,或者值是 null请打开探针输出和打印机的问题
模型。
故障排除
- “无法到达…请求超时”打印机上SNMP关闭,地址错误。
或者防火墙阻断UDP端口161。测试从Homebridge机器
snmpget -v2c -c public <printer-ip> 1.3.6.1.2.1.1.1.0(从snmp包)。 - 另一种语言的状态文本插件读取打印机的字符集,所以 日志显示打印机显示的显示文本。问题和印刷是 从语言中立的状态代码中检测到,用英语显示文本作为备用。
- 旧打印机不能连接:设置
snmpVersion来1。 - 墨盒满时墨粉显示0%有些非正品墨盒无法识别 由打印机,然后报告没有级别。
它是如何工作的
兄弟打印机将维护数据作为打包记录公开在其私有MIB中
(1.3.6.1.4.1.2435.2.3.9.4.2.1.5.5.8, .5.10 和 .5.11). 每条记录是一个1字节
代码, 0x01,一个长度字节和一个大端值;旧型号使用双字节
当前/ max形式。主要代码:
| 代码 | 意义 |
|---|---|
0x81-0x84 | 黑色、青色、品红、黄色墨粉或油墨,%(粗) |
0x6f-0x72, 0xa1-0xa4 | 同样的,更好的阅读 |
0x41, 0x80, 0x79-0x7b | 鼓寿命(单色;黑色、青色、品红、黄色) |
0x69-0x6d, 0x85 | 胶带、熔丝器、激光装置、送纸包、废墨盒 |
下一个护理 0x82, 0xa4-0xa7 | 鼓页剩余 |
计数器 0x00 | 打印总页数 |
打印和问题状态来自标准主机资源MIB (hrPrinterStatus,
hrPrinterDetectedErrorState),以显示文本作为回退。
记录代码跟在 哥哥 Python库 由Maciej Bieniek (Apache-2.0)编写,测试使用其测试套件中的SNMP捕获。
许可证
麻省理工学院