iCloud Binding Communication Error

The maintainer said he didn’t have time to fix it. It sounds to me (a standard user like you) that the fix will not be easy and will require a major overhaul of the binding to change from using an undocumented and not supported by Apple interface to using their supported API. But that takes someone with developer skills whose is interested in doing it. With an opensource, community supported system, that is one of the risks we take. The binding has been living on borrowed time for quite a while, as there have been periodic problems that have either resolved themselves or been fixed with an easy fix. But it is probably the least reliable of any binding I use.

1 Like

As suggested, I created a new thread to discuss the pyicloud approach Pyicloud in place of currently nonfunction iCloud binding

1 Like

So it looks like the iCloud binding for openhab is dead now…?

I am willing to deep dive into this topic. But this will take some time, because this would be my very first implementation and I need to setup dev environment first and read some documents on how to implement for openHab and how to test :blush:

So please be patient, I will come back if there is any progress.


Yes but You need to have Home Hub (iPad, Apple TV etc.) to use automatizations in HomeKit…

If you need beta testers, i am ready to test. The post above from @martinvw might help you to start.

This might help, a Java implementation of PyIcloud…

@Kamil_Matuszczak That’s true - I forgot to mention it! You need a Homekit Hub - in my case I am using an Apple TV Box

Really appreciate Fabio. Many thanks!

That would be a very welcome support, does ithe lib support 2FA? Any ideas how the input of the code could be integrated into the startup process, normally there is no user interaction, …

I tried now a different approach. I still had a vm with a test-installation of Home Assistant. The icloud3 addon for HA has a lot of features and it seems, it doesn‘t have the 2 month reauthentication restriction. So all states of HA are published via MQTT. In OH I read the values from MQTT. For interaction with HA (like forcing a refresh or triggering a message) I use the HA Rest API and trigger it via OH sendhttppostrequest.

This setup might be an overkill for most users and as I am a completely beginner with HA, it took me a lot of time to get it sorted…

Please have a look at EchoControl binding, there is a separate page for such.

Else implement it as a second config param the user can set after receiving the code.

Hi, since the current iCloud Binding is very instable I created a little wrapper around the pyicloud lib and publish the device data to a mqtt broker.

Please be aware that this was quickly ‚hacked‘ and errors are likely to appear :wink:
Error reports or Pull requests are very welcome.

1 Like

Another simple workaround (with support for 2FA/2SA):

I used the iCloud binding for detecting sleep mode (=iPhones are all in Flight Mode) and presence detection.

For presence detection I´m using now GPS tracker (own tracks on iOS) and for the sleep mode I´m building a scale using ESP32 controller and weight modules to check the weight of our bed to determine if sleep mode should be activated or not.

Anyhow I would like to see this binding working again. Thanks for your effort!

Hello everyone,
I would also be very happy if this binding works again.
It does exactly what I need and it’s easy to configure…

Maybe you should set up a donate button on Github :wink:

Thank you for the work.

Does anybody know where I can found some documentation about the iCloud API (Rest API doc, Authentication)?

I created a prerelease working version: Release proof-of-concept-1 · maihacke/openhab-addons · GitHub

Also see discussion here [iCloud] Bridge-Thing generates Communication Error · Issue #13282 · openhab/openhab-addons · GitHub


This are good news. Thanks for your effort. But i am not able to input the code using MainUI because there is no field for this. My thing config is within a json-file under userdata.

Can you give me a hint?

You have to provide it in the thing config file:

Bridge icloud:account:simon [appleId="", password="*", code="XXXXXX", refreshTimeInMinutes=5]