#record #devices #query #volume #url #speak #xiaomi #xiaoai #小爱音箱 #远程操作小爱

xiaoai

Utils to remote XiaoAi; 远程操作小爱同学(小爱音箱)

10 releases

Uses new Rust 2024

0.1.2 Mar 28, 2025
0.1.1 Mar 26, 2025
0.1.0 Mar 26, 2025
0.1.0-alpha.4 Mar 25, 2025

#315 in Audio

Download history 586/week @ 2025-03-24 60/week @ 2025-03-31 4/week @ 2025-04-07

104 downloads per month

MIT license

28KB
735 lines

use xiaoai::{load_or_login_and_save_with_env, device_by_alias, OpPayloadBuilder, OpResponse, OpApi, ApiCaller as _};

let auth_data = load_or_login_and_save_with_env("auth_data.json").await.unwrap();
let device = device_by_alias(&auth_data, "卧室的小爱/XiaoAi in bedroom").await.unwrap();
let payload = OpPayloadBuilder::new(&auth_data, &device.device_id).volume(50);
let resp: OpResponse = OpApi::request(payload).await.unwrap();
let payload = OpPayloadBuilder::new(&auth_data, &device.device_id).speak("Hello world!");
let resp: OpResponse = OpApi::request(payload).await.unwrap();

let payload = LastAskPayload::new(&auth_data, &device, 2);
let resp: LastAskResponse = RecordApi::request(payload).await.unwrap();

account_id and account_password can be loaded from env var.

ACCOUNT_ID=
ACCOUNT_PASSWORD=

Supported operations:

  • speak
  • volume
  • pause and resume
  • play url
  • status query
  • query chat history or record

Acknowledgement

Dependencies

~11–23MB
~322K SLoC