2 releases

0.1.2 Sep 7, 2019
0.1.0 Sep 6, 2019

#214 in #cloud

MIT license

15KB
425 lines

Nature Remo for Rust

Crates.io Docs.rs Travis (.com)

Nature Remo API client for Rust.

WARNING: This project is in heavily development state and not intended for production use.

Installation

cargo add remo

Usage

extern crate remo;

use remo::cloud;
use std::env;

fn main() {
  let token = env::var("NATURE_REMO_CLOUD_API_TOKEN");

  let client = cloud::Client::new(token);

  // get user's nickname
  let user = client.get_user().unwrap();
  println!("Name: {}", user.nickname);

  // get room temperature
  let sensor_value = client.get_sensor_value().unwrap();
  println!("Temperature: {}", sensor_value.temperature);

  // update aircon settings
  let appliances = client.get_appliances().unwrap();
  let aircon = appliances.iter().find(|&app| app.r#type == "AC").unwrap();

  let mut params = cloud::RequestBody::new();
  params.insert("operation_mode", "warm");
  params.insert("temperature", "26");
  client.update_aircon_settings(&aircon.id, &params);
  println!("Aircon settings updated: mode(warm), temperature(26)");
}

Dependencies

~20MB
~416K SLoC