Commit 1bf6ab6 1 parent e72bcb0 commit 1bf6ab6 Copy full SHA for 1bf6ab6
File tree 3 files changed +175
-2
lines changed
custom_components/xiaomi_miot
3 files changed +175
-2
lines changed Original file line number Diff line number Diff line change 1
- .idea /
1
+ # Byte-compiled / optimized / DLL files
2
2
__pycache__ /
3
+ * .py [cod ]
4
+ * $py.class
5
+
6
+ # C extensions
7
+ * .so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build /
12
+ develop-eggs /
13
+ dist /
14
+ downloads /
15
+ eggs /
16
+ .eggs /
17
+ lib /
18
+ lib64 /
19
+ parts /
20
+ sdist /
21
+ var /
22
+ wheels /
23
+ pip-wheel-metadata /
24
+ share /python-wheels /
25
+ * .egg-info /
26
+ .installed.cfg
27
+ * .egg
28
+ MANIFEST
29
+
30
+ # PyInstaller
31
+ # Usually these files are written by a python script from a template
32
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
33
+ * .manifest
34
+ * .spec
35
+
36
+ # Installer logs
37
+ pip-log.txt
38
+ pip-delete-this-directory.txt
39
+
40
+ # Unit test / coverage reports
41
+ htmlcov /
42
+ .tox /
43
+ .nox /
44
+ .coverage
45
+ .coverage. *
46
+ .cache
47
+ nosetests.xml
48
+ coverage.xml
49
+ * .cover
50
+ * .py,cover
51
+ .hypothesis /
52
+ .pytest_cache /
53
+
54
+ # Translations
55
+ * .mo
56
+ * .pot
57
+
58
+ # Django stuff:
59
+ * .log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance /
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs /_build /
73
+
74
+ # PyBuilder
75
+ target /
76
+
77
+ # Jupyter Notebook
78
+ .ipynb_checkpoints
79
+
80
+ # IPython
81
+ profile_default /
82
+ ipython_config.py
3
83
84
+ # pyenv
85
+ .python-version
86
+
87
+ # pipenv
88
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
89
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
90
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
91
+ # install all needed dependencies.
92
+ # Pipfile.lock
93
+
94
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
95
+ __pypackages__ /
96
+
97
+ # Celery stuff
98
+ celerybeat-schedule
99
+ celerybeat.pid
100
+
101
+ # SageMath parsed files
102
+ * .sage.py
103
+
104
+ # Environments
105
+ .env
106
+ .venv
107
+ env /
108
+ venv /
109
+ ENV /
110
+ env.bak /
111
+ venv.bak /
112
+
113
+ # Spyder project settings
114
+ .spyderproject
115
+ .spyproject
116
+
117
+ # Rope project settings
118
+ .ropeproject
119
+
120
+ # mkdocs documentation
121
+ /site
122
+
123
+ # mypy
124
+ .mypy_cache /
125
+ .dmypy.json
126
+ dmypy.json
127
+
128
+ # Pyre type checker
129
+ .pyre /
130
+
131
+ # test_files
132
+ .vscode /
133
+
134
+ .idea /
Original file line number Diff line number Diff line change 68
68
},
69
69
),
70
70
},
71
+ 'intelligent_speaker_play_by_url' : {
72
+ 'method' : 'async_intelligent_speaker_play_by_url' ,
73
+ 'schema' : XIAOMI_MIIO_SERVICE_SCHEMA .extend (
74
+ {
75
+ vol .Required ('url' , default = '' ): vol .Any (cv .string , None ),
76
+ },
77
+ ),
78
+ },
71
79
}
72
80
73
81
@@ -374,6 +382,22 @@ async def async_update_xiaoai_device(self):
374
382
break
375
383
return self .xiaoai_device
376
384
385
+ async def async_intelligent_speaker_play_by_url (self , url ):
386
+ if not self .xiaoai_device :
387
+ return
388
+ aid = self .xiaoai_device .get ('deviceID' )
389
+ self .update_attrs ({
390
+ 'xiaoai_id' : aid ,
391
+ })
392
+ api = 'https://api2.mina.mi.com/remote/ubus'
393
+ dat = {
394
+ 'deviceId' : aid ,
395
+ 'path' : 'mediaplayer' ,
396
+ 'method' : 'player_play_url' ,
397
+ 'message' : json .dumps ({"url" : url , "type" : 1 , "media" : "app_ios" }),
398
+ }
399
+ return await self .xiaoai_cloud .async_request_api (api , data = dat , method = 'POST' ) or {}
400
+
377
401
async def async_update_play_status (self , now = None ):
378
402
if not self .xiaoai_device :
379
403
return
Original file line number Diff line number Diff line change @@ -16,7 +16,7 @@ send_command:
16
16
text :
17
17
params :
18
18
description : Params for the method.
19
- example : ['on' ]
19
+ example : ["on" ]
20
20
required : true
21
21
selector :
22
22
object :
@@ -213,6 +213,24 @@ xiaoai_wakeup:
213
213
selector :
214
214
boolean :
215
215
216
+ intelligent_speaker_play_by_url :
217
+ description : Play music by url on Xiaoai speaker / 让小爱音箱播放链接中的歌曲
218
+ fields :
219
+ entity_id :
220
+ description : ID of the xiaoai entity.
221
+ example : media_player.xiaoai_x08c
222
+ required : true
223
+ selector :
224
+ entity :
225
+ integration : xiaomi_miot
226
+ domain : media_player
227
+ url :
228
+ description : URL of music.
229
+ example : https://example.com/example.mp3
230
+ required : true
231
+ selector :
232
+ text :
233
+
216
234
get_device_data :
217
235
description : Get xiaomi device data from cloud.
218
236
fields :
You can’t perform that action at this time.
0 commit comments