mijiaAPI 3.1.0__tar.gz → 3.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mijiaapi-3.1.0 → mijiaapi-3.2.0}/CHANGELOG.md +5 -0
- {mijiaapi-3.1.0 → mijiaapi-3.2.0}/PKG-INFO +30 -14
- {mijiaapi-3.1.0 → mijiaapi-3.2.0}/README.md +29 -13
- {mijiaapi-3.1.0 → mijiaapi-3.2.0}/mijiaAPI/__main__.py +41 -17
- mijiaapi-3.2.0/mijiaAPI/version.py +1 -0
- {mijiaapi-3.1.0 → mijiaapi-3.2.0}/mijiaAPI.egg-info/PKG-INFO +30 -14
- mijiaapi-3.1.0/mijiaAPI/version.py +0 -1
- {mijiaapi-3.1.0 → mijiaapi-3.2.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {mijiaapi-3.1.0 → mijiaapi-3.2.0}/.gitignore +0 -0
- {mijiaapi-3.1.0 → mijiaapi-3.2.0}/FAQ.md +0 -0
- {mijiaapi-3.1.0 → mijiaapi-3.2.0}/LICENSE +0 -0
- {mijiaapi-3.1.0 → mijiaapi-3.2.0}/demos/test_apis.py +0 -0
- {mijiaapi-3.1.0 → mijiaapi-3.2.0}/demos/test_get_statistics.py +0 -0
- {mijiaapi-3.1.0 → mijiaapi-3.2.0}/demos/test_login.py +0 -0
- {mijiaapi-3.1.0 → mijiaapi-3.2.0}/mijiaAPI/__init__.py +0 -0
- {mijiaapi-3.1.0 → mijiaapi-3.2.0}/mijiaAPI/apis.py +0 -0
- {mijiaapi-3.1.0 → mijiaapi-3.2.0}/mijiaAPI/devices.py +0 -0
- {mijiaapi-3.1.0 → mijiaapi-3.2.0}/mijiaAPI/errors.py +0 -0
- {mijiaapi-3.1.0 → mijiaapi-3.2.0}/mijiaAPI/logger.py +0 -0
- {mijiaapi-3.1.0 → mijiaapi-3.2.0}/mijiaAPI/miutils.py +0 -0
- {mijiaapi-3.1.0 → mijiaapi-3.2.0}/mijiaAPI.egg-info/SOURCES.txt +0 -0
- {mijiaapi-3.1.0 → mijiaapi-3.2.0}/mijiaAPI.egg-info/dependency_links.txt +0 -0
- {mijiaapi-3.1.0 → mijiaapi-3.2.0}/mijiaAPI.egg-info/entry_points.txt +0 -0
- {mijiaapi-3.1.0 → mijiaapi-3.2.0}/mijiaAPI.egg-info/requires.txt +0 -0
- {mijiaapi-3.1.0 → mijiaapi-3.2.0}/mijiaAPI.egg-info/top_level.txt +0 -0
- {mijiaapi-3.1.0 → mijiaapi-3.2.0}/pyproject.toml +0 -0
- {mijiaapi-3.1.0 → mijiaapi-3.2.0}/setup.cfg +0 -0
- {mijiaapi-3.1.0 → mijiaapi-3.2.0}/uv.lock +0 -0
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
本文档记录了项目的v1.3.7以来的重要变更。
|
|
4
4
|
|
|
5
|
+
## [3.2.0](https://github.com/Do1e/mijia-api/compare/v3.1.0...v3.2.0) - 2026-06-09
|
|
6
|
+
### improvement
|
|
7
|
+
* 将 `--run` 参数重构为独立的 `run` 子命令,提升 CLI 结构一致性
|
|
8
|
+
* 保留 `--run` 作为隐藏的废弃参数,并显示迁移提示
|
|
9
|
+
|
|
5
10
|
## [3.1.0](https://github.com/Do1e/mijia-api/compare/v3.0.5...v3.1.0) - 2026-05-27
|
|
6
11
|
### new feature
|
|
7
12
|
* 删除设备属性的单位`unit`属性,因为 home.miot-spec.com 上已废弃
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mijiaAPI
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.2.0
|
|
4
4
|
Summary: A Python API for Xiaomi Mijia
|
|
5
5
|
Author-email: Do1e <i@do1e.cn>
|
|
6
6
|
License-Expression: GPL-3.0-or-later
|
|
@@ -359,14 +359,17 @@ MIJIA_LOG_LEVEL=WARNING mijiaAPI get --dev_name "卧室台灯" --prop_name "brig
|
|
|
359
359
|
完整的命令行参数说明:
|
|
360
360
|
|
|
361
361
|
```
|
|
362
|
-
usage: mijiaAPI [-h] [-p AUTH_PATH] [--list_homes] [-l]
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
362
|
+
usage: mijiaAPI [-h] [-v] [-p AUTH_PATH] [--list_homes] [-l]
|
|
363
|
+
[--list_scenes] [--list_consumable_items]
|
|
364
|
+
[--run_scene SCENE_ID/SCENE_NAME [SCENE_ID/SCENE_NAME ...]]
|
|
365
|
+
[--get_device_info DEVICE_MODEL]
|
|
366
|
+
{run,get,set} ...
|
|
367
|
+
|
|
368
|
+
Mijia API CLI (v3.1.0)
|
|
367
369
|
|
|
368
370
|
positional arguments:
|
|
369
|
-
{get,set}
|
|
371
|
+
{run,get,set}
|
|
372
|
+
run 使用自然语言描述你的需求,如果你有小爱音箱的话
|
|
370
373
|
get 获取设备属性
|
|
371
374
|
set 设置设备属性
|
|
372
375
|
|
|
@@ -384,10 +387,6 @@ options:
|
|
|
384
387
|
运行场景,指定场景ID或名称
|
|
385
388
|
--get_device_info DEVICE_MODEL
|
|
386
389
|
获取设备信息,指定设备model,先使用 --list_devices 获取
|
|
387
|
-
--run PROMPT 使用自然语言描述你的需求,如果你有小爱音箱的话
|
|
388
|
-
--wifispeaker_name WIFISPEAKER_NAME
|
|
389
|
-
指定小爱音箱名称,默认是获取到的第一个小爱音箱
|
|
390
|
-
--quiet 小爱音箱静默执行
|
|
391
390
|
```
|
|
392
391
|
|
|
393
392
|
```
|
|
@@ -417,6 +416,23 @@ options:
|
|
|
417
416
|
--value VALUE 需要设定的属性值
|
|
418
417
|
```
|
|
419
418
|
|
|
419
|
+
```
|
|
420
|
+
usage: mijiaAPI run [-h] [-p AUTH_PATH]
|
|
421
|
+
[--wifispeaker_name WIFISPEAKER_NAME] [--quiet]
|
|
422
|
+
PROMPT
|
|
423
|
+
|
|
424
|
+
positional arguments:
|
|
425
|
+
PROMPT 使用自然语言描述你的需求
|
|
426
|
+
|
|
427
|
+
options:
|
|
428
|
+
-h, --help show this help message and exit
|
|
429
|
+
-p, --auth_path AUTH_PATH
|
|
430
|
+
认证文件保存路径,默认保存在 ~/.config/mijia-api/auth.json
|
|
431
|
+
--wifispeaker_name WIFISPEAKER_NAME
|
|
432
|
+
指定小爱音箱名称,默认是获取到的第一个小爱音箱
|
|
433
|
+
--quiet 小爱音箱静默执行
|
|
434
|
+
```
|
|
435
|
+
|
|
420
436
|
#### 获取设备属性
|
|
421
437
|
|
|
422
438
|
```bash
|
|
@@ -465,9 +481,9 @@ mijiaAPI --get_device_info yeelink.light.lamp4
|
|
|
465
481
|
mijiaAPI --list_consumable_items
|
|
466
482
|
|
|
467
483
|
# 使用小爱音箱执行自然语言命令
|
|
468
|
-
mijiaAPI
|
|
469
|
-
mijiaAPI
|
|
470
|
-
mijiaAPI
|
|
484
|
+
mijiaAPI run "打开卧室台灯"
|
|
485
|
+
mijiaAPI run "把亮度调到50%" --wifispeaker_name "卧室小爱"
|
|
486
|
+
mijiaAPI run "关闭所有灯" --quiet
|
|
471
487
|
```
|
|
472
488
|
|
|
473
489
|
#### 直接使用 uvx(无需安装)
|
|
@@ -339,14 +339,17 @@ MIJIA_LOG_LEVEL=WARNING mijiaAPI get --dev_name "卧室台灯" --prop_name "brig
|
|
|
339
339
|
完整的命令行参数说明:
|
|
340
340
|
|
|
341
341
|
```
|
|
342
|
-
usage: mijiaAPI [-h] [-p AUTH_PATH] [--list_homes] [-l]
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
342
|
+
usage: mijiaAPI [-h] [-v] [-p AUTH_PATH] [--list_homes] [-l]
|
|
343
|
+
[--list_scenes] [--list_consumable_items]
|
|
344
|
+
[--run_scene SCENE_ID/SCENE_NAME [SCENE_ID/SCENE_NAME ...]]
|
|
345
|
+
[--get_device_info DEVICE_MODEL]
|
|
346
|
+
{run,get,set} ...
|
|
347
|
+
|
|
348
|
+
Mijia API CLI (v3.1.0)
|
|
347
349
|
|
|
348
350
|
positional arguments:
|
|
349
|
-
{get,set}
|
|
351
|
+
{run,get,set}
|
|
352
|
+
run 使用自然语言描述你的需求,如果你有小爱音箱的话
|
|
350
353
|
get 获取设备属性
|
|
351
354
|
set 设置设备属性
|
|
352
355
|
|
|
@@ -364,10 +367,6 @@ options:
|
|
|
364
367
|
运行场景,指定场景ID或名称
|
|
365
368
|
--get_device_info DEVICE_MODEL
|
|
366
369
|
获取设备信息,指定设备model,先使用 --list_devices 获取
|
|
367
|
-
--run PROMPT 使用自然语言描述你的需求,如果你有小爱音箱的话
|
|
368
|
-
--wifispeaker_name WIFISPEAKER_NAME
|
|
369
|
-
指定小爱音箱名称,默认是获取到的第一个小爱音箱
|
|
370
|
-
--quiet 小爱音箱静默执行
|
|
371
370
|
```
|
|
372
371
|
|
|
373
372
|
```
|
|
@@ -397,6 +396,23 @@ options:
|
|
|
397
396
|
--value VALUE 需要设定的属性值
|
|
398
397
|
```
|
|
399
398
|
|
|
399
|
+
```
|
|
400
|
+
usage: mijiaAPI run [-h] [-p AUTH_PATH]
|
|
401
|
+
[--wifispeaker_name WIFISPEAKER_NAME] [--quiet]
|
|
402
|
+
PROMPT
|
|
403
|
+
|
|
404
|
+
positional arguments:
|
|
405
|
+
PROMPT 使用自然语言描述你的需求
|
|
406
|
+
|
|
407
|
+
options:
|
|
408
|
+
-h, --help show this help message and exit
|
|
409
|
+
-p, --auth_path AUTH_PATH
|
|
410
|
+
认证文件保存路径,默认保存在 ~/.config/mijia-api/auth.json
|
|
411
|
+
--wifispeaker_name WIFISPEAKER_NAME
|
|
412
|
+
指定小爱音箱名称,默认是获取到的第一个小爱音箱
|
|
413
|
+
--quiet 小爱音箱静默执行
|
|
414
|
+
```
|
|
415
|
+
|
|
400
416
|
#### 获取设备属性
|
|
401
417
|
|
|
402
418
|
```bash
|
|
@@ -445,9 +461,9 @@ mijiaAPI --get_device_info yeelink.light.lamp4
|
|
|
445
461
|
mijiaAPI --list_consumable_items
|
|
446
462
|
|
|
447
463
|
# 使用小爱音箱执行自然语言命令
|
|
448
|
-
mijiaAPI
|
|
449
|
-
mijiaAPI
|
|
450
|
-
mijiaAPI
|
|
464
|
+
mijiaAPI run "打开卧室台灯"
|
|
465
|
+
mijiaAPI run "把亮度调到50%" --wifispeaker_name "卧室小爱"
|
|
466
|
+
mijiaAPI run "关闭所有灯" --quiet
|
|
451
467
|
```
|
|
452
468
|
|
|
453
469
|
#### 直接使用 uvx(无需安装)
|
|
@@ -69,16 +69,36 @@ def parse_args(args):
|
|
|
69
69
|
parser.add_argument(
|
|
70
70
|
'--run',
|
|
71
71
|
type=str,
|
|
72
|
+
help=argparse.SUPPRESS,
|
|
73
|
+
nargs='?',
|
|
74
|
+
default=None,
|
|
75
|
+
metavar='PROMPT',
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
run = subparsers.add_parser(
|
|
79
|
+
'run',
|
|
72
80
|
help="使用自然语言描述你的需求,如果你有小爱音箱的话",
|
|
81
|
+
)
|
|
82
|
+
run.set_defaults(func='run')
|
|
83
|
+
run.add_argument(
|
|
84
|
+
'-p', '--auth_path',
|
|
85
|
+
type=Path,
|
|
86
|
+
default=Path.home() / ".config" / "mijia-api" / "auth.json",
|
|
87
|
+
help="认证文件保存路径,默认保存在 ~/.config/mijia-api/auth.json",
|
|
88
|
+
)
|
|
89
|
+
run.add_argument(
|
|
90
|
+
'prompt',
|
|
91
|
+
type=str,
|
|
92
|
+
help="使用自然语言描述你的需求",
|
|
73
93
|
metavar='PROMPT',
|
|
74
94
|
)
|
|
75
|
-
|
|
95
|
+
run.add_argument(
|
|
76
96
|
'--wifispeaker_name',
|
|
77
97
|
type=str,
|
|
78
98
|
help="指定小爱音箱名称,默认是获取到的第一个小爱音箱",
|
|
79
99
|
default=None,
|
|
80
100
|
)
|
|
81
|
-
|
|
101
|
+
run.add_argument(
|
|
82
102
|
'--quiet',
|
|
83
103
|
action='store_true',
|
|
84
104
|
help="小爱音箱静默执行",
|
|
@@ -280,6 +300,11 @@ def set(args):
|
|
|
280
300
|
def main(args):
|
|
281
301
|
args = parse_args(args)
|
|
282
302
|
|
|
303
|
+
if args.run is not None:
|
|
304
|
+
print("错误: '--run' 参数已弃用,请使用 'run' 子命令代替。")
|
|
305
|
+
print(f"新用法: mijiaAPI run \"{args.run}\"")
|
|
306
|
+
sys.exit(1)
|
|
307
|
+
|
|
283
308
|
if args.get_device_info:
|
|
284
309
|
device_info = get_device_info(args.get_device_info)
|
|
285
310
|
print(json.dumps(device_info, indent=2, ensure_ascii=False))
|
|
@@ -288,7 +313,6 @@ def main(args):
|
|
|
288
313
|
args.list_scenes or
|
|
289
314
|
args.list_consumable_items or
|
|
290
315
|
args.run_scene or
|
|
291
|
-
args.run or
|
|
292
316
|
hasattr(args, 'func') and args.func is not None):
|
|
293
317
|
return
|
|
294
318
|
|
|
@@ -308,25 +332,25 @@ def main(args):
|
|
|
308
332
|
if args.run_scene:
|
|
309
333
|
for scene_id in args.run_scene:
|
|
310
334
|
run_scene(api, scene_id, scene_mapping=scenes_mapping)
|
|
311
|
-
if args.run:
|
|
312
|
-
if device_mapping is None:
|
|
313
|
-
device_mapping = get_devices_list(api, verbose=False)
|
|
314
|
-
if args.wifispeaker_name is None:
|
|
315
|
-
wifispeaker = None
|
|
316
|
-
for device in device_mapping.values():
|
|
317
|
-
if 'xiaomi.wifispeaker' in device['model']:
|
|
318
|
-
wifispeaker = mijiaDevice(api, dev_name=device['name'])
|
|
319
|
-
break
|
|
320
|
-
if wifispeaker is None:
|
|
321
|
-
raise ValueError("未找到小爱音箱设备")
|
|
322
|
-
else:
|
|
323
|
-
wifispeaker = mijiaDevice(api, dev_name=args.wifispeaker_name)
|
|
324
|
-
wifispeaker.run_action('execute-text-directive', _in=[args.run, 1 if args.quiet else 0])
|
|
325
335
|
if hasattr(args, 'func') and args.func is not None:
|
|
326
336
|
if args.func == 'get':
|
|
327
337
|
get(args)
|
|
328
338
|
if args.func == 'set':
|
|
329
339
|
set(args)
|
|
340
|
+
if args.func == 'run':
|
|
341
|
+
if device_mapping is None:
|
|
342
|
+
device_mapping = get_devices_list(api, verbose=False)
|
|
343
|
+
if args.wifispeaker_name is None:
|
|
344
|
+
wifispeaker = None
|
|
345
|
+
for device in device_mapping.values():
|
|
346
|
+
if 'xiaomi.wifispeaker' in device['model']:
|
|
347
|
+
wifispeaker = mijiaDevice(api, dev_name=device['name'])
|
|
348
|
+
break
|
|
349
|
+
if wifispeaker is None:
|
|
350
|
+
raise ValueError("未找到小爱音箱设备")
|
|
351
|
+
else:
|
|
352
|
+
wifispeaker = mijiaDevice(api, dev_name=args.wifispeaker_name)
|
|
353
|
+
wifispeaker.run_action('execute-text-directive', _in=[args.prompt, 1 if args.quiet else 0])
|
|
330
354
|
|
|
331
355
|
def cli():
|
|
332
356
|
main(sys.argv[1:])
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
version = "3.2.0"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mijiaAPI
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.2.0
|
|
4
4
|
Summary: A Python API for Xiaomi Mijia
|
|
5
5
|
Author-email: Do1e <i@do1e.cn>
|
|
6
6
|
License-Expression: GPL-3.0-or-later
|
|
@@ -359,14 +359,17 @@ MIJIA_LOG_LEVEL=WARNING mijiaAPI get --dev_name "卧室台灯" --prop_name "brig
|
|
|
359
359
|
完整的命令行参数说明:
|
|
360
360
|
|
|
361
361
|
```
|
|
362
|
-
usage: mijiaAPI [-h] [-p AUTH_PATH] [--list_homes] [-l]
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
362
|
+
usage: mijiaAPI [-h] [-v] [-p AUTH_PATH] [--list_homes] [-l]
|
|
363
|
+
[--list_scenes] [--list_consumable_items]
|
|
364
|
+
[--run_scene SCENE_ID/SCENE_NAME [SCENE_ID/SCENE_NAME ...]]
|
|
365
|
+
[--get_device_info DEVICE_MODEL]
|
|
366
|
+
{run,get,set} ...
|
|
367
|
+
|
|
368
|
+
Mijia API CLI (v3.1.0)
|
|
367
369
|
|
|
368
370
|
positional arguments:
|
|
369
|
-
{get,set}
|
|
371
|
+
{run,get,set}
|
|
372
|
+
run 使用自然语言描述你的需求,如果你有小爱音箱的话
|
|
370
373
|
get 获取设备属性
|
|
371
374
|
set 设置设备属性
|
|
372
375
|
|
|
@@ -384,10 +387,6 @@ options:
|
|
|
384
387
|
运行场景,指定场景ID或名称
|
|
385
388
|
--get_device_info DEVICE_MODEL
|
|
386
389
|
获取设备信息,指定设备model,先使用 --list_devices 获取
|
|
387
|
-
--run PROMPT 使用自然语言描述你的需求,如果你有小爱音箱的话
|
|
388
|
-
--wifispeaker_name WIFISPEAKER_NAME
|
|
389
|
-
指定小爱音箱名称,默认是获取到的第一个小爱音箱
|
|
390
|
-
--quiet 小爱音箱静默执行
|
|
391
390
|
```
|
|
392
391
|
|
|
393
392
|
```
|
|
@@ -417,6 +416,23 @@ options:
|
|
|
417
416
|
--value VALUE 需要设定的属性值
|
|
418
417
|
```
|
|
419
418
|
|
|
419
|
+
```
|
|
420
|
+
usage: mijiaAPI run [-h] [-p AUTH_PATH]
|
|
421
|
+
[--wifispeaker_name WIFISPEAKER_NAME] [--quiet]
|
|
422
|
+
PROMPT
|
|
423
|
+
|
|
424
|
+
positional arguments:
|
|
425
|
+
PROMPT 使用自然语言描述你的需求
|
|
426
|
+
|
|
427
|
+
options:
|
|
428
|
+
-h, --help show this help message and exit
|
|
429
|
+
-p, --auth_path AUTH_PATH
|
|
430
|
+
认证文件保存路径,默认保存在 ~/.config/mijia-api/auth.json
|
|
431
|
+
--wifispeaker_name WIFISPEAKER_NAME
|
|
432
|
+
指定小爱音箱名称,默认是获取到的第一个小爱音箱
|
|
433
|
+
--quiet 小爱音箱静默执行
|
|
434
|
+
```
|
|
435
|
+
|
|
420
436
|
#### 获取设备属性
|
|
421
437
|
|
|
422
438
|
```bash
|
|
@@ -465,9 +481,9 @@ mijiaAPI --get_device_info yeelink.light.lamp4
|
|
|
465
481
|
mijiaAPI --list_consumable_items
|
|
466
482
|
|
|
467
483
|
# 使用小爱音箱执行自然语言命令
|
|
468
|
-
mijiaAPI
|
|
469
|
-
mijiaAPI
|
|
470
|
-
mijiaAPI
|
|
484
|
+
mijiaAPI run "打开卧室台灯"
|
|
485
|
+
mijiaAPI run "把亮度调到50%" --wifispeaker_name "卧室小爱"
|
|
486
|
+
mijiaAPI run "关闭所有灯" --quiet
|
|
471
487
|
```
|
|
472
488
|
|
|
473
489
|
#### 直接使用 uvx(无需安装)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
version = "3.1.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|