aioamazondevices 6.5.1__py3-none-any.whl → 9.0.2__py3-none-any.whl
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.
- aioamazondevices/__init__.py +1 -1
- aioamazondevices/api.py +133 -833
- aioamazondevices/const/__init__.py +1 -0
- aioamazondevices/{const.py → const/devices.py} +45 -161
- aioamazondevices/const/http.py +36 -0
- aioamazondevices/const/metadata.py +44 -0
- aioamazondevices/{query.py → const/queries.py} +1 -1
- aioamazondevices/const/schedules.py +61 -0
- aioamazondevices/{sounds.py → const/sounds.py} +2 -1
- aioamazondevices/http_wrapper.py +349 -0
- aioamazondevices/login.py +445 -0
- aioamazondevices/structures.py +65 -0
- aioamazondevices/utils.py +23 -1
- {aioamazondevices-6.5.1.dist-info → aioamazondevices-9.0.2.dist-info}/METADATA +17 -4
- aioamazondevices-9.0.2.dist-info/RECORD +19 -0
- aioamazondevices-6.5.1.dist-info/RECORD +0 -12
- {aioamazondevices-6.5.1.dist-info → aioamazondevices-9.0.2.dist-info}/WHEEL +0 -0
- {aioamazondevices-6.5.1.dist-info → aioamazondevices-9.0.2.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""aioamazondevices const package."""
|
|
@@ -1,117 +1,10 @@
|
|
|
1
|
-
"""
|
|
1
|
+
"""aioamazondevices devices."""
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
_LOGGER = logging.getLogger(__package__)
|
|
6
|
-
|
|
7
|
-
ARRAY_WRAPPER = "generatedArrayWrapper"
|
|
8
|
-
|
|
9
|
-
HTTP_ERROR_199 = 199
|
|
10
|
-
HTTP_ERROR_299 = 299
|
|
11
|
-
|
|
12
|
-
TO_REDACT = {
|
|
13
|
-
"address",
|
|
14
|
-
"address1",
|
|
15
|
-
"address2",
|
|
16
|
-
"address3",
|
|
17
|
-
"city",
|
|
18
|
-
"county",
|
|
19
|
-
"customerId",
|
|
20
|
-
"deviceAccountId",
|
|
21
|
-
"deviceAddress",
|
|
22
|
-
"deviceOwnerCustomerId",
|
|
23
|
-
"given_name",
|
|
24
|
-
"name",
|
|
25
|
-
"password",
|
|
26
|
-
"postalCode",
|
|
27
|
-
"searchCustomerId",
|
|
28
|
-
"state",
|
|
29
|
-
"street",
|
|
30
|
-
"user_id",
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
# Amazon APP info
|
|
34
|
-
AMAZON_APP_BUNDLE_ID = "com.amazon.echo"
|
|
35
|
-
AMAZON_APP_ID = "MAPiOSLib/6.0/ToHideRetailLink"
|
|
36
|
-
AMAZON_APP_NAME = "AioAmazonDevices"
|
|
37
|
-
AMAZON_APP_VERSION = "2.2.663733.0"
|
|
38
|
-
AMAZON_DEVICE_SOFTWARE_VERSION = "35602678"
|
|
39
|
-
AMAZON_DEVICE_TYPE = "A2IVLV5VM2W81"
|
|
40
|
-
AMAZON_CLIENT_OS = "18.5"
|
|
41
|
-
|
|
42
|
-
DEFAULT_SITE = "https://www.amazon.com"
|
|
43
|
-
DEFAULT_HEADERS = {
|
|
44
|
-
"Accept-Charset": "utf-8",
|
|
45
|
-
"Accept-Encoding": "gzip",
|
|
46
|
-
"Connection": "keep-alive",
|
|
47
|
-
}
|
|
48
|
-
CSRF_COOKIE = "csrf"
|
|
49
|
-
REQUEST_AGENT = {
|
|
50
|
-
"Amazon": f"AmazonWebView/AmazonAlexa/{AMAZON_APP_VERSION}/iOS/{AMAZON_CLIENT_OS}/iPhone", # noqa: E501
|
|
51
|
-
"Browser": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0", # noqa: E501
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
REFRESH_ACCESS_TOKEN = "access_token" # noqa: S105
|
|
55
|
-
REFRESH_AUTH_COOKIES = "auth_cookies"
|
|
56
|
-
|
|
57
|
-
URI_DEVICES = "/api/devices-v2/device"
|
|
58
|
-
URI_DND = "/api/dnd/device-status-list"
|
|
59
|
-
URI_NOTIFICATIONS = "/api/notifications"
|
|
60
|
-
URI_SIGNIN = "/ap/signin"
|
|
61
|
-
URI_NEXUS_GRAPHQL = "/nexus/v1/graphql"
|
|
62
|
-
|
|
63
|
-
SENSOR_STATE_OFF = "NOT_DETECTED"
|
|
64
|
-
|
|
65
|
-
# File extensions
|
|
66
|
-
SAVE_PATH = "out"
|
|
67
|
-
HTML_EXTENSION = ".html"
|
|
68
|
-
JSON_EXTENSION = ".json"
|
|
69
|
-
BIN_EXTENSION = ".bin"
|
|
3
|
+
from .http import AMAZON_DEVICE_TYPE
|
|
70
4
|
|
|
71
5
|
SPEAKER_GROUP_FAMILY = "WHA"
|
|
72
6
|
SPEAKER_GROUP_MODEL = "Speaker Group"
|
|
73
7
|
|
|
74
|
-
SENSORS: dict[str, dict[str, str | None]] = {
|
|
75
|
-
"temperatureSensor": {
|
|
76
|
-
"name": "temperature",
|
|
77
|
-
"key": "value",
|
|
78
|
-
"subkey": "value",
|
|
79
|
-
"scale": "scale",
|
|
80
|
-
},
|
|
81
|
-
"motionSensor": {
|
|
82
|
-
"name": "detectionState",
|
|
83
|
-
"key": "detectionStateValue",
|
|
84
|
-
"subkey": None,
|
|
85
|
-
"scale": None,
|
|
86
|
-
},
|
|
87
|
-
"lightSensor": {
|
|
88
|
-
"name": "illuminance",
|
|
89
|
-
"key": "illuminanceValue",
|
|
90
|
-
"subkey": "value",
|
|
91
|
-
"scale": None,
|
|
92
|
-
},
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
ALEXA_INFO_SKILLS = [
|
|
96
|
-
"Alexa.Calendar.PlayToday",
|
|
97
|
-
"Alexa.Calendar.PlayTomorrow",
|
|
98
|
-
"Alexa.Calendar.PlayNext",
|
|
99
|
-
"Alexa.Date.Play",
|
|
100
|
-
"Alexa.Time.Play",
|
|
101
|
-
"Alexa.News.NationalNews",
|
|
102
|
-
"Alexa.FlashBriefing.Play",
|
|
103
|
-
"Alexa.Traffic.Play",
|
|
104
|
-
"Alexa.Weather.Play",
|
|
105
|
-
"Alexa.CleanUp.Play",
|
|
106
|
-
"Alexa.GoodMorning.Play",
|
|
107
|
-
"Alexa.SingASong.Play",
|
|
108
|
-
"Alexa.FunFact.Play",
|
|
109
|
-
"Alexa.Joke.Play",
|
|
110
|
-
"Alexa.TellStory.Play",
|
|
111
|
-
"Alexa.ImHome.Play",
|
|
112
|
-
"Alexa.GoodNight.Play",
|
|
113
|
-
]
|
|
114
|
-
|
|
115
8
|
DEVICE_TO_IGNORE: list[str] = [
|
|
116
9
|
AMAZON_DEVICE_TYPE, # Alexa App for iOS
|
|
117
10
|
"A2TF17PFR55MTB", # Alexa App for Android
|
|
@@ -136,6 +29,9 @@ DEVICE_TO_IGNORE: list[str] = [
|
|
|
136
29
|
"A133UZ2CB0IB8", # Sony Soundbar Sony HT-A5000 - issue #486
|
|
137
30
|
"A2M9HB23M9MSSM", # Smartwatch Amazfit Bip U Pro - issue #507
|
|
138
31
|
"A1P7E7V3FCZKU6", # Toshiba Corporation TV 32LF221U19 - issue #531
|
|
32
|
+
"A1NPP2J03FTS0I", # Eero Pro 6 - issue #602
|
|
33
|
+
"A14AIWB3T3AS1Z", # Samsung Soundbar HW-Q950A - issue #603
|
|
34
|
+
"APHEAY6LX7T13", # Samsung Refrigerator RS22T5561SR/AA - issue #577
|
|
139
35
|
]
|
|
140
36
|
|
|
141
37
|
DEVICE_TYPE_TO_MODEL: dict[str, dict[str, str | None]] = {
|
|
@@ -223,6 +119,10 @@ DEVICE_TYPE_TO_MODEL: dict[str, dict[str, str | None]] = {
|
|
|
223
119
|
"model": "Life P66970",
|
|
224
120
|
"hw_version": "A16",
|
|
225
121
|
},
|
|
122
|
+
"A20E9PVI3HANVQ": {
|
|
123
|
+
"manufacturer": "Marshall",
|
|
124
|
+
"model": "Marshall Uxbridge",
|
|
125
|
+
},
|
|
226
126
|
"A25521KS9QCAMD": {
|
|
227
127
|
"model": "Fire Tablet HD 7",
|
|
228
128
|
"hw_version": "Gen4",
|
|
@@ -479,58 +379,42 @@ DEVICE_TYPE_TO_MODEL: dict[str, dict[str, str | None]] = {
|
|
|
479
379
|
"model": "Echo Plus",
|
|
480
380
|
"hw_version": "Gen2",
|
|
481
381
|
},
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
"XXXX-WD": "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR",
|
|
486
|
-
"XXXX-WE": "FREQ=WEEKLY;BYDAY=SA,SU",
|
|
487
|
-
"XXXX-WXX-1": "FREQ=WEEKLY;BYDAY=MO",
|
|
488
|
-
"XXXX-WXX-2": "FREQ=WEEKLY;BYDAY=TU",
|
|
489
|
-
"XXXX-WXX-3": "FREQ=WEEKLY;BYDAY=WE",
|
|
490
|
-
"XXXX-WXX-4": "FREQ=WEEKLY;BYDAY=TH",
|
|
491
|
-
"XXXX-WXX-5": "FREQ=WEEKLY;BYDAY=FR",
|
|
492
|
-
"XXXX-WXX-6": "FREQ=WEEKLY;BYDAY=SA",
|
|
493
|
-
"XXXX-WXX-7": "FREQ=WEEKLY;BYDAY=SU",
|
|
494
|
-
}
|
|
495
|
-
|
|
496
|
-
WEEKEND_EXCEPTIONS = {
|
|
497
|
-
"TH-FR": {
|
|
498
|
-
"XXXX-WD": "FREQ=WEEKLY;BYDAY=MO,TU,WE,SA,SU",
|
|
499
|
-
"XXXX-WE": "FREQ=WEEKLY;BYDAY=TH,FR",
|
|
382
|
+
"A1JJ0KFC4ZPNJ3": {
|
|
383
|
+
"model": "Echo Input",
|
|
384
|
+
"hw_version": "Gen1",
|
|
500
385
|
},
|
|
501
|
-
"
|
|
502
|
-
"
|
|
503
|
-
"
|
|
386
|
+
"A2V9UEGZ82H4KZ": {
|
|
387
|
+
"model": "Fire Tablet HD 10",
|
|
388
|
+
"hw_version": "Gen13",
|
|
389
|
+
},
|
|
390
|
+
"ALCIV0P5M8TZ0": {
|
|
391
|
+
"manufacturer": "Sonos Inc.",
|
|
392
|
+
"model": "Sonos Beam",
|
|
393
|
+
"hw_version": None,
|
|
394
|
+
},
|
|
395
|
+
"A1MKGHX5VQBDWX": {
|
|
396
|
+
"manufacturer": "Denon",
|
|
397
|
+
"model": "Denon Home 150",
|
|
398
|
+
"hw_version": None,
|
|
399
|
+
},
|
|
400
|
+
"A2X8WT9JELC577": {
|
|
401
|
+
"manufacturer": "ecobee Inc.",
|
|
402
|
+
"model": "ecobee 4 Smart Thermostat with Voice Control",
|
|
403
|
+
"hw_version": None,
|
|
404
|
+
},
|
|
405
|
+
"AA1IN44SS3X6O": {
|
|
406
|
+
"manufacturer": "ecobee Inc.",
|
|
407
|
+
"model": "ecobee SmartThermostat Premium",
|
|
408
|
+
"hw_version": None,
|
|
409
|
+
},
|
|
410
|
+
"A2ZJ8HST6J24XH": {
|
|
411
|
+
"manufacturer": "Sonos Inc.",
|
|
412
|
+
"model": "Sonos Roam 2",
|
|
413
|
+
"hw_version": None,
|
|
414
|
+
},
|
|
415
|
+
"A3M91KUSTM6A3P": {
|
|
416
|
+
"manufacturer": "Ford",
|
|
417
|
+
"model": "Ford SYNC 4",
|
|
418
|
+
"hw_version": None,
|
|
504
419
|
},
|
|
505
420
|
}
|
|
506
|
-
|
|
507
|
-
# Countries grouped by their weekend type
|
|
508
|
-
COUNTRY_GROUPS = {
|
|
509
|
-
"TH-FR": ["IR"],
|
|
510
|
-
"FR-SA": [
|
|
511
|
-
"AF",
|
|
512
|
-
"BD",
|
|
513
|
-
"BH",
|
|
514
|
-
"DZ",
|
|
515
|
-
"EG",
|
|
516
|
-
"IL",
|
|
517
|
-
"IQ",
|
|
518
|
-
"JO",
|
|
519
|
-
"KW",
|
|
520
|
-
"LY",
|
|
521
|
-
"MV",
|
|
522
|
-
"MY",
|
|
523
|
-
"OM",
|
|
524
|
-
"PS",
|
|
525
|
-
"QA",
|
|
526
|
-
"SA",
|
|
527
|
-
"SD",
|
|
528
|
-
"SY",
|
|
529
|
-
"YE",
|
|
530
|
-
],
|
|
531
|
-
}
|
|
532
|
-
|
|
533
|
-
NOTIFICATION_ALARM = "Alarm"
|
|
534
|
-
NOTIFICATION_MUSIC_ALARM = "MusicAlarm"
|
|
535
|
-
NOTIFICATION_REMINDER = "Reminder"
|
|
536
|
-
NOTIFICATION_TIMER = "Timer"
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"""aioamazondevices HTTP const."""
|
|
2
|
+
|
|
3
|
+
HTTP_ERROR_199 = 199
|
|
4
|
+
HTTP_ERROR_299 = 299
|
|
5
|
+
|
|
6
|
+
ARRAY_WRAPPER = "generatedArrayWrapper"
|
|
7
|
+
|
|
8
|
+
# Amazon APP info
|
|
9
|
+
AMAZON_APP_BUNDLE_ID = "com.amazon.echo"
|
|
10
|
+
AMAZON_APP_ID = "MAPiOSLib/6.0/ToHideRetailLink"
|
|
11
|
+
AMAZON_APP_NAME = "AioAmazonDevices"
|
|
12
|
+
AMAZON_APP_VERSION = "2.2.663733.0"
|
|
13
|
+
AMAZON_DEVICE_SOFTWARE_VERSION = "35602678"
|
|
14
|
+
AMAZON_DEVICE_TYPE = "A2IVLV5VM2W81"
|
|
15
|
+
AMAZON_CLIENT_OS = "18.5"
|
|
16
|
+
|
|
17
|
+
DEFAULT_SITE = "https://www.amazon.com"
|
|
18
|
+
DEFAULT_HEADERS = {
|
|
19
|
+
"Accept-Charset": "utf-8",
|
|
20
|
+
"Accept-Encoding": "gzip",
|
|
21
|
+
"Connection": "keep-alive",
|
|
22
|
+
}
|
|
23
|
+
CSRF_COOKIE = "csrf"
|
|
24
|
+
REQUEST_AGENT = {
|
|
25
|
+
"Amazon": f"AmazonWebView/AmazonAlexa/{AMAZON_APP_VERSION}/iOS/{AMAZON_CLIENT_OS}/iPhone", # noqa: E501
|
|
26
|
+
"Browser": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0", # noqa: E501
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
REFRESH_ACCESS_TOKEN = "access_token" # noqa: S105
|
|
30
|
+
REFRESH_AUTH_COOKIES = "auth_cookies"
|
|
31
|
+
|
|
32
|
+
URI_DEVICES = "/api/devices-v2/device"
|
|
33
|
+
URI_DND = "/api/dnd/device-status-list"
|
|
34
|
+
URI_NOTIFICATIONS = "/api/notifications"
|
|
35
|
+
URI_SIGNIN = "/ap/signin"
|
|
36
|
+
URI_NEXUS_GRAPHQL = "/nexus/v1/graphql"
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"""aioamazondevices Additional entities const."""
|
|
2
|
+
|
|
3
|
+
SENSOR_STATE_OFF = "NOT_DETECTED"
|
|
4
|
+
|
|
5
|
+
SENSORS: dict[str, dict[str, str | None]] = {
|
|
6
|
+
"temperatureSensor": {
|
|
7
|
+
"name": "temperature",
|
|
8
|
+
"key": "value",
|
|
9
|
+
"subkey": "value",
|
|
10
|
+
"scale": "scale",
|
|
11
|
+
},
|
|
12
|
+
"motionSensor": {
|
|
13
|
+
"name": "detectionState",
|
|
14
|
+
"key": "detectionStateValue",
|
|
15
|
+
"subkey": None,
|
|
16
|
+
"scale": None,
|
|
17
|
+
},
|
|
18
|
+
"lightSensor": {
|
|
19
|
+
"name": "illuminance",
|
|
20
|
+
"key": "illuminanceValue",
|
|
21
|
+
"subkey": "value",
|
|
22
|
+
"scale": None,
|
|
23
|
+
},
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
ALEXA_INFO_SKILLS = [
|
|
27
|
+
"Alexa.Calendar.PlayToday",
|
|
28
|
+
"Alexa.Calendar.PlayTomorrow",
|
|
29
|
+
"Alexa.Calendar.PlayNext",
|
|
30
|
+
"Alexa.Date.Play",
|
|
31
|
+
"Alexa.Time.Play",
|
|
32
|
+
"Alexa.News.NationalNews",
|
|
33
|
+
"Alexa.FlashBriefing.Play",
|
|
34
|
+
"Alexa.Traffic.Play",
|
|
35
|
+
"Alexa.Weather.Play",
|
|
36
|
+
"Alexa.CleanUp.Play",
|
|
37
|
+
"Alexa.GoodMorning.Play",
|
|
38
|
+
"Alexa.SingASong.Play",
|
|
39
|
+
"Alexa.FunFact.Play",
|
|
40
|
+
"Alexa.Joke.Play",
|
|
41
|
+
"Alexa.TellStory.Play",
|
|
42
|
+
"Alexa.ImHome.Play",
|
|
43
|
+
"Alexa.GoodNight.Play",
|
|
44
|
+
]
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"""aioamazondevices: schedules."""
|
|
2
|
+
|
|
3
|
+
NOTIFICATION_ALARM = "Alarm"
|
|
4
|
+
NOTIFICATION_MUSIC_ALARM = "MusicAlarm"
|
|
5
|
+
NOTIFICATION_REMINDER = "Reminder"
|
|
6
|
+
NOTIFICATION_TIMER = "Timer"
|
|
7
|
+
NOTIFICATIONS_SUPPORTED = [
|
|
8
|
+
NOTIFICATION_ALARM,
|
|
9
|
+
NOTIFICATION_MUSIC_ALARM,
|
|
10
|
+
NOTIFICATION_REMINDER,
|
|
11
|
+
NOTIFICATION_TIMER,
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
RECURRING_PATTERNS: dict[str, str] = {
|
|
15
|
+
"XXXX-WD": "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR",
|
|
16
|
+
"XXXX-WE": "FREQ=WEEKLY;BYDAY=SA,SU",
|
|
17
|
+
"XXXX-WXX-1": "FREQ=WEEKLY;BYDAY=MO",
|
|
18
|
+
"XXXX-WXX-2": "FREQ=WEEKLY;BYDAY=TU",
|
|
19
|
+
"XXXX-WXX-3": "FREQ=WEEKLY;BYDAY=WE",
|
|
20
|
+
"XXXX-WXX-4": "FREQ=WEEKLY;BYDAY=TH",
|
|
21
|
+
"XXXX-WXX-5": "FREQ=WEEKLY;BYDAY=FR",
|
|
22
|
+
"XXXX-WXX-6": "FREQ=WEEKLY;BYDAY=SA",
|
|
23
|
+
"XXXX-WXX-7": "FREQ=WEEKLY;BYDAY=SU",
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
WEEKEND_EXCEPTIONS = {
|
|
27
|
+
"TH-FR": {
|
|
28
|
+
"XXXX-WD": "FREQ=WEEKLY;BYDAY=MO,TU,WE,SA,SU",
|
|
29
|
+
"XXXX-WE": "FREQ=WEEKLY;BYDAY=TH,FR",
|
|
30
|
+
},
|
|
31
|
+
"FR-SA": {
|
|
32
|
+
"XXXX-WD": "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,SU",
|
|
33
|
+
"XXXX-WE": "FREQ=WEEKLY;BYDAY=FR,SA",
|
|
34
|
+
},
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
# Countries grouped by their weekend type
|
|
38
|
+
COUNTRY_GROUPS = {
|
|
39
|
+
"TH-FR": ["IR"],
|
|
40
|
+
"FR-SA": [
|
|
41
|
+
"AF",
|
|
42
|
+
"BD",
|
|
43
|
+
"BH",
|
|
44
|
+
"DZ",
|
|
45
|
+
"EG",
|
|
46
|
+
"IL",
|
|
47
|
+
"IQ",
|
|
48
|
+
"JO",
|
|
49
|
+
"KW",
|
|
50
|
+
"LY",
|
|
51
|
+
"MV",
|
|
52
|
+
"MY",
|
|
53
|
+
"OM",
|
|
54
|
+
"PS",
|
|
55
|
+
"QA",
|
|
56
|
+
"SA",
|
|
57
|
+
"SD",
|
|
58
|
+
"SY",
|
|
59
|
+
"YE",
|
|
60
|
+
],
|
|
61
|
+
}
|