IOS devices not getting push id

Just reporting the same issue on 0.87.0. I did all the steps suggested by @DavidFW1960 but no luck.

Very Odd…

I had a whole bunch of zxombies and the setps I outlined worked. Make sure Home Assistant is not running when YOu edit files in .storage. Check ALL of them for ios. Make sure you don’t break the JSON format. Delete ios.conf and any ios in known_devices.yaml Make sure the integration is gone when you restart… if it is there with no devices, remove it and restart home assistant again. Make sure it’s GONE before adding back. Also, if problems, remove ios: from config and again restart. Make sure it’s dead before performing CPR!

I think that this is the problem https://github.com/home-assistant/home-assistant/issues/14390

This is the discussion Not receiving a PUSH ID from HASSIO

Can you do something about it?

No that’s almost a year old and solved.

Same Here. I have tried and no luck. Works fine until yesterday i think. Wifes phone works good and she get an Push ID.

I get really mad at this. Why things work and then not.

What to do?

did you try deleting that app and adding it back? Are you using the v1.5.x of the app?

Yes but maybe the certificate it’s expired again. If you try with a new iPhone, you get the Push ID?

Well I did yesterday… when you delete the app you get a new push ID.

Maybe it’s different for a new iPhone. I’ve one that working with no problem at all. And other two that don’t want to work.

I very much doubt it…

First thank you @DavidFW1960 for your assistance, it is appreciated.

Second, how can I help diagnose this? Is there a guide on how to debug this at a python level to see if we can narrow the issue or eliminate some aspects?

Lastly I should mention that my iPhone’s notifications were working at one point. I think I did a complete reset and rebuilt my docker container and just restored my configurations from scratch at one point and that’s when it stopped working.

BTW overnight the configuration -> Integration has filled in with my devices and their battery status sensors so they’re talking just not well enough.

I don’t know… I had some duplicates an the weekend and I was speaking with the dev of the iOS app and he told me to go scorched earth as I described and it worked. Not getting a push ID - no idea why that would happen unless the iOS app isn’t authenticated with HA correctly… I assume you all use the latest version 1.5.x of the app and not still the old one that didn’t support auth correctly…

I did verify that there were no evidence of IOS left in .storage (and .ios.conf) the results after the process and rediscovery are below which seem correct.
auth: two different iPhones (one maybe an iPad)
device_registry: Are 2 iPhones and 2 iPads (1 iPad missing but it’s an original iPad so I’m not surprised)
entity_registry: for the 4 devices above, 2 entries each (battery_level and battery_state).

I don’t see any duplication.

[03:48] ha@odrorir ~/config/.storage # grep -in ios * 
auth:107:                "client_id": "https://home-assistant.io/iOS",
auth:121:                "client_id": "https://home-assistant.io/iOS",
core.config_entries:36:                "domain": "ios",
core.config_entries:39:                "title": "Home Assistant iOS",
core.device_registry:209:                        "ios",
core.device_registry:228:                        "ios",
core.device_registry:247:                        "ios",
core.device_registry:266:                        "ios",
core.entity_registry:613:                "platform": "ios",
core.entity_registry:622:                "platform": "ios",
core.entity_registry:631:                "platform": "ios",
core.entity_registry:640:                "platform": "ios",
core.entity_registry:649:                "platform": "ios",
core.entity_registry:658:                "platform": "ios",
core.entity_registry:667:                "platform": "ios",
core.entity_registry:676:                "platform": "ios",

I can´t make this work. No I have taken away all ios i configirations.yaml and restart. Then put it in again and reinstalled the app.

As you can se in ios.conf my device is found but I don´t get a push ID.

“devices”: {
"Micke ": {
“app”: {
“buildNumber”: 34,
“bundleIdentifer”: “io.robbie.HomeAssistant”,
“versionNumber”: “1.5.0”
},
“battery”: {
“level”: 31,
“state”: “Unplugged”
},
“device”: {
“localizedModel”: “iPhone”,
“model”: “iPhone”,
“name”: “Mickes Iphone X”,
“permanentID”: “60716459-C862-46B2-8950-1D8301A5A4A7”,
“systemName”: “iOS”,
“systemVersion”: “12.1.4”,
“type”: “iPhone X”
},
“deviceId”: "Micke ",
“lastSeenAt”: “2019-02-18T14:50:15.824516”,
“permissions”: [
“notifications”,
“location”
],
“pushSounds”: [],
“pushToken”: “This space intentionally left blank”

And from the log homeassistant.exceptions.ServiceNotFound: (ServiceNotFound(…), ‘Service notify.ios_micke not found’)

i had duplicate entries, deleted using Entity Registry UI, deleted ios.conf reinstalled my app and now notifications dont’ work. Similar error:

(MainThread) [homeassistant.components.automation] Error while executing automation automation.startup_notification. Service not found for call_service at pos 1: (ServiceNotFound(...), 'Service notify.ios_eugene_iphone not found')

ios.conf looks like:

{
"devices": {
    "eugene_iphone": {
        "app": {
            "buildNumber": 34,
            "bundleIdentifer": "io.robbie.HomeAssistant",
            "versionNumber": "1.5.0"
        },
        "battery": {
            "level": 14,
            "state": "Unplugged"
        },
        "device": {
            "localizedModel": "iPhone",
            "model": "iPhone",
            "name": "Eugene\u2019s iPhone",
            "permanentID": "CC421C07-E30C-434E-BC3F-AFEE858FC1DE",
            "systemName": "iOS",
            "systemVersion": "12.1",
            "type": "iPhone 7 Plus"
        },
        "deviceId": "eugene_iphone",
        "lastSeenAt": "2019-02-18T21:44:52.770713",
        "permissions": [
            "notifications"
        ],
        "pushSounds": [],
        "pushToken": "This space intentionally left blank"
    }
},
"push": {}

}

Anyone got any idea? I’m also getting an error in my log that says " The notify.ios platform was loaded but no devices exist!" However on my app all iOS Component, device tracker component and ios notify platform are all loaded.

Comparing your ios file with mine, I see a significant difference as in my case the pushID is there. The push ID is the same as the one under notification settings in the ios app. Maybe if you add manually it would work?

"iphone_rene": {
    "app": {
        "buildNumber": 3,
        "bundleIdentifer": "io.robbie.HomeAssistant",
        "versionNumber": "1.5.1"
    },
    "battery": {
        "level": 34,
        "state": "Unplugged"
    },
    "device": {
        "localizedModel": "iPhone",
        "model": "iPhone",
        "name": "Ren\u00e9's iPhone X",
        "permanentID": "02DB3F82-10B6-43EF-8F77-E9DD4A325512",
        "systemName": "iOS",
        "systemVersion": "12.1.4",
        "type": "iPhone X"
    },
    "deviceId": "iphone_rene",
    "lastSeenAt": "2019-02-17T19:46:53.548864",
    "permissions": [
        "notifications",
        "location"
    ],
    "pushId": "79eceeeb-ca8d-3b5f-8fdd-aedf49581adc",
    "pushSounds": [],
    "pushToken": "This space intentionally left blank"
}

From what I understand in reading the code, the HA app generates the key and sends it to home assistant instance. Putting it in the .ios.conf file is just the 2nd half and will be overridden the next time you push. And if it doesn’t match the phone’s code then it won’t work anyway.

@Piggyback @DavidFW1960 do you happen to have your HA exposed to the internet via HTTPS? Or maybe just HTTPS enabled even if it’s not exposed to the internet?

I have it exposed. I use the duckdns addon which includes let’s encrypt.