Nature RemoシリーズのCloud APIが返すJSONデータを解析し、各種情報を取り出すためのライブラリ (非公式)
GET /1/devices
https://swagger.nature.global/#/default/get1devices
GET /1/appliances
https://swagger.nature.global/#/default/get1appliances
device
model
smart_meter
ノードのみ対応appliances
の他のノードにも対応nature_api::read_devices
に embedded_io::Reader
を実装した型への参照、ストリームの長さ、デバイス情報を処理するコールバックを指定して呼び出すと、Reader実装型から読み出したデータを解析してデバイス情報が確定するたびに、コールバックが呼び出されます。
```rust use embeddedio::adapters; use natureapi::read_devices; use std::{fs::File, io::Read};
fn main() { let mut file = File::open("data/devices.json").unwrap(); let filelength = file.metadata().unwrap().len(); let mut reader = embeddedio::adapters::FromStd::new(&mut file); let mut numdevices = 0; readdevices( &mut reader, Some(filelength as usize), |device, subnode| { if subnode.isnone() { numdevices += 1; } println!("{:?} {:?}", device, subnode); }, ) .unwrap(); println!("numdevices: {}", numdevices); } ```
コールバックの第一引数は &nature_api::Device
, 第二引数は Option(&DeviceSubNode)
となっています。
本ライブラリはMIT Licenseの下で使用可能です。