1 个不稳定版本
0.1.0 | 2022年3月7日 |
---|
#890 在 硬件支持
645KB
303 行
🚀 deconz-exporter
为 deCONZ Phoscon zigbee 网关提供的一个非常简单(且天真)的 Prometheus 导出器。导出连接到 Conbee II USB 网关的传感器的 Prometheus 指标。
📈 导出指标
# HELP deconz_battery Battery level of sensors
# TYPE deconz_battery gauge
deconz_battery{manufacturername, modelid, name, swversion}
# HELP deconz_humidity Humidity level
# TYPE deconz_humidity gauge
deconz_humidity{manufacturername, modelid, name, swversion, type}
# HELP deconz_pressure Pressure level
# TYPE deconz_pressure gauge
deconz_pressure{manufacturername,modelid, name, swversion, type}
# HELP deconz_temperature Temperature level
# TYPE deconz_temperature gauge
deconz_temperature{manufacturername, modelid, name, swversion, type}
🚲 开始使用
-
在网关设置中启用发现功能
-
为导出器生成一个新用户名
$ curl -X POST -s http://<rest api endpoint>/api -d '{"devicetype": "deconz-exporter"}' | jq [{"success":{"username":"0E87CDA111"}}]
-
启动导出器。
$ cargo run -- --url http://<gateway rest API>:4501 --username 0E87CDA111 --port 9199
-
盈利!🥇
⚙️ 这是如何工作的?
- 导出器必须配置有效的用户名和 URL 以连接到 deCONZ REST API。
- 通过 REST API 发现 WebSocket 端口。
- WebSocket API 提供对导出器的流式更新,这些更新被转换为指标。
🕵️♂️ 调试提示
-
websocat 是一个实用的工具,可以查看发出的原始 WebSocket 事件。使用它来调试问题、捕获一些示例事件等。
$ websocat ws://nyx.jabid.in:4502 {"attr":{"id":"1","lastannounced":null,"lastseen":"2022-03-04T22:42Z","manufacturername":"dresden elektronik","modelid":...
-
运行
$ cargo test
以确保无误。
📝 备注
- 此导出器仅在我拥有的少数设备上进行了测试。不能保证它与其他任何设备兼容。
- 请随时向我发送 其他由 Conbee II 支持的设备 的 PR。
- 认证流程繁琐且需要手动操作,自动化此过程将非常棒。
- 缺少进程指标,应将其恢复。
- 自动发现网关可能会很方便。
⚖️ 许可证
依赖关系
~12–26MB
~415K SLoC