| Crates.io | fuga-remo-api |
| lib.rs | fuga-remo-api |
| version | 0.1.2 |
| created_at | 2023-03-23 00:25:45.914445+00 |
| updated_at | 2023-08-28 18:11:41.412206+00 |
| description | Unofficial Remo Cloud API parser |
| homepage | |
| repository | https://github.com/ciniml/remo-api |
| max_upload_size | |
| id | 817631 |
| size | 78,723 |
Nature RemoシリーズのCloud APIが返すJSONデータを解析し、各種情報を取り出すためのライブラリ (非公式)
GET /1/devices https://swagger.nature.global/#/default/get_1_devices
ユーザーが操作可能なRemoデバイス一覧と状態を取得する
GET /1/appliances https://swagger.nature.global/#/default/get_1_appliances
各アプライアンスに対する device model smart_meter ノードのみ対応
他のノードは無視します。
appliances の他のノードにも対応nature_api::read_devices に embedded_io::Reader を実装した型への参照、ストリームの長さ、デバイス情報を処理するコールバックを指定して呼び出すと、Reader実装型から読み出したデータを解析してデバイス情報が確定するたびに、コールバックが呼び出されます。
use embedded_io::adapters;
use nature_api::read_devices;
use std::{fs::File, io::Read};
fn main() {
let mut file = File::open("data/devices.json").unwrap();
let file_length = file.metadata().unwrap().len();
let mut reader = embedded_io::adapters::FromStd::new(&mut file);
let mut num_devices = 0;
read_devices(
&mut reader,
Some(file_length as usize),
|device, sub_node| {
if sub_node.is_none() {
num_devices += 1;
}
println!("{:?} {:?}", device, sub_node);
},
)
.unwrap();
println!("num_devices: {}", num_devices);
}
コールバックの第一引数は &nature_api::Device, 第二引数は Option(&DeviceSubNode) となっています。
本ライブラリはMIT Licenseの下で使用可能です。