MQTT Garage Door Opener - Not Responding in Homekit

Good day all.

I’ve installed a Sonoff SV with Tasmota firmware in my garage motor also connected to a magnetic sensor switch to check the closed/open status.

This all works perfectly inside Home Assistant but I specifically wanted this functionality in Homekit to make operating this stuff from a motorcycle easier using Siri.

However in HomeKit I simply get a “No Response” status, this while I’ve got a few other Sonoffs and devices working just fine.

So all I can think is there is something particular about the configuration and the following lines from the doc pages that I need to incorporate.

" All covers that support open and close and have garage as their device_class ."

I have the following in place now.

covers.yaml

      - platform: mqtt
name: "Garage Door"
state_topic: "cmnd/garagestate/POWER2"
command_topic: "cmnd/garage/POWER"
payload_open: "ON"
payload_close: "ON"
payload_stop: "ON"
state_open: "ON"
state_closed: "OFF"
optimistic: false

groups.yaml

Garage:
name: Garage
view: no
control: hidden
icon: mdi:garage
entities:
  - cover.garage_door

customize.yaml

    cover.garage_door:
  device_class: garage
  friendly_name: Garage Door

It all works perfectly fine in HA and I get no configuration errors that I’ve spotted.

What do you have in the homekit: section?

Nothing special, in fact I had nothing added at first and then specially added the details at the bottom hoping it would matter.

It shows up in Homekit after all, just shows up as “Not Responding”.

filter:
exclude_domains:
  - automation
exclude_entities:
  - switch.bedroom
  - switch.emma
  - switch.thomas

entity_config:
sensor.dark_sky_temperature:
name: Outside Temperature
cover.garage_door:
name: Garage Door

So removing the “device_class: garage” from the configuration sorted this problem out.

A little bit silly really as it is in fact a garage door, but I guess “generic” will have to do.

Now to figure out how to make it only summon the MQTT trigger action to open if the status is in fact closed, as it’s always just going to send a button press regardless so need to stop that somehow.

That’s odd because I’m using it and the garage door works fine via HomeKit. In fact, prior to including it, HomeKit assumed the device was a blind.

In customize.yaml:

cover.garage_door_opener:
  friendly_name: Garage Door Control
  device_class: garage

Yup that’s what I had with no joy other than the icon sitting in Homekit dead.

Are you using MQTT covers? Maybe that’s the difference.

Either way it’s working happily now.

I assume you know that if you change a Home Assistant entity, like the entity’s name or device_class, you have to delete the existing associated HomeKit accessory first in order for HomeKit to retrieve the new (modified) version. I recall reading about this in another post.

Are you using MQTT covers? Maybe that’s the difference.

Yes. In fact, everything you listed in your first post looks almost identical to what I have. I believe the only difference is my homekit: entry. I only list the entities I wish to expose to HomeKit and use a time-delayed automation to start the HomeKit service (5 second delay to give Home Assistant a few moments to establish all the MQTT-dependent entities).

In configuration.yaml:

homekit:
  auto_start: false
  filter:
    include_entities:
      - light.kitchen
      - climate.thermostat
      - cover.garage_door_opener
      - alarm_control_panel.security_system
  entity_config:
    alarm_control_panel.security_system:
      code: !secret alarm_panel_code

In automations.yaml:

- alias: 'Start HomeKit'
  hide_entity: true
  trigger:
    - platform: homeassistant
      event: start
  action:
    - delay: 00:00:05  # Waits 5 sec
    - service: homekit.start

I didn’t need to delete or change anything after removing the device_class, outside of restarting HA.

And it was a brand new device when I first set it up with the device_class so it shouldn’t have broken.

Guess I could try it, but no need really now.


Tried changing it back but does the same.

Have no idea how I’m meant to remove it from Homekit though, but reading the docs that only applies to the name and type if it’s a switch.

Using the HomeKit app on your iOS device. As I mentioned earlier, initially my Garage Door was understood to be a blind. Based on instructions in another thread, I deleted the existing Garage Door accessory (using the app), added the appropriate device_class to the garage door entity (MQTT Cover), restarted HA, and the revised Garage Door appeared within the HomeKit app (now understood to be a garage door as opposed to a blind).

Anyway, I’m still using 0.80. Maybe it works differently in more recent releases.

Okay that’s what I expected…but there are no options to delete anything in the Home app.

So something must have changed with newer versions.

Instructions for deleting accessories are at the bottom of this page.

Yeah that’s where I remember it being but the option is now gone.

I’m guessing it expects it to be removed from the bridge itself now.