# Check phone, Watch and tracker batteries For "is my phone dead?", "check my Apple Watch", or "should I charge it?": 1. Discover phone/iPhone/Watch names and inspect provider routes plus battery/connectivity interfaces. If a broad query finds Tile/Alexa tracker records as well as Apple iCloud, select the intended Apple device. Prefer its current route-backed record rather than obsolete reconnect duplicates. An endpoint type TRACKER can represent a phone or Watch; do not filter only for PHONE. 2. Query its copied exact endpointId with expand:["battery","connectivity"] and forceDeviceAttributeQuery:true, using only declared capabilities. No control command or phone sound is needed for this question. 3. Interpret each observation separately. Battery level 0 with freshness FRESH is reported zero; FRESH reachability UNREACHABLE means offline. Offline alone does not prove the battery is depleted. A STALE battery is the last known level: report it with its sampledAt, not as live. An errored or missing battery is unknown, not 0%. Missing sampledAt means no provider measurement time is supplied. 4. Recommend charging for reported zero/low battery; for offline with unknown battery, say it could need charging or reconnection rather than claiming it is dead. Relay the actual percentage and reachability. Do not claim freshness beyond the available forced-read result when Apple exposes no measurement timestamp. 5. For "ping my phone" or "find my phone", read portos://guides/find-phone. That guide distinguishes a requested sound from a location lookup. A battery question does not request either; do not send a locator command or query precise location merely to read battery. AUTHORIZATION_CREDENTIAL_EXPIRED asks the user to sign in again when automatic recovery cannot renew the account; it does not mean the device battery is dead. Charging notifications require a separately requested monitor/schedule; a one-time battery question does not create one. For a robot vacuum, blind or other device that is not a phone, "what's the battery on the vacuum?" is answered with endpoint_show on the exact endpointId with primary:"battery". The widget leads with a large battery card, and that card's readings are read from the device for you. State the percentage in words as well; a STALE reading is the last known level with its age, an errored or missing one is unknown, never 0%. Read the device's card ids from the endpoint_show result (cardIds) and pass an unknown id only once: the error lists the cards the device has.