Crate libtempest
source · [−]Expand description
A parser definition for weatherflow/tempest json records.
This library is the result of expanding a simple UDP packet
monitor written to help diagnose connection issues with a
WeatherFlow
Tempest weather station. UDP packets from the
hub contain JSON formatted strings. The same JSON format
is used in the results from the cloud REST API.
All fields are specified as public to enable this library to be used as a connector for other services.
Example
use libtempest::Tempest;
use serde_json;
let buf = r#"
{
"serial_number": "SK-00008453",
"type":"evt_precip",
"hub_sn": "HB-00000001",
"evt":[1493322445]
}"#;
let rec: Tempest = serde_json::from_str(&buf).unwrap();
if let Tempest::EvtPrecip(x) = &rec {
println!("{:?}", x);
println!("{:?}", x.serial_number);
println!("{:?}", x.evt);
println!("{:?}", x.evt.epoch);
}
References
Structs
Structure defining the [Device Status] enum varient.
Structure defining the [Rain Start Event] enum varient.
Precipitation event detail.
Structure defining the [Lightning Strike] enum varient.
Lightning strike event detail.
Structure defining the [Hub Status] enum varient.
Structure defining the [Air Observation] enum varient.
Air Observation detail.
Structure defining the [Sky Observation] enum varient.
Sky Observation detail.
Structure defining the [Tempest Observation] enum varient
Tempest Observation detail.
Radio Stats detail.
Structure defining the [Rapid Wind] enum varient.
Rapid Wind event detail.
Enums
Top level abstraction using serde tag feature to select
enum varient based on the value of the JSON type
field.