1个不稳定版本
0.1.0 | 2022年6月25日 |
---|
#1169 in 硬件支持
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
结尾,但如果您正在使用反向代理,也可以有前缀。
运行
要运行服务器,只需提供Settings.toml
文件并运行
$ cargo run
默认情况下,它将监听localhost:8000
。
MQTT集成
桥会为每个Airrohr设备发布一个包含所有传感器的主题
homeassistant/sensor/airrohr-12345678/<sensor name>/config
配置将包括每个传感器的值主题。它们看起来如下
airrohr/airrohr-12345678/<sensor name>
依赖关系
~30–64MB
~1M SLoC