什么是 node-red-contrib-pi-hole
node-red-contrib-pi-hole 是一个 Node-RED 的扩展组件,用于连接 Pi-hole(一种用于网络广告拦截的开源软件)的 API。它提供了一些节点,可以让你更方便地使用 Pi-hole 的 API,例如查询统计数据,控制白名单与黑名单等等。
安装
在使用 node-red-contrib-pi-hole 之前,你需要先安装 Node.js 和 Node-RED。如果你已经安装了这两个软件,可以按照如下操作安装:
- 进入 Node-RED 的用户目录。一般来说,该目录在你的 home 目录下的
.node-red
文件夹中。cd ~/.node-red
- 使用 npm 命令进行安装
npm install node-red-contrib-pi-hole
使用
安装完成后,在 Node-RED 的编辑器中,你可以找到 Pi-hole 相关的节点:
- pi-hole: 获取 Pi-hole 的状态信息
- pi-hole-get-data: 获取 Pi-hole 的统计数据
- pi-hole-enable-disable: 启用或禁用 Pi-hole 的广告拦截功能
- pi-hole-blacklist: 将域名添加到 Pi-hole 的黑名单
- pi-hole-whitelist: 将域名添加到 Pi-hole 的白名单
pi-hole 节点
该节点可以获取 Pi-hole 的一些基本信息,例如 IP 地址,占用的内存和 CPU 使用率等。你可以将其输出到一个消息节点,以便进行一些进一步的处理。
pi-hole-get-data 节点
该节点用于获取 Pi-hole 的统计数据,例如广告屏蔽率,阻止的广告量等等。你可以将其输出到一个消息节点中,然后使用图表节点(例如 node-red-contrib-ui)来展示这些数据。
pi-hole-enable-disable 节点
该节点用于启用或禁用 Pi-hole 的广告拦截功能。你可以将其连接到一个输入节点,以便根据需要启用或禁用广告拦截功能。
pi-hole-blacklist 节点
该节点用于将域名添加到 Pi-hole 的黑名单中。你可以将其连接到一个输入节点,以便将需要屏蔽的域名添加到黑名单中。
pi-hole-whitelist 节点
该节点用于将域名添加到 Pi-hole 的白名单中。你可以将其连接到一个输入节点,以便将需要保留的域名添加到白名单中。
示例代码
下面是一个简单的示例,演示如何使用 pi-hole-get-data
节点获取 Pi-hole 的统计数据,并使用 node-red-contrib-ui 进行展示:
[{"id":"fa0ecb58.ede1c8","type":"pi-hole-get-data","z":"7d952a2a.bbf7d8","server":"d1d0b342.3dbc3","name":"Pi-hole Statistics","dataType":"stats","x":590,"y":420,"wires":[["6e10b096.8ee2dc"]]},{"id":"6e10b096.8ee2dc","type":"ui_gauge","z":"7d952a2a.bbf7d8","name":"","group":"cb26b1db.0588","order":1,"width":0,"height":0,"gtype":"gage","title":"Ads Blocked","label":"ads blocked","format":"{{value}}","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":790,"y":420,"wires":[]},{"id":"d1d0b342.3dbc3","type":"pi-hole-server","z":"","hostname":"localhost","port":"80","useHttps":false,"verifySSL":true,"password":"","piVersion":"unknown"}]
在安装 node-red-contrib-pi-hole
和 node-red-contrib-ui
后,你将可以将上面的示例导入到 Node-RED 中进行演示。
总结
本文介绍了如何安装和使用 node-red-contrib-pi-hole
,讲解了它提供的各种节点的功能和使用方法,并提供了一个示例代码以方便学习和演示。希望本文对你在使用 Pi-hole 时提供了一些帮助和指导。如有疑问或建议,欢迎在评论区留言。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600573b081e8991b448e9ade