iCloud3 v3 iDevice Tracker - Version 3

@henrikrox
The iCloud3 documentation is here

Iā€™m having an issue getting the 2FA to work for my iCloud account. I have the persistent notification where you can put in a 6-digit code to authenticate, but I canā€™t get the ā€œtrusted deviceā€ one to show up. Iā€™ve tried clearing the iCloud cookie file and Iā€™ve restarted and reinstalled many times as well. I also tried the ā€œreset iCloud interfaceā€ option in the widget and it hasnā€™t changed anything. Any help would be appreciated!

@garretbeachyā€™
The iCloud session data is stored in 2 places - the cookie file in the .storage/icloud directory and the trusted device authentication info in the .storage/icloud/session directory. The data itself is in a file based on your iCloud account email address. When you delete just the cookie file, the session is still valid. Resetting the iCloud Interface on the Event Log > Action button renames both of these and then reauthenticates your account.

Try renaming the .storage/icloud directory to something else and restart Home Assistant. The cookies and session files will be recreated and that should cause the notification on your phone and the code entry window selection option to be available in the HA notification area.

Question - The code entry window is selected from the HA notification area. I assume You have been going there to open the window. See the docs here for more info

Just recently Iā€™ve started getting Apple iOS notifications that a device is trying to access my account. I go ahead and approve it, and it gives me a 6 digit code. In HA I get a persistent notification telling me to use the configurator to enter the code sent by Apple. I enter it, but it doesnā€™t work. If I try the configurator again, it tells me the code is invalid.

I already tried renaming the iCloud directory, to no avail.

@FutureTense
Try resetting the iCloud Interface on Event Log > Actions. See here for more info.

If it looks like the code is not accepted, check your iCloud account. Sign out of it and then sign back in. Then do the reset above again.

Unfortunately Iā€™ve never been unable to install the iCloud interface. Iā€™m trying to go down that rabbit hole again.

If you are not using the www/custom_cards directory, use your directory name (e.g., www/community ) instead of www/custom_cards in the following instructions. Then, use the iCloud3 event_log_card_directory: www/yourcustomcarddirectoryname configuration parameter to specify your directory name.

Please provide an example on how to do this in configuration.yaml.

@FutureTense
See iCloud3 docs for instructions on installing the Event Log.

  • Setting up the Lovelace Resource is here. Change the /local/custom_cards/icloud3-event-log-card.js to /local/YOURDIRECTORY/icloud3-event-log-card.js
  • You may also have to set the config_ic3_file_name iCloud3 configuration parameter to that directory. See the iCloud3 doce here.

The Event Log install instructions have a manual set up for the Lovelace resource here that might be helpful.

And just exactly how do you specify config_ic3_file_name in configuration.yaml? The only thing that I have in configuration.yaml with respect to icloud3 is:


 device_tracker:
  - platform: icloud3
    username: [email protected]
    password: xxx
    devices:
      - device_name: iphone_me
        email: [email protected]
        name: me
      - device_name: iphone_her
        email: [email protected]
        name: her

And I see nothing in the documentation on how to actually define config_ic3_file_name inside of configuration.yaml. Putting it at the root level gives an error. Can you please provide an example?

I gave you the wrong parameter name for the Event Log file location. It is actually event_log_card_directory. Sorry for that. You can find info about this parameter here.

 device_tracker:
  - platform: icloud3
    username: [email protected]
    password: xxx
    devices:
      - device_name: iphone_me
        email: [email protected]
        name: me
      - device_name: iphone_her
        email: [email protected]
        name: her
    event_log_card_directory: /www/community/

I have mine in the /www/custom_cards directory (the default). If it is another location, use that location instead of the /www/community.

Note: The parameters are indented 4-spaces, just like the username, pasword and devices parameter.

Arghh, itā€™s config_ic3_file_name Iā€™m having a problem with right now.

Your documentation appears to be incorrect.

The following does not work, as your documentation suggests to follow:

device_tracker:
  - platform: icloud3
    config_ic3_file_name: 'config/my_ic3.yaml'

But removing the leading config works.

device_tracker:
  - platform: icloud3
    config_ic3_file_name: 'my_ic3.yaml'

Youā€™re referring me to ā€œthe documentationā€, which Iā€™m following verbatim in this instance and itā€™s not working. Thatā€™s why I asked for an example.

EDIT: Cleared known_deivces.yaml reboot HA and problem solved

Hi All,

I get this error:

iCloud3 Setup Error > iphone_van_peter > The iOS App device_tracker entity was not found in the Entity Registry for this device.
iCloud3 Setup Error > cenkays_iphone > The iOS App device_tracker entity was not found in the Entity Registry for this device.
devices:
  - device_name: "iphone_van_peter"
    name: "Peter"
    picture: "local/images/person/peter-home.png"

  - device_name: "cenkays_iphone"
    picture: "local/images/person/kay-home.png"
    name: "Kay"
    noiosapp: true

The sensors are working normal. cenkays_iphone not using the iOS app as you can see in devices.
I use the iOS app and that is a different nameā€¦ I cant change the name because iCloud3 have the entitiy name already, and i cant delete it because of:

This entity (ā€œdevice_tracker.peter_iphoneā€) does not have a unique ID, therefore its settings cannot be managed from the UI. See the documentation for more detail.

@FutureTense

  1. I looked through the docs to see where the example is that has config/config_ic3.yaml as an example without the slash before the config and didnā€™t see it. I did see the default: config/config_ic3.yaml. Is that what you mean?
  2. The parsing sequence for the config_ic3.yaml file is shown here. I just have a config_ic3.yaml file in the /config directory.
  3. There are some parameters that are used to set up iCloud3 and must be in the configuragion.yaml file. There are the username, password, config_ic3 file_name, create_sensors & exclude_sensors and described in the same section. All others can be in the config_ic3.yaml (your my_ic3.yaml).
# in configuration.yaml
device_tracker:
  - platform: icloud3
    username: [email protected]
    password: xxx
    config_ic3_file_name: my_ic3.yaml

# in my_ic3.yaml file
devices:
  - device_name: iphone_me
    email: [email protected]
    name: me
  - device_name: iphone_her
    email: [email protected]
    name: her
event_log_card_directory: /www/community/

@poudenes
The iCloud phone name (General/about/Name) and iCloud3 devicename (config devices parameter) must be the same. (iPhone Van Peter = iphone_van_peter). Normally, adding the mobile_device when iCloud3 is running will add a suffix (_2) onto itā€™s device_tracker name (iphone_van_peter_2) and iCloud3 will find it since it starts with iphone_van_peter. If you have set the phone name (iOS App Configuration Device Name) to something else, iC3 will not find the device in the entity registry and not be able to monitor it.

Use the iosapp_entity parameter to specify another name.

devices:
  - device_name: "iphone_van_peter"
    name: "Peter"
    picture: "local/images/person/peter-home.png"
    iosapp_entity: "iosapp_van_peter" ---> What you have in the app configuration, device name

See here for more info.

Thanks for the reply!

Everything is working, only I donā€™t get the info of the other iCloud account. All the time notset. Even wen I try to get location information

@poudenes
That does indicate the phone is not being monitored. When iCloud3 starts, all the device_tracker entities are listed in Stage 3 of the Event Log. Put the non-monitored one in the iosapp_entity parameter for the device not being monitored.

@poudenes
Now I understand, That is normal since the iOS App is not monitored. I have changed the text to Not Used in the next version when the iOS App is not monitored to avoid confusion.

So it will be this then: when I read document ā€œnoiosappā€ is depreciated parameters
and iosapp_installed: False will be the replacement

devices:
  - device_name: "iphone_van_peter"
    name: "Peter"
    picture: "local/images/person/peter-home.png"

  - device_name: "cenkays_iphone"
    picture: "local/images/person/kay-home.png"
    name: "Kay"
    iosapp_installed: False

now its working :slight_smile: I see the updates and distance changingā€¦ He will be happy, because he is biking all day to change location so I can test it hahaha :smiley:

Stupid question perhaps.

But my person didnā€™t have a device tracker. am I supposed to use iphone_app that is generated when installing the HA app, or the device_tracker.henrik_iphone (generated by icloud3). Am I just a bit confused if I use iOS app (Henrik_iphone_app) if its using the gps from iCloud or from the iOS app.

Screenshot 2021-08-03 at 23.57.05

also after doing a restart, my battery is missing a number (see the drop, its 76%, but it shows as 7%.

My iOS settings name app is Henrik iPhone and my HA iOS app name is Henrik-iPhone

Screenshot 2021-08-04 at 00.14.50
Screenshot 2021-08-04 at 00.19.07

@henrikrox
You want to use device tracker.henrik_iphone for your location tracking. The one with the_app is the device tracker associated with the ios app that is monitored by iCloud3. iCloud3 uses both the ios app location and the iCloud location.

There are times when the battery info is not available and is not reported.