#prometheus-exporter #gateway #zigbee #prometheus-metrics #naive #sensors #ii

bin+lib deconz-exporter

为 deCONZ Phoscon zigbee 网关的一个非常简单(且天真)的 Prometheus 导出器

1 个不稳定版本

0.1.0 2022年3月7日

#890硬件支持

MIT 许可证

645KB
303

🚀 deconz-exporter

deCONZ Phoscon zigbee 网关提供的一个非常简单(且天真)的 Prometheus 导出器。导出连接到 Conbee II USB 网关的传感器的 Prometheus 指标。

Example screenshot

📈 导出指标

# 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}

🚲 开始使用

  1. 在网关设置中启用发现功能

    Enable discovery

  2. 为导出器生成一个新用户名

    $ curl -X POST -s http://<rest api endpoint>/api -d '{"devicetype": "deconz-exporter"}' | jq
    
    [{"success":{"username":"0E87CDA111"}}]
    
  3. 启动导出器。

    $ cargo run -- --url http://<gateway rest API>:4501 --username 0E87CDA111 --port 9199
    
  4. 盈利!🥇

⚙️ 这是如何工作的?

  1. 导出器必须配置有效的用户名和 URL 以连接到 deCONZ REST API
  2. 通过 REST API 发现 WebSocket 端口。
  3. WebSocket API 提供对导出器的流式更新,这些更新被转换为指标。

🕵️‍♂️ 调试提示

  1. websocat 是一个实用的工具,可以查看发出的原始 WebSocket 事件。使用它来调试问题、捕获一些示例事件等。

    $ websocat ws://nyx.jabid.in:4502
    
    {"attr":{"id":"1","lastannounced":null,"lastseen":"2022-03-04T22:42Z","manufacturername":"dresden elektronik","modelid":...
    
  2. 运行 $ cargo test 以确保无误。

📝 备注

  1. 此导出器仅在我拥有的少数设备上进行了测试。不能保证它与其他任何设备兼容。
  2. 请随时向我发送 其他由 Conbee II 支持的设备 的 PR。
  3. 认证流程繁琐且需要手动操作,自动化此过程将非常棒。
  4. 缺少进程指标,应将其恢复。
  5. 自动发现网关可能会很方便。

⚖️ 许可证

MIT

依赖关系

~12–26MB
~415K SLoC