#parser #json #json-parser #tempest #weatherflow

libtempest

Parsing libary for WeatherFlow Tempest data records

1 unstable release

0.1.0 Feb 14, 2022

#217 in #json-parser

Apache-2.0

20KB
396 lines

libtempest

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

License: Apache-2.0


lib.rs:

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

Dependencies

~0.7–1.6MB
~34K SLoC