Core: Homekit not working on ios 12

Created on 28 Oct 2019  Â·  26Comments  Â·  Source: home-assistant/core

Home Assistant release with the issue: 0.100.3

Last working Home Assistant release (if known): ~0.97 (before ios 13 release/upgrade)

Operating environment (Hass.io/Docker/Windows/etc.): Hass.io running on NUC ubuntu

Integration: Homekit

Description of problem:
Homekit stopped working once I upgraded my iphone to ios 13, my other device (ipad) is ios 12.4.1 (can't be upgraded to 13). At first it became some buggy when ios 13 started combining/grouping switches that probably wasn't supported in ios 12.
I removed all homekit related integration, deleted .homekit.storage, removed pairing from home app (automaticly removed from all devices), signed out icloud (also factory resetted ipad), restarted router, restarted hass (repeated several times).
on ios 12 I can't pair at all, it says Can't add homeassistant bridge.
on ios 13 it works as expected. once it added in ios 13 it synced via icloud and i can see the entities on ipad (ios 12) as well, but all of them with no response.
Tried adding ip address and safe mode.
Tried to get some answer in community forum: https://community.home-assistant.io/t/homekit-works-only-ios-13

Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):

ip_address: 10.0.1.201
safe_mode: true
filter:
  include_domains:
    - alarm_control_panel
    - light
    - climate
    - media_player

image

homekit

All 26 comments

I believe I also have the iOS 13 part of this issue.

Home Assistant release with the issue: 0.100.3
Last working Home Assistant release (if known): N/A
Operating environment: Docker on Ubuntu Server

Description of problem:
I added the simplest Homekit config possible:

homekit:

I was able to connect to the bridge on my iOS 13 phone and my 2 RFXtrx temperature sensors appeared, but about 60 seconds later they changed to "No Response". I left it all running over night, and they were still "No Response" in the morning. In Home Assistant, the sensors were working perfectly.

I have a Homekit compatible contact sensor that is linked directly to Homekit (i.e. no connection to Home Assistant), and that also works perfectly.

I just tried this again (with a slightly different config), and it did the same thing: worked for a couple of minutes then died. I had to restart HA to get Homekit working again.

Full config file:

homeassistant:
  customize: !include customize.yaml

# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:

# Uncomment this if you are using SSL/TLS, running in Docker container, etc.
# http:
#   base_url: example.duckdns.org:8123

# Text to speech
tts:
  - platform: google_translate

group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml

rfxtrx:
  device: /dev/ttyUSB0

sensor:
  platform: rfxtrx
  devices:
    0a52015b6b010099600359:
      name: Outside
      data_type:
       - Humidity
       - Temperature
    08500262ef02009340:
      name: Living Room

homekit:
  filter:
    include_entities:
      - sensor.living_room_temperature
      - sensor.outside_temperature
      - sensor.outside_humidity

Ok, finally got some light at the end of the tunnel (of debugging): universal media player I use for switching input source on my tv.
https://www.home-assistant.io/integrations/universal/

Once it enabled, it makes all homekit entries on ios 12 as "No Response" (on ios 13.2 it works as normally) and even you delete it from homekit config, all entries on ios 12 still remain offline, the only solution is completely remove home from the app the "repair" it again (now without universal media player).

This is my config for universal:

customize.yaml

media_player.universal:
  device_class: tv
  friendly_name: TV
  source_list: [Kodi, ATV, Chromecast, HDMI]

mediaplayer_universal.yaml

- platform: universal
  name: Universal
  children:
    - media_player.kodi
    - media_player.chromecast
  commands:
    turn_on:
      service: script.turn_on
      data:
        entity_id: script.multimediaon
    turn_off:
      service: script.turn_on
      data:
        entity_id: script.multimediaoff
    volume_up:
      service: script.turn_on
      data:
        entity_id: script.volumebitup
    volume_down:
      service: script.turn_on
      data:
        entity_id: script.volumebitdown
    volume_mute:
      service: switch.turn_off
      data:
        entity_id: switch.ampmute
    select_source:
      service: script.turn_on
      data_template:
        entity_id: >
          {% if source ==  'Kodi' %}
            script.kodi_switch
          {% elif source ==  'ATV' %}
            script.atv_switch
          {% elif source ==  'Chromecast' %}
            script.chromecast_switch
          {% elif source ==  'HDMI' %}
            script.hdmi_switch
          {% endif %}
  attributes:
    source_list: input_select.multimedia_modes|options

So actually I think the issue is more sounds like "Universal Media Player causes all homekit entries to become No Response, except on ios 13"

I have all no responses and am using iOS 13.1.3 and am not using universal media player. I’ve deleted and re-added home, restarted multiple times.

I would suggest upgrading to ios 13.2, and simplifying homekit configuration to include for debug for example only one entity, like this:

homekit:
  filter:
    include_entities:
      - light.kitchen

I'm also not using "universal media player" and I'm on iOS 13.2. There's definitely something wrong when the simplest "out of the box" setup still doesn't work properly.

I want to clarify, the universal media player works perfect on ios 13.2, but once I add it, all other devices on ios 12.4.1 goes No Response

@radinsky I updated to 13.2 on my iOS devices and it worked for a short time and then back to "No response". I then decided to simplify to specific entities so my setup was:

homekit:
filter:
include_domains:
- cover
- sensor

which I changed to:

homekit:
filter:
include_entities:
- cover.garage_door
- cover.sala_curtains

So far those are showing up and available after reboot.... need to give it a few hours to see if it stays that way.

Well... not good news. It's back to No responses. The log lines looks fine to me, current and up to date.

│2019-10-30 12:46:14 DEBUG (MainThread) [homeassistant.components.homekit.accessories] New_state: <state cover.garage_door=closed; wifi_signal=-68, distance_sensor=244, door_state=closed, friendly_name=Garage Door, supported_features=3, device_class=garage @ 2019-10-30T12:29:35.032399-06:00> │

That's strange, mine is still working ok on both ios 13 and 12... (without universal media player)

The issue I see with 13.2 is that “secure devices” such as Garage Door and Locks do not send through a notification on the Home App when opened/ closed/ locked etc.
On the home app, it shows the correct status but I don’t get any push notifications. I’ve checked on the home app and the notifications for those particular devices are on.
It worked on 13.1.3 but not on 13.2.
Anyone else seeing this?

This is the samme issue with HomeBridge and Home Assistant with HomeKit support. These bridges break with 13.2. I've tried to change HomeKit master connection from tvOS 13.2 to tvOS 12.4. This does not help.

@wasp100 Direct connections like IKEA TrĂĄdfri directly into Homekit works. Third-parties, does not. This must be a more underlying problem with the authentications and statuses with the HAP server.

Everything works for me with Domoticz and Homebridge (latest versions) and iOS 13.2. For me, the issue seems to lie in the HomeKit integration in HA.

@jameschiffey It started there for me, however now its HA and HB.

2019-11-01 23:37:32 DEBUG (MainThread) [homeassistant.components.homekit.accessories] New_state: <state sensor.thermofloor_as_heatit_thermostat_tf_021_temperature_2=23.5; node_id=12, value_index=1, value_instance=1, value_id=72057594244251666, unit_of_measurement=°C, friendly_name=ThermoFloor AS Heatit Thermostat TF 021 Temperature @ 2019-11-01T23:37:32.367519+01:00>
2019-11-01 23:37:32 DEBUG (SyncWorker_7) [homeassistant.components.homekit.type_sensors] sensor.thermofloor_as_heatit_thermostat_tf_021_temperature_2: Current temperature set to 23°C
2019-11-01 23:39:04 DEBUG (MainThread) [homeassistant.components.homekit.accessories] New_state: <state sensor.thermofloor_as_heatit_thermostat_tf_021_temperature_4=25.0; node_id=18, value_index=1, value_instance=1, value_id=72057594344914962, unit_of_measurement=°C, friendly_name=ThermoFloor AS Heatit Thermostat TF 021 Temperature @ 2019-11-01T23:39:04.009187+01:00>

But it does not look like there are any issues with the Home Assistant debug code for the accessories

One thing I noticed was that the MacOS home app shows them as available when at the same time the iOS app says NO Response. Seems like a communication issue to me.

@ikalchev
Can you please share your insight into this problem? Could it be solved through a change in HAP-python?

I was experiencing a similar problem, turned out to be my WiFi. If using a Google Wifi Mesh network, they pushed an update out over the past few weeks that broke some UPNP features. it creates this no response issue if your device is connected to a different access point than your Home-Assistant server.

Google is aware of the issue, but there's no ETA on a fix.

I tried to use the integration to link HA 0.101.2 with the Home app on iOS 13.1.2. No dice. Cannot at the Home Assistant Bridge to the home app. They just do not connect.

I have the same problem, after updating HA I lost connectivity to HomeKit. I deleted the home in HomeKit and tried to pair with home assistant again. Homekit sees the homeassistant accessory right away, but after typing in the pin to pair them up, it just times out. I also tried typing in the wrong pin number on purpose, same error. Its like it is no long able to connect to home assistant.

Have same problem. Everything shows No Response.

I have the same problem, after updating HA I lost connectivity to HomeKit. I deleted the home in HomeKit and tried to pair with home assistant again. Homekit sees the homeassistant accessory right away, but after typing in the pin to pair them up, it just times out. I also tried typing in the wrong pin number on purpose, same error. Its like it is no long able to connect to home assistant.

I have exactly the same problem

I'm having the same issue still on the latest iOS as of this post. Still seeing this error in my logs:
2020-03-13 22:55:58 WARNING (SyncWorker_17) [homeassistant.components.homekit] HomeKit is not ready. Either it is already running or has been stopped.

Should be fixed in 0.108 with #33539

Please open a new issue of 0.108 does not resolve this.

can confirm finally all worked on 115.4, tested on ios12/13/14

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Konstigt picture Konstigt  Â·  3Comments

i-am-shodan picture i-am-shodan  Â·  3Comments

arangates picture arangates  Â·  3Comments

moskovskiy82 picture moskovskiy82  Â·  3Comments

bdraco picture bdraco  Â·  3Comments