#mqtt #home-assistant #iot

app airrohr-mqtt

适用于Airrohr空气传感器的Homeassistant兼容的mqtt桥接器

1个不稳定版本

0.1.0 2022年6月25日

#1169 in 硬件支持

Apache-2.0

21KB
248

Airrohr-mqtt

Airrohr-mqtt是适用于Airrohr的Homeassistant兼容的mqtt桥接器。它设置一个web服务器,该服务器接收来自Airrohr的请求并将它们转换为MQTT消息。

支持的功能

Homeassistant功能

  • 通过MQTT进行设备广告
  • 通过MQTT更新传感器值
  • 可配置的传感器属性

传感器

  • SDS011 (pm10, pm25)
  • BME280 (temperature, humidity, pressure)

构建

Cargo带来了大多数依赖项,但是某些库依赖于本机C库。在基于Debian的系统上,需要以下包

  • cmake
  • libssl-dev
  • pkg-config

配置

Web服务器

该Web服务器基于Rocket,因此它支持Rocket支持的所有环境变量。它将在/api路径下接收Airrohr生成的POST请求。

注意:Web服务器不支持任何身份验证。仅在可信环境中使其可访问。否则,任何人都可以将任何数据写入Homeassistant。

设置

服务器在本地目录中查找Settings.toml文件。此文件包含以下键

  • server:MQTT服务器
  • user:MQTT用户名
  • password:MQTT密码
  • sensors传感器配置文件

示例配置可以在Settings.toml.def中找到。

传感器

传感器在sensors.json中进行配置。它是一个Airrohr传感器到Homeassistant传感器的映射,其中包含额外的信息。例如,Airrohr传感器的值

{"value_type": "BME280_temperature", "value": "23.50"}

将转换为Homeassistant的传感器配置,以便正确解释通过MQTT接收到的值

{"BME280_temperature": {"class": "temperature", "unit": "°C", "value_template": "{{ value }}"}}

无需重新编译即可配置额外的传感器或不同的单位。

Airrohr

要配置您的Airrohr,请在API配置的API自定义部分中输入IP、域名和路径。路径应以/api结尾,但如果您正在使用反向代理,也可以有前缀。

Airrohr Config Page

运行

要运行服务器,只需提供Settings.toml文件并运行

$ cargo run

默认情况下,它将监听localhost:8000

MQTT集成

桥会为每个Airrohr设备发布一个包含所有传感器的主题

homeassistant/sensor/airrohr-12345678/<sensor name>/config

配置将包括每个传感器的值主题。它们看起来如下

airrohr/airrohr-12345678/<sensor name>

Airrohr Data Page

Homeassistant Device

依赖关系

~30–64MB
~1M SLoC