"""GraphQL queries for Amazon devices.""" QUERY_DEVICE_DATA = """ query getDevicesBaseData { alexaVoiceDevices: listEndpoints( listEndpointsInput: { displayCategory: "ALEXA_VOICE_ENABLED" includeHouseholdDevices: true } ) { ...DeviceEndpoints } airQualityMonitors: listEndpoints( listEndpointsInput: { displayCategory: "AIR_QUALITY_MONITOR" includeHouseholdDevices: true } ) { ...DeviceEndpoints } } fragment DeviceEndpoints on ListEndpointsResponse { endpoints { endpointId: id friendlyNameObject { value { text } } manufacturer { value { text } } model { value { text } } serialNumber { value { text } } softwareVersion { value { text } } creationTime enablement displayCategories { all { value } primary { value } } alexaEnabledMetadata { iconId isVisible category capabilities } legacyIdentifiers { dmsIdentifier { deviceType { value { text } } } chrsIdentifier { entityId } } legacyAppliance { applianceId } } } """ QUERY_SENSOR_STATE = """ fragment EndpointState on Endpoint { endpointId: id friendlyNameObject { value { text } } features { name instance properties { name type accuracy error { type message } __typename ... on Illuminance { illuminanceValue { value } timeOfSample timeOfLastChange } ... on Reachability { reachabilityStatusValue timeOfSample timeOfLastChange } ... on DetectionState { detectionStateValue timeOfSample timeOfLastChange } ... on TemperatureSensor { name value { value scale } timeOfSample timeOfLastChange } ... on RangeValue { rangeValue { value } timeOfSample timeOfLastChange } } } } query getEndpointState($endpointIds: [String]!) { listEndpoints( listEndpointsInput: { latencyTolerance: LOW, endpointIds: $endpointIds, includeHouseholdDevices: true } ) { endpoints { ...EndpointState } } } """