aioamazondevices 5.0.1__py3-none-any.whl → 6.1.0__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 +102 -186
- aioamazondevices/const.py +28 -33
- aioamazondevices/query.py +91 -0
- aioamazondevices/sounds.py +42 -469
- {aioamazondevices-5.0.1.dist-info → aioamazondevices-6.1.0.dist-info}/METADATA +1 -1
- aioamazondevices-6.1.0.dist-info/RECORD +12 -0
- aioamazondevices-5.0.1.dist-info/RECORD +0 -11
- {aioamazondevices-5.0.1.dist-info → aioamazondevices-6.1.0.dist-info}/LICENSE +0 -0
- {aioamazondevices-5.0.1.dist-info → aioamazondevices-6.1.0.dist-info}/WHEEL +0 -0
aioamazondevices/__init__.py
CHANGED
aioamazondevices/api.py
CHANGED
@@ -48,18 +48,12 @@ from .const import (
|
|
48
48
|
HTTP_ERROR_199,
|
49
49
|
HTTP_ERROR_299,
|
50
50
|
JSON_EXTENSION,
|
51
|
-
NODE_BLUETOOTH,
|
52
|
-
NODE_DEVICES,
|
53
|
-
NODE_DO_NOT_DISTURB,
|
54
|
-
NODE_IDENTIFIER,
|
55
|
-
NODE_PREFERENCES,
|
56
51
|
REFRESH_ACCESS_TOKEN,
|
57
52
|
REFRESH_AUTH_COOKIES,
|
58
53
|
SAVE_PATH,
|
59
54
|
SENSORS,
|
60
|
-
|
61
|
-
|
62
|
-
URI_SENSORS,
|
55
|
+
URI_DEVICES,
|
56
|
+
URI_NEXUS_GRAPHQL,
|
63
57
|
URI_SIGNIN,
|
64
58
|
)
|
65
59
|
from .exceptions import (
|
@@ -69,6 +63,7 @@ from .exceptions import (
|
|
69
63
|
CannotRetrieveData,
|
70
64
|
WrongMethod,
|
71
65
|
)
|
66
|
+
from .query import QUERY_DEVICE_STATE
|
72
67
|
from .utils import obfuscate_email, scrub_fields
|
73
68
|
|
74
69
|
|
@@ -94,11 +89,8 @@ class AmazonDevice:
|
|
94
89
|
online: bool
|
95
90
|
serial_number: str
|
96
91
|
software_version: str
|
97
|
-
|
98
|
-
|
99
|
-
bluetooth_state: bool
|
100
|
-
entity_id: str
|
101
|
-
appliance_id: str
|
92
|
+
entity_id: str | None
|
93
|
+
endpoint_id: str | None
|
102
94
|
sensors: dict[str, AmazonDeviceSensor]
|
103
95
|
|
104
96
|
|
@@ -326,14 +318,6 @@ class AmazonEchoApi:
|
|
326
318
|
)
|
327
319
|
return False
|
328
320
|
|
329
|
-
async def _ignore_phoenix_error(self, response: ClientResponse) -> bool:
|
330
|
-
"""Return true if error is due to phoenix endpoint."""
|
331
|
-
# Endpoint URI_IDS replies with error 199 or 299
|
332
|
-
# during maintenance
|
333
|
-
return response.status in [HTTP_ERROR_199, HTTP_ERROR_299] and (
|
334
|
-
URI_IDS in response.url.path
|
335
|
-
)
|
336
|
-
|
337
321
|
async def _http_phrase_error(self, error: int) -> str:
|
338
322
|
"""Convert numeric error in human phrase."""
|
339
323
|
if error == HTTP_ERROR_199:
|
@@ -444,9 +428,7 @@ class AmazonEchoApi:
|
|
444
428
|
HTTPStatus.UNAUTHORIZED,
|
445
429
|
]:
|
446
430
|
raise CannotAuthenticate(await self._http_phrase_error(resp.status))
|
447
|
-
if not await self._ignore_ap_signin_error(
|
448
|
-
resp
|
449
|
-
) and not await self._ignore_phoenix_error(resp):
|
431
|
+
if not await self._ignore_ap_signin_error(resp):
|
450
432
|
raise CannotRetrieveData(
|
451
433
|
f"Request failed: {await self._http_phrase_error(resp.status)}"
|
452
434
|
)
|
@@ -597,127 +579,80 @@ class AmazonEchoApi:
|
|
597
579
|
_LOGGER.info("Register device: %s", scrub_fields(login_data))
|
598
580
|
return login_data
|
599
581
|
|
600
|
-
async def
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
"Sensors data not available [%s error '%s'], skipping",
|
612
|
-
URI_IDS,
|
613
|
-
await self._http_phrase_error(raw_resp.status),
|
614
|
-
)
|
615
|
-
self._sensors_available = False
|
616
|
-
return []
|
617
|
-
|
618
|
-
json_data = await raw_resp.json()
|
619
|
-
|
620
|
-
network_detail = orjson.loads(json_data["networkDetail"])
|
621
|
-
# Navigate through the nested structure step by step
|
622
|
-
location_details = network_detail["locationDetails"]["locationDetails"]
|
623
|
-
default_location = location_details["Default_Location"]
|
624
|
-
amazon_bridge = default_location["amazonBridgeDetails"]["amazonBridgeDetails"]
|
625
|
-
|
626
|
-
# New devices are based on LambdaBridge_AAA structure
|
627
|
-
lambda_bridge_aaa = amazon_bridge.get("LambdaBridge_AAA/SonarCloudService")
|
628
|
-
appliance_details_aaa = (
|
629
|
-
lambda_bridge_aaa["applianceDetails"]["applianceDetails"]
|
630
|
-
if lambda_bridge_aaa
|
631
|
-
else {}
|
632
|
-
)
|
582
|
+
async def _get_devices_state(
|
583
|
+
self,
|
584
|
+
) -> dict[str, Any]:
|
585
|
+
"""Get Device State."""
|
586
|
+
payload = {
|
587
|
+
"operationName": "getDevicesState",
|
588
|
+
"variables": {
|
589
|
+
"latencyTolerance": "LOW",
|
590
|
+
},
|
591
|
+
"query": QUERY_DEVICE_STATE,
|
592
|
+
}
|
633
593
|
|
634
|
-
|
635
|
-
|
594
|
+
_, raw_resp = await self._session_request(
|
595
|
+
method=HTTPMethod.POST,
|
596
|
+
url=f"https://alexa.amazon.{self._domain}{URI_NEXUS_GRAPHQL}",
|
597
|
+
input_data=payload,
|
598
|
+
json_data=True,
|
636
599
|
)
|
637
600
|
|
638
|
-
|
639
|
-
for bridge_key, bridge_value in amazon_bridge.items():
|
640
|
-
if "LambdaBridge_AlexaBridge/" in bridge_key:
|
641
|
-
# Value key: "LambdaBridge_AlexaBridge/XXXXXXXXXXXXXX@XXXXXXXXXXXXXX"
|
642
|
-
# Value subkey: "AlexaBridge_XXXXXXXXXXXXXX@XXXXXXXXXXXXXX_XXXXXXXXXXXX"
|
643
|
-
subkey = bridge_key.split("_")[1].replace("/", "_")
|
644
|
-
|
645
|
-
appliance_details_alexa = bridge_value["applianceDetails"][
|
646
|
-
"applianceDetails"
|
647
|
-
]
|
648
|
-
entity_ids_list.extend(
|
649
|
-
await self._get_entities_ids(appliance_details_alexa, subkey)
|
650
|
-
)
|
651
|
-
|
652
|
-
return entity_ids_list
|
653
|
-
|
654
|
-
async def _get_entities_ids(
|
655
|
-
self, appliance_details: dict[str, Any], searchkey: str
|
656
|
-
) -> list[dict[str, str]]:
|
657
|
-
"""Extract entityId and applianceId."""
|
658
|
-
entity_ids_list: list[dict[str, str]] = []
|
659
|
-
# Process each appliance that starts with "searchkey"
|
660
|
-
for appliance_key, appliance_data in appliance_details.items():
|
661
|
-
if not appliance_key.startswith(searchkey):
|
662
|
-
continue
|
663
|
-
|
664
|
-
entity_id = appliance_data["entityId"]
|
665
|
-
appliance_id = appliance_data["applianceId"]
|
666
|
-
|
667
|
-
# Create identifier object for this appliance
|
668
|
-
identifier = {
|
669
|
-
"entityId": entity_id,
|
670
|
-
"applianceId": appliance_id,
|
671
|
-
}
|
672
|
-
|
673
|
-
# Update device information for each device in the identifier list
|
674
|
-
for device_identifier in appliance_data["alexaDeviceIdentifierList"]:
|
675
|
-
serial_number = device_identifier["dmsDeviceSerialNumber"]
|
676
|
-
|
677
|
-
# Add identifier information to the device
|
678
|
-
# but only if the device was previously found
|
679
|
-
if serial_number in self._devices:
|
680
|
-
self._devices[serial_number] |= {NODE_IDENTIFIER: identifier}
|
681
|
-
|
682
|
-
# Add to entity IDs list for sensor retrieval
|
683
|
-
entity_ids_list.append({"entityId": entity_id, "entityType": "ENTITY"})
|
684
|
-
|
685
|
-
return entity_ids_list
|
601
|
+
return cast("dict", await raw_resp.json())
|
686
602
|
|
687
603
|
async def _get_sensors_states(
|
688
|
-
self,
|
689
|
-
) -> dict[str, dict[str, AmazonDeviceSensor]]:
|
604
|
+
self,
|
605
|
+
) -> tuple[dict[str, dict[str, Any]], dict[str, dict[str, AmazonDeviceSensor]]]:
|
690
606
|
"""Retrieve devices sensors states."""
|
691
|
-
|
692
|
-
|
693
|
-
|
694
|
-
|
695
|
-
|
696
|
-
|
697
|
-
|
698
|
-
|
607
|
+
devices_state = await self._get_devices_state()
|
608
|
+
devices_sensors: dict[str, dict[str, AmazonDeviceSensor]] = {}
|
609
|
+
devices_endpoints: dict[str, dict[str, Any]] = {}
|
610
|
+
|
611
|
+
endpoints = devices_state["data"]["listEndpoints"]
|
612
|
+
for endpoint in endpoints.get("endpoints"):
|
613
|
+
serial_number = (
|
614
|
+
endpoint["serialNumber"]["value"]["text"]
|
615
|
+
if endpoint["serialNumber"]
|
616
|
+
else None
|
617
|
+
)
|
618
|
+
if serial_number in self._devices:
|
619
|
+
devices_sensors[serial_number] = self._get_device_sensor_state(endpoint)
|
620
|
+
devices_endpoints[serial_number] = endpoint
|
621
|
+
|
622
|
+
return devices_endpoints, devices_sensors
|
623
|
+
|
624
|
+
def _get_device_sensor_state(
|
625
|
+
self, endpoint: dict[str, Any]
|
626
|
+
) -> dict[str, AmazonDeviceSensor]:
|
627
|
+
device_sensors: dict[str, AmazonDeviceSensor] = {}
|
628
|
+
if (
|
629
|
+
endpoint_dnd := endpoint.get("settings", {}).get("doNotDisturb")
|
630
|
+
) and not endpoint_dnd["error"]:
|
631
|
+
device_sensors["dnd"] = AmazonDeviceSensor(
|
632
|
+
"dnd", endpoint_dnd.get("toggleValue"), None
|
633
|
+
)
|
634
|
+
for feature in endpoint.get("features", {}):
|
635
|
+
first_property = (feature.get("properties") or [None])[0] or {}
|
636
|
+
if (
|
637
|
+
first_property.get("type") != "RETRIEVABLE"
|
638
|
+
or (sensor := SENSORS.get(feature["name"])) is None
|
639
|
+
):
|
640
|
+
continue
|
699
641
|
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
|
707
|
-
|
708
|
-
|
709
|
-
|
710
|
-
|
711
|
-
|
712
|
-
|
713
|
-
|
714
|
-
value=(_value["value"] if _value_dict else _value),
|
715
|
-
scale=_value.get("scale") if _value_dict else None,
|
716
|
-
)
|
717
|
-
}
|
718
|
-
)
|
719
|
-
final_sensors.update({_id: dict_sensors})
|
720
|
-
return final_sensors
|
642
|
+
if not (name := sensor["name"]):
|
643
|
+
raise TypeError("Unable to read sensor template")
|
644
|
+
|
645
|
+
value = first_property[sensor["key"]]
|
646
|
+
scale = value["scale"] if sensor["scale"] else None
|
647
|
+
if subkey := sensor["subkey"]:
|
648
|
+
value = value[subkey]
|
649
|
+
device_sensors[name] = AmazonDeviceSensor(
|
650
|
+
name,
|
651
|
+
value,
|
652
|
+
scale,
|
653
|
+
)
|
654
|
+
|
655
|
+
return device_sensors
|
721
656
|
|
722
657
|
async def login_mode_interactive(self, otp_code: str) -> dict[str, Any]:
|
723
658
|
"""Login to Amazon interactively via OTP."""
|
@@ -857,68 +792,49 @@ class AmazonEchoApi:
|
|
857
792
|
) -> dict[str, AmazonDevice]:
|
858
793
|
"""Get Amazon devices data."""
|
859
794
|
self._devices = {}
|
860
|
-
|
861
|
-
|
862
|
-
|
863
|
-
|
864
|
-
)
|
865
|
-
|
866
|
-
response_data = await raw_resp.text()
|
867
|
-
json_data = {} if len(response_data) == 0 else await raw_resp.json()
|
795
|
+
_, raw_resp = await self._session_request(
|
796
|
+
method=HTTPMethod.GET,
|
797
|
+
url=f"https://alexa.amazon.{self._domain}{URI_DEVICES}",
|
798
|
+
)
|
868
799
|
|
869
|
-
|
800
|
+
response_data = await raw_resp.text()
|
801
|
+
json_data = {} if len(response_data) == 0 else await raw_resp.json()
|
870
802
|
|
871
|
-
|
872
|
-
dev_serial = data.get("serialNumber") or data.get("deviceSerialNumber")
|
873
|
-
if previous_data := self._devices.get(dev_serial):
|
874
|
-
self._devices[dev_serial] = previous_data | {key: data}
|
875
|
-
else:
|
876
|
-
self._devices[dev_serial] = {key: data}
|
803
|
+
_LOGGER.debug("JSON devices data: %s", scrub_fields(json_data))
|
877
804
|
|
878
|
-
|
805
|
+
for data in json_data["devices"]:
|
806
|
+
dev_serial = data.get("serialNumber")
|
807
|
+
self._devices[dev_serial] = data
|
879
808
|
|
880
|
-
|
881
|
-
entity_ids_list := await self._get_devices_ids()
|
882
|
-
):
|
883
|
-
devices_sensors = await self._get_sensors_states(entity_ids_list)
|
809
|
+
devices_endpoints, devices_sensors = await self._get_sensors_states()
|
884
810
|
|
885
811
|
final_devices_list: dict[str, AmazonDevice] = {}
|
886
812
|
for device in self._devices.values():
|
887
813
|
# Remove stale, orphaned and virtual devices
|
888
|
-
|
889
|
-
if not devices_node or (devices_node.get("deviceType") in DEVICE_TO_IGNORE):
|
814
|
+
if not device or (device.get("deviceType") in DEVICE_TO_IGNORE):
|
890
815
|
continue
|
891
816
|
|
892
|
-
|
893
|
-
do_not_disturb_node = device[NODE_DO_NOT_DISTURB]
|
894
|
-
bluetooth_node = device[NODE_BLUETOOTH]
|
895
|
-
identifier_node = device.get(NODE_IDENTIFIER, {})
|
896
|
-
|
817
|
+
serial_number: str = device["serialNumber"]
|
897
818
|
# Add sensors
|
898
|
-
sensors = {}
|
899
|
-
|
900
|
-
for _device_id, _device_sensors in devices_sensors.items():
|
901
|
-
if _device_id == identifier_node["entityId"]:
|
902
|
-
sensors = _device_sensors
|
819
|
+
sensors = devices_sensors.get(serial_number, {})
|
820
|
+
device_endpoint = devices_endpoints.get(serial_number, {})
|
903
821
|
|
904
|
-
serial_number: str = devices_node["serialNumber"]
|
905
822
|
final_devices_list[serial_number] = AmazonDevice(
|
906
|
-
account_name=
|
907
|
-
capabilities=
|
908
|
-
device_family=
|
909
|
-
device_type=
|
910
|
-
device_owner_customer_id=
|
911
|
-
device_cluster_members=(
|
912
|
-
|
913
|
-
),
|
914
|
-
online=devices_node["online"],
|
823
|
+
account_name=device["accountName"],
|
824
|
+
capabilities=device["capabilities"],
|
825
|
+
device_family=device["deviceFamily"],
|
826
|
+
device_type=device["deviceType"],
|
827
|
+
device_owner_customer_id=device["deviceOwnerCustomerId"],
|
828
|
+
device_cluster_members=(device["clusterMembers"] or [serial_number]),
|
829
|
+
online=device["online"],
|
915
830
|
serial_number=serial_number,
|
916
|
-
software_version=
|
917
|
-
|
918
|
-
|
919
|
-
|
920
|
-
|
921
|
-
|
831
|
+
software_version=device["softwareVersion"],
|
832
|
+
entity_id=device_endpoint["legacyIdentifiers"]["chrsIdentifier"][
|
833
|
+
"entityId"
|
834
|
+
]
|
835
|
+
if device_endpoint
|
836
|
+
else None,
|
837
|
+
endpoint_id=device_endpoint["endpointId"] if device_endpoint else None,
|
922
838
|
sensors=sensors,
|
923
839
|
)
|
924
840
|
|
aioamazondevices/const.py
CHANGED
@@ -54,41 +54,10 @@ CSRF_COOKIE = "csrf"
|
|
54
54
|
REFRESH_ACCESS_TOKEN = "access_token" # noqa: S105
|
55
55
|
REFRESH_AUTH_COOKIES = "auth_cookies"
|
56
56
|
|
57
|
-
|
58
|
-
NODE_DO_NOT_DISTURB = "doNotDisturbDeviceStatusList"
|
59
|
-
NODE_PREFERENCES = "devicePreferences"
|
60
|
-
NODE_BLUETOOTH = "bluetoothStates"
|
61
|
-
NODE_IDENTIFIER = "identifier"
|
62
|
-
NODE_SENSORS = "sensors"
|
63
|
-
|
64
|
-
URI_QUERIES = {
|
65
|
-
NODE_DEVICES: "/api/devices-v2/device",
|
66
|
-
NODE_DO_NOT_DISTURB: "/api/dnd/device-status-list",
|
67
|
-
NODE_PREFERENCES: "/api/device-preferences",
|
68
|
-
NODE_BLUETOOTH: "/api/bluetooth",
|
69
|
-
# "/api/ping"
|
70
|
-
# "/api/np/command"
|
71
|
-
# "/api/np/player"
|
72
|
-
# "/api/device-wifi-details"
|
73
|
-
# "/api/activities"
|
74
|
-
# "/api/behaviors/v2/automations"
|
75
|
-
# "/api/notifications"
|
76
|
-
}
|
77
|
-
|
57
|
+
URI_DEVICES = "/api/devices-v2/device"
|
78
58
|
URI_SIGNIN = "/ap/signin"
|
79
|
-
|
80
|
-
URI_SENSORS = "/api/phoenix/state"
|
59
|
+
URI_NEXUS_GRAPHQL = "/nexus/v1/graphql"
|
81
60
|
|
82
|
-
SENSORS = [
|
83
|
-
"babyCryDetectionState",
|
84
|
-
"beepingApplianceDetectionState",
|
85
|
-
"coughDetectionState",
|
86
|
-
"dogBarkDetectionState",
|
87
|
-
"humanPresenceDetectionState",
|
88
|
-
"illuminance",
|
89
|
-
"temperature",
|
90
|
-
"waterSoundsDetectionState",
|
91
|
-
]
|
92
61
|
SENSOR_STATE_OFF = "NOT_DETECTED"
|
93
62
|
|
94
63
|
# File extensions
|
@@ -100,6 +69,32 @@ BIN_EXTENSION = ".bin"
|
|
100
69
|
SPEAKER_GROUP_FAMILY = "WHA"
|
101
70
|
SPEAKER_GROUP_MODEL = "Speaker Group"
|
102
71
|
|
72
|
+
SENSORS: dict[str, dict[str, str | None]] = {
|
73
|
+
"temperatureSensor": {
|
74
|
+
"name": "temperature",
|
75
|
+
"key": "value",
|
76
|
+
"subkey": "value",
|
77
|
+
"scale": "scale",
|
78
|
+
},
|
79
|
+
"motionSensor": {
|
80
|
+
"name": "motion",
|
81
|
+
"key": "detectionStateValue",
|
82
|
+
"subkey": None,
|
83
|
+
"scale": None,
|
84
|
+
},
|
85
|
+
"lightSensor": {
|
86
|
+
"name": "illuminance",
|
87
|
+
"key": "illuminanceValue",
|
88
|
+
"subkey": "value",
|
89
|
+
"scale": None,
|
90
|
+
},
|
91
|
+
"speaker": {
|
92
|
+
"name": "volume",
|
93
|
+
"key": "value",
|
94
|
+
"subkey": "volValue",
|
95
|
+
"scale": None,
|
96
|
+
},
|
97
|
+
}
|
103
98
|
DEVICE_TO_IGNORE: list[str] = [
|
104
99
|
AMAZON_DEVICE_TYPE, # Alexa App for iOS
|
105
100
|
"A2TF17PFR55MTB", # Alexa App for Android
|
@@ -0,0 +1,91 @@
|
|
1
|
+
"""GraphQL Queries."""
|
2
|
+
|
3
|
+
QUERY_DEVICE_STATE = """
|
4
|
+
query getDevicesState ($latencyTolerance: LatencyToleranceValue) {
|
5
|
+
listEndpoints(listEndpointsInput: {}) {
|
6
|
+
endpoints {
|
7
|
+
endpointId: id
|
8
|
+
friendlyNameObject { value { text } }
|
9
|
+
manufacturer { value { text } }
|
10
|
+
model { value { text} }
|
11
|
+
serialNumber { value { text } }
|
12
|
+
softwareVersion { value { text } }
|
13
|
+
creationTime
|
14
|
+
enablement
|
15
|
+
settings {
|
16
|
+
doNotDisturb {
|
17
|
+
id
|
18
|
+
endpointId
|
19
|
+
name
|
20
|
+
toggleValue
|
21
|
+
error {
|
22
|
+
type
|
23
|
+
message
|
24
|
+
}
|
25
|
+
}
|
26
|
+
}
|
27
|
+
displayCategories {
|
28
|
+
all { value }
|
29
|
+
primary { value }
|
30
|
+
}
|
31
|
+
alexaEnabledMetadata {
|
32
|
+
iconId
|
33
|
+
isVisible
|
34
|
+
category
|
35
|
+
capabilities
|
36
|
+
}
|
37
|
+
legacyIdentifiers {
|
38
|
+
dmsIdentifier {
|
39
|
+
deviceType { value { text } }
|
40
|
+
}
|
41
|
+
chrsIdentifier { entityId }
|
42
|
+
}
|
43
|
+
legacyAppliance { applianceId }
|
44
|
+
associatedUnits { id }
|
45
|
+
connections {
|
46
|
+
type
|
47
|
+
macAddress
|
48
|
+
bleMeshDeviceUuid
|
49
|
+
}
|
50
|
+
features(latencyToleranceValue: $latencyTolerance) {
|
51
|
+
name
|
52
|
+
instance
|
53
|
+
properties {
|
54
|
+
name
|
55
|
+
type
|
56
|
+
accuracy
|
57
|
+
error { message }
|
58
|
+
__typename
|
59
|
+
... on Illuminance {
|
60
|
+
illuminanceValue { value }
|
61
|
+
timeOfSample
|
62
|
+
timeOfLastChange
|
63
|
+
}
|
64
|
+
... on Reachability {
|
65
|
+
reachabilityStatusValue
|
66
|
+
timeOfSample
|
67
|
+
timeOfLastChange
|
68
|
+
}
|
69
|
+
... on DetectionState {
|
70
|
+
detectionStateValue
|
71
|
+
timeOfSample
|
72
|
+
timeOfLastChange
|
73
|
+
}
|
74
|
+
... on Volume {
|
75
|
+
value { volValue: value }
|
76
|
+
}
|
77
|
+
... on TemperatureSensor {
|
78
|
+
name
|
79
|
+
value {
|
80
|
+
value
|
81
|
+
scale
|
82
|
+
}
|
83
|
+
timeOfSample
|
84
|
+
timeOfLastChange
|
85
|
+
}
|
86
|
+
}
|
87
|
+
}
|
88
|
+
}
|
89
|
+
}
|
90
|
+
}
|
91
|
+
"""
|
aioamazondevices/sounds.py
CHANGED
@@ -1,472 +1,45 @@
|
|
1
|
-
"""Generated by update_sounds_list.py [2025-
|
1
|
+
"""Generated by update_sounds_list.py [2025-08-28 15:45]."""
|
2
2
|
|
3
3
|
SOUNDS_LIST = {
|
4
|
-
"
|
5
|
-
"
|
6
|
-
"
|
7
|
-
"
|
8
|
-
"
|
9
|
-
"
|
10
|
-
"
|
11
|
-
"
|
12
|
-
"
|
13
|
-
"
|
14
|
-
"
|
15
|
-
"
|
16
|
-
"
|
17
|
-
"
|
18
|
-
"
|
19
|
-
"
|
20
|
-
"
|
21
|
-
"
|
22
|
-
"
|
23
|
-
"
|
24
|
-
"
|
25
|
-
"
|
26
|
-
"
|
27
|
-
"
|
28
|
-
"
|
29
|
-
"
|
30
|
-
"
|
31
|
-
"
|
32
|
-
"
|
33
|
-
"
|
34
|
-
"
|
35
|
-
"
|
36
|
-
"
|
37
|
-
"
|
38
|
-
"
|
39
|
-
"
|
40
|
-
"
|
41
|
-
"
|
42
|
-
"
|
43
|
-
"
|
44
|
-
"
|
45
|
-
"amzn_sfx_car_click_seatbelt": 2,
|
46
|
-
"amzn_sfx_car_close_door_1x": 2,
|
47
|
-
"amzn_sfx_car_drive_past": 1,
|
48
|
-
"amzn_sfx_car_honk_1x": 1,
|
49
|
-
"amzn_sfx_car_honk_2x": 1,
|
50
|
-
"amzn_sfx_car_honk_3x": 2,
|
51
|
-
"amzn_sfx_car_honk_long_1x": 2,
|
52
|
-
"amzn_sfx_car_into_driveway": 1,
|
53
|
-
"amzn_sfx_car_into_driveway_fast": 1,
|
54
|
-
"amzn_sfx_car_slam_door_1x": 1,
|
55
|
-
"amzn_sfx_car_undo_seatbelt": 2,
|
56
|
-
"amzn_sfx_cat_angry_meow_1x": 2,
|
57
|
-
"amzn_sfx_cat_angry_screech_1x": 1,
|
58
|
-
"amzn_sfx_cat_long_meow_1x": 1,
|
59
|
-
"amzn_sfx_cat_meow_1x": 2,
|
60
|
-
"amzn_sfx_cat_purr": 3,
|
61
|
-
"amzn_sfx_cat_purr_meow": 1,
|
62
|
-
"amzn_sfx_chicken_cluck": 1,
|
63
|
-
"amzn_sfx_church_bell_1x": 5,
|
64
|
-
"amzn_sfx_church_bells_ringing": 1,
|
65
|
-
"amzn_sfx_clear_throat_ahem": 1,
|
66
|
-
"amzn_sfx_clock_ticking": 1,
|
67
|
-
"amzn_sfx_clock_ticking_long": 1,
|
68
|
-
"amzn_sfx_copy_machine": 2,
|
69
|
-
"amzn_sfx_cough": 4,
|
70
|
-
"amzn_sfx_crow_caw_1x": 2,
|
71
|
-
"amzn_sfx_crowd_applause": 5,
|
72
|
-
"amzn_sfx_crowd_bar": 1,
|
73
|
-
"amzn_sfx_crowd_bar_rowdy": 1,
|
74
|
-
"amzn_sfx_crowd_boo": 3,
|
75
|
-
"amzn_sfx_crowd_cheer_med": 1,
|
76
|
-
"amzn_sfx_crowd_excited_cheer": 1,
|
77
|
-
"amzn_sfx_dog_med_bark_1x": 3,
|
78
|
-
"amzn_sfx_dog_med_bark_2x": 3,
|
79
|
-
"amzn_sfx_dog_med_bark_growl": 1,
|
80
|
-
"amzn_sfx_dog_med_growl_1x": 1,
|
81
|
-
"amzn_sfx_dog_med_woof_1x": 1,
|
82
|
-
"amzn_sfx_dog_small_bark_2x": 1,
|
83
|
-
"amzn_sfx_door_open": 3,
|
84
|
-
"amzn_sfx_door_shut": 2,
|
85
|
-
"amzn_sfx_doorbell": 1,
|
86
|
-
"amzn_sfx_doorbell_buzz": 1,
|
87
|
-
"amzn_sfx_doorbell_chime": 2,
|
88
|
-
"amzn_sfx_drinking_slurp": 1,
|
89
|
-
"amzn_sfx_drum_and_cymbal": 2,
|
90
|
-
"amzn_sfx_drum_comedy": 3,
|
91
|
-
"amzn_sfx_earthquake_rumble": 2,
|
92
|
-
"amzn_sfx_electric_guitar": 2,
|
93
|
-
"amzn_sfx_electronic_beep": 3,
|
94
|
-
"amzn_sfx_electronic_major_chord": 1,
|
95
|
-
"amzn_sfx_elephant": 5,
|
96
|
-
"amzn_sfx_elevator_bell_1x": 1,
|
97
|
-
"amzn_sfx_elevator_open_bell": 1,
|
98
|
-
"amzn_sfx_fairy_melodic_chimes": 1,
|
99
|
-
"amzn_sfx_fairy_sparkle_chimes": 1,
|
100
|
-
"amzn_sfx_faucet_drip": 3,
|
101
|
-
"amzn_sfx_faucet_running": 3,
|
102
|
-
"amzn_sfx_fireplace_crackle": 3,
|
103
|
-
"amzn_sfx_fireworks": 1,
|
104
|
-
"amzn_sfx_fireworks_firecrackers": 1,
|
105
|
-
"amzn_sfx_fireworks_launch": 1,
|
106
|
-
"amzn_sfx_fireworks_whistles": 2,
|
107
|
-
"amzn_sfx_food_frying": 1,
|
108
|
-
"amzn_sfx_footsteps": 1,
|
109
|
-
"amzn_sfx_footsteps_muffled": 1,
|
110
|
-
"amzn_sfx_ghost_spooky": 4,
|
111
|
-
"amzn_sfx_glass_on_table": 1,
|
112
|
-
"amzn_sfx_glasses_clink": 4,
|
113
|
-
"amzn_sfx_horse_gallop_4x": 3,
|
114
|
-
"amzn_sfx_horse_huff_whinny": 1,
|
115
|
-
"amzn_sfx_horse_neigh": 1,
|
116
|
-
"amzn_sfx_horse_neigh_low": 1,
|
117
|
-
"amzn_sfx_horse_whinny": 3,
|
118
|
-
"amzn_sfx_human_walking": 3,
|
119
|
-
"amzn_sfx_jar_on_table_1x": 1,
|
120
|
-
"amzn_sfx_kitchen_ambience": 1,
|
121
|
-
"amzn_sfx_large_crowd_cheer": 3,
|
122
|
-
"amzn_sfx_large_fire_crackling": 1,
|
123
|
-
"amzn_sfx_laughter": 1,
|
124
|
-
"amzn_sfx_laughter_giggle": 2,
|
125
|
-
"amzn_sfx_lightning_strike": 2,
|
126
|
-
"amzn_sfx_lion_roar": 3,
|
127
|
-
"amzn_sfx_magic_blast_1x": 1,
|
128
|
-
"amzn_sfx_monkey_calls_3x": 1,
|
129
|
-
"amzn_sfx_monkey_chimp": 1,
|
130
|
-
"amzn_sfx_monkeys_chatter": 1,
|
131
|
-
"amzn_sfx_motorcycle_accelerate": 2,
|
132
|
-
"amzn_sfx_motorcycle_engine_idle": 1,
|
133
|
-
"amzn_sfx_motorcycle_engine_rev": 2,
|
134
|
-
"amzn_sfx_musical_drone_intro": 2,
|
135
|
-
"amzn_sfx_oars_splashing_rowboat": 1,
|
136
|
-
"amzn_sfx_object_on_table_2x": 1,
|
137
|
-
"amzn_sfx_ocean_wave_1x": 2,
|
138
|
-
"amzn_sfx_ocean_wave_on_rocks_1x": 2,
|
139
|
-
"amzn_sfx_ocean_wave_surf": 1,
|
140
|
-
"amzn_sfx_people_walking": 2,
|
141
|
-
"amzn_sfx_person_running": 3,
|
142
|
-
"amzn_sfx_piano_note_1x": 1,
|
143
|
-
"amzn_sfx_punch": 3,
|
144
|
-
"amzn_sfx_rain": 3,
|
145
|
-
"amzn_sfx_rain_on_roof": 1,
|
146
|
-
"amzn_sfx_rain_thunder": 1,
|
147
|
-
"amzn_sfx_rat_squeak_2x": 1,
|
148
|
-
"amzn_sfx_rat_squeaks": 1,
|
149
|
-
"amzn_sfx_raven_caw_1x": 1,
|
150
|
-
"amzn_sfx_raven_caw_2x": 1,
|
151
|
-
"amzn_sfx_restaurant_ambience": 2,
|
152
|
-
"amzn_sfx_rooster_crow": 2,
|
153
|
-
"amzn_sfx_scifi_air_escaping": 1,
|
154
|
-
"amzn_sfx_scifi_alarm": 6,
|
155
|
-
"amzn_sfx_scifi_alien_voice": 11,
|
156
|
-
"amzn_sfx_scifi_boots_walking": 1,
|
157
|
-
"amzn_sfx_scifi_close_large_explosion": 1,
|
158
|
-
"amzn_sfx_scifi_door_open": 5,
|
159
|
-
"amzn_sfx_scifi_engines_on": 2,
|
160
|
-
"amzn_sfx_scifi_engines_on_large": 1,
|
161
|
-
"amzn_sfx_scifi_engines_on_short_burst": 1,
|
162
|
-
"amzn_sfx_scifi_explosion": 3,
|
163
|
-
"amzn_sfx_scifi_explosion_2x": 1,
|
164
|
-
"amzn_sfx_scifi_incoming_explosion": 1,
|
165
|
-
"amzn_sfx_scifi_laser_gun_battle": 2,
|
166
|
-
"amzn_sfx_scifi_laser_gun_fires": 6,
|
167
|
-
"amzn_sfx_scifi_laser_gun_fires_large": 4,
|
168
|
-
"amzn_sfx_scifi_long_explosion_1x": 1,
|
169
|
-
"amzn_sfx_scifi_missile": 4,
|
170
|
-
"amzn_sfx_scifi_motor_short_1x": 1,
|
171
|
-
"amzn_sfx_scifi_open_airlock": 1,
|
172
|
-
"amzn_sfx_scifi_radar_high_ping": 1,
|
173
|
-
"amzn_sfx_scifi_radar_low": 1,
|
174
|
-
"amzn_sfx_scifi_radar_medium": 1,
|
175
|
-
"amzn_sfx_scifi_run_away": 2,
|
176
|
-
"amzn_sfx_scifi_sheilds_up": 1,
|
177
|
-
"amzn_sfx_scifi_short_low_explosion": 1,
|
178
|
-
"amzn_sfx_scifi_small_whoosh_flyby": 1,
|
179
|
-
"amzn_sfx_scifi_small_zoom_flyby": 1,
|
180
|
-
"amzn_sfx_scifi_sonar_ping_3x": 1,
|
181
|
-
"amzn_sfx_scifi_sonar_ping_4x": 1,
|
182
|
-
"amzn_sfx_scifi_spaceship_flyby": 2,
|
183
|
-
"amzn_sfx_scifi_timer_beep": 1,
|
184
|
-
"amzn_sfx_scifi_zap_backwards": 1,
|
185
|
-
"amzn_sfx_scifi_zap_electric": 2,
|
186
|
-
"amzn_sfx_sheep_baa": 1,
|
187
|
-
"amzn_sfx_sheep_bleat": 3,
|
188
|
-
"amzn_sfx_silverware_clank": 3,
|
189
|
-
"amzn_sfx_sirens": 1,
|
190
|
-
"amzn_sfx_sleigh_bells": 2,
|
191
|
-
"amzn_sfx_small_stream": 2,
|
192
|
-
"amzn_sfx_sneeze": 2,
|
193
|
-
"amzn_sfx_stream": 3,
|
194
|
-
"amzn_sfx_strong_wind_desert": 1,
|
195
|
-
"amzn_sfx_strong_wind_whistling": 3,
|
196
|
-
"amzn_sfx_subway_leaving": 1,
|
197
|
-
"amzn_sfx_subway_passing": 1,
|
198
|
-
"amzn_sfx_subway_stopping": 1,
|
199
|
-
"amzn_sfx_swoosh_cartoon_fast": 2,
|
200
|
-
"amzn_sfx_swoosh_fast_1x": 1,
|
201
|
-
"amzn_sfx_swoosh_fast_6x": 1,
|
202
|
-
"amzn_sfx_test_tone": 1,
|
203
|
-
"amzn_sfx_thunder_rumble": 2,
|
204
|
-
"amzn_sfx_toilet_flush": 2,
|
205
|
-
"amzn_sfx_trumpet_bugle": 4,
|
206
|
-
"amzn_sfx_turkey_gobbling": 1,
|
207
|
-
"amzn_sfx_typing_medium": 2,
|
208
|
-
"amzn_sfx_typing_short": 2,
|
209
|
-
"amzn_sfx_typing_typewriter": 1,
|
210
|
-
"amzn_sfx_vacuum_off": 1,
|
211
|
-
"amzn_sfx_vacuum_on": 1,
|
212
|
-
"amzn_sfx_walking_in_mud": 2,
|
213
|
-
"amzn_sfx_walking_in_snow": 1,
|
214
|
-
"amzn_sfx_walking_on_grass": 3,
|
215
|
-
"amzn_sfx_water_dripping": 1,
|
216
|
-
"amzn_sfx_water_droplets": 2,
|
217
|
-
"amzn_sfx_wind_strong_gusting": 1,
|
218
|
-
"amzn_sfx_wind_whistling_desert": 1,
|
219
|
-
"amzn_sfx_wings_flap_4x": 1,
|
220
|
-
"amzn_sfx_wings_flap_fast": 1,
|
221
|
-
"amzn_sfx_wolf_howl": 3,
|
222
|
-
"amzn_sfx_wolf_young_howl": 1,
|
223
|
-
"amzn_sfx_wooden_door": 1,
|
224
|
-
"amzn_sfx_wooden_door_creaks_long": 2,
|
225
|
-
"amzn_sfx_wooden_door_creaks_multiple": 1,
|
226
|
-
"amzn_sfx_wooden_door_creaks_open": 1,
|
227
|
-
"amzn_ui_sfx_gameshow_bridge": 2,
|
228
|
-
"amzn_ui_sfx_gameshow_countdown_loop_32s_full": 1,
|
229
|
-
"amzn_ui_sfx_gameshow_countdown_loop_64s_full": 1,
|
230
|
-
"amzn_ui_sfx_gameshow_countdown_loop_64s_minimal": 1,
|
231
|
-
"amzn_ui_sfx_gameshow_intro": 1,
|
232
|
-
"amzn_ui_sfx_gameshow_negative_response": 3,
|
233
|
-
"amzn_ui_sfx_gameshow_neutral_response": 3,
|
234
|
-
"amzn_ui_sfx_gameshow_outro": 1,
|
235
|
-
"amzn_ui_sfx_gameshow_player1": 1,
|
236
|
-
"amzn_ui_sfx_gameshow_player2": 1,
|
237
|
-
"amzn_ui_sfx_gameshow_player3": 1,
|
238
|
-
"amzn_ui_sfx_gameshow_player4": 1,
|
239
|
-
"amzn_ui_sfx_gameshow_positive_response": 3,
|
240
|
-
"amzn_ui_sfx_gameshow_tally_negative": 1,
|
241
|
-
"amzn_ui_sfx_gameshow_tally_positive": 1,
|
242
|
-
"amzn_ui_sfx_gameshow_waiting_loop_30s": 1,
|
243
|
-
"anchor": 13,
|
244
|
-
"answering_machines": 13,
|
245
|
-
"arcs_sparks": 15,
|
246
|
-
"arrows_bows": 11,
|
247
|
-
"baby": 13,
|
248
|
-
"back_up_beeps": 9,
|
249
|
-
"bars_restaurants": 16,
|
250
|
-
"baseball": 10,
|
251
|
-
"basketball": 9,
|
252
|
-
"battles": 13,
|
253
|
-
"beeps_tones": 15,
|
254
|
-
"bell": 6,
|
255
|
-
"bikes": 6,
|
256
|
-
"billiards": 10,
|
257
|
-
"board_games": 10,
|
258
|
-
"body": 9,
|
259
|
-
"boing": 3,
|
260
|
-
"books": 11,
|
261
|
-
"bow_wash": 11,
|
262
|
-
"box": 10,
|
263
|
-
"break_shatter_smash": 15,
|
264
|
-
"breaks": 13,
|
265
|
-
"brooms_mops": 15,
|
266
|
-
"bullets": 12,
|
267
|
-
"buses": 15,
|
268
|
-
"buzz": 5,
|
269
|
-
"buzz_hums": 15,
|
270
|
-
"buzzers": 15,
|
271
|
-
"buzzers_pistols": 15,
|
272
|
-
"cables_metal": 13,
|
273
|
-
"camera": 15,
|
274
|
-
"cannons": 14,
|
275
|
-
"car_alarm": 5,
|
276
|
-
"car_alarms": 10,
|
277
|
-
"car_cell_phones": 5,
|
278
|
-
"carnivals_fairs": 9,
|
279
|
-
"cars": 29,
|
280
|
-
"casino": 5,
|
281
|
-
"casinos": 5,
|
282
|
-
"cellar": 4,
|
283
|
-
"chimes": 14,
|
284
|
-
"chimes_bells": 14,
|
285
|
-
"chorus": 15,
|
286
|
-
"christmas": 7,
|
287
|
-
"church_bells": 9,
|
288
|
-
"clock": 3,
|
289
|
-
"cloth": 14,
|
290
|
-
"concrete": 10,
|
291
|
-
"construction": 15,
|
292
|
-
"construction_factory": 13,
|
293
|
-
"crashes": 14,
|
294
|
-
"crowds": 24,
|
295
|
-
"debris": 14,
|
296
|
-
"dining_kitchens": 11,
|
297
|
-
"dinosaurs": 15,
|
298
|
-
"dripping": 7,
|
299
|
-
"drops": 13,
|
300
|
-
"electric": 5,
|
301
|
-
"electrical": 15,
|
302
|
-
"elevator": 2,
|
303
|
-
"evolution_monsters": 15,
|
304
|
-
"explosions": 14,
|
305
|
-
"factory": 15,
|
306
|
-
"falls": 13,
|
307
|
-
"fax_scanner_copier": 15,
|
308
|
-
"feedback_mics": 15,
|
309
|
-
"fight": 9,
|
310
|
-
"fire": 13,
|
311
|
-
"fire_extinguisher": 13,
|
312
|
-
"fireballs": 15,
|
313
|
-
"fireworks": 15,
|
314
|
-
"fishing_pole": 13,
|
315
|
-
"flags": 12,
|
316
|
-
"football": 3,
|
317
|
-
"footsteps": 11,
|
318
|
-
"futuristic": 45,
|
319
|
-
"futuristic_ship": 14,
|
320
|
-
"gameshow": 4,
|
321
|
-
"gear": 14,
|
322
|
-
"ghosts_demons": 15,
|
323
|
-
"giant_monster": 15,
|
324
|
-
"glass": 9,
|
325
|
-
"glasses_clink": 4,
|
326
|
-
"golf": 8,
|
327
|
-
"gorilla": 10,
|
328
|
-
"grenade_lanucher": 12,
|
329
|
-
"griffen": 13,
|
330
|
-
"gyms_locker_rooms": 8,
|
331
|
-
"handgun_loading": 14,
|
332
|
-
"handgun_shot": 13,
|
333
|
-
"handle": 14,
|
334
|
-
"hands": 12,
|
335
|
-
"heartbeats_ekg": 13,
|
336
|
-
"helicopter": 15,
|
337
|
-
"high_tech": 15,
|
338
|
-
"hit_punch_slap": 10,
|
339
|
-
"hits": 23,
|
340
|
-
"horns": 14,
|
341
|
-
"horror": 15,
|
342
|
-
"hot_tub_filling_up": 2,
|
343
|
-
"human": 12,
|
344
|
-
"human_vocals": 15,
|
345
|
-
"hygene": 9,
|
346
|
-
"ice_skating": 7,
|
347
|
-
"ignitions": 15,
|
348
|
-
"infantry": 14,
|
349
|
-
"intro": 2,
|
350
|
-
"jet": 15,
|
351
|
-
"juggling": 3,
|
352
|
-
"key_lock": 12,
|
353
|
-
"kids": 9,
|
354
|
-
"knocks": 15,
|
355
|
-
"lab_equip": 13,
|
356
|
-
"lacrosse": 2,
|
357
|
-
"lamps_lanterns": 10,
|
358
|
-
"leather": 9,
|
359
|
-
"liquid_suction": 12,
|
360
|
-
"locker_doors": 12,
|
361
|
-
"machine_gun": 14,
|
362
|
-
"magic_spells": 15,
|
363
|
-
"medium_large_explosions": 13,
|
364
|
-
"metal": 43,
|
365
|
-
"modern_rings": 10,
|
366
|
-
"money_coins": 6,
|
367
|
-
"motorcycles": 11,
|
368
|
-
"movement": 12,
|
369
|
-
"moves": 10,
|
370
|
-
"nature": 11,
|
371
|
-
"oar_boat": 13,
|
372
|
-
"pagers": 5,
|
373
|
-
"paintball": 14,
|
374
|
-
"paper": 16,
|
375
|
-
"parachute": 12,
|
376
|
-
"pay_phones": 13,
|
377
|
-
"phone_beeps": 15,
|
378
|
-
"pigmy_bats": 14,
|
379
|
-
"pills": 11,
|
380
|
-
"pour_water": 1,
|
381
|
-
"power_up_down": 15,
|
382
|
-
"printers": 14,
|
383
|
-
"prison": 17,
|
384
|
-
"public_space": 5,
|
385
|
-
"racquetball": 7,
|
386
|
-
"radios_static": 15,
|
387
|
-
"rain": 10,
|
388
|
-
"rc_airplane": 5,
|
389
|
-
"rc_car": 14,
|
390
|
-
"refrigerators_freezers": 12,
|
391
|
-
"regular": 19,
|
392
|
-
"respirator": 14,
|
393
|
-
"rifle": 14,
|
394
|
-
"roller_coaster": 10,
|
395
|
-
"rollerskates_rollerblades": 5,
|
396
|
-
"room_tones": 5,
|
397
|
-
"ropes_climbing": 4,
|
398
|
-
"rotary_rings": 13,
|
399
|
-
"rowboat_canoe": 6,
|
400
|
-
"rubber": 12,
|
401
|
-
"running": 12,
|
402
|
-
"sails": 14,
|
403
|
-
"sand_gravel": 10,
|
404
|
-
"screen_doors": 14,
|
405
|
-
"screens": 14,
|
406
|
-
"seats_stools": 9,
|
407
|
-
"servos": 15,
|
408
|
-
"shoes_boots": 7,
|
409
|
-
"shotgun": 13,
|
410
|
-
"shower": 2,
|
411
|
-
"sink_faucet": 1,
|
412
|
-
"sink_filling_water": 1,
|
413
|
-
"sink_run_and_off": 1,
|
414
|
-
"sink_water_splatter": 1,
|
415
|
-
"sirens": 1,
|
416
|
-
"skateboards": 11,
|
417
|
-
"ski": 3,
|
418
|
-
"skids_tires": 11,
|
419
|
-
"sled": 4,
|
420
|
-
"slides": 9,
|
421
|
-
"small_explosions": 14,
|
422
|
-
"snow": 12,
|
423
|
-
"snowmobile": 5,
|
424
|
-
"soldiers": 3,
|
425
|
-
"splash_water": 11,
|
426
|
-
"splashes_sprays": 14,
|
427
|
-
"sports_whistles": 15,
|
428
|
-
"squeaks": 13,
|
429
|
-
"squeaky": 15,
|
430
|
-
"stairs": 12,
|
431
|
-
"steam": 14,
|
432
|
-
"submarine_diesel": 10,
|
433
|
-
"swing_doors": 4,
|
434
|
-
"switches_levers": 15,
|
435
|
-
"swords": 14,
|
436
|
-
"tape": 13,
|
437
|
-
"tape_machine": 14,
|
438
|
-
"televisions_shows": 11,
|
439
|
-
"tennis_pingpong": 11,
|
440
|
-
"textile": 15,
|
441
|
-
"throw": 7,
|
442
|
-
"thunder": 13,
|
443
|
-
"ticks": 18,
|
444
|
-
"timer": 1,
|
445
|
-
"toilet_flush": 2,
|
446
|
-
"tone": 5,
|
447
|
-
"tones_noises": 11,
|
448
|
-
"toys": 15,
|
449
|
-
"tractors": 10,
|
450
|
-
"traffic": 11,
|
451
|
-
"train": 10,
|
452
|
-
"trucks_vans": 14,
|
453
|
-
"turnstiles": 9,
|
454
|
-
"typing": 10,
|
455
|
-
"umbrella": 11,
|
456
|
-
"underwater": 8,
|
457
|
-
"vampires": 15,
|
458
|
-
"various": 27,
|
459
|
-
"video_tunes": 10,
|
460
|
-
"volcano_earthquake": 3,
|
461
|
-
"watches": 8,
|
462
|
-
"water": 22,
|
463
|
-
"water_running": 1,
|
464
|
-
"werewolves": 11,
|
465
|
-
"winches_gears": 14,
|
466
|
-
"wind": 10,
|
467
|
-
"wood": 24,
|
468
|
-
"wood_boat": 6,
|
469
|
-
"woosh": 4,
|
470
|
-
"zap": 3,
|
471
|
-
"zippers": 15,
|
4
|
+
"air_horn_03": "Air horn",
|
5
|
+
"amzn_sfx_cat_meow_1x_01": "Cat meow",
|
6
|
+
"amzn_sfx_church_bell_1x_02": "Church bell",
|
7
|
+
"amzn_sfx_crowd_applause_01": "Crowd applause",
|
8
|
+
"amzn_sfx_dog_med_bark_1x_02": "Dog bark",
|
9
|
+
"amzn_sfx_doorbell_01": "Doorbell 1",
|
10
|
+
"amzn_sfx_doorbell_chime_01": "Doorbell 2",
|
11
|
+
"amzn_sfx_doorbell_chime_02": "Doorbell 3",
|
12
|
+
"amzn_sfx_large_crowd_cheer_01": "Crowd cheers",
|
13
|
+
"amzn_sfx_lion_roar_02": "Lion roar",
|
14
|
+
"amzn_sfx_rooster_crow_01": "Rooster",
|
15
|
+
"amzn_sfx_scifi_alarm_01": "Sirens",
|
16
|
+
"amzn_sfx_scifi_alarm_04": "Red alert",
|
17
|
+
"amzn_sfx_scifi_engines_on_02": "Engines on",
|
18
|
+
"amzn_sfx_scifi_sheilds_up_01": "Shields up",
|
19
|
+
"amzn_sfx_trumpet_bugle_04": "Trumpet",
|
20
|
+
"amzn_sfx_wolf_howl_02": "Wolf howl",
|
21
|
+
"bell_02": "Bells",
|
22
|
+
"boing_01": "Boing 1",
|
23
|
+
"boing_03": "Boing 2",
|
24
|
+
"buzzers_pistols_01": "Buzzer",
|
25
|
+
"camera_01": "Camera",
|
26
|
+
"christmas_05": "Christmas bells",
|
27
|
+
"clock_01": "Ticking clock",
|
28
|
+
"futuristic_10": "Aircraft",
|
29
|
+
"halloween_bats": "Halloween bats",
|
30
|
+
"halloween_crows": "Halloween crows",
|
31
|
+
"halloween_footsteps": "Halloween spooky footsteps",
|
32
|
+
"halloween_wind": "Halloween wind",
|
33
|
+
"halloween_wolf": "Halloween wolf",
|
34
|
+
"holiday_halloween_ghost": "Halloween ghost",
|
35
|
+
"horror_10": "Halloween creepy door",
|
36
|
+
"med_system_alerts_minimal_dragon_short": "Friendly dragon",
|
37
|
+
"med_system_alerts_minimal_owl_short": "Happy owl ",
|
38
|
+
"med_system_alerts_minimals_blue_wave_small": "Underwater World Sonata",
|
39
|
+
"med_system_alerts_minimals_galaxy_short": "Infinite Galaxy",
|
40
|
+
"med_system_alerts_minimals_panda_short": "Baby panda",
|
41
|
+
"med_system_alerts_minimals_tiger_short": "Playful tiger",
|
42
|
+
"med_ui_success_generic_1-1": "Success 1",
|
43
|
+
"squeaky_12": "Squeaky door",
|
44
|
+
"zap_01": "Zap",
|
472
45
|
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
aioamazondevices/__init__.py,sha256=DwM24CsEnErtxa0qE6fKSesGDpmcjKoMg3pl8-BRZoo,276
|
2
|
+
aioamazondevices/api.py,sha256=-GQPzbRH8-2hfFoS4CF4hrDTStmmwc5lotiFBKFuH40,40656
|
3
|
+
aioamazondevices/const.py,sha256=bqJmaStichdm0zB1RQYXa4OPz2gU2JnmUFQHeItlnZE,10808
|
4
|
+
aioamazondevices/exceptions.py,sha256=JDnSFi_7oEhqK31sHXf0S_cyMoMjiRJuLp4ow7mYgLY,643
|
5
|
+
aioamazondevices/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
|
+
aioamazondevices/query.py,sha256=AGHHzefzfYzB7RLWPtlFxYc_rpUZdoeApsU2jYz3urQ,2053
|
7
|
+
aioamazondevices/sounds.py,sha256=CXMDk-KoKVFxBdVAw3MeOClqgpzcVDxvQhFOJp7qX-Y,1896
|
8
|
+
aioamazondevices/utils.py,sha256=RzuKRhnq_8ymCoJMoQJ2vBYyuew06RSWpqQWmqdNczE,2019
|
9
|
+
aioamazondevices-6.1.0.dist-info/LICENSE,sha256=sS48k5sp9bFV-NSHDfAJuTZZ_-AP9ZDqUzQ9sffGlsg,11346
|
10
|
+
aioamazondevices-6.1.0.dist-info/METADATA,sha256=3ZCsm8H5iusSSQdjGtJQl2_Ipk6KXhg7K5gv8eILlA8,7623
|
11
|
+
aioamazondevices-6.1.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
12
|
+
aioamazondevices-6.1.0.dist-info/RECORD,,
|
@@ -1,11 +0,0 @@
|
|
1
|
-
aioamazondevices/__init__.py,sha256=zxEf-mb1c-kh6QO68aGngvENL1yUrwgmT0SrUqnKgk0,276
|
2
|
-
aioamazondevices/api.py,sha256=YkkMTI8nP1Xop6LtujHXipqEmubnhZ7SBquaU0c2NHs,44709
|
3
|
-
aioamazondevices/const.py,sha256=XI_PvlmyAFtRWko36gaNEzg6JVHJO_i8dIjLzkA6Yo0,11033
|
4
|
-
aioamazondevices/exceptions.py,sha256=JDnSFi_7oEhqK31sHXf0S_cyMoMjiRJuLp4ow7mYgLY,643
|
5
|
-
aioamazondevices/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
|
-
aioamazondevices/sounds.py,sha256=01pVCDFIuhrLypXInw4JNuHsC6zjMLsuKocet1R6we8,13409
|
7
|
-
aioamazondevices/utils.py,sha256=RzuKRhnq_8ymCoJMoQJ2vBYyuew06RSWpqQWmqdNczE,2019
|
8
|
-
aioamazondevices-5.0.1.dist-info/LICENSE,sha256=sS48k5sp9bFV-NSHDfAJuTZZ_-AP9ZDqUzQ9sffGlsg,11346
|
9
|
-
aioamazondevices-5.0.1.dist-info/METADATA,sha256=WeTMZpknJ0A3oQWhDYMxH-dk2fWNtQi2DoH5H6C2La4,7623
|
10
|
-
aioamazondevices-5.0.1.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
11
|
-
aioamazondevices-5.0.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|