--- title: Apple iCloud description: Instructions on how to use iCloud to track devices in Home Assistant. ha_category: - Presence Detection - Sensor ha_iot_class: Cloud Polling ha_release: '0.10' ha_config_flow: true ha_codeowners: - '@Quentame' - '@nzapponi' ha_domain: icloud ha_platforms: - device_tracker - sensor ha_integration_type: integration --- The `icloud` integration allows you to detect presence using the [iCloud](https://www.icloud.com/) service. iCloud allows users to track their location on iOS devices. There is currently support for the following platforms within Home Assistant: - [Device Tracker](#device-tracker) - [Sensor](#sensor) It does require that your devices are registered with the [Find My](https://www.apple.com/uk/icloud/find-my/) service. {% include integrations/config_flow.md %}
You may receive an email and a notification from Apple saying that someone has logged into your account. For the notification, press "Allow", then "OK".
To prevent excessive battery drainage, a dynamic interval is used for each individual device instead of a fixed interval for all devices linked to one account. The dynamic interval is based on the current zone of a device, the distance towards home and the battery level of the device. ## Two Factor Authentication If two-step authentication is enabled for your iCloud account, some time after Home Assistant startup the integration will ask to enter the verification code you receive on your device via a notification in the Home Assistant UI. The duration of this authentication is determined by Apple, so you will need to verify your account every now and then. ## In case of troubleshooting Go into your Home Assistant configuration `.storage` folder and delete the `icloud` folder, then retry. ## Platforms ### Device Tracker The iCloud integration will track available devices on your iCloud account. ### Sensor The iCloud integration will add a battery sensor for each iCloud devices available on your iCloud account. ## Services 4 services are available: ### Service `icloud.update` This service can be used to ask an update of a certain iDevice or all devices linked to an iCloud account. Request will result in new Home Assistant [state_changed](/docs/configuration/events/#event-state_changed) event describing current iPhone location. It can be used in automations when a manual location update is needed, e.g., to check if anyone is home when a door has been opened. ### Service `icloud.play_sound` This service will play the Lost iPhone sound on your iDevice. It will still ring if you are on "Mute" or "Do not disturb" mode. | Service data attribute | Optional | Description | |---------------------------|----------|---------------------------------------------------------| | `account` | no | E-mail address of the iCloud account | | `device_name` | no | Human Friendly device name like Bob's iPhone | ### Service `icloud.display_message` This service will display a message on your iDevice. It can also ring your device. ### Service `icloud.lost_device` This service will put your iDevice on "lost" mode (compatible devices only). You have to provide a phone number with a suffixed [country code](https://en.wikipedia.org/wiki/List_of_country_calling_codes) and a message.