我的最终目标是能够通过蓝牙连接到 Govee Smart Plug+ 并获取使用数据,以便我可以填充 Google 表格。
我相信应该可以做到,因为我发现这个 Github 存储库听起来与我需要做的类似。 -> https://github.com/jdoupe/govee-exporter/
我是 Prometheus 和 Go 的新手,因为这是我在尝试使用上述存储库时第一次听说它们,所以请坦白我的天真。 :)
这是我到目前为止所做的。
在终端内,我导航到 govee-exporter 文件夹并输入
go build .
,然后收到以下错误
main.go:15:2: no required module provides package github.com/jdoupe/govee-exporter/internal/collector; to add it:
go get github.com/jdoupe/govee-exporter/internal/collector
main.go:16:2: no required module provides package github.com/jdoupe/govee-exporter/internal/config; to add it:
go get github.com/jdoupe/govee-exporter/internal/config
main.go:17:2: no required module provides package github.com/jdoupe/govee-exporter/internal/updater; to add it:
go get github.com/jdoupe/govee-exporter/internal/updater
然后我运行
go get github.com/jdoupe/govee-exporter/internal/collector
但又收到另一个错误
go: github.com/jdoupe/[email protected] (matching github.com/jdoupe/govee-exporter/internal/collector@upgrade) requires github.com/jdoupe/[email protected]: parsing go.mod:
module declares its path as: github.com/xperimental/flowercare-exporter
but was required as: github.com/jdoupe/govee-exporter
对于 main.go 文件尝试导入的其他两个文件夹也是如此。所以我转到 go.mod 文件并将
github.com/xperimental/flowercare-exporter
替换为 github.com/jdoupe/govee-exporter
然后我运行 go build .
,它似乎已构建,然后我运行 go run main.go
并收到以下消息
# github.com/jdoupe/govee-exporter/internal/updater
internal/updater/updater.go:15:2: "github.com/jdoupe/govee-exporter/pkg/govee" imported as miflora and not used
internal/updater/updater.go:24:8: undefined: govee
internal/updater/updater.go:77:47: undefined: govee
internal/updater/updater.go:83:10: undefined: govee
internal/updater/updater.go:87:10: undefined: govee
internal/updater/updater.go:191:15: undefined: govee
# github.com/jdoupe/govee-exporter/internal/collector
internal/collector/collector.go:9:2: "github.com/jdoupe/govee-exporter/pkg/govee" imported as miflora and not used
internal/collector/collector.go:63:41: undefined: govee
internal/collector/collector.go:113:68: undefined: govee
在 config.go 文件中,我注意到 ListenAddr 与我的 Prometheus 指标来源不同,因此我将其调整为与我的 9090 相匹配。
从这里到哪里可以连接到我的 Govee 插头? 我已经获得了他们的 MAC 地址和设备类型,但我不知道在哪里输入这些信息。
govee-exporter
非常老(4 年)并且无法构建(如您所见)。
要构建它,您可以:
go.mod
修改为module github.com/jdoupe/govee-exporter
;和pkg/govee/goovee.go
修改为 package govee
您应该能够以
go run .
的方式运行它
您需要先让
govee-exporter
正常工作,然后才能将其配置为由 Prometheus“抓取”(读取指标)。
govee-exporter
在 :9294
上发布(Prometheus)指标(默认情况下)。当 govee-exporter
运行时,尝试通过以下方式读取指标:
curl http://localhost:9294/metrics
返回结果后继续。
Prometheus 需要一个 configuration 来定义要“抓取”的目标(从中读取其指标)。按照惯例,目标之一是 Prometheus 服务器本身。您需要添加
govee-exporter
作为第二个目标。
这是一个例子
prometheus.yml
:
prometheus.yml
:
global: nil
scrape_configs:
# Prometheus
- job_name: "prometheus-server"
static_configs:
- targets:
- "localhost:9090"
# Govee Exporter
- job_name: "govee-exporter"
static_configs:
- targets:
- "localhost:9242"
然后使用此配置运行 Prometheus:
prometheus \
--config.file=prometheus.yml
一切顺利,您应该会看到
govee-exporter
添加为 targets
您应该能够使用 Prometheus 的
graph选项卡查询
govee-exporter
导出的指标。
无论如何,我已经使用@DazWilkin 提供的粗略修复更新了 govee-exporter 存储库(谢谢!)。
是的,这个项目很老了,由于时间不够而被放弃,我再也没有抽出时间来处理它。 除了编译之外,我还没有对它进行太多测试。 我确信它需要大量的爱(可能还有一些基本说明,或有关如何查找 BLE 设备的 MAC 地址的链接)。
任何拉取请求都是非常受欢迎的,或者随意分支你的心的内容(就像我在这个项目中所做的那样 https://github.com/xperimental/flowercare-exporter)