New iCloud3 Device Tracker Custom Component -- Waze integration, Dynamic Stationary Zones, immediate zone enter/exit update vis IOS app, device include/exclude filters, minimal battery usage, and more


I think this has nothing to do with the customer_component.
Don’t get me wrong, it happens to me since the app was updated to 1.5.0 and I don’t use this customer component.
Tonight my iPhone shifted over 200 m and back in 1 minute.
I hope this will be fixed with an update of the home assistant app.


Thanks for your formidable work!

I’m trying to set up your compenent. But I have few questions:

Thanks in advance.


Strangely enough HA is giving me the following error:

Platform not found: device_tracker.icloud3

Although I’ve placed the in

Do you’ve got any ideas?


I have my custom_components folder under the config folder.

Shows as being from the root if you map a drive to config.

Mind you, I have this on hassos.


Ah I see, that’s where my problem might occur; I’m not using hassos but HA on a Debian (stretch lite) installation on my RPI.

No I just have to find out where to place the I suppose… If you’ve got any suggestions? Feel free :wink:


in the folder where your configuration.yaml is, there should be a folder custom_components, if it is not there you have to create it.


That’s exactly what I tried. Strangely enough HA keeps telling me:

Platform not found: device_tracker.icloud3

Full path to my



Here is an extract from the home-assistant.log maybe it makes sense to you?

2019-01-31 21:33:45 ERROR (Thread-21) [homeassistant.loader] Error loading custom_components.device_tracker.icloud3. Make sure all dependencies are installed
Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/", line 117, in _load_file
    module = importlib.import_module(path)
  File "/usr/lib/python3.5/importlib/", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 673, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "/home/homeassistant/.homeassistant/custom_components/device_tracker/", line 34, in <module>
    import WazeRouteCalculator
ImportError: No module named 'WazeRouteCalculator'
2019-01-31 21:33:45 ERROR (Thread-21) [homeassistant.loader] Unable to find platform icloud3
2019-01-31 21:33:45 ERROR (MainThread) [homeassistant.components] Platform not found: device_tracker.icloud3


It seems that not all dependencies are installed.
The module WazeRouteCalculator is not there.
Maybe @gcobb321 can help here.



Is it normal that I have 2 tracking device (integrated device_tracker in home assistant and Icloud3 component)
You can have as many as you set up.

To use zoning, I just have to create new zone with HA as normal?
Yes. Create a home zone. See the HA docs on Zones.

Could you share you Lovelace config for this card
All the config files are in the configuration files in the repository, including several lovelace cards.


I made myself a workaround by commenting line 34 in So it’s not literally importing the WazeRouteCalculator and on first sight: it seems to work properly!



I think custom components go into the config/custom_components/device_tracker directory


Requirements added in next release. Also error code that will (might) trap the Waze import error. My Waze has always loaded without any issues. I’m using and don’t know if that makes a difference.

Edit: Requirements removed since it was causing too many other problems if it wasn’t available (there are areas of the world that don’t have Waze but still want to use the app with the iCloud service). It now catches the error that Waze can not load and automatically turns that option off when starting up.


I just had to install the wazeroutecalculator in my ha venv and was good to go …


Great work on this!

I seem to have some weirdness/conflict with the native tracker & icloud3 (my guess…):

1:40PM iPhone is at home
1:37PM iPhone is away
1:37PM iPhone is at home
… other stuff in log
1:26PM iPhone is away
1:26PM iPhone is at home
1:24PM iPhone is away

Essentially, every time I leave/arrive into a zone, I get 3 entries in the log like the above.

Anyone else see this?




Me too, it’s weird. I can’t use it this way. Because my alarm and lights are presence based. Now when i come home the lights turn on and back off again. Same for the alarm and then I trigger the alarm :frowning:. Hopefully there will be a fix. In the mean time I’m switching back to icloud2.


I see similar. So far have three iPhones being tracked, each on its own iCloud account. In cases where there are retries, it does appear there are multiple threads running for each account.

One example is a a 15 second loop and a 2 hour loop going for the same device.


I’ve started to do a little debugging and have found a couple things. Once I confirm them I’ll submit them as bugs to gcobb321’s github repository.

It seems that when iOS updates the state, icloud3 is accidentally setting it back (the update is not supposed to change the state, but in the case where iOS changes the state, it is out of sync with icloud3’s ‘last_state’). It’ll take me a few days to test… going into a long weekend here. :slight_smile: