2 个不稳定版本
0.2.0 | 2023年10月1日 |
---|---|
0.1.0 | 2023年9月30日 |
#12 in #station
35KB
861 代码行
天气站
收集和处理天气数据的程序。
非常感谢 WEEWX 解码 ACURITE 显示的各种消息
安装程序
cargo install yngvi --features standalone
配置
名称 | 描述 | 默认 |
---|---|---|
WS_SRC | 确定从哪里拉取数据。ACURITE_DISPLAY、RTL_433 或 FILE | DISPLAY |
WS_SRC_FILE_PATH | 源读数文件的路径 | |
WS_DEST | INFLUXDB、INFLUXDB2、STDOUT 或 INMEMORY | STDOUT |
WS_DEST_INFLUXDB_URL | influxdb url | https://127.0.0.1:8086 |
WS_DEST_INFLUXDB_DB | influxdb 数据库 | weather |
WS_DEST_INFLUXDB2_URL | influxdb url | |
WS_DEST_INFLUXDB2_ORG | influxdb org | |
WS_DEST_INFLUXDB2_BUCKET | influxdb bucket | |
WS_DEST_INFLUXDB2_TOKEN | influxdb 认证令牌 |
创建自己的
任何数据源都可以定义为 Iterator<Item = WeatherReading>
,所有目的地都使用 Writer
特性定义。WS 随带一些预构建的读取器和写入器,但定义新的数据源和新的目的地而无需触及任何核心站逻辑应该是直接的。试试看吧!
cargo add yngvi
use yngvi::core::{InMemWriter, Station, StdoutWriter, WeatherReading, FileReader};
#[tokio::main]
async fn main() {
// create a new weather station
let mut station = Station::new();
// define where your source data will come from
let reader = FileReader::new("data/source.txt");
// define where your calculated data will be written to
let mut writer = StdoutWriter::new();
// start your station!
station.start(reader, writer).await
}
依赖项
~2–17MB
~194K SLoC