[SOLVED] Icloud Binding stoped working after IOS 13 update

Hi Guys .
i have picked up a problem with the icloud binding. after i updated both myne and the boss ( the wife) iphones to ios 13.it just stoped functioning. nothing gets updated. i checked the logs. and don’t really see anything.

here is a screen grab from paperui:

Thing :

Bridge icloud:account:myaccount [appleId=")#(*$&@#@icloud.com", password="woopykiss", refreshTimeInMinutes=5]
Bridge icloud:account:myaccount [appleId="*#@#$$@icloud.com", password="BLABLAhaha", refreshTimeInMinutes=5]

{
Thing device myiPhone6 "Allen IPhone"  [deviceId='*****************"]
 
Thing device myiPhone8 "Aletchia IPhone"  [deviceId="****************"]
}

Items :

Group    Apple                             "Apple"                                                   <lock>                   (Home)

String   iPhone_BatteryStatus               "Allen Battery Status [%s]"                                 <battery>             (Apple)             {channel="icloud:device:myaccount:myiPhone6:batteryStatus"}
Number   iPhone_BatteryLevel                "Allen Battery Level [%d %%]"                               <battery>             (Apple)             {channel="icloud:device:myaccount:myiPhone6:batteryLevel"}
Switch   iPhone_FindMyPhone                 "Allen Trigger Find My iPhone"                                                    (Apple)             {channel="icloud:device:myaccount:myiPhone6:findMyPhone", autoupdate="false"}
Switch   iPhone_Refresh                     "Allen Force iPhone Refresh"                                                      (Apple)             {channel="icloud:device:myaccount:myiPhone6:location", autoupdate="false"}
Location iPhone_Location                    "Allen Coordinates"                                                               (Apple)             {channel="icloud:device:myaccount:myiPhone6:location"}
Number   iPhone_LocationAccuracy            "Allen Coordinates Accuracy [%.0f m]"                                             (Apple)             {channel="icloud:device:myaccount:myiPhone6:locationAccuracy"}
DateTime iPhone_LocationLastUpdate          "Allen Last Update [%1$td.%1$tm.%1$tY, %1$tH:%1$tM]"        <time>                (Apple)             {channel="icloud:device:myaccount:myiPhone6:locationLastUpdate"}
Switch   iPhone_Home                        "Allen Phone Home"                                          <presence>            (Apple)
Switch   iphone_Work                        "Allen Phone Work"                                          <presence>            (Apple)


String   iPhone_BatteryStatus_A             "Aletchia Battery Status [%s]"                              <battery>             (Apple)             {channel="icloud:device:myaccount:myiPhone8:batteryStatus"}
Number   iPhone_BatteryLevel_A              "Aletchia Battery Level [%d %%]"                            <battery>             (Apple)             {channel="icloud:device:myaccount:myiPhone8:batteryLevel"}
Switch   iPhone_FindMyPhone_A               "Aletchia Trigger Find My iPhone"                                                 (Apple)             {channel="icloud:device:myaccount:myiPhone8:findMyPhone", autoupdate="false"}
Switch   iPhone_Refresh_A                   "Aletchia Force iPhone Refresh"                                                   (Apple)             {channel="icloud:device:myaccount:myiPhone8:location", autoupdate="false"}
Location iPhone_Location_A                  "Aletchia Coordinates"                                                            (Apple)             {channel="icloud:device:myaccount:myiPhone8:location"}
Number   iPhone_LocationAccuracy_A          "Aletchia Coordinates Accuracy [%.0f m]"                                          (Apple)             {channel="icloud:device:myaccount:myiPhone8:locationAccuracy"}
DateTime iPhone_LocationLastUpdate_A        "Aletchia Last Update [%1$td.%1$tm.%1$tY, %1$tH:%1$tM]"     <time>                (Apple)             {channel="icloud:device:myaccount:myiPhone8:locationLastUpdate"}
Switch   iPhone_Home_A                      "Aletchia Phone Home"                                       <presence>            (Apple)
Switch   iphone_Work_A                      "Aletchia Phone Work"                                       <presence>            (Apple)

Sitemap :

Frame label="Appel"{
     Text label="Allen" icon="iphone"{
         Default item=iPhone_BatteryStatus    label="Battery Status [%s]"
         Default item=iPhone_BatteryLevel  label="Battery Level [%d %%]" 
         Default item=iPhone_FindMyPhone  label="Find My Phone"
         Default item=iPhone_Refresh label="Force iPhone Refresh" 
         Default item=iPhone_LocationAccuracy label="Accuracy [%.0f m]"
         Default item=iPhone_LocationLastUpdate label="Last Update [%1$td.%1$tm.%1$tY, %1$tH:%1$tM]" 
         Default item=iPhone_Home label="Allen Home"
         Default item=iphone_Work label="Allen Work"
         Mapview item=iPhone_Location height=10
     }
     Text label="Aletchia" icon="iphone"{
         Default  item=iPhone_BatteryStatus_A    label="Battery Status [%s]"
         Default item=iPhone_BatteryLevel_A  label="Battery Level [%d %%]" 
         Default item=iPhone_FindMyPhone_A  label="Find My Phone"
         Default item=iPhone_Refresh_A label="Force iPhone Refresh" 
         Default item=iPhone_LocationAccuracy_A label="Accuracy [%.0f m]"
         Default item=iPhone_LocationLastUpdate_A label="Last Update [%1$td.%1$tm.%1$tY, %1$tH:%1$tM]" 
         Default item=iPhone_Home_A label="Aletchia Home"
         Default item=iphone_Work_A label="Aletchia Work"
         Mapview item=iPhone_Location_A height=10
     }
   } 

Just for info my rules for it.

rule "Allen"
when
    Item iPhone_Location changed
then
    // specify your home location
    val PointType home_location  = new PointType(new DecimalType(-25.781538), new DecimalType(29.438835))
    val PointType phone_location = iPhone_Location.state as PointType
    val int distance = phone_location.distanceFrom(home_location).intValue()
    // specify your preferred radius (in meters)
    if ( distance < 100) {
        iPhone_Home.postUpdate(ON)
        logInfo("iPhone Home", "Allen is at home.")
    } else {
        iPhone_Home.postUpdate(OFF)
        logInfo("iPhone Home", "Allen is away.")
    }
end

rule "Aletchia Home"
when
    Item iPhone_Location_A changed
then
    // specify your home location
    val PointType home_location_A  = new PointType(new DecimalType(-25.781538), new DecimalType(29.438835))
    val PointType phone_location_A = iPhone_Location_A.state as PointType
    val int distance = phone_location_A.distanceFrom(home_location_A).intValue()
    // specify your preferred radius (in meters)
    if ( distance < 100) {
        iPhone_Home_A.postUpdate(ON)
        logInfo("iPhone Home A", "Aletchia is at home.")
    } else {
        iPhone_Home_A.postUpdate(OFF)
        logInfo("iPhone Home A", "Aletchia is away.")
    }
end

rule "Allen Work"
when
    Item iPhone_Location changed
then
    // specify your home location
    val PointType work_location  = new PointType(new DecimalType(-25.8960), new DecimalType(29.1172))
    val PointType phone_location = iPhone_Location.state as PointType
    val int distance = phone_location.distanceFrom(work_location).intValue()
    // specify your preferred radius (in meters)
    if ( distance < 100) {
        iphone_Work.postUpdate(ON)
        logInfo("iPhone Work", "Allen is at Work.")
    } else {
        iphone_Work.postUpdate(OFF)
        logInfo("iPhone Work", "Allen is away from Work.")
    }
end

rule "Aletchia Work"
when
    Item iPhone_Location_A changed
then
    // specify your home location
    val PointType work_location_A  = new PointType(new DecimalType(-25.781538), new DecimalType(29.492352))
    val PointType phone_location_A = iPhone_Location_A.state as PointType
    val int distance = phone_location_A.distanceFrom(work_location_A).intValue()
    // specify your preferred radius (in meters)
    if ( distance < 100) {
        iphone_Work_A.postUpdate(ON)
        logInfo("iPhone Work A", "Aletchia is at Work.")
    } else {
        iphone_Work_A.postUpdate(OFF)
        logInfo("iPhone Work A", "Aletchia is away from Work.")
    }
end

Anything in the logs ?
Might be worth to delete the things and have them rediscovered.
I can confirm the binding working with several iPhones on IOS13.1.3, iPads on iPadOS13.1.3 and Watch Series 4 on WatchOS 6

Restarting the bundle in the karaf console will resolve the issue (or simply restart OH2 if easier)

How do i restart it in karaf?

Not anything i could see in the logs. Will make work of it today and check the logs.

When in the karat console, find the number of the bundle ‘bundle:list’ and then restart it with ‘bundle:restart 123’ where 123 needs to be replaced with bundle number that you found before.

Hope that helps

this is in the log.

2019-10-18 10:34:08.404 [hingStatusInfoChangedEvent] - 'icloud:device:myaccount:myiPhone6' changed from UNINITIALIZED to UNINITIALIZED (HANDLER_MISSING_ERROR)

2019-10-18 10:34:08.414 [hingStatusInfoChangedEvent] - 'icloud:device:myaccount:myiPhone8' changed from UNINITIALIZED to UNINITIALIZED (HANDLER_MISSING_ERROR)

2019-10-18 10:34:08.416 [hingStatusInfoChangedEvent] - 'icloud:account:myaccount' changed from OFFLINE (COMMUNICATION_ERROR): java.util.concurrent.ExecutionException: javax.net.ssl.SSLHandshakeException: General SSLEngine problem to UNINITIALIZED

2019-10-18 10:34:08.545 [hingStatusInfoChangedEvent] - 'icloud:account:myaccount' changed from UNINITIALIZED to UNINITIALIZED (HANDLER_MISSING_ERROR)

2019-10-18 10:34:09.770 [hingStatusInfoChangedEvent] - 'icloud:device:myaccount:myiPhone8' changed from UNINITIALIZED (HANDLER_MISSING_ERROR) to UNINITIALIZED (BRIDGE_UNINITIALIZED)

2019-10-18 10:34:09.773 [hingStatusInfoChangedEvent] - 'icloud:device:myaccount:myiPhone6' changed from UNINITIALIZED (HANDLER_MISSING_ERROR) to UNINITIALIZED (BRIDGE_UNINITIALIZED)

2019-10-18 10:34:09.814 [hingStatusInfoChangedEvent] - 'icloud:account:myaccount' changed from UNINITIALIZED (HANDLER_MISSING_ERROR) to INITIALIZING

2019-10-18 10:34:10.537 [hingStatusInfoChangedEvent] - 'icloud:account:myaccount' changed from INITIALIZING to OFFLINE (COMMUNICATION_ERROR): java.util.concurrent.ExecutionException: javax.net.ssl.SSLHandshakeException: General SSLEngine problem
2019-10-18 10:20:52.846 [WARN ] [l.handler.ICloudAccountBridgeHandler] - Unable to refresh device data

2019-10-18 10:25:53.700 [WARN ] [l.handler.ICloudAccountBridgeHandler] - Unable to refresh device data

2019-10-18 10:30:54.471 [WARN ] [l.handler.ICloudAccountBridgeHandler] - Unable to refresh device data

2019-10-18 10:34:10.439 [WARN ] [l.handler.ICloudAccountBridgeHandler] - Unable to refresh device data

2019-10-18 10:34:11.052 [WARN ] [l.handler.ICloudAccountBridgeHandler] - Unable to refresh device data

2019-10-18 10:34:11.556 [WARN ] [l.handler.ICloudAccountBridgeHandler] - Unable to refresh device data
2019-10-18 10:34:10.641 [hingStatusInfoChangedEvent] - 'icloud:device:myaccount:myiPhone6' changed from UNINITIALIZED (BRIDGE_UNINITIALIZED) to INITIALIZING

2019-10-18 10:34:10.646 [hingStatusInfoChangedEvent] - 'icloud:device:myaccount:myiPhone8' changed from UNINITIALIZED (BRIDGE_UNINITIALIZED) to INITIALIZING

Which version of openHAB do you use? Theres a fix for this issue available (from snapshot build #1656 or 2.5.0.M2 milestone release onward), see iCloud SSL issue again

1 Like

You have configured two Apple-Id’s with the same name “myaccount”, this is not going to work.

version 2.4.0-1 stable

yes and it was fully functional till a week ago. but will change it to see if it helps

DONE - still same issue

So you will have to upgrade, or follow the steps shown in the linked thread to manually upgrade the certificate.

1 Like

i use openhabian. so i will upgrade in any case. and give feedback once done.

what would you segest to install ?

and how would i do that with the openhabian-config ?

so i upgraded to the latest snapshot. and changed my things file back to how i had it and now everything is back and working. thank you all for the speedy help. :handshake: :clap: :vulcan_salute: